TP_presa

Dependencies:   SRF08 Servo mbed

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?

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