TP_presa

Dependencies:   SRF08 Servo mbed

Committer:
Remi95
Date:
Mon Jul 03 09:04:23 2017 +0000
Revision:
8:ea8db9aacdfb
Parent:
7:7d3c6326cbc3
Child:
9:53a6a4e0db9f
save;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Remi95 0:99cb324a2329 1 #include "mbed.h"
Remi95 6:d61052f4ab1e 2 #include "CAR.h"
Remi95 5:8c2101d3ecef 3 #include "SRF08.h"
Remi95 7:7d3c6326cbc3 4 #include "Servo.h"
Remi95 0:99cb324a2329 5
Remi95 7:7d3c6326cbc3 6 DigitalOut S2 (p11);
Remi95 7:7d3c6326cbc3 7 AnalogIn opt (p15);
Remi95 6:d61052f4ab1e 8 Serial bth(p13,p14);
Remi95 7:7d3c6326cbc3 9 //Serial sbt(p9, p10); // tx, rx
Remi95 7:7d3c6326cbc3 10 SRF08 srf08(p28, p27, 0xE0);
Remi95 7:7d3c6326cbc3 11 //Servo myservo(p26);
Remi95 7:7d3c6326cbc3 12
Remi95 7:7d3c6326cbc3 13 float aMes[]= {0,0,0};
Remi95 7:7d3c6326cbc3 14 PwmOut servo(p26);
Remi95 7:7d3c6326cbc3 15 int iState = 1;
Remi95 7:7d3c6326cbc3 16 bool bState =0;
Remi95 7:7d3c6326cbc3 17
Remi95 7:7d3c6326cbc3 18 char Adress = 128;
Remi95 7:7d3c6326cbc3 19 char action;
Remi95 6:d61052f4ab1e 20 CAR robot(p9,p10);
Remi95 6:d61052f4ab1e 21 //CAR robot;
Remi95 4:aafb0016ed84 22
Remi95 7:7d3c6326cbc3 23 void act()
Remi95 7:7d3c6326cbc3 24 {
Remi95 7:7d3c6326cbc3 25 action=bth.getc();
Remi95 8:ea8db9aacdfb 26 bState = 0;
Remi95 7:7d3c6326cbc3 27 switch(action) {
Remi95 7:7d3c6326cbc3 28 case 'a':
Remi95 7:7d3c6326cbc3 29 bth.printf("avancer\n\r");
Remi95 7:7d3c6326cbc3 30 robot.avancer(70);
Remi95 7:7d3c6326cbc3 31 break;
Remi95 7:7d3c6326cbc3 32 case 's':
Remi95 7:7d3c6326cbc3 33 bth.printf("stop\n\r");
Remi95 7:7d3c6326cbc3 34 robot.arreter();
Remi95 7:7d3c6326cbc3 35 break;
Remi95 7:7d3c6326cbc3 36 case 'u':
Remi95 7:7d3c6326cbc3 37 bth.printf("arret\n\r");
Remi95 7:7d3c6326cbc3 38 robot.arreter();
Remi95 7:7d3c6326cbc3 39 break;
Remi95 7:7d3c6326cbc3 40 case 'r':
Remi95 7:7d3c6326cbc3 41 bth.printf("reculer\n\r");
Remi95 7:7d3c6326cbc3 42 robot.reculer(70);
Remi95 7:7d3c6326cbc3 43 break;
Remi95 7:7d3c6326cbc3 44 case 'd':
Remi95 7:7d3c6326cbc3 45 bth.printf("droite\n\r");
Remi95 7:7d3c6326cbc3 46 robot.tourner_droite(70);
Remi95 7:7d3c6326cbc3 47 break;
Remi95 7:7d3c6326cbc3 48 case 'g':
Remi95 7:7d3c6326cbc3 49 bth.printf("gauche\n\r");
Remi95 7:7d3c6326cbc3 50 robot.tourner_gauche(70);
Remi95 7:7d3c6326cbc3 51 break;
Remi95 7:7d3c6326cbc3 52 case 'h':
Remi95 7:7d3c6326cbc3 53 bth.printf("demi tour horaire\n\r");
Remi95 7:7d3c6326cbc3 54 robot.demi_tour_droite(100);
Remi95 7:7d3c6326cbc3 55 break;
Remi95 7:7d3c6326cbc3 56 case'l':
Remi95 7:7d3c6326cbc3 57 bth.printf("demi tour left\n\r");
Remi95 7:7d3c6326cbc3 58 robot.demi_tour_gauche(100);
Remi95 7:7d3c6326cbc3 59 break;
Remi95 7:7d3c6326cbc3 60 case 'o':
Remi95 7:7d3c6326cbc3 61 bState = !bState;
Remi95 8:ea8db9aacdfb 62 iState = 0;
Remi95 7:7d3c6326cbc3 63 break;
Remi95 7:7d3c6326cbc3 64 }
Remi95 7:7d3c6326cbc3 65 action='0';
Remi95 7:7d3c6326cbc3 66 }
Remi95 7:7d3c6326cbc3 67
Remi95 7:7d3c6326cbc3 68
Remi95 7:7d3c6326cbc3 69 ////////////////////////////////////////////
Remi95 7:7d3c6326cbc3 70
Remi95 7:7d3c6326cbc3 71 int main()
Remi95 7:7d3c6326cbc3 72 {
Remi95 7:7d3c6326cbc3 73 S2=0;
Remi95 7:7d3c6326cbc3 74 int visu;
Remi95 7:7d3c6326cbc3 75 bth.baud(57600);
Remi95 7:7d3c6326cbc3 76 bth.attach(&act);
Remi95 8:ea8db9aacdfb 77 bState = 1;
Remi95 7:7d3c6326cbc3 78 servo.period(0.02);
Remi95 7:7d3c6326cbc3 79 while(1) {
Remi95 7:7d3c6326cbc3 80 if (bState) {
Remi95 7:7d3c6326cbc3 81 switch (iState) {
Remi95 7:7d3c6326cbc3 82
Remi95 7:7d3c6326cbc3 83 case 0:
Remi95 7:7d3c6326cbc3 84
Remi95 8:ea8db9aacdfb 85 if (srf08.read() <40 and srf08.read() >0 ) {
Remi95 7:7d3c6326cbc3 86 iState = 1;
Remi95 7:7d3c6326cbc3 87 bth.printf("stop\n\r");
Remi95 7:7d3c6326cbc3 88 robot.arreter();
Remi95 7:7d3c6326cbc3 89 } else {
Remi95 7:7d3c6326cbc3 90 servo.write(0.08);
Remi95 7:7d3c6326cbc3 91 bth.printf("avancer\n\r");
Remi95 7:7d3c6326cbc3 92 robot.avancer(50);
Remi95 7:7d3c6326cbc3 93 }
Remi95 6:d61052f4ab1e 94 break;
Remi95 7:7d3c6326cbc3 95
Remi95 7:7d3c6326cbc3 96 case 1 :
Remi95 7:7d3c6326cbc3 97 servo.write(0.05);
Remi95 8:ea8db9aacdfb 98 wait (0.4);
Remi95 7:7d3c6326cbc3 99 aMes[1] = srf08.read();
Remi95 7:7d3c6326cbc3 100
Remi95 8:ea8db9aacdfb 101 servo.write(0.095);
Remi95 8:ea8db9aacdfb 102 wait (0.4);
Remi95 7:7d3c6326cbc3 103 aMes[2]= srf08.read();
Remi95 7:7d3c6326cbc3 104
Remi95 7:7d3c6326cbc3 105 servo.write(0.08);
Remi95 8:ea8db9aacdfb 106
Remi95 8:ea8db9aacdfb 107 bth.printf("capt 1 : %.2f capt 2 : %.2f",aMes[1], aMes[2]);
Remi95 8:ea8db9aacdfb 108 //if (aMes[1] <80 and aMes[1] >0)
Remi95 8:ea8db9aacdfb 109 if (aMes[2]>40) {
Remi95 7:7d3c6326cbc3 110 action = 'g';
Remi95 7:7d3c6326cbc3 111 bth.printf("gauche\n\r");
Remi95 7:7d3c6326cbc3 112 robot.tourner_gauche(70);
Remi95 8:ea8db9aacdfb 113 //} else if (aMes[2] <80 and aMes[2] >0) {
Remi95 8:ea8db9aacdfb 114 } else if (aMes[1]>40) {
Remi95 7:7d3c6326cbc3 115 bth.printf("droite\n\r");
Remi95 7:7d3c6326cbc3 116 robot.tourner_droite(70);
Remi95 7:7d3c6326cbc3 117 } else {
Remi95 7:7d3c6326cbc3 118 bth.printf("demi tour horaire\n\r");
Remi95 7:7d3c6326cbc3 119 robot.demi_tour_droite(100);
Remi95 7:7d3c6326cbc3 120 }
Remi95 7:7d3c6326cbc3 121 iState = 0;
Remi95 6:d61052f4ab1e 122 break;
Remi95 6:d61052f4ab1e 123 }
Remi95 6:d61052f4ab1e 124 }
Remi95 7:7d3c6326cbc3 125 visu=opt.read_u16();
Remi95 7:7d3c6326cbc3 126 visu=422006/(visu-3475);
Remi95 7:7d3c6326cbc3 127 bth.printf("Measured range : %.2f cm\n",srf08.read());
Remi95 6:d61052f4ab1e 128 }
Remi95 7:7d3c6326cbc3 129 }
Remi95 7:7d3c6326cbc3 130