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 Summary 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 Microprocessor 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. Budget The next page includes a table containing all of Team 06’s expenditures in regard to the project budget. Item Cost Ardupilot Sensor Board - Six Degrees of Freedom (Main) 44.95 Gyro Breakout Board - LPY5150AL Dual 1500/s 29.95 Venus GPS with SMA Connector 49.95 Antenna GPS Embedded SMA 11.95 Quad QAV V Passive Antenna w/ DC blocking Cap SMA Male 15.00 IC PIC MCU FLASH 128K 64-QFN (4) 31.60 Schmart Board (3) 29.97 IC PIC MCU FLASH 128K 64-QFN (4) -31.00 IC PIC MCU FLASH 128K 64-TQFP (4) 29.68 Gyro Breakout Board - LPR530AL Dual 300°/s 29.95 IC DSPIC MCU/DSP 48K 40DIP 14.12 Shipping 32.91 Total $289.03 Remaining $210.97