MoJo / ER2_Robot_gnuarmeclipse_lpc1768-V2

Dependencies:   mbed

Committer:
joehatier
Date:
Fri Feb 15 15:25:57 2019 +0000
Revision:
0:1a801a2a7b4b
Child:
1:96ef3513d0d5
suivi;

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 0:1a801a2a7b4b 6 #include "SRF05.h"
joehatier 0:1a801a2a7b4b 7
joehatier 0:1a801a2a7b4b 8 SRF05 SRF(p13,p14);
joehatier 0:1a801a2a7b4b 9 DigitalOut SensG(p12);//Sens Gauche
joehatier 0:1a801a2a7b4b 10 DigitalOut SensD(p11);//Sens Droite
joehatier 0:1a801a2a7b4b 11 PwmOut PWMG(p23); //Sortie moteur gauche
joehatier 0:1a801a2a7b4b 12 PwmOut PWMD(p22); //Sortie moteur droit
joehatier 0:1a801a2a7b4b 13 DigitalIn BpD(p29);
joehatier 0:1a801a2a7b4b 14 DigitalIn BpG(p30);
joehatier 0:1a801a2a7b4b 15 AnalogIn CPTG (p20);
joehatier 0:1a801a2a7b4b 16 AnalogIn CPTD (p19);
joehatier 0:1a801a2a7b4b 17 AnalogIn BAT (p15);
joehatier 0:1a801a2a7b4b 18
joehatier 0:1a801a2a7b4b 19 float srf;
joehatier 0:1a801a2a7b4b 20
joehatier 0:1a801a2a7b4b 21 int main()
joehatier 0:1a801a2a7b4b 22 {
joehatier 0:1a801a2a7b4b 23 float cptG,cptD,E,k=18,EG,ED/*,bat*/;
joehatier 0:1a801a2a7b4b 24 PWMG.period_us(100);
joehatier 0:1a801a2a7b4b 25 PWMD.period_us(100);
joehatier 0:1a801a2a7b4b 26 int /*J,S,*/etat=ROULE/*,bpg,bpd*/;
joehatier 0:1a801a2a7b4b 27 BpD.mode(PullUp);
joehatier 0:1a801a2a7b4b 28 BpG.mode(PullUp);
joehatier 0:1a801a2a7b4b 29
joehatier 0:1a801a2a7b4b 30 while(1) {
joehatier 0:1a801a2a7b4b 31
joehatier 0:1a801a2a7b4b 32 wait(0.01);
joehatier 0:1a801a2a7b4b 33 //bat=BAT.read()*4*3.3;
joehatier 0:1a801a2a7b4b 34 //bat=7/bat;
joehatier 0:1a801a2a7b4b 35 //J=Jack.read();
joehatier 0:1a801a2a7b4b 36 //S=Switch.read();
joehatier 0:1a801a2a7b4b 37 cptG=CPTG.read(); // Lis les valeurs capteurs
joehatier 0:1a801a2a7b4b 38 cptD=CPTD.read(); // Lis les valeurs capteurs
joehatier 0:1a801a2a7b4b 39 srf=SRF.read();
joehatier 0:1a801a2a7b4b 40
joehatier 0:1a801a2a7b4b 41 E=cptG-cptD;
joehatier 0:1a801a2a7b4b 42 EG=40/**bat*/+k*E;
joehatier 0:1a801a2a7b4b 43 ED=40/**bat*/-k*E;
joehatier 0:1a801a2a7b4b 44 if(EG<0) EG=0;
joehatier 0:1a801a2a7b4b 45 if(EG>100) EG=100;
joehatier 0:1a801a2a7b4b 46 if(ED<0) ED=0;
joehatier 0:1a801a2a7b4b 47 if(ED>100) ED=100;
joehatier 0:1a801a2a7b4b 48
joehatier 0:1a801a2a7b4b 49 switch(etat) {
joehatier 0:1a801a2a7b4b 50 case ARRET : // A l'arret
joehatier 0:1a801a2a7b4b 51 if(srf>=25) etat=ROULE;
joehatier 0:1a801a2a7b4b 52 break;
joehatier 0:1a801a2a7b4b 53 case ROULE : // Jack débranché => robot avance
joehatier 0:1a801a2a7b4b 54 if(srf<=25) etat=ARRET;
joehatier 0:1a801a2a7b4b 55 break;
joehatier 0:1a801a2a7b4b 56
joehatier 0:1a801a2a7b4b 57
joehatier 0:1a801a2a7b4b 58
joehatier 0:1a801a2a7b4b 59 }
joehatier 0:1a801a2a7b4b 60
joehatier 0:1a801a2a7b4b 61 switch(etat) {
joehatier 0:1a801a2a7b4b 62
joehatier 0:1a801a2a7b4b 63 case ARRET : // A l'arret
joehatier 0:1a801a2a7b4b 64 roule_motdroit(0,0);
joehatier 0:1a801a2a7b4b 65 roule_motgauche(0,0);
joehatier 0:1a801a2a7b4b 66 break;
joehatier 0:1a801a2a7b4b 67
joehatier 0:1a801a2a7b4b 68 case ROULE :
joehatier 0:1a801a2a7b4b 69 roule_motgauche(0,(int)(EG));
joehatier 0:1a801a2a7b4b 70 roule_motdroit(0,(int)(ED)); // Roule
joehatier 0:1a801a2a7b4b 71 printf("Measured : %.1f\n\r", srf);
joehatier 0:1a801a2a7b4b 72 break;
joehatier 0:1a801a2a7b4b 73 }
joehatier 0:1a801a2a7b4b 74
joehatier 0:1a801a2a7b4b 75 }
joehatier 0:1a801a2a7b4b 76
joehatier 0:1a801a2a7b4b 77 }
joehatier 0:1a801a2a7b4b 78
joehatier 0:1a801a2a7b4b 79