
3D Accelerometer
for RP6 Robot, but also useable for RP6 WIFI, ARUDINO
and ASURO
Introduction:
General purpose 3D accelerometer module for robots. This 3D accelerometer can
determine the absolute angle of your robot, e.g. Roll and Pitch value can be easily
calculated by a microcontroller. In addition you can calculate the vector of a collision
impulse. This information can be used to move around an obstacle.
Hint: Often, the differences between a Gyro and an Accelerometer is not clear and
got mixed up.
Here a clarification:
A gyroscope is very good in finding the rate of an angular change, but can’t detect an
absolute angle – but an accelerometer does!
1.) PIN OUT Accelerometer Module:
PIN1 CS/SPI enable
PIN2 SO/SDO (I2C address)
PIN3 INT1
PIN4 GND
R3 -> a 0-Ohm resistor R2 -> a 0-Ohm resistor will
will route INT_2 to pin 7. route INT_1 to pin 3.
PIN8 PIN1
PIN5 SI/SDA
PIN6 SPC/SCL
PIN7 INT2
PIN8 VCC
JM3 Engineering Inh. J. Maisel Dobelweg 18, D-85567 Grafing / Munich
Email: JHM@JM3-Engineering.de
Version: 2.30 Oct 21, 2013 page: 1

2.) Connecting to RP6 Robot
The picture on the left shows the M32 board with an 8 pin DIL socket.
The Accelerometer module fits on the boards as drop in solution.
PIN1
PIN3 and PIN 7 on M32 Board are connected to Vdd ! Recommendation is to remove R2 and R3!
Pin1 is on the lower right hand side on the picture below (hence DIL socket).
VDD is 3.3 or 5.0 V nominal.
3.) Connecting to RP6WIFI, ASURO or ARUDINO
Alternatively you can connect this module to the I2C Bus instead of SPI. Therefore
you need to pull PIN1 to VDD. PIN5 is then SDA while PIN 6 is SCL!
With PIN2 you can select the less significant bit of the device ID.
In this case you can use it together with the RP6WIFI, ASURO or ARUDINO Robot
and the specific extension board!
4.) Software changes (SPI):
The data access and initialization works over SPI Bus (for details on Registers and
functions refer to the datasheet of the LIS302DLH.
Change the software on the control board as following:
1. RP6ControlLib.h:
/******************************************************************/
// SPI ACC Sensor
uint8_t ACCSENS_ReadByte(uint8_t regAddr);
void ACCSENS_ReadBytes(uint8_t startAddr, uint8_t* buffer, uint8_t length);
void ACCSENS_WriteByte(uint8_t regAddr, uint8_t data);
uint8_t ACCSENS_GetStatus();
JM3 Engineering Inh. J. Maisel Dobelweg 18, D-85567 Grafing / Munich
Email: JHM@JM3-Engineering.de
Version: 2.30 Oct 21, 2013 page: 2