Xbee robot with telemetry, robot code

Dependencies:   4DGL-uLCD-SE DebounceIn Motor mbed

Fork of LED_RTOS by jim hamblen

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?

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