test hardware

Dependencies:   mbed MPU6050 PulseWidthCounter PulseCounter

Revision:
0:0232ed5c62b6
Child:
1:b1f5ab5f08a2
diff -r 000000000000 -r 0232ed5c62b6 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Sep 24 11:56:20 2019 +0000
@@ -0,0 +1,150 @@
+#include "mbed.h"
+#include "MPU6050.h"
+
+// declaration des entrées analogiques
+AnalogIn analog_value_PA4(PA_4);
+AnalogIn analog_value_PA5(PA_5);
+AnalogIn analog_value_PA6(PA_6);
+AnalogIn analog_value_PC0(PC_0);
+
+AnalogIn analog_value_PF3(PF_3);
+AnalogIn analog_value_PF4(PF_4);
+AnalogIn analog_value_PF9(PF_9);
+AnalogIn analog_value_PF10(PF_10);
+
+// declaration des sorties PWM
+PwmOut pwm_PE9(PE_9);
+PwmOut pwm_PF7(PF_7);
+PwmOut pwm_PF6(PF_6);
+PwmOut pwm_PC8(PC_8);
+PwmOut pwm_PD12(PD_12);
+
+// declaration des IO
+
+DigitalOut led(LED1);
+
+// declaration d'une interruption sur le front de la pin d'odometre
+//InterruptRise my_interruptPin(PF_8);
+
+// interruption
+//void pressed()
+//{
+//    cntr_odometre++ ;
+//}
+
+// initialisation du MPU6050
+DigitalOut myled(LED1);
+Serial pc(USBTX, USBRX,115200);
+
+MPU6050 mpu;
+
+
+int16_t ax, ay, az;
+float ax_g,ay_g,az_g;
+
+int16_t gx, gy, gz;
+
+int main()
+{
+    float  meas_adc_PA4;
+    float  meas_adc_PA5;
+    float  meas_adc_PA6;
+    float  meas_adc_PC0;
+
+    float  meas_adc_PF3;
+    float  meas_adc_PF4;
+    float  meas_adc_PF9;
+    float  meas_adc_PF10;
+
+    float  meas_adc_PA4_V;
+    float  meas_adc_PA5_V;
+    float  meas_adc_PA6_V;
+    float  meas_adc_PC0_V;
+
+    float  meas_adc_PF3_V;
+    float  meas_adc_PF4_V;
+    float  meas_adc_PF9_V;
+    float  meas_adc_PF10_V;
+
+// configuration des PWMs
+
+    pwm_PE9.period_ms(10);
+    pwm_PF7.period_ms(10);
+    pwm_PF6.period_ms(10);
+    pwm_PC8.period_ms(10);
+    pwm_PD12.period_ms(10);
+
+    pwm_PE9.pulsewidth_us(1000);
+    pwm_PF7.pulsewidth_us(1250);
+    pwm_PF6.pulsewidth_us(1500);
+    pwm_PC8.pulsewidth_us(1750);
+    pwm_PD12.pulsewidth_us(2000);
+
+//MPU6050
+    pc.printf("MPU6050 test\n\n");
+    pc.printf("MPU6050 initialize \n");
+
+    mpu.initialize();
+    pc.printf("MPU6050 testConnection \n");
+
+    bool mpu6050TestResult = mpu.testConnection();
+    if(mpu6050TestResult) {
+        pc.printf("MPU6050 test passed \n");
+    } else {
+        pc.printf("MPU6050 test failed \n");
+    }
+
+
+    while(1) {
+        // recuperer la valeur en float entre 0.0 et 1.0
+        meas_adc_PA4  =  analog_value_PA4.read();
+        meas_adc_PA5  =  analog_value_PA5.read();
+        meas_adc_PA6  =  analog_value_PA6.read();
+        meas_adc_PC0  =  analog_value_PC0.read();
+
+        meas_adc_PF3  =  analog_value_PF3.read();
+        meas_adc_PF4  =  analog_value_PF4.read();
+        meas_adc_PF9  =  analog_value_PF9.read();
+        meas_adc_PF10 =  analog_value_PF10.read();
+
+        // Multiplier par la tension de reference pour avoir la tension en volt
+        meas_adc_PA4_V  =  meas_adc_PA4* 3300 ;
+        meas_adc_PA5_V  =  meas_adc_PA5* 3300 ;
+        meas_adc_PA6_V  =  meas_adc_PA6* 3300 ;
+        meas_adc_PC0_V  =  meas_adc_PC0* 3300 ;
+
+        meas_adc_PF3_V  =  meas_adc_PF3* 3300 ;
+        meas_adc_PF4_V  =  meas_adc_PF4* 3300 ;
+        meas_adc_PF9_V  =  meas_adc_PF9* 3300 ;
+        meas_adc_PF10_V =  meas_adc_PF10* 3300 ;
+
+        mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
+        //correction pour avoir une acceleration coef empirique
+        ax_g = (float)ax /1658.0 ;
+        ay_g = (float)ay /1658.0 ;
+        az_g = (float)az /1658.0 ;
+
+        // affiche les valeurs sur la com usb
+        printf("\f");
+     //   printf("meas_adc_PA4_V = %.0f mV\n\r", meas_adc_PA4_V);
+     //   printf("meas_adc_PA5_V = %.0f mV\n\r", meas_adc_PA5_V);
+    //    printf("meas_adc_PA6_V = %.0f mV\n\r", meas_adc_PA6_V);
+     //   printf("meas_adc_PC0_V = %.0f mV\n\r", meas_adc_PC0_V);
+
+     //   printf("meas_adc_PF3_V = %.0f mV\n\r", meas_adc_PF3_V);
+    //    printf("meas_adc_PF4_V = %.0f mV\n\r", meas_adc_PF4_V);
+     //   printf("meas_adc_PF9_V = %.0f mV\n\r", meas_adc_PF9_V);
+       // printf("meas_adc_PF10_V = %.0f mV\n\r", meas_adc_PF10_V);
+
+
+        //writing current accelerometer and gyro position
+
+        printf("acc X =%.2f; acc Y =%.2f; acc Z=%.2f;\n\r",ax_g,ay_g,az_g);
+        printf("Gyr X =%d; Gyr Y =%d; Gyr Z =%d\n",gx,gy,gz);
+        //pc.printf("acc X =%d; acc Y =%d; acc Z=%d; Gyr X =%d; Gyr Y =%d; Gyr Z =%d\n",ax,ay,az,gx,gy,gz);
+
+
+        led = !led;
+        wait(1.0); // delais
+    }
+}