Claudio Donate
/
Sensor_test_2_0
Test BMA180 and ITG3200 sensors.
Fork of Sensor_test by
main.cpp@1:855d13c5051c, 2012-08-15 (annotated)
- Committer:
- cdonate
- Date:
- Wed Aug 15 01:47:47 2012 +0000
- Revision:
- 1:855d13c5051c
- Parent:
- 0:f4e9301d548b
Test program for the ITG3200 and BMA180 sensors. English comments, values in degrees/s, rad/s, m/s^2 and degrees
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
caroe | 0:f4e9301d548b | 1 | #include "mbed.h" |
caroe | 0:f4e9301d548b | 2 | #include "BMA180.h" |
caroe | 0:f4e9301d548b | 3 | #include "ITG3200.h" |
caroe | 0:f4e9301d548b | 4 | Serial pc(USBTX, USBRX); |
caroe | 0:f4e9301d548b | 5 | |
caroe | 0:f4e9301d548b | 6 | DigitalOut l1(LED1); |
caroe | 0:f4e9301d548b | 7 | I2C I2CBus(p28, p27); |
caroe | 0:f4e9301d548b | 8 | Timer GlobalTime; |
caroe | 0:f4e9301d548b | 9 | |
caroe | 0:f4e9301d548b | 10 | #define PI 3.1415926535897932384626433832795 |
cdonate | 1:855d13c5051c | 11 | #define Rad2Dree 57.295779513082320876798154814105 |
cdonate | 1:855d13c5051c | 12 | |
cdonate | 1:855d13c5051c | 13 | float R; |
caroe | 0:f4e9301d548b | 14 | BMA180 Acc(I2CBus, GlobalTime); |
caroe | 0:f4e9301d548b | 15 | ITG3200 Gyro(I2CBus, GlobalTime); |
caroe | 0:f4e9301d548b | 16 | |
caroe | 0:f4e9301d548b | 17 | |
caroe | 0:f4e9301d548b | 18 | int main() |
caroe | 0:f4e9301d548b | 19 | { |
cdonate | 1:855d13c5051c | 20 | pc.baud(9600); |
caroe | 0:f4e9301d548b | 21 | |
caroe | 0:f4e9301d548b | 22 | I2CBus.frequency(400000); |
caroe | 0:f4e9301d548b | 23 | GlobalTime.start(); |
caroe | 0:f4e9301d548b | 24 | //*** |
caroe | 0:f4e9301d548b | 25 | Acc.Init(); |
caroe | 0:f4e9301d548b | 26 | wait_ms(500); |
cdonate | 1:855d13c5051c | 27 | |
cdonate | 1:855d13c5051c | 28 | //User Calibration |
cdonate | 1:855d13c5051c | 29 | short Raw1g[3]= {0, 0, 0}; |
cdonate | 1:855d13c5051c | 30 | Acc.userCalibration(Raw1g); |
cdonate | 1:855d13c5051c | 31 | |
cdonate | 1:855d13c5051c | 32 | //0.5s Calibration |
caroe | 0:f4e9301d548b | 33 | Acc.Calibrate(500, Raw1g); |
caroe | 0:f4e9301d548b | 34 | //*** |
caroe | 0:f4e9301d548b | 35 | Gyro.Init(); |
caroe | 0:f4e9301d548b | 36 | wait_ms(500); |
caroe | 0:f4e9301d548b | 37 | |
cdonate | 1:855d13c5051c | 38 | //0.5s Calibration |
caroe | 0:f4e9301d548b | 39 | Gyro.Calibrate(500); |
caroe | 0:f4e9301d548b | 40 | //*** |
cdonate | 1:855d13c5051c | 41 | //Print the value for the Full-scale range |
cdonate | 1:855d13c5051c | 42 | pc.printf("Full-scale Range: %i \n\r", Gyro.getInfo()); |
caroe | 0:f4e9301d548b | 43 | |
caroe | 0:f4e9301d548b | 44 | while(1) |
caroe | 0:f4e9301d548b | 45 | { |
cdonate | 1:855d13c5051c | 46 | //Aquire new values for the Gyro and Acc |
caroe | 0:f4e9301d548b | 47 | Acc.Update(); |
caroe | 0:f4e9301d548b | 48 | Gyro.Update(); |
caroe | 0:f4e9301d548b | 49 | |
cdonate | 1:855d13c5051c | 50 | //Calcuate the resulting vector R from the 3 acc axes |
cdonate | 1:855d13c5051c | 51 | R = sqrt(std::pow(Acc.Acc[0] , 2) + std::pow(Acc.Acc[1] , 2) + std::pow(Acc.Acc[2] , 2)); |
cdonate | 1:855d13c5051c | 52 | |
cdonate | 1:855d13c5051c | 53 | // Print the angle in degrees of all 3 axes |
cdonate | 1:855d13c5051c | 54 | pc.printf("Angles in degrees Acc: %.6f %.6f %.6f \n\r", |
cdonate | 1:855d13c5051c | 55 | Rad2Dree * acos(Acc.Acc[0]/R), |
cdonate | 1:855d13c5051c | 56 | Rad2Dree * acos(Acc.Acc[1]/R), |
cdonate | 1:855d13c5051c | 57 | Rad2Dree * acos(Acc.Acc[2]/R)); |
cdonate | 1:855d13c5051c | 58 | |
cdonate | 1:855d13c5051c | 59 | //Print the g-force vector on each axis in m/s^s |
cdonate | 1:855d13c5051c | 60 | /*pc.printf("BMA180:%.6f %.6f %.6f \n\r", |
caroe | 0:f4e9301d548b | 61 | (Acc.Acc[0]), |
caroe | 0:f4e9301d548b | 62 | (Acc.Acc[1]), |
cdonate | 1:855d13c5051c | 63 | (Acc.Acc[2]));*/ |
caroe | 0:f4e9301d548b | 64 | |
cdonate | 1:855d13c5051c | 65 | //Print the angular velocity in radians/sec of each axis |
cdonate | 1:855d13c5051c | 66 | /*pc.printf("Gyro:%.6f %.6f %.6f \n\r", |
cdonate | 1:855d13c5051c | 67 | (Gyro.Rate[0]), |
cdonate | 1:855d13c5051c | 68 | (Gyro.Rate[1]), |
cdonate | 1:855d13c5051c | 69 | (Gyro.Rate[2]));*/ |
caroe | 0:f4e9301d548b | 70 | |
cdonate | 1:855d13c5051c | 71 | wait_ms(100); |
caroe | 0:f4e9301d548b | 72 | } |
caroe | 0:f4e9301d548b | 73 | } |