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