Control a robot via a web browser, by routing the control signals via a web server.
Dependencies: HTTPClient Motordriver WiflyInterface mbed
main.cpp@0:d1a9db1a5652, 2012-10-12 (annotated)
- Committer:
- angalo3
- Date:
- Fri Oct 12 16:53:58 2012 +0000
- Revision:
- 0:d1a9db1a5652
Final
Who changed what in which revision?
User | Revision | Line number | New 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 |