This program calculates the average amount of noise from the gyroscope on the LSM9DS1.
Dependencies: LSM9DS1_Library mbed
main.cpp@0:31197ce6afb9, 2017-02-23 (annotated)
- Committer:
- jcallahan1
- Date:
- Thu Feb 23 20:26:11 2017 +0000
- Revision:
- 0:31197ce6afb9
Program to find the average amount of noise from the gyroscope.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jcallahan1 | 0:31197ce6afb9 | 1 | #include "mbed.h" |
jcallahan1 | 0:31197ce6afb9 | 2 | #include "LSM9DS1.h" |
jcallahan1 | 0:31197ce6afb9 | 3 | #define PI 3.14159 |
jcallahan1 | 0:31197ce6afb9 | 4 | |
jcallahan1 | 0:31197ce6afb9 | 5 | |
jcallahan1 | 0:31197ce6afb9 | 6 | int main() |
jcallahan1 | 0:31197ce6afb9 | 7 | { |
jcallahan1 | 0:31197ce6afb9 | 8 | LSM9DS1 IMU(p9, p10, 0xD6, 0x3C); |
jcallahan1 | 0:31197ce6afb9 | 9 | IMU.begin(); |
jcallahan1 | 0:31197ce6afb9 | 10 | if (!IMU.begin()) { |
jcallahan1 | 0:31197ce6afb9 | 11 | printf("Failed to communicate with LSM9DS1.\n"); |
jcallahan1 | 0:31197ce6afb9 | 12 | } |
jcallahan1 | 0:31197ce6afb9 | 13 | IMU.calibrate(1); |
jcallahan1 | 0:31197ce6afb9 | 14 | float sumgx = 0; |
jcallahan1 | 0:31197ce6afb9 | 15 | float sumgy = 0; |
jcallahan1 | 0:31197ce6afb9 | 16 | float sumgz = 0; |
jcallahan1 | 0:31197ce6afb9 | 17 | float cgx; |
jcallahan1 | 0:31197ce6afb9 | 18 | float cgy; |
jcallahan1 | 0:31197ce6afb9 | 19 | float cgz; |
jcallahan1 | 0:31197ce6afb9 | 20 | float mingx = 100; |
jcallahan1 | 0:31197ce6afb9 | 21 | float mingy = 100; |
jcallahan1 | 0:31197ce6afb9 | 22 | float mingz = 100; |
jcallahan1 | 0:31197ce6afb9 | 23 | float maxgx = 0; |
jcallahan1 | 0:31197ce6afb9 | 24 | float maxgy = 0; |
jcallahan1 | 0:31197ce6afb9 | 25 | float maxgz = 0; |
jcallahan1 | 0:31197ce6afb9 | 26 | int n = 0; |
jcallahan1 | 0:31197ce6afb9 | 27 | |
jcallahan1 | 0:31197ce6afb9 | 28 | while(n<=10000) { |
jcallahan1 | 0:31197ce6afb9 | 29 | |
jcallahan1 | 0:31197ce6afb9 | 30 | |
jcallahan1 | 0:31197ce6afb9 | 31 | while(!IMU.gyroAvailable()); |
jcallahan1 | 0:31197ce6afb9 | 32 | IMU.readGyro(); |
jcallahan1 | 0:31197ce6afb9 | 33 | cgx = IMU.calcGyro(IMU.gx); |
jcallahan1 | 0:31197ce6afb9 | 34 | cgy = IMU.calcGyro(IMU.gy); |
jcallahan1 | 0:31197ce6afb9 | 35 | cgz = IMU.calcGyro(IMU.gz); |
jcallahan1 | 0:31197ce6afb9 | 36 | sumgx += cgx; |
jcallahan1 | 0:31197ce6afb9 | 37 | sumgy += cgy; |
jcallahan1 | 0:31197ce6afb9 | 38 | sumgz += cgz; |
jcallahan1 | 0:31197ce6afb9 | 39 | if(cgx > maxgx) { |
jcallahan1 | 0:31197ce6afb9 | 40 | printf("Max gx: %f \n\r %d \n\r",maxgx,n); |
jcallahan1 | 0:31197ce6afb9 | 41 | maxgx = cgx; |
jcallahan1 | 0:31197ce6afb9 | 42 | } |
jcallahan1 | 0:31197ce6afb9 | 43 | if(cgy > maxgy) { |
jcallahan1 | 0:31197ce6afb9 | 44 | maxgy = cgy; |
jcallahan1 | 0:31197ce6afb9 | 45 | } |
jcallahan1 | 0:31197ce6afb9 | 46 | if(cgz > maxgz) { |
jcallahan1 | 0:31197ce6afb9 | 47 | maxgz = cgz; |
jcallahan1 | 0:31197ce6afb9 | 48 | } |
jcallahan1 | 0:31197ce6afb9 | 49 | if(cgx < mingx) { |
jcallahan1 | 0:31197ce6afb9 | 50 | mingx = cgx; |
jcallahan1 | 0:31197ce6afb9 | 51 | } |
jcallahan1 | 0:31197ce6afb9 | 52 | if(cgy < mingy) { |
jcallahan1 | 0:31197ce6afb9 | 53 | mingy = cgy; |
jcallahan1 | 0:31197ce6afb9 | 54 | } |
jcallahan1 | 0:31197ce6afb9 | 55 | if(cgz < mingz) { |
jcallahan1 | 0:31197ce6afb9 | 56 | mingz = cgz; |
jcallahan1 | 0:31197ce6afb9 | 57 | } |
jcallahan1 | 0:31197ce6afb9 | 58 | n++; |
jcallahan1 | 0:31197ce6afb9 | 59 | } |
jcallahan1 | 0:31197ce6afb9 | 60 | printf("\n"); |
jcallahan1 | 0:31197ce6afb9 | 61 | printf("Avg gx: %f \n\r",sumgx/n); |
jcallahan1 | 0:31197ce6afb9 | 62 | printf("Avg gy: %f \n\r",sumgy/n); |
jcallahan1 | 0:31197ce6afb9 | 63 | printf("Avg gz: %f \n\r",sumgz/n); |
jcallahan1 | 0:31197ce6afb9 | 64 | printf("Max gx: %f \n\r",maxgx); |
jcallahan1 | 0:31197ce6afb9 | 65 | printf("Max gy: %f \n\r",maxgy); |
jcallahan1 | 0:31197ce6afb9 | 66 | printf("Max gz: %f \n\r",maxgz); |
jcallahan1 | 0:31197ce6afb9 | 67 | printf("Min gx: %f \n\r",mingx); |
jcallahan1 | 0:31197ce6afb9 | 68 | printf("Min gy: %f \n\r",mingy); |
jcallahan1 | 0:31197ce6afb9 | 69 | printf("Min gz: %f \n\r",mingz); |
jcallahan1 | 0:31197ce6afb9 | 70 | return 0; |
jcallahan1 | 0:31197ce6afb9 | 71 | } |