Theo/Ludo/Joe / ER2_Labyrinthe_V3

Dependencies:   mbed

Committer:
joehatier
Date:
Fri May 24 10:57:58 2019 +0000
Revision:
1:96ef3513d0d5
Parent:
0:1a801a2a7b4b
Child:
2:73e8dca28f51
Ligne;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
joehatier 0:1a801a2a7b4b 1 #include "mbed.h"
joehatier 0:1a801a2a7b4b 2 #include "SRF05.h"
joehatier 0:1a801a2a7b4b 3 #include "fonction.h"
joehatier 0:1a801a2a7b4b 4 #define ARRET 0
joehatier 0:1a801a2a7b4b 5 #define ROULE 1
joehatier 1:96ef3513d0d5 6 #define DIST 2
joehatier 0:1a801a2a7b4b 7 #include "SRF05.h"
joehatier 0:1a801a2a7b4b 8
joehatier 0:1a801a2a7b4b 9 float srf;
joehatier 0:1a801a2a7b4b 10
joehatier 0:1a801a2a7b4b 11 int main()
joehatier 0:1a801a2a7b4b 12 {
joehatier 1:96ef3513d0d5 13 float cptG,cptD,E,k=19,EG,ED/*,bat*/;
joehatier 0:1a801a2a7b4b 14 PWMG.period_us(100);
joehatier 0:1a801a2a7b4b 15 PWMD.period_us(100);
joehatier 1:96ef3513d0d5 16 int /*J,S,*/etat=ARRET/*,bpg,bpd*/;
joehatier 1:96ef3513d0d5 17 //BpD.mode(PullUp);
joehatier 1:96ef3513d0d5 18 //BpG.mode(PullUp);
joehatier 0:1a801a2a7b4b 19
joehatier 0:1a801a2a7b4b 20 while(1) {
joehatier 0:1a801a2a7b4b 21
joehatier 0:1a801a2a7b4b 22 wait(0.01);
joehatier 0:1a801a2a7b4b 23 //bat=BAT.read()*4*3.3;
joehatier 0:1a801a2a7b4b 24 //bat=7/bat;
joehatier 0:1a801a2a7b4b 25 //J=Jack.read();
joehatier 0:1a801a2a7b4b 26 //S=Switch.read();
joehatier 0:1a801a2a7b4b 27 cptG=CPTG.read(); // Lis les valeurs capteurs
joehatier 0:1a801a2a7b4b 28 cptD=CPTD.read(); // Lis les valeurs capteurs
joehatier 0:1a801a2a7b4b 29 srf=SRF.read();
joehatier 0:1a801a2a7b4b 30
joehatier 0:1a801a2a7b4b 31 E=cptG-cptD;
joehatier 0:1a801a2a7b4b 32 EG=40/**bat*/+k*E;
joehatier 0:1a801a2a7b4b 33 ED=40/**bat*/-k*E;
joehatier 0:1a801a2a7b4b 34 if(EG<0) EG=0;
joehatier 0:1a801a2a7b4b 35 if(EG>100) EG=100;
joehatier 0:1a801a2a7b4b 36 if(ED<0) ED=0;
joehatier 0:1a801a2a7b4b 37 if(ED>100) ED=100;
joehatier 0:1a801a2a7b4b 38
joehatier 0:1a801a2a7b4b 39 switch(etat) {
joehatier 0:1a801a2a7b4b 40 case ARRET : // A l'arret
joehatier 0:1a801a2a7b4b 41 if(srf>=25) etat=ROULE;
joehatier 0:1a801a2a7b4b 42 break;
joehatier 1:96ef3513d0d5 43 case ROULE :
joehatier 1:96ef3513d0d5 44 if(25<srf<=29) etat=DIST; // Jack débranché => robot avance
joehatier 0:1a801a2a7b4b 45 if(srf<=25) etat=ARRET;
joehatier 0:1a801a2a7b4b 46 break;
joehatier 1:96ef3513d0d5 47 case DIST : // A l'arret
joehatier 1:96ef3513d0d5 48 if(srf>=25) etat=ROULE;
joehatier 1:96ef3513d0d5 49 break;
joehatier 0:1a801a2a7b4b 50
joehatier 0:1a801a2a7b4b 51
joehatier 0:1a801a2a7b4b 52
joehatier 0:1a801a2a7b4b 53 }
joehatier 0:1a801a2a7b4b 54
joehatier 0:1a801a2a7b4b 55 switch(etat) {
joehatier 0:1a801a2a7b4b 56
joehatier 0:1a801a2a7b4b 57 case ARRET : // A l'arret
joehatier 0:1a801a2a7b4b 58 roule_motdroit(0,0);
joehatier 0:1a801a2a7b4b 59 roule_motgauche(0,0);
joehatier 0:1a801a2a7b4b 60 break;
joehatier 0:1a801a2a7b4b 61
joehatier 0:1a801a2a7b4b 62 case ROULE :
joehatier 0:1a801a2a7b4b 63 roule_motgauche(0,(int)(EG));
joehatier 0:1a801a2a7b4b 64 roule_motdroit(0,(int)(ED)); // Roule
joehatier 0:1a801a2a7b4b 65 printf("Measured : %.1f\n\r", srf);
joehatier 0:1a801a2a7b4b 66 break;
joehatier 1:96ef3513d0d5 67 case DIST :
joehatier 1:96ef3513d0d5 68 roule_motgauche(0,(int)(EG-10));
joehatier 1:96ef3513d0d5 69 roule_motdroit(0,(int)(ED-10));
joehatier 1:96ef3513d0d5 70 break;
joehatier 0:1a801a2a7b4b 71 }
joehatier 0:1a801a2a7b4b 72
joehatier 0:1a801a2a7b4b 73 }
joehatier 0:1a801a2a7b4b 74
joehatier 0:1a801a2a7b4b 75 }
joehatier 0:1a801a2a7b4b 76
joehatier 0:1a801a2a7b4b 77