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@8:c20dc0f4bc92, 2014-06-09 (annotated)
- Committer:
- bhakti08
- Date:
- Mon Jun 09 23:56:27 2014 +0000
- Revision:
- 8:c20dc0f4bc92
- Parent:
- 7:7f0988b083cb
LCD Print;
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 | 8:c20dc0f4bc92 | 4 | #include "C12832_lcd.h" |
bhakti08 | 4:d1e0e52f7f6b | 5 | #include <string.h> |
bhakti08 | 5:62cd993d82a6 | 6 | |
bhakti08 | 4:d1e0e52f7f6b | 7 | #define ECHO_SERVER_PORT 7 |
bhakti08 | 6:c9595d2630c7 | 8 | #define FWD 3 |
bhakti08 | 5:62cd993d82a6 | 9 | #define REV 4 |
bhakti08 | 6:c9595d2630c7 | 10 | #define LEFT 1 |
bhakti08 | 6:c9595d2630c7 | 11 | #define RIGHT 2 |
bhakti08 | 6:c9595d2630c7 | 12 | #define STOP 0 |
bhakti08 | 6:c9595d2630c7 | 13 | #define STRAIGHT_WHEEL 5 |
bhakti08 | 7:7f0988b083cb | 14 | #define servo_1 6 |
bhakti08 | 7:7f0988b083cb | 15 | #define servo_2 7 |
bhakti08 | 5:62cd993d82a6 | 16 | |
bhakti08 | 5:62cd993d82a6 | 17 | |
bhakti08 | 4:d1e0e52f7f6b | 18 | PwmOut servo(p22); |
bhakti08 | 4:d1e0e52f7f6b | 19 | DigitalOut dir(LED1); |
bhakti08 | 6:c9595d2630c7 | 20 | BusOut motor(p5,p6,p7); |
bhakti08 | 8:c20dc0f4bc92 | 21 | C12832_LCD lcd; |
bhakti08 | 8:c20dc0f4bc92 | 22 | Serial pc(USBTX,USBRX); |
bhakti08 | 5:62cd993d82a6 | 23 | //#define FWD 1 |
bhakti08 | 5:62cd993d82a6 | 24 | //#define REV 0 |
bhakti08 | 5:62cd993d82a6 | 25 | |
bhakti08 | 5:62cd993d82a6 | 26 | |
samux | 1:31e50fea8be8 | 27 | /* wifly interface: |
samux | 1:31e50fea8be8 | 28 | * - p9 and p10 are for the serial communication |
samux | 1:31e50fea8be8 | 29 | * - p19 is for the reset pin |
samux | 1:31e50fea8be8 | 30 | * - p26 is for the connection status |
samux | 1:31e50fea8be8 | 31 | * - "mbed" is the ssid of the network |
samux | 1:31e50fea8be8 | 32 | * - "password" is the password |
samux | 1:31e50fea8be8 | 33 | * - WPA is the security |
samux | 1:31e50fea8be8 | 34 | */ |
avnisha | 3:034dbd0b2002 | 35 | //apps board |
bhakti08 | 4:d1e0e52f7f6b | 36 | WiflyInterface wifly(p9, p10, p30, p29, "MY_WIFI", "", NONE); |
bhakti08 | 5:62cd993d82a6 | 37 | |
avnisha | 3:034dbd0b2002 | 38 | //pololu |
bhakti08 | 4:d1e0e52f7f6b | 39 | //WiflyInterface wifly(p28, p27, p26, NC, "iotlab", "42F67YxLX4AawRdcj", WPA); |
bhakti08 | 5:62cd993d82a6 | 40 | |
samux | 1:31e50fea8be8 | 41 | int main() { |
avnisha | 3:034dbd0b2002 | 42 | |
samux | 1:31e50fea8be8 | 43 | wifly.init(); //Use DHCP |
bhakti08 | 4:d1e0e52f7f6b | 44 | printf("1\r\n"); |
samux | 1:31e50fea8be8 | 45 | while (!wifly.connect()); |
bhakti08 | 8:c20dc0f4bc92 | 46 | lcd.printf("IP Address is %s\n\r", wifly.getIPAddress()); |
bhakti08 | 5:62cd993d82a6 | 47 | |
bhakti08 | 4:d1e0e52f7f6b | 48 | TCPSocketServer server; |
bhakti08 | 4:d1e0e52f7f6b | 49 | |
bhakti08 | 4:d1e0e52f7f6b | 50 | server.bind(ECHO_SERVER_PORT); |
bhakti08 | 4:d1e0e52f7f6b | 51 | server.listen(); |
bhakti08 | 8:c20dc0f4bc92 | 52 | lcd.cls(); |
bhakti08 | 8:c20dc0f4bc92 | 53 | lcd.printf("\nWait for new connection...\n"); |
bhakti08 | 4:d1e0e52f7f6b | 54 | TCPSocketConnection client; |
bhakti08 | 4:d1e0e52f7f6b | 55 | server.accept(client); |
bhakti08 | 8:c20dc0f4bc92 | 56 | lcd.locate(0,20); |
bhakti08 | 8:c20dc0f4bc92 | 57 | lcd.printf("Server accept\r\n"); |
bhakti08 | 6:c9595d2630c7 | 58 | |
bhakti08 | 4:d1e0e52f7f6b | 59 | char buffer[256]; |
bhakti08 | 4:d1e0e52f7f6b | 60 | servo.period_us(50); |
bhakti08 | 5:62cd993d82a6 | 61 | motor = STOP; |
bhakti08 | 4:d1e0e52f7f6b | 62 | while (true) { |
bhakti08 | 5:62cd993d82a6 | 63 | //if (client.available()){ |
bhakti08 | 5:62cd993d82a6 | 64 | int n = client.receive(buffer, sizeof(buffer)); |
bhakti08 | 5:62cd993d82a6 | 65 | if (n <= 0) continue; |
bhakti08 | 5:62cd993d82a6 | 66 | buffer[n] = 0; |
bhakti08 | 8:c20dc0f4bc92 | 67 | pc.printf("String is : %s\r\n",buffer); |
bhakti08 | 5:62cd993d82a6 | 68 | |
bhakti08 | 5:62cd993d82a6 | 69 | client.send_all(buffer, n); |
bhakti08 | 5:62cd993d82a6 | 70 | if (!(strcmp (buffer, "w"))) |
bhakti08 | 5:62cd993d82a6 | 71 | motor = FWD; |
bhakti08 | 5:62cd993d82a6 | 72 | else if (!(strcmp(buffer,"x"))) |
bhakti08 | 5:62cd993d82a6 | 73 | motor = REV; |
bhakti08 | 5:62cd993d82a6 | 74 | else if (!(strcmp(buffer,"z"))) |
bhakti08 | 5:62cd993d82a6 | 75 | motor = STRAIGHT_WHEEL; |
bhakti08 | 5:62cd993d82a6 | 76 | else if (!(strcmp(buffer,"d"))) |
bhakti08 | 5:62cd993d82a6 | 77 | motor = RIGHT; |
bhakti08 | 5:62cd993d82a6 | 78 | else if (!(strcmp(buffer,"a"))) |
bhakti08 | 5:62cd993d82a6 | 79 | motor = LEFT; |
bhakti08 | 5:62cd993d82a6 | 80 | else if (!(strcmp(buffer,"s"))) |
bhakti08 | 5:62cd993d82a6 | 81 | motor = STOP; |
bhakti08 | 7:7f0988b083cb | 82 | else if (!(strcmp(buffer,"o"))) |
bhakti08 | 7:7f0988b083cb | 83 | motor = servo_1; |
bhakti08 | 7:7f0988b083cb | 84 | else if (!(strcmp(buffer,"p"))) |
bhakti08 | 7:7f0988b083cb | 85 | motor = servo_2; |
bhakti08 | 5:62cd993d82a6 | 86 | //} |
bhakti08 | 4:d1e0e52f7f6b | 87 | servo.pulsewidth_us(10); |
bhakti08 | 4:d1e0e52f7f6b | 88 | wait_us(1); |
avnisha | 3:034dbd0b2002 | 89 | } |
bhakti08 | 5:62cd993d82a6 | 90 | } |