Mattei Caraman
/
Robot_Fou_v2
Robot fou
func.cpp@0:8b7645cd8a39, 2018-06-01 (annotated)
- Committer:
- Mattei
- Date:
- Fri Jun 01 08:27:06 2018 +0000
- Revision:
- 0:8b7645cd8a39
v2;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Mattei | 0:8b7645cd8a39 | 1 | #include "mbed.h" |
Mattei | 0:8b7645cd8a39 | 2 | #include "func.h" |
Mattei | 0:8b7645cd8a39 | 3 | #include "time.h" |
Mattei | 0:8b7645cd8a39 | 4 | |
Mattei | 0:8b7645cd8a39 | 5 | int etat=0; |
Mattei | 0:8b7645cd8a39 | 6 | |
Mattei | 0:8b7645cd8a39 | 7 | float distance=32; |
Mattei | 0:8b7645cd8a39 | 8 | int vitrand1=(rand()%60)+20; |
Mattei | 0:8b7645cd8a39 | 9 | int vitrand2=(rand()%60)+20; |
Mattei | 0:8b7645cd8a39 | 10 | int cligne=rand()%15; |
Mattei | 0:8b7645cd8a39 | 11 | int td12=0; |
Mattei | 0:8b7645cd8a39 | 12 | |
Mattei | 0:8b7645cd8a39 | 13 | |
Mattei | 0:8b7645cd8a39 | 14 | void vite(void){ |
Mattei | 0:8b7645cd8a39 | 15 | MotD.pulsewidth_us(vitrand1); |
Mattei | 0:8b7645cd8a39 | 16 | MotG.pulsewidth_us(vitrand2); |
Mattei | 0:8b7645cd8a39 | 17 | vitrand1=(rand()%50)+30; |
Mattei | 0:8b7645cd8a39 | 18 | vitrand2=(rand()%50)+30; |
Mattei | 0:8b7645cd8a39 | 19 | } |
Mattei | 0:8b7645cd8a39 | 20 | |
Mattei | 0:8b7645cd8a39 | 21 | void attend(void){ |
Mattei | 0:8b7645cd8a39 | 22 | if(vitrand1>vitrand2){ |
Mattei | 0:8b7645cd8a39 | 23 | wait(40*1/vitrand1); |
Mattei | 0:8b7645cd8a39 | 24 | } |
Mattei | 0:8b7645cd8a39 | 25 | else wait(40*1/vitrand2); |
Mattei | 0:8b7645cd8a39 | 26 | } |
Mattei | 0:8b7645cd8a39 | 27 | |
Mattei | 0:8b7645cd8a39 | 28 | void clignote(void){ |
Mattei | 0:8b7645cd8a39 | 29 | cligne=rand()%15; |
Mattei | 0:8b7645cd8a39 | 30 | leds.write(cligne); |
Mattei | 0:8b7645cd8a39 | 31 | } |
Mattei | 0:8b7645cd8a39 | 32 | |
Mattei | 0:8b7645cd8a39 | 33 | void fou(void){ |
Mattei | 0:8b7645cd8a39 | 34 | distance=srf.read(); |
Mattei | 0:8b7645cd8a39 | 35 | switch(etat){ |
Mattei | 0:8b7645cd8a39 | 36 | case 0 : if(distance > 45){ etat = 1; }; break; |
Mattei | 0:8b7645cd8a39 | 37 | case 1 : if(distance < 45){ etat = 0; }; break; |
Mattei | 0:8b7645cd8a39 | 38 | } |
Mattei | 0:8b7645cd8a39 | 39 | |
Mattei | 0:8b7645cd8a39 | 40 | switch(etat){ |
Mattei | 0:8b7645cd8a39 | 41 | case 0 : t2.detach(); |
Mattei | 0:8b7645cd8a39 | 42 | td12=0; |
Mattei | 0:8b7645cd8a39 | 43 | SensG.write(1); |
Mattei | 0:8b7645cd8a39 | 44 | SensD.write(0); |
Mattei | 0:8b7645cd8a39 | 45 | MotD.pulsewidth_us(50); |
Mattei | 0:8b7645cd8a39 | 46 | MotG.pulsewidth_us(50); |
Mattei | 0:8b7645cd8a39 | 47 | attend(); |
Mattei | 0:8b7645cd8a39 | 48 | break; |
Mattei | 0:8b7645cd8a39 | 49 | case 1 : if(td12==0){SensD.write(0); SensG.write(0); t2.attach(&vite,0.5); td12=1;} break; |
Mattei | 0:8b7645cd8a39 | 50 | } |
Mattei | 0:8b7645cd8a39 | 51 | /* printf("sensrand = %d\n\r",sensrand); |
Mattei | 0:8b7645cd8a39 | 52 | printf("vitrand = %d\n\r",vitrand); |
Mattei | 0:8b7645cd8a39 | 53 | */ |
Mattei | 0:8b7645cd8a39 | 54 | |
Mattei | 0:8b7645cd8a39 | 55 | printf("Tension Batterie:%g\n\r",(Vbat.read()*13300*3.3)/3300); |
Mattei | 0:8b7645cd8a39 | 56 | //wait(1); |
Mattei | 0:8b7645cd8a39 | 57 | wait_ms(30); |
Mattei | 0:8b7645cd8a39 | 58 | } |