remoteContolledRobot via Bluetooth HC06

Dependencies:   PWMOut Servo mbed

Committer:
9acem
Date:
Wed Apr 12 17:01:17 2017 +0000
Revision:
0:216ced19d510
remote controlled robot bluetooth

Who changed what in which revision?

UserRevisionLine numberNew contents of line
9acem 0:216ced19d510 1 #include "mbed.h"
9acem 0:216ced19d510 2 #include "Servo.h"
9acem 0:216ced19d510 3 Serial bt(D10,D2); // rx BT,tx BT
9acem 0:216ced19d510 4
9acem 0:216ced19d510 5 Servo outil(D3);
9acem 0:216ced19d510 6 Servo porte(D13); //D4 twali D13
9acem 0:216ced19d510 7 Servo pivot(D5);
9acem 0:216ced19d510 8 PwmOut avd(D7); //in 1
9acem 0:216ced19d510 9 PwmOut ard(D6); //in 2
9acem 0:216ced19d510 10 PwmOut avg(D8); //in 3
9acem 0:216ced19d510 11 PwmOut arg(D9); //in 4
9acem 0:216ced19d510 12
9acem 0:216ced19d510 13
9acem 0:216ced19d510 14
9acem 0:216ced19d510 15
9acem 0:216ced19d510 16 void avancer()
9acem 0:216ced19d510 17 {
9acem 0:216ced19d510 18 avd=1.0;
9acem 0:216ced19d510 19 ard=0;
9acem 0:216ced19d510 20 avg=1.0;
9acem 0:216ced19d510 21 arg=0;
9acem 0:216ced19d510 22 }
9acem 0:216ced19d510 23 void avancerL()
9acem 0:216ced19d510 24 {
9acem 0:216ced19d510 25 avd=0.5;
9acem 0:216ced19d510 26 ard=0;
9acem 0:216ced19d510 27 avg=0.5;
9acem 0:216ced19d510 28 arg=0;
9acem 0:216ced19d510 29 }
9acem 0:216ced19d510 30 void reculer()
9acem 0:216ced19d510 31 {
9acem 0:216ced19d510 32 avd=0;
9acem 0:216ced19d510 33 ard=1.0;
9acem 0:216ced19d510 34 avg=0;
9acem 0:216ced19d510 35 arg=1.0;
9acem 0:216ced19d510 36 }
9acem 0:216ced19d510 37 void reculerL()
9acem 0:216ced19d510 38 {
9acem 0:216ced19d510 39 avd=0;
9acem 0:216ced19d510 40 ard=0.5;
9acem 0:216ced19d510 41 avg=0;
9acem 0:216ced19d510 42 arg=0.5;
9acem 0:216ced19d510 43 }
9acem 0:216ced19d510 44 void droite()
9acem 0:216ced19d510 45 {
9acem 0:216ced19d510 46 avd=0;
9acem 0:216ced19d510 47 ard=0;
9acem 0:216ced19d510 48 avg=1.0;
9acem 0:216ced19d510 49 arg=0;
9acem 0:216ced19d510 50 }
9acem 0:216ced19d510 51 void droitesp()
9acem 0:216ced19d510 52 {
9acem 0:216ced19d510 53 avd=0;
9acem 0:216ced19d510 54 ard=1.0;
9acem 0:216ced19d510 55 avg=1.0;
9acem 0:216ced19d510 56 arg=0;
9acem 0:216ced19d510 57 }
9acem 0:216ced19d510 58 void gauche()
9acem 0:216ced19d510 59 {
9acem 0:216ced19d510 60 avd=1.0;
9acem 0:216ced19d510 61 ard=0;
9acem 0:216ced19d510 62 avg=0;
9acem 0:216ced19d510 63 arg=0;
9acem 0:216ced19d510 64 }
9acem 0:216ced19d510 65 void gauchesp()
9acem 0:216ced19d510 66 {
9acem 0:216ced19d510 67 avd=1.0;
9acem 0:216ced19d510 68 ard=0;
9acem 0:216ced19d510 69 avg=0;
9acem 0:216ced19d510 70 arg=1.0;
9acem 0:216ced19d510 71 }
9acem 0:216ced19d510 72 void stoop()
9acem 0:216ced19d510 73 {
9acem 0:216ced19d510 74 avd=0;
9acem 0:216ced19d510 75 ard=0;
9acem 0:216ced19d510 76 avg=0;
9acem 0:216ced19d510 77 arg=0;
9acem 0:216ced19d510 78
9acem 0:216ced19d510 79 }
9acem 0:216ced19d510 80
9acem 0:216ced19d510 81 int main() {
9acem 0:216ced19d510 82 bt.baud(9600);
9acem 0:216ced19d510 83 porte.calibrate(0.00095, 90.0); // Calibrate the servo
9acem 0:216ced19d510 84 outil.calibrate(0.00095, 90.0); // Calibrate the servo
9acem 0:216ced19d510 85 pivot.calibrate(0.00095, 90.0); // Calibrate the servo
9acem 0:216ced19d510 86 /*initialisation des servos*/
9acem 0:216ced19d510 87 porte.write(0.15);//porte en haut
9acem 0:216ced19d510 88 pivot.write(0.8); //outil avant rotation position initial
9acem 0:216ced19d510 89 wait(1); outil.write(0.92); //outil en bas D11
9acem 0:216ced19d510 90
9acem 0:216ced19d510 91 while(1)
9acem 0:216ced19d510 92 {
9acem 0:216ced19d510 93 //For reading and writing data from/to bluetooth HC-06
9acem 0:216ced19d510 94 //check if bluetooth is readable and execute commands to toggle LED
9acem 0:216ced19d510 95 if (bt.readable())
9acem 0:216ced19d510 96 {
9acem 0:216ced19d510 97 char input_key= bt.putc(bt.getc());
9acem 0:216ced19d510 98
9acem 0:216ced19d510 99 switch (input_key)
9acem 0:216ced19d510 100 {
9acem 0:216ced19d510 101
9acem 0:216ced19d510 102
9acem 0:216ced19d510 103 case 'A' : pivot.write(0.8); //outil avant rotation position initial pivot.write(0.8)
9acem 0:216ced19d510 104 wait(1); outil.write(0.92); //outil en bas D11
9acem 0:216ced19d510 105 break;
9acem 0:216ced19d510 106 case 'B' : outil.write(0.35);// outil en: haut outil.write(0.54);
9acem 0:216ced19d510 107 wait(1); pivot.write(0.38);// outil pivoté 90°: pivot.write(0.38)
9acem 0:216ced19d510 108 break;
9acem 0:216ced19d510 109 case '6' : porte.write(0.15); //porte en haut
9acem 0:216ced19d510 110 break;
9acem 0:216ced19d510 111 case '5' : porte.write(0.83);// porte en bas
9acem 0:216ced19d510 112 break;
9acem 0:216ced19d510 113 case 'U': avancer();break;
9acem 0:216ced19d510 114 case '1': avancerL (); break;
9acem 0:216ced19d510 115 case 'D': reculer ();break;
9acem 0:216ced19d510 116 case '3': reculerL(); break;
9acem 0:216ced19d510 117 case '8': droitesp ();break;
9acem 0:216ced19d510 118 case '7': gauchesp ();break;
9acem 0:216ced19d510 119 case 'R': droite();break;
9acem 0:216ced19d510 120 case 'L': gauche() ;break;
9acem 0:216ced19d510 121 case 'S': stoop(); break;
9acem 0:216ced19d510 122 default : stoop();break;
9acem 0:216ced19d510 123 }
9acem 0:216ced19d510 124 }
9acem 0:216ced19d510 125
9acem 0:216ced19d510 126 }
9acem 0:216ced19d510 127 }