Filtre complémentaire
Dependencies: FastPWM MPU6050 Gyro_Accelerometre mbed
Diff: Gyro_Accelerometre_XYZ.cpp
- Revision:
- 0:1096fcacf950
- Child:
- 1:aca3c4b9fcfe
diff -r 000000000000 -r 1096fcacf950 Gyro_Accelerometre_XYZ.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Gyro_Accelerometre_XYZ.cpp Tue Feb 20 15:58:55 2018 +0000 @@ -0,0 +1,51 @@ +#include "mbed.h" +#include "MPU6050.h" +#include "rtos.h" + +DigitalOut myled(LED1); + +//****************Init Hardware***************** +Serial pc(USBTX, USBRX); // Initialisation de pc tx, rx -> hyperterminal +MPU6050 mpu6050(D4, D5); // Initialisation accéléromètre/ liaison I2C (SDA,SCL) +Serial Bluetooth(PA_9, PA_10); // Initialisation Bluetooth (D1 et D0) + +//****************Init constantes***************** +bool test_accelero;// tester la connextion accéléro +float accelerometre[3]; // init tableau xyz accéléro +int Te=1000; // période d'échantillonnage en ms +int flag_affichage=0; // drapeau pour l'affichage des valeurs de l'accéléromètre en dehors de la fonction gyro_thread + +void gyro_thread() +{ + // **********Test connexion accelerometre******** + test_accelero = mpu6050.testConnection(); + if (test_accelero ==1) { + pc.printf("test accelero ok\r\n"); + } else { + pc.printf("test accelero non ok\r\n"); + }//fin if test connexion accelerometre + + + //***************Lecture des données de l'inclinaison de l'accelerometre************ + mpu6050.getAccelero(accelerometre); //donne l'acceleration en m/s2 + flag_affichage=1;// activation du drapeau + +} + +// ***************Declaration d'un objet RtosTimer (temps réel) ****************** +RtosTimer timer(mbed::callback(gyro_thread),osTimerPeriodic); // mbed::callback(gyro_thread)-> excècute la fonction gyro_thread osTimerPeriodic -> de manière répétitive + +int main() +{ + + timer.start(Te); // en ms RtosTimer timer executé sur les secondes + + while(1) { + + if(flag_affichage==1) { + pc.printf("Xaccelero = %lf ; Yaccelero = %lf ; Zaccelero = %lf \r\n",accelerometre[0],accelerometre[1],accelerometre[2]); + flag_affichage=0; + }// fin if flag_affichage + + }//fin while(1) +}//fin main \ No newline at end of file