Benoît Roussel / Mbed 2 deprecated test_algo

Dependencies:   mbed

Committer:
Mrlinkblue
Date:
Wed Jun 05 22:55:03 2019 +0000
Revision:
4:c393c14f4502
Parent:
3:97827746c632
Child:
5:73aac5fe9696
erreur regle sur VScode

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mrlinkblue 0:9eb40ee5ff41 1 #include "mbed.h"
Mrlinkblue 0:9eb40ee5ff41 2 #include "algorithme.h"
Mrlinkblue 0:9eb40ee5ff41 3 #include "lidar.h"
Mrlinkblue 0:9eb40ee5ff41 4 #include "direction.h"
Mrlinkblue 0:9eb40ee5ff41 5 #include "MPU9250_setup.h"
Mrlinkblue 0:9eb40ee5ff41 6 #include "MPU9250.h"
Mrlinkblue 0:9eb40ee5ff41 7
Mrlinkblue 0:9eb40ee5ff41 8 // Définition du timer global de la voiture
Mrlinkblue 0:9eb40ee5ff41 9 // Timer
Mrlinkblue 0:9eb40ee5ff41 10 Timer t;
Mrlinkblue 0:9eb40ee5ff41 11 DigitalOut myled1(LED1);
Mrlinkblue 0:9eb40ee5ff41 12 DigitalOut myled2(LED2);
Mrlinkblue 0:9eb40ee5ff41 13 DigitalOut myled3(LED3);
Mrlinkblue 0:9eb40ee5ff41 14
Mrlinkblue 0:9eb40ee5ff41 15 float t1;
Mrlinkblue 0:9eb40ee5ff41 16 float voiture_deltat;
Mrlinkblue 0:9eb40ee5ff41 17
Mrlinkblue 0:9eb40ee5ff41 18 int main() {
Mrlinkblue 0:9eb40ee5ff41 19 // On setup toute la voiture
Mrlinkblue 0:9eb40ee5ff41 20 t.start();
Mrlinkblue 0:9eb40ee5ff41 21
Mrlinkblue 0:9eb40ee5ff41 22 setup_lidar();
Mrlinkblue 0:9eb40ee5ff41 23 setup_mpu9250();
Mrlinkblue 0:9eb40ee5ff41 24 setup_direction();
Mrlinkblue 0:9eb40ee5ff41 25
Mrlinkblue 0:9eb40ee5ff41 26 // Tableau d'angle
Mrlinkblue 0:9eb40ee5ff41 27 for (int i =0 ; i < data_angles.size() ; i++){
Mrlinkblue 0:9eb40ee5ff41 28 data_angles[i]=i;
Mrlinkblue 0:9eb40ee5ff41 29 }
Mrlinkblue 3:97827746c632 30
Mrlinkblue 0:9eb40ee5ff41 31
Mrlinkblue 0:9eb40ee5ff41 32 int t_angle = 1090;
Mrlinkblue 0:9eb40ee5ff41 33 int t_vitesse = 1480;
Mrlinkblue 0:9eb40ee5ff41 34
Mrlinkblue 0:9eb40ee5ff41 35 // commande des servos
Mrlinkblue 0:9eb40ee5ff41 36 pwm_servo_direction.pulsewidth_us(t_angle);
Mrlinkblue 0:9eb40ee5ff41 37 pwm_servo_vitesse.pulsewidth_us(t_vitesse);
Mrlinkblue 0:9eb40ee5ff41 38
Mrlinkblue 3:97827746c632 39 //Signal lumineux de démarrage
Mrlinkblue 0:9eb40ee5ff41 40 myled1=1;
Mrlinkblue 0:9eb40ee5ff41 41 myled2=1;
Mrlinkblue 0:9eb40ee5ff41 42 myled3=1;
Mrlinkblue 3:97827746c632 43 wait_ms(10);
Mrlinkblue 3:97827746c632 44 myled1=0;
Mrlinkblue 3:97827746c632 45 myled2=0;
Mrlinkblue 3:97827746c632 46 myled3=0;
Mrlinkblue 3:97827746c632 47
Mrlinkblue 3:97827746c632 48 t1 = t.read();
Mrlinkblue 3:97827746c632 49 voiture_deltat = t.read() - t1;
Mrlinkblue 0:9eb40ee5ff41 50 while (1){
Mrlinkblue 0:9eb40ee5ff41 51 // données de la centrale inertiel
Mrlinkblue 4:c393c14f4502 52 // data_distances = Radar;
Mrlinkblue 4:c393c14f4502 53 addRadar(Radar,data,prevData);
Mrlinkblue 4:c393c14f4502 54 recup_mpu9250(voiture_deltat); // n'utilise pas voiture_deltat
Mrlinkblue 0:9eb40ee5ff41 55
Mrlinkblue 4:c393c14f4502 56 voiture_deltat = t.read() - t1;
Mrlinkblue 0:9eb40ee5ff41 57 // mise à jour l'angle de la voiture
Mrlinkblue 0:9eb40ee5ff41 58 voiture_angle = voiture_angle + gz*voiture_deltat;
Mrlinkblue 0:9eb40ee5ff41 59 // gz et voiture_angle a été vérifié et marche bien
Mrlinkblue 0:9eb40ee5ff41 60 // voiture angle = angle dans le repère du circuit
Mrlinkblue 0:9eb40ee5ff41 61
Mrlinkblue 0:9eb40ee5ff41 62 // mise à jour la vitesse de la voiture
Mrlinkblue 2:d2e002754654 63 //voiture_vitesse = voiture_vitesse + sqrt(ax*ax+ay*ay)*voiture_deltat*g; //(m)
Mrlinkblue 3:97827746c632 64
Mrlinkblue 0:9eb40ee5ff41 65
Mrlinkblue 3:97827746c632 66 // L'actualisation ne se lance que si on a un tableau complet
Mrlinkblue 3:97827746c632 67 if (newRadar){
Mrlinkblue 4:c393c14f4502 68 myled1 = !myled1 ;
Mrlinkblue 4:c393c14f4502 69 // Conversion tableau -> vector
Mrlinkblue 3:97827746c632 70 for (int i =0; i<360; i++){
Mrlinkblue 4:c393c14f4502 71 data_distances[i]=float(Radar[i])/1000.0; // (m)
Mrlinkblue 3:97827746c632 72 }
Mrlinkblue 3:97827746c632 73 actualisation();
Mrlinkblue 3:97827746c632 74 t1 = t.read();
Mrlinkblue 3:97827746c632 75 }
Mrlinkblue 3:97827746c632 76
Mrlinkblue 3:97827746c632 77 avancer(voiture_deltat);
Mrlinkblue 3:97827746c632 78
Mrlinkblue 3:97827746c632 79
Mrlinkblue 3:97827746c632 80 // converversion vitesse/angle
Mrlinkblue 3:97827746c632 81 int t_angle = convers_angle_tempsh(voiture_angle_roues);
Mrlinkblue 3:97827746c632 82
Mrlinkblue 3:97827746c632 83 if (voiture_angle_roues==0){
Mrlinkblue 0:9eb40ee5ff41 84 myled2=1;
Mrlinkblue 0:9eb40ee5ff41 85 }
Mrlinkblue 0:9eb40ee5ff41 86 else{
Mrlinkblue 0:9eb40ee5ff41 87 myled2=0;
Mrlinkblue 0:9eb40ee5ff41 88 }
Mrlinkblue 0:9eb40ee5ff41 89
Mrlinkblue 3:97827746c632 90 int t_vitesse = convers_vitesse_tempsh(voiture_vitesse);
Mrlinkblue 3:97827746c632 91
Mrlinkblue 3:97827746c632 92 if (1440 <=t_vitesse <= 1480){
Mrlinkblue 3:97827746c632 93 myled3=0;
Mrlinkblue 0:9eb40ee5ff41 94 }
Mrlinkblue 0:9eb40ee5ff41 95 else{
Mrlinkblue 3:97827746c632 96 myled3=1;
Mrlinkblue 0:9eb40ee5ff41 97 }
Mrlinkblue 0:9eb40ee5ff41 98
Mrlinkblue 0:9eb40ee5ff41 99 // commande des servos
Mrlinkblue 0:9eb40ee5ff41 100 pwm_servo_direction.pulsewidth_us(t_angle);
Mrlinkblue 0:9eb40ee5ff41 101 pwm_servo_vitesse.pulsewidth_us(t_vitesse);
Mrlinkblue 4:c393c14f4502 102
Mrlinkblue 0:9eb40ee5ff41 103 }
Mrlinkblue 0:9eb40ee5ff41 104
Mrlinkblue 0:9eb40ee5ff41 105 }