The Sensor Package is made up of a few key components. The data aquisition board (or board for short), a series of sensors, and the Ethernet port.The Board
The board was designed and fabricated specifically for the FLOCS project and the UVic AERO club. It is based on the AVR32 AT32UC3A0512 EVK1100 demo board, but includes some extra features. From the image below you can identify a number of onboard sensors, expansion ports, and LEDs. These individual components work together to simplify and centralize the data aquisition procedure.
By using the FreeRTOS Real Time Operating System (which is compatible with the AVR32 microprocessor) we were able to schedule individual tasks in real time by creating a software framework in C and C++ to manage data flow within the software. This provided the flexibility of a multi-threaded application and the guarantee of a software deadlines.The Gyroscope
The Gyroscope chosen for this project is the IvenSense ITG-3200 Tripple Axis Gyroscope. This sensor provides the ability to measure the orientation of the board in three dimensions. This MEMS device has a shock tolerance of approximately 10,000g which makes this device well suited to applications with "drop potential".
The sensor makes use of an internal temperature sensor to reduce thermal noise and provides 16-bit resolution for each axis. The device uses the Two Wire Interface (TWI) to communicate with the board, and is mounted directly on the circuit board. The sensor can measure +/- 2000 degrees/second.
The Accelerometer chosen for this project is the ADXL345 Three-Axis Accelerometer. The sensor is able to measure acceleration in three axis by using differential capacitors. The onchip A-to-D converter can provide acceleration data at between 3.2 KHz and 12.5 Hz.
The chip is able to be used in both 3-wire and 4-wire SPI mode as well as over TWI. For our project the 4-wire SPI interface proved to be the most useful. The sensor also contains an onboard digital filter to reduce noise in the sensor readings and has a sensitivity of up to +/- 16g. This feature will allow the sensor to perform well in a practical environment.
The compass chosen for this project is the HoneyWell HMC5843 Magnetic Sensor. The compass can determine the direction the board is facing by sensing the Earth's magnetic poles. The compass provides 12-bit resolution on the angle and is accessed over the TWI interface.
The compass can measure three axis, while operating at 116 Hz. The low voltage requirements (2.5 to 3.3V) means that the sensor doesn't require any extra power supply.
The Barometer used in the FLOCS project is a VTI Technologies SCP-1000 Pressure Sensor. This sensor is used to measure the pressure relative to vacuum which can provide a way to measure the altitude of the board. This sensor also possesses an internal temperature sensor to assist in calibration, and performs all calibration computations on chip.
The centre of the chip contains a void space which acts as a diaphragm allowing the sensor to measure the air pressure around it. As the pressure changes the air in the diaphragm compresses and expands which presses on two capacitor plates causing a change in voltage. By connecting to the chip over the SPI bus, it is possible to read these pressure values.
This Ultrasonic sensor is used in the FLOCS project to measure the distance from the board to the ground using high frequency sound pulses. The sensor can measure the distance at a 100mS period, and communicates over the SPI bus.
The sensor can detect objects from 20cm to 765cm with 1cm resolution. Since the range of the senor is limited, this measurement technique would only be used when the aircraft is close to the ground.
The GPS unit used in the FLOCS project is the Venus634LPx GPS Board. The sensor is capable of 51 channel acquisitions and 14 channel tracking. It features on antenna connection and can measure locations with accuracies of up to 2.5m. The sensor is capable of operating at heights of up to 18km while traveling at 515 m/s.
The sensor communicates using a serial connection and has been configured to update once per second. The data pulled out of the sensor contains a lot of irrelevant information and must be parsed to provide useful data.
The Monitor for the FLOCS project is a custom built Java Application which makes use of the JOGL, GRAL, and javolution libraries. The Monitor runs on a laptop or desktop computer which is attached to the board by Ethernet or through the wireless link. The Monitor receives specially crafted UDP packets which contain the positional data from the board in the form of a struct. Utilizing this data, the Monitor updates the on-screen display to show velocity, position, acceleration, as well as Yaw, Pitch, and Roll. This data is also used to update an airplane analog on the screen to provide visual feedback to the user.