This program is used to control the car remotely via telnet using wifi.
Dependencies: C12832_lcd WiflyInterface mbed
Fork of Mode-3_Remote_Control by
main.cpp@5:62cd993d82a6, 2014-06-06 (annotated)
- Committer:
- bhakti08
- Date:
- Fri Jun 06 23:47:18 2014 +0000
- Revision:
- 5:62cd993d82a6
- Parent:
- 4:d1e0e52f7f6b
- Child:
- 6:c9595d2630c7
Motor Control
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bhakti08 | 4:d1e0e52f7f6b | 1 | //This Program is used to turn the LED ON/OFF via telent (Wifly connected) |
samux | 1:31e50fea8be8 | 2 | #include "mbed.h" |
samux | 1:31e50fea8be8 | 3 | #include "WiflyInterface.h" |
bhakti08 | 4:d1e0e52f7f6b | 4 | #include <string.h> |
bhakti08 | 5:62cd993d82a6 | 5 | |
bhakti08 | 4:d1e0e52f7f6b | 6 | #define ECHO_SERVER_PORT 7 |
bhakti08 | 5:62cd993d82a6 | 7 | #define FWD 8 |
bhakti08 | 5:62cd993d82a6 | 8 | #define REV 4 |
bhakti08 | 5:62cd993d82a6 | 9 | #define LEFT 3 |
bhakti08 | 5:62cd993d82a6 | 10 | #define RIGHT 1 |
bhakti08 | 5:62cd993d82a6 | 11 | #define STOP 2 |
bhakti08 | 5:62cd993d82a6 | 12 | #define STRAIGHT_WHEEL 7 |
bhakti08 | 5:62cd993d82a6 | 13 | |
bhakti08 | 5:62cd993d82a6 | 14 | |
bhakti08 | 4:d1e0e52f7f6b | 15 | PwmOut servo(p22); |
bhakti08 | 4:d1e0e52f7f6b | 16 | DigitalOut dir(LED1); |
bhakti08 | 5:62cd993d82a6 | 17 | BusOut motor(p5,p6,p7,p8); |
bhakti08 | 5:62cd993d82a6 | 18 | |
bhakti08 | 5:62cd993d82a6 | 19 | //#define FWD 1 |
bhakti08 | 5:62cd993d82a6 | 20 | //#define REV 0 |
bhakti08 | 5:62cd993d82a6 | 21 | |
bhakti08 | 5:62cd993d82a6 | 22 | |
samux | 1:31e50fea8be8 | 23 | /* wifly interface: |
samux | 1:31e50fea8be8 | 24 | * - p9 and p10 are for the serial communication |
samux | 1:31e50fea8be8 | 25 | * - p19 is for the reset pin |
samux | 1:31e50fea8be8 | 26 | * - p26 is for the connection status |
samux | 1:31e50fea8be8 | 27 | * - "mbed" is the ssid of the network |
samux | 1:31e50fea8be8 | 28 | * - "password" is the password |
samux | 1:31e50fea8be8 | 29 | * - WPA is the security |
samux | 1:31e50fea8be8 | 30 | */ |
avnisha | 3:034dbd0b2002 | 31 | //apps board |
bhakti08 | 4:d1e0e52f7f6b | 32 | WiflyInterface wifly(p9, p10, p30, p29, "MY_WIFI", "", NONE); |
bhakti08 | 5:62cd993d82a6 | 33 | |
avnisha | 3:034dbd0b2002 | 34 | //pololu |
bhakti08 | 4:d1e0e52f7f6b | 35 | //WiflyInterface wifly(p28, p27, p26, NC, "iotlab", "42F67YxLX4AawRdcj", WPA); |
bhakti08 | 5:62cd993d82a6 | 36 | |
samux | 1:31e50fea8be8 | 37 | int main() { |
avnisha | 3:034dbd0b2002 | 38 | |
samux | 1:31e50fea8be8 | 39 | wifly.init(); //Use DHCP |
bhakti08 | 4:d1e0e52f7f6b | 40 | printf("1\r\n"); |
samux | 1:31e50fea8be8 | 41 | while (!wifly.connect()); |
samux | 1:31e50fea8be8 | 42 | printf("IP Address is %s\n\r", wifly.getIPAddress()); |
bhakti08 | 5:62cd993d82a6 | 43 | |
bhakti08 | 4:d1e0e52f7f6b | 44 | TCPSocketServer server; |
bhakti08 | 4:d1e0e52f7f6b | 45 | |
bhakti08 | 4:d1e0e52f7f6b | 46 | server.bind(ECHO_SERVER_PORT); |
bhakti08 | 4:d1e0e52f7f6b | 47 | server.listen(); |
bhakti08 | 5:62cd993d82a6 | 48 | |
bhakti08 | 4:d1e0e52f7f6b | 49 | printf("\nWait for new connection...\n"); |
bhakti08 | 4:d1e0e52f7f6b | 50 | TCPSocketConnection client; |
bhakti08 | 4:d1e0e52f7f6b | 51 | server.accept(client); |
bhakti08 | 5:62cd993d82a6 | 52 | |
bhakti08 | 4:d1e0e52f7f6b | 53 | char buffer[256]; |
bhakti08 | 4:d1e0e52f7f6b | 54 | servo.period_us(50); |
bhakti08 | 5:62cd993d82a6 | 55 | motor = STOP; |
bhakti08 | 4:d1e0e52f7f6b | 56 | while (true) { |
bhakti08 | 5:62cd993d82a6 | 57 | //if (client.available()){ |
bhakti08 | 5:62cd993d82a6 | 58 | int n = client.receive(buffer, sizeof(buffer)); |
bhakti08 | 5:62cd993d82a6 | 59 | if (n <= 0) continue; |
bhakti08 | 5:62cd993d82a6 | 60 | buffer[n] = 0; |
bhakti08 | 5:62cd993d82a6 | 61 | printf("String is : %s\r\n",buffer); |
bhakti08 | 5:62cd993d82a6 | 62 | |
bhakti08 | 5:62cd993d82a6 | 63 | client.send_all(buffer, n); |
bhakti08 | 5:62cd993d82a6 | 64 | if (!(strcmp (buffer, "w"))) |
bhakti08 | 5:62cd993d82a6 | 65 | motor = FWD; |
bhakti08 | 5:62cd993d82a6 | 66 | else if (!(strcmp(buffer,"x"))) |
bhakti08 | 5:62cd993d82a6 | 67 | motor = REV; |
bhakti08 | 5:62cd993d82a6 | 68 | else if (!(strcmp(buffer,"z"))) |
bhakti08 | 5:62cd993d82a6 | 69 | motor = STRAIGHT_WHEEL; |
bhakti08 | 5:62cd993d82a6 | 70 | else if (!(strcmp(buffer,"d"))) |
bhakti08 | 5:62cd993d82a6 | 71 | motor = RIGHT; |
bhakti08 | 5:62cd993d82a6 | 72 | else if (!(strcmp(buffer,"a"))) |
bhakti08 | 5:62cd993d82a6 | 73 | motor = LEFT; |
bhakti08 | 5:62cd993d82a6 | 74 | else if (!(strcmp(buffer,"s"))) |
bhakti08 | 5:62cd993d82a6 | 75 | motor = STOP; |
bhakti08 | 5:62cd993d82a6 | 76 | //} |
bhakti08 | 4:d1e0e52f7f6b | 77 | servo.pulsewidth_us(10); |
bhakti08 | 4:d1e0e52f7f6b | 78 | wait_us(1); |
avnisha | 3:034dbd0b2002 | 79 | } |
bhakti08 | 5:62cd993d82a6 | 80 | } |