Control a robot via a web browser, by routing the control signals via a web server.

Dependencies:   HTTPClient Motordriver WiflyInterface mbed

Committer:
angalo3
Date:
Fri Oct 12 16:53:58 2012 +0000
Revision:
0:d1a9db1a5652
Final

Who changed what in which revision?

UserRevisionLine numberNew contents of line
angalo3 0:d1a9db1a5652 1 #include "mbed.h"
angalo3 0:d1a9db1a5652 2 #include "WiflyInterface.h"
angalo3 0:d1a9db1a5652 3 #include "motordriver.h"
angalo3 0:d1a9db1a5652 4 #include "HTTPClient.h"
angalo3 0:d1a9db1a5652 5 Serial pc(USBTX, USBRX);
angalo3 0:d1a9db1a5652 6 WiflyInterface wifly(p9, p10, p25, p26, "mbed", "password", WPA);
angalo3 0:d1a9db1a5652 7 HTTPClient http;
angalo3 0:d1a9db1a5652 8
angalo3 0:d1a9db1a5652 9 /* wifly object where:
angalo3 0:d1a9db1a5652 10 * - p9 and p10 are for the serial communication
angalo3 0:d1a9db1a5652 11 * - p25 is for the reset pin
angalo3 0:d1a9db1a5652 12 * - p26 is for the connection status
angalo3 0:d1a9db1a5652 13 * - "mbed" is the ssid of the network
angalo3 0:d1a9db1a5652 14 * - "password" is the password
angalo3 0:d1a9db1a5652 15 * - WPA is the security
angalo3 0:d1a9db1a5652 16 */
angalo3 0:d1a9db1a5652 17 DigitalOut f(LED1);
angalo3 0:d1a9db1a5652 18 DigitalOut b(LED2);
angalo3 0:d1a9db1a5652 19 DigitalOut l(LED3);
angalo3 0:d1a9db1a5652 20 DigitalOut r(LED4);
angalo3 0:d1a9db1a5652 21 Motor A(p22, p6, p5, 1); // pwm, fwd, rev, can brake
angalo3 0:d1a9db1a5652 22 Motor B(p21, p7, p8, 1); // pwm, fwd, rev, can brake
angalo3 0:d1a9db1a5652 23 int main() {
angalo3 0:d1a9db1a5652 24 wifly.init(); // use DHCP
angalo3 0:d1a9db1a5652 25 while (!wifly.connect());
angalo3 0:d1a9db1a5652 26 char buffer[2];
angalo3 0:d1a9db1a5652 27 buffer[1]='\0';
angalo3 0:d1a9db1a5652 28 char a;
angalo3 0:d1a9db1a5652 29 while(1)
angalo3 0:d1a9db1a5652 30 {
angalo3 0:d1a9db1a5652 31
angalo3 0:d1a9db1a5652 32 http.get("http://develop.jissjohn.com/netbot/command.txt", buffer,2);
angalo3 0:d1a9db1a5652 33
angalo3 0:d1a9db1a5652 34 printf("\n%s\n\r", buffer);
angalo3 0:d1a9db1a5652 35 a=buffer[0];
angalo3 0:d1a9db1a5652 36 if(a=='1')// Forward direction
angalo3 0:d1a9db1a5652 37 {f=1;
angalo3 0:d1a9db1a5652 38 A.speed(0.4);
angalo3 0:d1a9db1a5652 39 B.speed(0.4);
angalo3 0:d1a9db1a5652 40 wait(0.02);
angalo3 0:d1a9db1a5652 41 }
angalo3 0:d1a9db1a5652 42 else if(a=='5')//Reverse Direction
angalo3 0:d1a9db1a5652 43 {b=1;
angalo3 0:d1a9db1a5652 44 f=0;
angalo3 0:d1a9db1a5652 45 l=0;
angalo3 0:d1a9db1a5652 46 r=0;
angalo3 0:d1a9db1a5652 47 A.speed(-0.4);
angalo3 0:d1a9db1a5652 48 B.speed(-0.4);
angalo3 0:d1a9db1a5652 49 wait(0.02);
angalo3 0:d1a9db1a5652 50 }
angalo3 0:d1a9db1a5652 51 else if(a=='7')//Turn Left Direction
angalo3 0:d1a9db1a5652 52 { l=1;
angalo3 0:d1a9db1a5652 53 f=0;
angalo3 0:d1a9db1a5652 54 r=0;
angalo3 0:d1a9db1a5652 55 b=0;
angalo3 0:d1a9db1a5652 56 A.speed(-0.5);
angalo3 0:d1a9db1a5652 57 B.speed(0.5);
angalo3 0:d1a9db1a5652 58 wait(0.02);
angalo3 0:d1a9db1a5652 59 }
angalo3 0:d1a9db1a5652 60 else if(a=='3')//Turn Right Direction
angalo3 0:d1a9db1a5652 61 {r=1;
angalo3 0:d1a9db1a5652 62 f=0;
angalo3 0:d1a9db1a5652 63 l=0;
angalo3 0:d1a9db1a5652 64 b=0;
angalo3 0:d1a9db1a5652 65 A.speed(0.5);
angalo3 0:d1a9db1a5652 66 B.speed(-0.5);
angalo3 0:d1a9db1a5652 67 wait(0.02);
angalo3 0:d1a9db1a5652 68 }
angalo3 0:d1a9db1a5652 69 else
angalo3 0:d1a9db1a5652 70 {
angalo3 0:d1a9db1a5652 71
angalo3 0:d1a9db1a5652 72 A.stop(1);
angalo3 0:d1a9db1a5652 73 B.stop(1);
angalo3 0:d1a9db1a5652 74
angalo3 0:d1a9db1a5652 75 wait(1);
angalo3 0:d1a9db1a5652 76 A.coast();
angalo3 0:d1a9db1a5652 77 B.coast();
angalo3 0:d1a9db1a5652 78
angalo3 0:d1a9db1a5652 79 }
angalo3 0:d1a9db1a5652 80
angalo3 0:d1a9db1a5652 81 }
angalo3 0:d1a9db1a5652 82 wifly.disconnect();
angalo3 0:d1a9db1a5652 83 }
angalo3 0:d1a9db1a5652 84
angalo3 0:d1a9db1a5652 85