TP_presa

Dependencies:   SRF08 Servo mbed

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?

UserRevisionLine numberNew 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 }