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....