Xbee robot with telemetry, robot code
Dependencies: 4DGL-uLCD-SE DebounceIn Motor mbed
Fork of LED_RTOS by
main.cpp@2:c7c1c5e42767, 2016-04-29 (annotated)
- Committer:
- yhbyhb4433
- Date:
- Fri Apr 29 19:39:06 2016 +0000
- Revision:
- 2:c7c1c5e42767
- Parent:
- 1:5235d57bb8d3
Xbee robot with telemetry, robot code
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yhbyhb4433 | 1:5235d57bb8d3 | 1 | // basic xbee example |
yhbyhb4433 | 1:5235d57bb8d3 | 2 | // - take chars from the terminal, push them out xbee1 |
yhbyhb4433 | 1:5235d57bb8d3 | 3 | // - listen on xbee2, and print value + 1 to terminal |
yhbyhb4433 | 1:5235d57bb8d3 | 4 | |
4180_1 | 0:9439ccb44422 | 5 | #include "mbed.h" |
yhbyhb4433 | 1:5235d57bb8d3 | 6 | #include "Motor.h" |
yhbyhb4433 | 1:5235d57bb8d3 | 7 | Motor B(p21,p22,p23);//wd, rev, can brake right motor |
yhbyhb4433 | 1:5235d57bb8d3 | 8 | Motor A(p26,p24,p25);//wm, fwd, rev, can brake left motir |
yhbyhb4433 | 1:5235d57bb8d3 | 9 | |
yhbyhb4433 | 1:5235d57bb8d3 | 10 | Serial xbee2(p9, p10); |
yhbyhb4433 | 1:5235d57bb8d3 | 11 | DigitalOut rst2(p11); |
4180_1 | 0:9439ccb44422 | 12 | |
yhbyhb4433 | 1:5235d57bb8d3 | 13 | |
yhbyhb4433 | 1:5235d57bb8d3 | 14 | Serial pc(USBTX, USBRX); |
yhbyhb4433 | 1:5235d57bb8d3 | 15 | DigitalOut led1(LED1); |
yhbyhb4433 | 1:5235d57bb8d3 | 16 | DigitalOut led2(LED2); |
yhbyhb4433 | 1:5235d57bb8d3 | 17 | DigitalOut led3(LED3); |
yhbyhb4433 | 2:c7c1c5e42767 | 18 | DigitalOut led4(LED4); |
yhbyhb4433 | 1:5235d57bb8d3 | 19 | |
yhbyhb4433 | 1:5235d57bb8d3 | 20 | AnalogIn battery(p20); |
yhbyhb4433 | 1:5235d57bb8d3 | 21 | AnalogIn sensor(p18); |
yhbyhb4433 | 1:5235d57bb8d3 | 22 | |
yhbyhb4433 | 2:c7c1c5e42767 | 23 | float s=0.8 ;//speed of forward and backward, set to 0.8 for a medium speed |
4180_1 | 0:9439ccb44422 | 24 | |
yhbyhb4433 | 1:5235d57bb8d3 | 25 | int main() |
yhbyhb4433 | 1:5235d57bb8d3 | 26 | { |
yhbyhb4433 | 2:c7c1c5e42767 | 27 | rst2 = 0; //reset Xbee to initialize |
yhbyhb4433 | 1:5235d57bb8d3 | 28 | wait_ms(100); |
yhbyhb4433 | 1:5235d57bb8d3 | 29 | rst2 = 1; |
yhbyhb4433 | 2:c7c1c5e42767 | 30 | while (1) |
yhbyhb4433 | 2:c7c1c5e42767 | 31 | { |
yhbyhb4433 | 1:5235d57bb8d3 | 32 | int b; |
yhbyhb4433 | 1:5235d57bb8d3 | 33 | b = xbee2.getc(); |
yhbyhb4433 | 1:5235d57bb8d3 | 34 | if (b==11) { //move forward |
yhbyhb4433 | 1:5235d57bb8d3 | 35 | led1 = 1; |
yhbyhb4433 | 1:5235d57bb8d3 | 36 | A.speed(s); |
yhbyhb4433 | 1:5235d57bb8d3 | 37 | B.speed(s); |
yhbyhb4433 | 1:5235d57bb8d3 | 38 | } else if (b==12) { // move backward |
yhbyhb4433 | 1:5235d57bb8d3 | 39 | led2 = 1; |
yhbyhb4433 | 1:5235d57bb8d3 | 40 | A.speed(-s); |
yhbyhb4433 | 1:5235d57bb8d3 | 41 | B.speed(-s); |
yhbyhb4433 | 1:5235d57bb8d3 | 42 | } else if (b==13) { // move left |
yhbyhb4433 | 1:5235d57bb8d3 | 43 | led3 = 1; |
yhbyhb4433 | 1:5235d57bb8d3 | 44 | A.speed(s+0.2); |
yhbyhb4433 | 1:5235d57bb8d3 | 45 | B.speed(s-0.2); |
yhbyhb4433 | 1:5235d57bb8d3 | 46 | } else if (b==14) { // move right |
yhbyhb4433 | 1:5235d57bb8d3 | 47 | led4 = 1; |
yhbyhb4433 | 1:5235d57bb8d3 | 48 | A.speed(s-0.2); |
yhbyhb4433 | 1:5235d57bb8d3 | 49 | B.speed(s+0.2); |
yhbyhb4433 | 1:5235d57bb8d3 | 50 | } else if (b==15) { |
yhbyhb4433 | 1:5235d57bb8d3 | 51 | |
yhbyhb4433 | 2:c7c1c5e42767 | 52 | xbee2.putc(int(float(232)*battery)); |
yhbyhb4433 | 1:5235d57bb8d3 | 53 | } else if (b==16) { |
yhbyhb4433 | 2:c7c1c5e42767 | 54 | xbee2.putc(int(float(232)*sensor)); |
yhbyhb4433 | 1:5235d57bb8d3 | 55 | |
yhbyhb4433 | 1:5235d57bb8d3 | 56 | } else if (b==0){ |
yhbyhb4433 | 2:c7c1c5e42767 | 57 | // stops the motor if no command |
yhbyhb4433 | 1:5235d57bb8d3 | 58 | A.speed(0); |
yhbyhb4433 | 1:5235d57bb8d3 | 59 | B.speed(0); |
4180_1 | 0:9439ccb44422 | 60 | } |
yhbyhb4433 | 1:5235d57bb8d3 | 61 | |
yhbyhb4433 | 1:5235d57bb8d3 | 62 | wait(0.01); |
yhbyhb4433 | 2:c7c1c5e42767 | 63 | led1=led2=led3=led4=0; //reset leds |
4180_1 | 0:9439ccb44422 | 64 | } |
4180_1 | 0:9439ccb44422 | 65 | |
yhbyhb4433 | 1:5235d57bb8d3 | 66 | } |