Inertial measurement unit orientation filter example.

Dependencies:   mbed IMUfilter

Files at this revision

API Documentation at this revision

Comitter:
aberk
Date:
Tue Aug 03 15:09:45 2010 +0000
Child:
1:9133b457bb41
Commit message:
Version 1.0

Changed in this revision

IMUfilter_lib.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/IMUfilter_lib.lib	Tue Aug 03 15:09:45 2010 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/aberk/programs/IMUfilter_lib/latest
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Aug 03 15:09:45 2010 +0000
@@ -0,0 +1,32 @@
+#include "IMUfilter.h"
+
+Serial pc(USBTX, USBRX);
+
+IMUfilter imuFilter(0.1);
+
+AnalogIn accelerometerX(p15);
+AnalogIn accelerometerY(p16);
+AnalogIn accelerometerZ(p17);
+AnalogIn gyroscopeX(p18);
+AnalogIn gyroscopeY(p19);
+AnalogIn gyroscopeZ(p20);
+
+int main() {
+
+    while(1){
+    
+        wait(0.1);
+        //Gyro and accelerometer values must be converted to rad/s and m/s/s
+        //before being passed to the filter.
+        imuFilter.updateFilter(gyroscopeX.read(),
+                               gyroscopeY.read(),
+                               gyroscopeZ.read(),
+                               accelerometerX.read(),
+                               accelerometerY.read(),
+                               accelerometerZ.read());
+        imuFilter.computeEuler();
+        pc.printf("%f, %f, %f\n", imuFilter.getRoll(), imuFilter.getPitch(), imuFilter.getYaw());
+    
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Aug 03 15:09:45 2010 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/9114680c05da