Speed and Distance Sensor for Skiers and Snowboarders Progress Report October 30

ECE 480 Design Team 6
Speed and Distance Sensor for Skiers and Snowboarders
Progress Report
October 30th, 2009
Michael Bekkala
Michael Blair
Michael Carpenter
Matthew Guibord
Abhinav Parvataneni
Dr. Shanker Balasubramaniam
At this point in time, our team’s progress has been slowed due to the inability of our ICD
to connect to our microprocessor. We chose to use a PIC32 due to its ability to interface
with a PC using a USB connection. However, as we continue to try to debug the PIC32,
we have ordered a dsPIC30 to work with instead. This does not have USB interface. We
will, however, be able to interface with this PIC using a serial port. The accelerometers
and gyroscopes have been tested and can successfully output different voltage levels
when the protoboard is accelerated or moved in an angular direction.
Project Progress
As stated above, we chose the PIC32MX440F128H microprocessor due to its
ability to interface with a USB port. Using MPLAB and In Circuit Debugger (ICD) 2, we
tried running a simple program to test that our chip was working. We kept receiving an
error stating that the debugger would read 0x00 as the PIC32’s device ID, meaning no
device was found. We went through and checked all of our connections, finding no
problems. After contacting Microchip, they told us that there are problems
programming the PIC32 using ICD 2, and we would need to purchase an ICD 3 (even
though the PIC32 is supposed to work with the ICD 2). After receiving the ICD 3, we
tested the program again, and received another device ID error. Our connections were
rechecked, and no problems were found. We then used the ICD 3 to try to program a
PIC18 with a program that had worked with the ICD 2. This also failed. After speaking
with Microchip again, they stated that we had a bad ICD 3. After receiving another ICD
3 from Microchip, our PIC32 was again tested. Again, we received a failure to read
device ID error. The ICD 3 was tested using a program that had previously worked with
a PIC18, and the program ran successfully. Currently, we are in the debugging phase
again with Microchip. Since we cannot wait around for this problem to be solved, we
have ordered dsPIC30s to use in case we cannot debug the PIC32. These are DIP
packages that can be placed directly in the breadboard, and should hopefully be able to
be programmed.
Global Positioning System
The Venus GPS has been setup on a protoboard and tested. We are able to both
send and receive data appropriately on the computer using the provided software.
However, we can only send the data to the GPS when using a machine with a serial port;
on a computer without a serial port, using a USB to serial adapter only allows for data to
be received from the GPS, not sent to. Using voltage regulators, we were able to take
the GPS outside and test the accuracy. We found a GPS fix, but our results were off by
about 10 meters from where we actually were standing. By enabling WAAS (Wide Area
Augmentation System), a form of DGPS (Differential GPS), we were able to reduce the
GPS error to only a few meters. This affirms the fact that we need INS to improve our
device accuracy. After researching the NMEA messages, we know how to decode and
parse them to obtain useable data. As discussed in the microprocessor section, we have
not been able to get the PIC32 to work. Therefore, programming has been started on a
PIC18 while we wait to receive our new dsPIC microprocessors.
Inertial Navigation System
The accelerometer and gyroscope boards have been tested using the
oscilloscope and successfully change voltage levels when the board is accelerated or
moved in the angular direction. The inertial navigation system has a lot of
computational overhead that goes into calculating the correct speed, distance, angular
velocity, and angular position. A lot of research has gone into finding the correct
equations and deciphering them in order to make them usable for our application.
The inertial navigation system outputs our measurements in the body frame.
These measurements need to be converted to the North-East-Down (NED) frame, and
then to the Earth-Centered Earth-Fixed (ECEF) frame. We are making very good
progress on these navigation equations. Our original intention was to use Kalman
filtering when integrating INS with GPS, which is also quite complex. Due to the delays
caused by difficulties debugging our microprocessor, we may be forced to switch to a
different type of filtering, such as a filter that averages GPS and INS results. This would
lower our device accuracy, but may be the approach we have to take in order to finish
the project in a timely manner.
LCD Interfacing
The LCD has been tested on the PIC18. It successfully shows any messages we
want to output, and it can also act as a DMM (Digital Multimeter). Using the LCD as a
DMM, we found its accuracy to be within +/- 50mV of the Hewlett Packard 34401A
Multimeter present in lab. A lot of time was spent researching how to communicate
with the LCD and determining what programming libraries were necessary to interface
with it. We are working on making generic functions that can be used throughout the
project to display data and values on the LCD. The LCD will be used to display the data
results for the skiers and snowboarders, and it will also be used as a useful debugging
tool as we continue to design and assemble our project.
The next page includes a table containing all of Team 06’s expenditures in regard to the
project budget.
Ardupilot Sensor Board - Six Degrees of Freedom (Main)
Gyro Breakout Board - LPY5150AL Dual 1500/s
Venus GPS with SMA Connector
Antenna GPS Embedded SMA
Quad QAV V Passive Antenna w/ DC blocking Cap SMA Male
Schmart Board (3)
Gyro Breakout Board - LPR530AL Dual 300°/s