TP_presa
Dependencies: SRF08 Servo mbed
main.cpp@3:0b19b5b7c3a4, 2017-05-31 (annotated)
- Committer:
- Remi95
- Date:
- Wed May 31 18:35:50 2017 +0000
- Revision:
- 3:0b19b5b7c3a4
- Parent:
- 2:6d12c2d70f19
- Child:
- 4:aafb0016ed84
Ver.0.0.4
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 | 3:0b19b5b7c3a4 | 19 | int iCoefVirage=0.44; |
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 | 1:5830b7d6a985 | 32 | } |
Remi95 | 1:5830b7d6a985 | 33 | |
Remi95 | 2:6d12c2d70f19 | 34 | void forward(char Vit) { |
Remi95 | 2:6d12c2d70f19 | 35 | emiss(0,Vit); |
Remi95 | 2:6d12c2d70f19 | 36 | emiss(4,Vit); |
Remi95 | 0:99cb324a2329 | 37 | } |
Remi95 | 3:0b19b5b7c3a4 | 38 | void myVirageGauche (char Vit , char Ang){ |
Remi95 | 3:0b19b5b7c3a4 | 39 | emiss(1,Vit); |
Remi95 | 3:0b19b5b7c3a4 | 40 | emiss(4,Vit); |
Remi95 | 3:0b19b5b7c3a4 | 41 | wait((Ang*iCoefVirage)/Vit); //Le coeficient 0.5 est a réler en fonction de la batterie et de la voiture. |
Remi95 | 3:0b19b5b7c3a4 | 42 | emiss(1,0); |
Remi95 | 3:0b19b5b7c3a4 | 43 | emiss(4,0); |
Remi95 | 3:0b19b5b7c3a4 | 44 | } |
Remi95 | 3:0b19b5b7c3a4 | 45 | void myVirageDroite (char Vit , char Ang){ |
Remi95 | 3:0b19b5b7c3a4 | 46 | emiss(0,Vit); |
Remi95 | 3:0b19b5b7c3a4 | 47 | emiss(5,Vit); |
Remi95 | 3:0b19b5b7c3a4 | 48 | wait((Ang*iCoefVirage)/Vit); |
Remi95 | 3:0b19b5b7c3a4 | 49 | emiss(1,0); |
Remi95 | 3:0b19b5b7c3a4 | 50 | emiss(4,0); |
Remi95 | 3:0b19b5b7c3a4 | 51 | } |
Remi95 | 2:6d12c2d70f19 | 52 | void avancer(char Vit) { |
Remi95 | 2:6d12c2d70f19 | 53 | int i=0; |
Remi95 | 2:6d12c2d70f19 | 54 | for(i; i<Vit ; i=i+(Vit/5));{ |
Remi95 | 2:6d12c2d70f19 | 55 | emiss(0,i); |
Remi95 | 2:6d12c2d70f19 | 56 | emiss(4,i); |
Remi95 | 2:6d12c2d70f19 | 57 | wait(0.1); |
Remi95 | 2:6d12c2d70f19 | 58 | } |
Remi95 | 0:99cb324a2329 | 59 | } |
Remi95 | 2:6d12c2d70f19 | 60 | void arreter(char Vit){ |
Remi95 | 2:6d12c2d70f19 | 61 | int i=Vit; |
Remi95 | 2:6d12c2d70f19 | 62 | for(i ; i>0;i=i-(Vit/5)){ |
Remi95 | 2:6d12c2d70f19 | 63 | emiss(0,i); |
Remi95 | 2:6d12c2d70f19 | 64 | emiss(4,i); |
Remi95 | 2:6d12c2d70f19 | 65 | wait(0.1);} |
Remi95 | 1:5830b7d6a985 | 66 | emiss(0,0); |
Remi95 | 1:5830b7d6a985 | 67 | emiss(4,0); |
Remi95 | 0:99cb324a2329 | 68 | } |
Remi95 | 2:6d12c2d70f19 | 69 | void arret_urgence(void) { |
Remi95 | 2:6d12c2d70f19 | 70 | emiss(0,0); |
Remi95 | 2:6d12c2d70f19 | 71 | emiss(4,0); |
Remi95 | 1:5830b7d6a985 | 72 | } |
Remi95 | 2:6d12c2d70f19 | 73 | void reculer(char Vit) { |
Remi95 | 2:6d12c2d70f19 | 74 | for(int i =0; i<Vit;i=i+5){ |
Remi95 | 2:6d12c2d70f19 | 75 | emiss(1,i); |
Remi95 | 2:6d12c2d70f19 | 76 | emiss(5,i); |
Remi95 | 2:6d12c2d70f19 | 77 | wait(0.1);} |
Remi95 | 2:6d12c2d70f19 | 78 | } |
Remi95 | 2:6d12c2d70f19 | 79 | void tourner_droite(char Vit) { |
Remi95 | 1:5830b7d6a985 | 80 | emiss(0,Vit); |
Remi95 | 1:5830b7d6a985 | 81 | emiss(5,Vit); |
Remi95 | 2:6d12c2d70f19 | 82 | wait(0.125); |
Remi95 | 1:5830b7d6a985 | 83 | emiss(0,0); |
Remi95 | 1:5830b7d6a985 | 84 | emiss(5,0); |
Remi95 | 1:5830b7d6a985 | 85 | } |
Remi95 | 2:6d12c2d70f19 | 86 | void tourner_gauche(char Vit) { |
Remi95 | 1:5830b7d6a985 | 87 | emiss(1,Vit); |
Remi95 | 1:5830b7d6a985 | 88 | emiss(4,Vit); |
Remi95 | 2:6d12c2d70f19 | 89 | wait(0.125); |
Remi95 | 1:5830b7d6a985 | 90 | emiss(1,0); |
Remi95 | 1:5830b7d6a985 | 91 | emiss(4,0); |
Remi95 | 1:5830b7d6a985 | 92 | } |
Remi95 | 2:6d12c2d70f19 | 93 | void demi_tour_droite(char Vit) { |
Remi95 | 3:0b19b5b7c3a4 | 94 | myVirageDroite(Vit,180); |
Remi95 | 1:5830b7d6a985 | 95 | } |
Remi95 | 2:6d12c2d70f19 | 96 | void demi_tour_gauche(char Vit) { |
Remi95 | 3:0b19b5b7c3a4 | 97 | myVirageGauche(Vit,180); |
Remi95 | 1:5830b7d6a985 | 98 | } |
Remi95 | 3:0b19b5b7c3a4 | 99 | |
Remi95 | 0:99cb324a2329 | 100 | int main (){ |
Remi95 | 1:5830b7d6a985 | 101 | while (1){ |
Remi95 | 3:0b19b5b7c3a4 | 102 | Led (1,1,1,0); |
Remi95 | 2:6d12c2d70f19 | 103 | S2=0; |
Remi95 | 2:6d12c2d70f19 | 104 | wait(1); |
Remi95 | 3:0b19b5b7c3a4 | 105 | demi_tour_droite(100); |
Remi95 | 2:6d12c2d70f19 | 106 | Led (1,1,0,0); |
Remi95 | 2:6d12c2d70f19 | 107 | wait(1); |
Remi95 | 3:0b19b5b7c3a4 | 108 | demi_tour_gauche(70); |
Remi95 | 1:5830b7d6a985 | 109 | } |
Remi95 | 0:99cb324a2329 | 110 | } |