This unit has a wide variety of external hardware to the AT MEGA128. As shown in the diagram to the right, there are 3 accelerometers and 3 gyros, each mounted 90 degrees to the next, giving the three components of rotation and acceleration. The accelerometers made by Kionix (KXM52-1050) are slightly higher in quality than the ones manufactured by Freescale and Analog Devices (Sensitivity is 660 mV deg/sec!). Additionally, the eval board we received had the three accelerometers perfectly set at 90 degrees apart inside the chip, so we did not have to calibrate the bias ourselves. The Gyros were provided by Analog Devices. These were tied into the micro by using an external A/D, as the one in the microcontroller was not sensitive enough to fully use our sensors. It is a MAX197ACNI.
The LCD is a
Crystal Fontz CFAG12864B-WGH-N Graphical LCD, with a resolution of 128x64
pixels. It also comes with a built in inverter for the negative voltage in the
backlight. This makes reading the display in the dark and the direct sunlight
much easier. The LCD was implemented from scratch, detailso f which are in the
software section. We should note that we had a much
larger LCD we had found lying around in Aaron's basement, but it had some
problem with its memory (or so we think), so we reverted to the Crystal Fontz.
For the GPS Receiver, we are using a GARMIN embedded unit, the
GPS18e. This unit is a
12-parallel-channel, WAAS-enabled GPS receiver, with a CMOS output. It is also
powered off of 5V to minimize the number of external power regulators needed for
operation. It reports data back in the standard NMEA 0183 v2.00 and NMEA 0183
v3.00 formats, both of which our unit can decode. (read more in
Software).
The GPS Unit transmits
serial in an inverted format, so a 7400 high speed logic inverter was used to
rectify the signal (HIGH is logic 1 and LOW is logic 0 on the GPS, which is
backwards compared to the ATMEGA128).
The microcontroller we selected was the ATMEGA128. We chose this over a 32 or smaller chip due to its features of DUAL UART and high pin count.
We implemented a small analog passive low pass filter on the board to help filter down the accelerometers.