6DOF Digital IMU
Contents
Overview
Digital IMU Combo Board - 6 Degrees of Freedom using ITG-3200 gyro and ADXL345 accelerometer.
This is a simple breakout for the ADXL345 accelerometer and the ITG-3200 gyro, giving full 6 degrees of freedom. The sensors communicate over I2C and one INT output pin from each sensor is broken out, see the schematics below.
The schematics is also available as PDF.[1] Eagle files are available from the Sparkfun product page.[2]
Interfacing
This is a 3.3V device and therefore it needs a level converter to connect it to a 5V Arduino. Remember to use the TX lines to get bi-directional conversion.
Programming
Uses I2C bus:
- ITG-3200 address: 0xD0 for write and 0xD1 for read.
- ADXL345 address: 0xA6 for write and 0xA7 for read.
There is an example application on GitHub, see https://github.com/a1ronzo/6DOF-Digital .
On Arduino we can also use the Wire library. However, note that the Wire library uses 7 bit addresses. In fact, I2C addresses are only the upper 7 bit the last bit indicating whether we read (1) or write(0). For the case of the ITG-3200:
- Write: 0xD0 = 11010000
- Read: 0xD1 = 11010001
There is the issue of Wire library not supporting reading from a specific register[3]. As the discussion shows, there is a workaround and the new readFrom method will be included in Arduino 023. Moreover, the page links to ADXL345 and ITG-3200 drivers specifically written for Arduino[4][5].
References
- ↑ File:Sen 6DOF-Digital-v10.pdf
- ↑ http://www.sparkfun.com/products/10121
- ↑ http://code.google.com/p/arduino/issues/detail?id=466
- ↑ http://code.google.com/p/adxl345driver/
- ↑ http://code.google.com/p/itg-3200driver/
- ADXL345 acceleromenter datasheet: File:ADXL345.pdf
- ITG-3200 gyro datasheet: File:ITG3200-00-01.4.pdf
- Available from Sparkfun