![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Filtre complémentaire
Dependencies: FastPWM MPU6050 Gyro_Accelerometre mbed
Gyro_Accelerometre_XYZ.cpp
- Committer:
- SandrineO
- Date:
- 2018-02-20
- Revision:
- 0:1096fcacf950
- Child:
- 1:aca3c4b9fcfe
File content as of revision 0:1096fcacf950:
#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