Inertial measurement unit orientation filter example.

Dependencies:   mbed IMUfilter

Committer:
aberk
Date:
Tue Aug 03 15:09:45 2010 +0000
Revision:
0:56aa1ac6b59d
Child:
1:9133b457bb41
Version 1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
aberk 0:56aa1ac6b59d 1 #include "IMUfilter.h"
aberk 0:56aa1ac6b59d 2
aberk 0:56aa1ac6b59d 3 Serial pc(USBTX, USBRX);
aberk 0:56aa1ac6b59d 4
aberk 0:56aa1ac6b59d 5 IMUfilter imuFilter(0.1);
aberk 0:56aa1ac6b59d 6
aberk 0:56aa1ac6b59d 7 AnalogIn accelerometerX(p15);
aberk 0:56aa1ac6b59d 8 AnalogIn accelerometerY(p16);
aberk 0:56aa1ac6b59d 9 AnalogIn accelerometerZ(p17);
aberk 0:56aa1ac6b59d 10 AnalogIn gyroscopeX(p18);
aberk 0:56aa1ac6b59d 11 AnalogIn gyroscopeY(p19);
aberk 0:56aa1ac6b59d 12 AnalogIn gyroscopeZ(p20);
aberk 0:56aa1ac6b59d 13
aberk 0:56aa1ac6b59d 14 int main() {
aberk 0:56aa1ac6b59d 15
aberk 0:56aa1ac6b59d 16 while(1){
aberk 0:56aa1ac6b59d 17
aberk 0:56aa1ac6b59d 18 wait(0.1);
aberk 0:56aa1ac6b59d 19 //Gyro and accelerometer values must be converted to rad/s and m/s/s
aberk 0:56aa1ac6b59d 20 //before being passed to the filter.
aberk 0:56aa1ac6b59d 21 imuFilter.updateFilter(gyroscopeX.read(),
aberk 0:56aa1ac6b59d 22 gyroscopeY.read(),
aberk 0:56aa1ac6b59d 23 gyroscopeZ.read(),
aberk 0:56aa1ac6b59d 24 accelerometerX.read(),
aberk 0:56aa1ac6b59d 25 accelerometerY.read(),
aberk 0:56aa1ac6b59d 26 accelerometerZ.read());
aberk 0:56aa1ac6b59d 27 imuFilter.computeEuler();
aberk 0:56aa1ac6b59d 28 pc.printf("%f, %f, %f\n", imuFilter.getRoll(), imuFilter.getPitch(), imuFilter.getYaw());
aberk 0:56aa1ac6b59d 29
aberk 0:56aa1ac6b59d 30 }
aberk 0:56aa1ac6b59d 31
aberk 0:56aa1ac6b59d 32 }