![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
TP_presa
Dependencies: SRF08 Servo mbed
main.cpp@4:aafb0016ed84, 2017-05-31 (annotated)
- Committer:
- Remi95
- Date:
- Wed May 31 18:36:25 2017 +0000
- Revision:
- 4:aafb0016ed84
- Parent:
- 3:0b19b5b7c3a4
- Child:
- 5:8c2101d3ecef
Ver.0.0.5
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Remi95 | 0:99cb324a2329 | 1 | #include "mbed.h" |
Remi95 | 0:99cb324a2329 | 2 | |
Remi95 | 0:99cb324a2329 | 3 | char Adress = 128; |
Remi95 | 2:6d12c2d70f19 | 4 | //char Vit =50; |
Remi95 | 0:99cb324a2329 | 5 | //Address: 130 |
Remi95 | 0:99cb324a2329 | 6 | //Command : 0 |
Remi95 | 0:99cb324a2329 | 7 | //Data: 64 |
Remi95 | 0:99cb324a2329 | 8 | //Checksum: 66 |
Remi95 | 0:99cb324a2329 | 9 | //Checksum Putc((address + 0 + speed) & 127); |
Remi95 | 0:99cb324a2329 | 10 | |
Remi95 | 0:99cb324a2329 | 11 | Serial sbt(p9, p10); // tx, rx |
Remi95 | 0:99cb324a2329 | 12 | |
Remi95 | 0:99cb324a2329 | 13 | DigitalOut myled1(LED1); |
Remi95 | 0:99cb324a2329 | 14 | DigitalOut myled2(LED2); |
Remi95 | 0:99cb324a2329 | 15 | DigitalOut myled3(LED3); |
Remi95 | 0:99cb324a2329 | 16 | DigitalOut myled4(LED4); |
Remi95 | 0:99cb324a2329 | 17 | DigitalOut S2 (p11); |
Remi95 | 0:99cb324a2329 | 18 | |
Remi95 | 4:aafb0016ed84 | 19 | |
Remi95 | 0:99cb324a2329 | 20 | void Led (bool l1,bool l2,bool l3,bool l4){ //Fonction pour aider au debug avec les led |
Remi95 | 0:99cb324a2329 | 21 | |
Remi95 | 0:99cb324a2329 | 22 | myled1=l1; |
Remi95 | 0:99cb324a2329 | 23 | myled2=l2; |
Remi95 | 0:99cb324a2329 | 24 | myled3=l3; |
Remi95 | 0:99cb324a2329 | 25 | myled4=l4; |
Remi95 | 0:99cb324a2329 | 26 | } |
Remi95 | 2:6d12c2d70f19 | 27 | void emiss(char Code, char Vit){ |
Remi95 | 0:99cb324a2329 | 28 | sbt.putc(Adress); |
Remi95 | 1:5830b7d6a985 | 29 | sbt.putc(Code); |
Remi95 | 2:6d12c2d70f19 | 30 | sbt.putc(Vit); |
Remi95 | 2:6d12c2d70f19 | 31 | sbt.putc((Adress+Code+Vit) & 127); |
Remi95 | 4:aafb0016ed84 | 32 | iActualSpeed=Vit; |
Remi95 | 1:5830b7d6a985 | 33 | } |
Remi95 | 1:5830b7d6a985 | 34 | |
Remi95 | 2:6d12c2d70f19 | 35 | void forward(char Vit) { |
Remi95 | 2:6d12c2d70f19 | 36 | emiss(0,Vit); |
Remi95 | 2:6d12c2d70f19 | 37 | emiss(4,Vit); |
Remi95 | 0:99cb324a2329 | 38 | } |
Remi95 | 3:0b19b5b7c3a4 | 39 | void myVirageGauche (char Vit , char Ang){ |
Remi95 | 3:0b19b5b7c3a4 | 40 | emiss(1,Vit); |
Remi95 | 3:0b19b5b7c3a4 | 41 | emiss(4,Vit); |
Remi95 | 3:0b19b5b7c3a4 | 42 | wait((Ang*iCoefVirage)/Vit); //Le coeficient 0.5 est a réler en fonction de la batterie et de la voiture. |
Remi95 | 3:0b19b5b7c3a4 | 43 | emiss(1,0); |
Remi95 | 3:0b19b5b7c3a4 | 44 | emiss(4,0); |
Remi95 | 3:0b19b5b7c3a4 | 45 | } |
Remi95 | 3:0b19b5b7c3a4 | 46 | void myVirageDroite (char Vit , char Ang){ |
Remi95 | 3:0b19b5b7c3a4 | 47 | emiss(0,Vit); |
Remi95 | 3:0b19b5b7c3a4 | 48 | emiss(5,Vit); |
Remi95 | 3:0b19b5b7c3a4 | 49 | wait((Ang*iCoefVirage)/Vit); |
Remi95 | 4:aafb0016ed84 | 50 | emiss(0,0); |
Remi95 | 4:aafb0016ed84 | 51 | emiss(5,0); |
Remi95 | 3:0b19b5b7c3a4 | 52 | } |
Remi95 | 2:6d12c2d70f19 | 53 | void avancer(char Vit) { |
Remi95 | 2:6d12c2d70f19 | 54 | int i=0; |
Remi95 | 2:6d12c2d70f19 | 55 | for(i; i<Vit ; i=i+(Vit/5));{ |
Remi95 | 2:6d12c2d70f19 | 56 | emiss(0,i); |
Remi95 | 2:6d12c2d70f19 | 57 | emiss(4,i); |
Remi95 | 2:6d12c2d70f19 | 58 | wait(0.1); |
Remi95 | 2:6d12c2d70f19 | 59 | } |
Remi95 | 0:99cb324a2329 | 60 | } |
Remi95 | 2:6d12c2d70f19 | 61 | void arreter(char Vit){ |
Remi95 | 4:aafb0016ed84 | 62 | int i=iActualSpeed; |
Remi95 | 2:6d12c2d70f19 | 63 | for(i ; i>0;i=i-(Vit/5)){ |
Remi95 | 2:6d12c2d70f19 | 64 | emiss(0,i); |
Remi95 | 2:6d12c2d70f19 | 65 | emiss(4,i); |
Remi95 | 2:6d12c2d70f19 | 66 | wait(0.1);} |
Remi95 | 1:5830b7d6a985 | 67 | emiss(0,0); |
Remi95 | 1:5830b7d6a985 | 68 | emiss(4,0); |
Remi95 | 0:99cb324a2329 | 69 | } |
Remi95 | 2:6d12c2d70f19 | 70 | void arret_urgence(void) { |
Remi95 | 2:6d12c2d70f19 | 71 | emiss(0,0); |
Remi95 | 2:6d12c2d70f19 | 72 | emiss(4,0); |
Remi95 | 1:5830b7d6a985 | 73 | } |
Remi95 | 2:6d12c2d70f19 | 74 | void reculer(char Vit) { |
Remi95 | 2:6d12c2d70f19 | 75 | for(int i =0; i<Vit;i=i+5){ |
Remi95 | 2:6d12c2d70f19 | 76 | emiss(1,i); |
Remi95 | 2:6d12c2d70f19 | 77 | emiss(5,i); |
Remi95 | 2:6d12c2d70f19 | 78 | wait(0.1);} |
Remi95 | 2:6d12c2d70f19 | 79 | } |
Remi95 | 2:6d12c2d70f19 | 80 | void tourner_droite(char Vit) { |
Remi95 | 1:5830b7d6a985 | 81 | emiss(0,Vit); |
Remi95 | 1:5830b7d6a985 | 82 | emiss(5,Vit); |
Remi95 | 2:6d12c2d70f19 | 83 | wait(0.125); |
Remi95 | 1:5830b7d6a985 | 84 | emiss(0,0); |
Remi95 | 1:5830b7d6a985 | 85 | emiss(5,0); |
Remi95 | 1:5830b7d6a985 | 86 | } |
Remi95 | 2:6d12c2d70f19 | 87 | void tourner_gauche(char Vit) { |
Remi95 | 1:5830b7d6a985 | 88 | emiss(1,Vit); |
Remi95 | 1:5830b7d6a985 | 89 | emiss(4,Vit); |
Remi95 | 2:6d12c2d70f19 | 90 | wait(0.125); |
Remi95 | 1:5830b7d6a985 | 91 | emiss(1,0); |
Remi95 | 1:5830b7d6a985 | 92 | emiss(4,0); |
Remi95 | 1:5830b7d6a985 | 93 | } |
Remi95 | 2:6d12c2d70f19 | 94 | void demi_tour_droite(char Vit) { |
Remi95 | 3:0b19b5b7c3a4 | 95 | myVirageDroite(Vit,180); |
Remi95 | 1:5830b7d6a985 | 96 | } |
Remi95 | 2:6d12c2d70f19 | 97 | void demi_tour_gauche(char Vit) { |
Remi95 | 3:0b19b5b7c3a4 | 98 | myVirageGauche(Vit,180); |
Remi95 | 1:5830b7d6a985 | 99 | } |
Remi95 | 3:0b19b5b7c3a4 | 100 | |
Remi95 | 0:99cb324a2329 | 101 | int main (){ |
Remi95 | 1:5830b7d6a985 | 102 | while (1){ |
Remi95 | 3:0b19b5b7c3a4 | 103 | Led (1,1,1,0); |
Remi95 | 2:6d12c2d70f19 | 104 | S2=0; |
Remi95 | 2:6d12c2d70f19 | 105 | wait(1); |
Remi95 | 3:0b19b5b7c3a4 | 106 | demi_tour_droite(100); |
Remi95 | 2:6d12c2d70f19 | 107 | Led (1,1,0,0); |
Remi95 | 2:6d12c2d70f19 | 108 | wait(1); |
Remi95 | 3:0b19b5b7c3a4 | 109 | demi_tour_gauche(70); |
Remi95 | 1:5830b7d6a985 | 110 | } |
Remi95 | 0:99cb324a2329 | 111 | } |