![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
project
main.cpp@0:7f9aa4ca18c2, 2019-11-26 (annotated)
- Committer:
- bjanquart
- Date:
- Tue Nov 26 02:25:19 2019 +0000
- Revision:
- 0:7f9aa4ca18c2
Project;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bjanquart | 0:7f9aa4ca18c2 | 1 | // LSM6DS3 Demo |
bjanquart | 0:7f9aa4ca18c2 | 2 | |
bjanquart | 0:7f9aa4ca18c2 | 3 | #include "mbed.h" |
bjanquart | 0:7f9aa4ca18c2 | 4 | #include "LSM6DS3.h" |
bjanquart | 0:7f9aa4ca18c2 | 5 | |
bjanquart | 0:7f9aa4ca18c2 | 6 | LSM6DS3 accel(D4, D5); |
bjanquart | 0:7f9aa4ca18c2 | 7 | |
bjanquart | 0:7f9aa4ca18c2 | 8 | DigitalOut led(D13); |
bjanquart | 0:7f9aa4ca18c2 | 9 | Serial pc(USBTX, USBRX); |
bjanquart | 0:7f9aa4ca18c2 | 10 | |
bjanquart | 0:7f9aa4ca18c2 | 11 | float xvalues[25], yvalues[25], zvalues[25], x_sum, y_sum, z_sum, x_avg, y_avg, z_avg; |
bjanquart | 0:7f9aa4ca18c2 | 12 | bool fall_waiting = true; |
bjanquart | 0:7f9aa4ca18c2 | 13 | |
bjanquart | 0:7f9aa4ca18c2 | 14 | int main() |
bjanquart | 0:7f9aa4ca18c2 | 15 | { |
bjanquart | 0:7f9aa4ca18c2 | 16 | accel.begin(accel.G_SCALE_2000DPS, accel.A_SCALE_8G, |
bjanquart | 0:7f9aa4ca18c2 | 17 | accel.G_ODR_1660, accel.A_ODR_6660); |
bjanquart | 0:7f9aa4ca18c2 | 18 | led = 1; |
bjanquart | 0:7f9aa4ca18c2 | 19 | |
bjanquart | 0:7f9aa4ca18c2 | 20 | // fill array initial |
bjanquart | 0:7f9aa4ca18c2 | 21 | for (int i = 0; i < 25; ++i){ |
bjanquart | 0:7f9aa4ca18c2 | 22 | accel.readAccel(); |
bjanquart | 0:7f9aa4ca18c2 | 23 | xvalues[i] = accel.ax; |
bjanquart | 0:7f9aa4ca18c2 | 24 | yvalues[i] = accel.ay; |
bjanquart | 0:7f9aa4ca18c2 | 25 | zvalues[i] = accel.az; |
bjanquart | 0:7f9aa4ca18c2 | 26 | } |
bjanquart | 0:7f9aa4ca18c2 | 27 | |
bjanquart | 0:7f9aa4ca18c2 | 28 | |
bjanquart | 0:7f9aa4ca18c2 | 29 | while (fall_waiting) |
bjanquart | 0:7f9aa4ca18c2 | 30 | { |
bjanquart | 0:7f9aa4ca18c2 | 31 | accel.readAccel(); |
bjanquart | 0:7f9aa4ca18c2 | 32 | xvalues[24] = accel.ax; |
bjanquart | 0:7f9aa4ca18c2 | 33 | yvalues[24] = accel.ay; |
bjanquart | 0:7f9aa4ca18c2 | 34 | zvalues[24] = accel.az; |
bjanquart | 0:7f9aa4ca18c2 | 35 | // for loop that copies down the array |
bjanquart | 0:7f9aa4ca18c2 | 36 | for (int i = 1; i < 25; ++i){ |
bjanquart | 0:7f9aa4ca18c2 | 37 | |
bjanquart | 0:7f9aa4ca18c2 | 38 | xvalues[i - 1] = xvalues[i]; |
bjanquart | 0:7f9aa4ca18c2 | 39 | yvalues[i - 1] = yvalues[i]; |
bjanquart | 0:7f9aa4ca18c2 | 40 | zvalues[i - 1] = zvalues[i]; |
bjanquart | 0:7f9aa4ca18c2 | 41 | } |
bjanquart | 0:7f9aa4ca18c2 | 42 | // clear the sum values |
bjanquart | 0:7f9aa4ca18c2 | 43 | x_sum = 0; |
bjanquart | 0:7f9aa4ca18c2 | 44 | y_sum = 0; |
bjanquart | 0:7f9aa4ca18c2 | 45 | z_sum = 0; |
bjanquart | 0:7f9aa4ca18c2 | 46 | // average |
bjanquart | 0:7f9aa4ca18c2 | 47 | for(int in = 0; in < 25; ++in){ |
bjanquart | 0:7f9aa4ca18c2 | 48 | x_sum += xvalues[in]; |
bjanquart | 0:7f9aa4ca18c2 | 49 | y_sum += yvalues[in]; |
bjanquart | 0:7f9aa4ca18c2 | 50 | z_sum += zvalues[in]; |
bjanquart | 0:7f9aa4ca18c2 | 51 | } |
bjanquart | 0:7f9aa4ca18c2 | 52 | x_avg = x_sum / 25; |
bjanquart | 0:7f9aa4ca18c2 | 53 | y_avg = y_sum / 25; |
bjanquart | 0:7f9aa4ca18c2 | 54 | z_avg = z_sum / 25; |
bjanquart | 0:7f9aa4ca18c2 | 55 | |
bjanquart | 0:7f9aa4ca18c2 | 56 | if(xvalues[24] > x_avg + 1 || yvalues[24] > y_avg + 1 || zvalues[24] > z_avg + 1){ |
bjanquart | 0:7f9aa4ca18c2 | 57 | led = 0; |
bjanquart | 0:7f9aa4ca18c2 | 58 | fall_waiting = false; |
bjanquart | 0:7f9aa4ca18c2 | 59 | } |
bjanquart | 0:7f9aa4ca18c2 | 60 | } |
bjanquart | 0:7f9aa4ca18c2 | 61 | } |
bjanquart | 0:7f9aa4ca18c2 | 62 |