Luis Silvio Cordova Rivadeneira
/
mpu9250
Ejemplo de uso del MPU9250 por puerto I2C
main.cpp@1:ad5417f813f4, 2020-02-06 (annotated)
- Committer:
- lscordovar
- Date:
- Thu Feb 06 03:39:19 2020 +0000
- Revision:
- 1:ad5417f813f4
- Parent:
- 0:cecf4940adf1
Ejemplo con MPU9250 por I2C
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
a0074639 | 0:cecf4940adf1 | 1 | #include "mbed.h" |
a0074639 | 0:cecf4940adf1 | 2 | #include "myMPU9250.h" |
a0074639 | 0:cecf4940adf1 | 3 | |
a0074639 | 0:cecf4940adf1 | 4 | DigitalOut g_led1(LED1), g_led2(LED2), g_led3(LED3), g_led4(LED4); |
a0074639 | 0:cecf4940adf1 | 5 | Serial g_pc(USBTX, USBRX); |
a0074639 | 0:cecf4940adf1 | 6 | |
a0074639 | 0:cecf4940adf1 | 7 | void blink_led(double sec=3.0, double interval = 0.2, |
a0074639 | 0:cecf4940adf1 | 8 | bool led1=true, bool led2=true, bool led3=true, bool led4=true) |
a0074639 | 0:cecf4940adf1 | 9 | { |
a0074639 | 0:cecf4940adf1 | 10 | |
a0074639 | 0:cecf4940adf1 | 11 | for(double t=0.0 ; t<sec ; t+=interval*2.0) { |
a0074639 | 0:cecf4940adf1 | 12 | g_led1 = (int)led1; |
a0074639 | 0:cecf4940adf1 | 13 | g_led2 = (int)led2; |
a0074639 | 0:cecf4940adf1 | 14 | g_led3 = (int)led3; |
a0074639 | 0:cecf4940adf1 | 15 | g_led4 = (int)led4; |
a0074639 | 0:cecf4940adf1 | 16 | wait(interval); |
a0074639 | 0:cecf4940adf1 | 17 | g_led1 = g_led2 = g_led3 = g_led4 = 0; |
a0074639 | 0:cecf4940adf1 | 18 | wait(interval); |
a0074639 | 0:cecf4940adf1 | 19 | } |
a0074639 | 0:cecf4940adf1 | 20 | } |
a0074639 | 0:cecf4940adf1 | 21 | |
a0074639 | 0:cecf4940adf1 | 22 | int main() |
a0074639 | 0:cecf4940adf1 | 23 | { |
a0074639 | 0:cecf4940adf1 | 24 | g_pc.printf("START!\n"); |
a0074639 | 0:cecf4940adf1 | 25 | MyMPU9250 imu; |
a0074639 | 0:cecf4940adf1 | 26 | if(imu.initialize()) { |
a0074639 | 0:cecf4940adf1 | 27 | g_pc.printf("SUCCESS TO INITIALIZE!\n"); |
a0074639 | 0:cecf4940adf1 | 28 | blink_led(3.0, 0.2, true, false, false, true); |
a0074639 | 0:cecf4940adf1 | 29 | } else { |
a0074639 | 0:cecf4940adf1 | 30 | blink_led(); |
a0074639 | 0:cecf4940adf1 | 31 | return 0; |
a0074639 | 0:cecf4940adf1 | 32 | } |
a0074639 | 0:cecf4940adf1 | 33 | |
a0074639 | 0:cecf4940adf1 | 34 | imu.setup(); |
a0074639 | 0:cecf4940adf1 | 35 | |
a0074639 | 0:cecf4940adf1 | 36 | double x, y, z; |
a0074639 | 0:cecf4940adf1 | 37 | for(int cnt=0;; cnt++) { |
a0074639 | 0:cecf4940adf1 | 38 | if(cnt%2==0) { |
a0074639 | 0:cecf4940adf1 | 39 | imu.updateAccelAllAxes(); |
a0074639 | 0:cecf4940adf1 | 40 | x = imu.accelX(); |
a0074639 | 0:cecf4940adf1 | 41 | y = imu.accelY(); |
a0074639 | 0:cecf4940adf1 | 42 | z = imu.accelZ(); |
a0074639 | 0:cecf4940adf1 | 43 | g_pc.printf("Accel: %f, %f, %f \n", x, y, z); |
a0074639 | 0:cecf4940adf1 | 44 | } else { |
a0074639 | 0:cecf4940adf1 | 45 | imu.updateGyroAllAxes(); |
a0074639 | 0:cecf4940adf1 | 46 | x = imu.gyroX(); |
a0074639 | 0:cecf4940adf1 | 47 | y = imu.gyroY(); |
a0074639 | 0:cecf4940adf1 | 48 | z = imu.gyroZ(); |
a0074639 | 0:cecf4940adf1 | 49 | g_pc.printf("Gyro: %f, %f, %f \n", x, y, z); |
a0074639 | 0:cecf4940adf1 | 50 | } |
a0074639 | 0:cecf4940adf1 | 51 | } |
a0074639 | 0:cecf4940adf1 | 52 | } |