Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: ER2_Robot/suivi.cpp
- Revision:
- 2:73e8dca28f51
- Parent:
- 1:96ef3513d0d5
- Child:
- 3:b85df47a059a
diff -r 96ef3513d0d5 -r 73e8dca28f51 ER2_Robot/suivi.cpp
--- a/ER2_Robot/suivi.cpp Fri May 24 10:57:58 2019 +0000
+++ b/ER2_Robot/suivi.cpp Mon Jun 17 11:12:06 2019 +0000
@@ -3,74 +3,74 @@
#include "fonction.h"
#define ARRET 0
#define ROULE 1
-#define DIST 2
-#include "SRF05.h"
+
-float srf;
+SRF05 SRF(p13,p14);
+DigitalOut SensG(p12);//Sens Gauche
+DigitalOut SensD(p11);//Sens Droite
+PwmOut PWMG(p23); //Sortie moteur gauche
+PwmOut PWMD(p22); //Sortie moteur droit
+DigitalIn BpD(p29);
+DigitalIn BpG(p30);
+AnalogIn CPTG (p20);
+AnalogIn CPTD (p19);
+AnalogIn BAT (p15);
+
+float srfa,srfc;
int main()
{
- float cptG,cptD,E,k=19,EG,ED/*,bat*/;
+
PWMG.period_us(100);
PWMD.period_us(100);
- int /*J,S,*/etat=ARRET/*,bpg,bpd*/;
- //BpD.mode(PullUp);
- //BpG.mode(PullUp);
-
+ int /*J,S,*/etat=0/*,bpg,bpd*/;
+ BpD.mode(PullUp);
+ BpG.mode(PullUp);
+
while(1) {
-
- wait(0.01);
- //bat=BAT.read()*4*3.3;
- //bat=7/bat;
- //J=Jack.read();
- //S=Switch.read();
- cptG=CPTG.read(); // Lis les valeurs capteurs
- cptD=CPTD.read(); // Lis les valeurs capteurs
- srf=SRF.read();
-
- E=cptG-cptD;
- EG=40/**bat*/+k*E;
- ED=40/**bat*/-k*E;
- if(EG<0) EG=0;
- if(EG>100) EG=100;
- if(ED<0) ED=0;
- if(ED>100) ED=100;
+ srfa=SRFA.read();
+ srfc=SRFC.read();
switch(etat) {
- case ARRET : // A l'arret
- if(srf>=25) etat=ROULE;
- break;
- case ROULE :
- if(25<srf<=29) etat=DIST; // Jack débranché => robot avance
- if(srf<=25) etat=ARRET;
+ case 0 :
+ if(srfc<=5) etat=2;
+ if(srfc>=10) etat=1;
+ if(srfc<=5 && srfa<=5) etat=3;
break;
- case DIST : // A l'arret
- if(srf>=25) etat=ROULE;
- break;
-
-
-
+ case 1 : //ZIG
+ if(srfc<=5) etat=2;
+ if(srfc<=5 && srfa<=5) etat=3;
+ break;
+ case 2 : //ZAG
+ if(srfc>=10) etat=1;
+ if(srfc<=5 && srfa<=5) etat=3;
+ break;
+ case 3 ://MUR
+ if(srfa>=10) etat=0;
+ break;
}
switch(etat) {
-
- case ARRET : // A l'arret
- roule_motdroit(0,0);
- roule_motgauche(0,0);
- break;
-
- case ROULE :
- roule_motgauche(0,(int)(EG));
- roule_motdroit(0,(int)(ED)); // Roule
- printf("Measured : %.1f\n\r", srf);
+
+ case 0 :
+ roule_motgauche(0,60);
+ roule_motdroit(0,60); // Roule
+ break;
+ case 1 :
+ roule_motgauche(0,65);
+ roule_motdroit(0,60);
break;
- case DIST :
- roule_motgauche(0,(int)(EG-10));
- roule_motdroit(0,(int)(ED-10));
- break;
+ case 2 :
+ roule_motgauche(0,60);
+ roule_motdroit(0,65);
+ break;
+ case 3 :
+ roule_motgauche(0,50);
+ roule_motdroit(0,70);
+ break;
}
-}
+ }
}