Filtre complémentaire

Dependencies:   FastPWM MPU6050 Gyro_Accelerometre mbed

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