Tuesday, May 1, 2012

Tinkering Accelerometer + Gyroscope AKA IMU (Part 2)

The IMU is a combo board consisting of 2 sensors.

What good is a sensor if we can not read it.

Here I jury jig a bench top test for reading the sensors.

Hardware involved:-
Arduino Duemilanove
5DOF IMU
some hook-up leads
- 3V3 to IMU Vss & ARef pin
-Gnd to Gnd
- accel X axis to Analog input 0
- accel Y axis to Analog input 2
- gyro X axis(4x output) to Analog input 1
- gyro Y axis(4x output) to Analog input 3
- USB cable



We still need to write some codes to get the job done.

Following  is a simple code which I came  up with



// Reading 5DOF IMU


//Analog Pins

int Xaccel_pin = 0;      //connect accel X axis to Analog input 0
int Yaccel_pin = 2; //connect accel X axis to Analog input 2
int Xgyro_pin = 1; //connect gyro X axis(4x output) to Analog input 1
int Ygyro_pin = 3; //connect gyro Y axis(4x output) to Analog input 3

//Digital Pins

int Xaccel_reading;          //X axis Accelerometer reading
int Yaccel_reading;          //y axis Accelerometer reading

int Xgyro_reading;      //X axis Gyro reading
int Ygyro_reading;      //Y axis Gyro reading

float loop_time = 0.05;
int last_loop = 0;
void setup(){

Serial.begin(9600); // start Serial monitor to print values

pinMode(Xaccel_pin,INPUT);
pinMode(Xgyro_pin,INPUT);
pinMode(Yaccel_pin,INPUT);
pinMode(Ygyro_pin,INPUT);
pinMode(13,OUTPUT);
}

void loop() {
  Xaccel_reading=analogRead(Xaccel_pin);
  Xgyro_reading=analogRead(Xgyro_pin);
  Yaccel_reading=analogRead(Yaccel_pin);
  Ygyro_reading=analogRead(Ygyro_pin);

while((millis()-last_loop)
{
    delay(1);
}
last_loop=millis();

Serial.print("X-Accel: ");
Serial.print(Xaccel_reading);
Serial.print("  ");

Serial.print("X-Gyro: ");
Serial.print(Xgyro_reading);
Serial.print("  ");

Serial.print("YAccel: ");
Serial.print(Yaccel_reading);
Serial.print("  ");

Serial.print("Y-Gyro: ");
Serial.print(Ygyro_reading);
Serial.print("  ");

}


Once loaded, you can see the IMU reading via the "Serial Monitor" or <>

Now that I have IMU readings, the next gargantuan task is to figure out what can I do with them...

Maybe in Part 3 I'll have an answer....