latest news

05.07.2009

Project is complete.

other information

 

progress log

Lab Day 1 - 1/22/09:
- Focus was on making the USB Gamepad using the SiLabs C8051F340 board.
- Windows would recognize it as an HID device, but would give Error Code 10.
- Did not get the Gamepad working.

Lab Day 2 - 1/29/09:
- Will work on getting USB working outside of lab time.
- Focus was on experimenting with the LISY300AL +/- 300deg/sec gyroscope.
- Used the A/D converter on the SiLabs C8051F120 board to collect sensor data.
- Created integrator in software to get angular position from angular velocity.
- Calculated Converstion Factors to get degrees from integrator variable.

Lab Day 3 - 2/05/09:
- Focused on continued testing of the gyroscope and developing software for it.
- By the end of lab time, the gyroscope was working, but the drift was accumulating quickly.
- Began exploring ways to reduce drift.

Lab Day 4 - 2/10/09:
- Collected sensor data and analyzed it in MATLAB to see how to fix drift.
- Calibration rutines were developed to better determine the zero-rate voltage/constant.
- A window filter was created to help fix the drift.
- By the end of the lab period, the drift was much slower, but it gets worse over time.

Lab Day 5 - 2/19/09:
- Frame of Reference equations and algorithms.
- cosf() to compute real yaw as pitch changes.
- atanf() to compute absolute angle/pitch with accelerometer.
- Basic trig function execution time testing at 98MHz clock = 86us was the logest.
- Progress presentation: new schedule, MATLAB analysis, drift compensation schemes.

Lab Day 6 - 2/26/09:
- Modified A/D interrupt software to read 4 channels (2 gyros and 2 accelerometers).
- Began creating F120's I2C/SMBus code to talk with our electronic compass.
- atanf() problem = had to type caste integers inside function to be floats - (float) #.

Lab Day 7 - 3/05/09:
- Fixed some glitches in A/D ISR that was causing sparadic problems.
- Completed I2C/SMBus API for electronic compass.
- Could not test I2C code because need to switch to UART0 due to crossbar issues.

Lab Day 8 - 3/12/09:
- Entire lab period was spent trying to convert to using UART0.
- Could not get UART0 to work properly.
- We suspect baud rate timing issues.

Spring Break:
- Got UART0 working - manually hardcoded Timer 1 reload value for 115200 baud.
- Significant USB HID research.
- Research/basic experiments with SiLabs F340 board's USB HID example code.

Lab Day 9 - 3/26/09:
- Focused on getting the I2C compass to work.
- Modified the Si Lab's I2C API but did not get communication working.
- Discovered that the X-axis for 5-DOF accelerometer stoped working correctly.

Lab Day 10 - 4/02/09:
- Started using Microchip's LPC USB dev. kit to do our USB gamepad.
- Went through Microchip's USB tutorials to get familiar with the board.
- Got a USB gamepad to enumerate correctly in Windows.
- Changed the cosf() function to a look-up table to improve performance.
- Still could not get the I2C compass to work.

Lab Day 11 - 4/14/09:
- Ran multiple tests with our USB gamepad in Windows and Half-Life 2.
- Discovered that Window's Direct Input only polls gamepad every 50ms.
- Discovered that Direct Input's axis movement resolution is only 1.75 degrees.

Lab Day 12 - 4/16/09:
- Added USART communication functionality to our Microchip USB gamepad board.
- Established communication over USART between the USB and inertial sensor board.
- Started development of a robust communication API/protocol.

Lab Day 13 - 4/21/09:
- Completed inter-board communication API.
- Started coding the initialization routine for the XBee boards.
- The system was working using cabled communication not wireless.

Lab Day 14 - 4/23/09:
- Prepared Final Presentation.
- Established wireless / Zigbee communication at 9600 baud.
- Changed communication API to ASCII instead of raw values.

Lab Day 15 - 5/07/09:
- Tried to fix Yaw glitch /oscillation problem (mostly fixed it ).
- Measured % CPU usage to see what clock speed is needed for the Si Labs board.