Aaron Berk
/
IMUfilter_HelloWorld
Inertial measurement unit orientation filter example.
main.cpp@1:9133b457bb41, 2010-11-27 (annotated)
- Committer:
- aberk
- Date:
- Sat Nov 27 12:03:06 2010 +0000
- Revision:
- 1:9133b457bb41
- Parent:
- 0:56aa1ac6b59d
Changed constructor arguments to reflect changes in library API.
Who changed what in which revision?
User | Revision | Line number | New 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 | 1:9133b457bb41 | 5 | //Change the second parameter (which is a tuning parameter) |
aberk | 1:9133b457bb41 | 6 | //to try and get optimal results. |
aberk | 1:9133b457bb41 | 7 | IMUfilter imuFilter(0.1, 10); |
aberk | 0:56aa1ac6b59d | 8 | |
aberk | 0:56aa1ac6b59d | 9 | AnalogIn accelerometerX(p15); |
aberk | 0:56aa1ac6b59d | 10 | AnalogIn accelerometerY(p16); |
aberk | 0:56aa1ac6b59d | 11 | AnalogIn accelerometerZ(p17); |
aberk | 0:56aa1ac6b59d | 12 | AnalogIn gyroscopeX(p18); |
aberk | 0:56aa1ac6b59d | 13 | AnalogIn gyroscopeY(p19); |
aberk | 0:56aa1ac6b59d | 14 | AnalogIn gyroscopeZ(p20); |
aberk | 0:56aa1ac6b59d | 15 | |
aberk | 0:56aa1ac6b59d | 16 | int main() { |
aberk | 0:56aa1ac6b59d | 17 | |
aberk | 0:56aa1ac6b59d | 18 | while(1){ |
aberk | 0:56aa1ac6b59d | 19 | |
aberk | 0:56aa1ac6b59d | 20 | wait(0.1); |
aberk | 0:56aa1ac6b59d | 21 | //Gyro and accelerometer values must be converted to rad/s and m/s/s |
aberk | 0:56aa1ac6b59d | 22 | //before being passed to the filter. |
aberk | 0:56aa1ac6b59d | 23 | imuFilter.updateFilter(gyroscopeX.read(), |
aberk | 0:56aa1ac6b59d | 24 | gyroscopeY.read(), |
aberk | 0:56aa1ac6b59d | 25 | gyroscopeZ.read(), |
aberk | 0:56aa1ac6b59d | 26 | accelerometerX.read(), |
aberk | 0:56aa1ac6b59d | 27 | accelerometerY.read(), |
aberk | 0:56aa1ac6b59d | 28 | accelerometerZ.read()); |
aberk | 0:56aa1ac6b59d | 29 | imuFilter.computeEuler(); |
aberk | 0:56aa1ac6b59d | 30 | pc.printf("%f, %f, %f\n", imuFilter.getRoll(), imuFilter.getPitch(), imuFilter.getYaw()); |
aberk | 0:56aa1ac6b59d | 31 | |
aberk | 0:56aa1ac6b59d | 32 | } |
aberk | 0:56aa1ac6b59d | 33 | |
aberk | 0:56aa1ac6b59d | 34 | } |