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
ER2_Robot/suivi.cpp@0:1a801a2a7b4b, 2019-02-15 (annotated)
- Committer:
- joehatier
- Date:
- Fri Feb 15 15:25:57 2019 +0000
- Revision:
- 0:1a801a2a7b4b
- Child:
- 1:96ef3513d0d5
suivi;
Who changed what in which revision?
| User | Revision | Line number | New 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 |