![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
remoteContolledRobot via Bluetooth HC06
Dependencies: PWMOut Servo mbed
main.cpp@0:216ced19d510, 2017-04-12 (annotated)
- Committer:
- 9acem
- Date:
- Wed Apr 12 17:01:17 2017 +0000
- Revision:
- 0:216ced19d510
remote controlled robot bluetooth
Who changed what in which revision?
User | Revision | Line number | New 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 | } |