Final version

Dependencies:   mbed Servo Motor

Files at this revision

API Documentation at this revision

Comitter:
kzar
Date:
Tue Dec 11 21:22:30 2018 +0000
Parent:
2:15a043aa08ea
Commit message:
ye

Changed in this revision

Servo.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Servo.lib	Tue Dec 11 21:22:30 2018 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/simon/code/Servo/#36b69a7ced07
--- a/main.cpp	Sun Dec 09 18:27:35 2018 +0000
+++ b/main.cpp	Tue Dec 11 21:22:30 2018 +0000
@@ -3,18 +3,21 @@
 
 #include "mbed.h"
 #include "Motor.h"
+#include "Servo.h"
 
+// Construt serial objects
 Serial pc(USBTX, USBRX);
 Serial esp(p28, p27); // tx, rx
-
+// Construct motor objects
 Motor left_motor(p25, p6, p5);      // pwm, fwd, rev
 Motor right_motor(p26, p11, p10);    //pwm, fwd, rev
+// Construct servo objects
+Servo servo_x(p22);
+Servo servo_y(p23);
 
 // Standard Mbed LED definitions
 DigitalOut  led1(LED1);
 DigitalOut  led2(LED2);
-DigitalOut  led3(LED3);
-DigitalOut  led4(LED4);
 
 // things for sending/receiving data over serial
 volatile int tx_in=0;
@@ -39,30 +42,36 @@
 // buffers used for taking float values from string commands
 char lm_buff[8];
 char rm_buff[8];
-char lsv_buff[8];
-char rsv_buff[8];
+char xsv_buff[8];
+char ysv_buff[8];
 char* lm;
 char* rm;
-char* lsv;
-char* rsv;
+char* xsv;
 
 int main()
 {
+    // Change huzzah baud rate, wait for x amout of time, then set pc/esp.baud
     pc.baud(9600);
     esp.baud(9600);
-    led1=1,led2=0,led3=0, led4=0;
+    led1=0,led2=0;
+    left_motor.speed(0);
+    right_motor.speed(0);
+    servo_x = 0;
+    servo_y = 0;
     // Setup a serial interrupt function to receive data
     esp.attach(&Rx_interrupt, Serial::RxIrq);
     // Setup a serial interrupt function to transmit data
     esp.attach(&Tx_interrupt, Serial::TxIrq);
     // Start up the server
     startserver();
+    // Indicates the server is set up
+    led1 = 1;
 
     // Everything is interrupt driven, infinite loop
     while(1) {
         // Read data if its available
         if(DataRX==1) {
-            led1=!led1;
+            led2=!led2;
             getcmd();
             esp.attach(&Rx_interrupt, Serial::RxIrq);
         }
@@ -72,7 +81,7 @@
 // Reads and processes GET and POST web data
 void getcmd()
 {
-    wait_ms(200);
+    //wait_ms(100);
     esp.attach(NULL,Serial::RxIrq);
     DataRX=0;
     memset(webdata, '\0', sizeof(webdata));
@@ -85,33 +94,39 @@
     pc.printf(webdata);
     // Modify this to check for our commands
     // check web data for form information
-     lm = strstr(webdata, "left_motor=");
-     rm =  strstr(webdata, "right_motor=");
+     lm = strstr(webdata, "l=");
+     rm =  strstr(webdata, "r=");
+     xsv = strstr(webdata, "x=");
+    
     if(lm != NULL ) {
-        lm = lm + 11;
+        lm = lm + 2;
         for (int i = 0; i < 8; ++i){
-            if (lm != rm)
-                lm_buff[i] = lm[i];
-            else
-                break;
+            lm_buff[i] = lm[i];
         }
         // Convert the lm_buff to a float value and clear buffer
         left_motor.speed(atof(lm_buff));
         memset(lm_buff, '\0', sizeof(lm_buff));
     }
     if( rm != NULL) {
-        rm = rm + 12;
-        for (int i = 0; i < 8; ++i){
-            if (rm[i] != '>')
-                rm_buff[i] = rm[i];
-            else
-                break;
+        rm = rm + 2;
+        for (int i = 0; i < 8; ++i) {
+            rm_buff[i] = rm[i];
         }
         // Convert the rm_buff to a float value and clear buffer
         right_motor.speed(atof(rm_buff));
         memset(rm_buff, '\0', sizeof(rm_buff));
     }
     
+    if(xsv != NULL ) {
+        xsv = xsv + 2;
+        for (int i = 0; i < 8; ++i){
+            xsv_buff[i] = xsv[i];
+        }
+        // Convert the lm_buff to a float value and clear buffer
+        servo_x = atof(xsv_buff);
+        memset(xsv_buff, '\0', sizeof(xsv_buff));
+    }
+    
 }
 // Starts webserver
 void startserver()
@@ -120,27 +135,22 @@
     pc.printf("++++++++++ Resetting ESP ++++++++++\r\n");
     strcpy(cmdbuff,"node.restart()\r\n");
     SendCMD();
-    getreply();
-    wait(2);
-
+    wait(1);
     
     // Set up WiFi connection
     pc.printf("++++++++++ Connecting to WiFi ++++++++++\r\n");
     
     strcpy(cmdbuff,"wifi.setmode(wifi.STATIONAP)\r\n");
     SendCMD();
-    getreply();
-    wait(2);
+    wait(1);
     
-    strcpy(cmdbuff,"wifi.ap.config({ssid=\"WestSide\",pwd=\"uNwieldy_cAbbage87\"})\r\n");
+    strcpy(cmdbuff,"wifi.ap.config({ssid=\"Marlon's iPhone\",pwd=\"feelsbadman\"})\r\n");
     SendCMD();
-    getreply();
-    wait(2);    
+    wait(1);    
     
     strcpy(cmdbuff,"print(\"Server IP Address: \", wifi.ap.getip())\r\n");
     SendCMD();
-    getreply();
-    wait(2);
+    wait(1);
     
     // Start up the server
     pc.printf("\n++++++++++ Starting Server ++++++++++\r\n> ");
@@ -148,53 +158,44 @@
     //create server
     strcpy(cmdbuff, "srv=net.createServer(net.TCP)\r\n");
     SendCMD();
-    getreply();
-    wait(0.5);
+    wait(1);
     // Set the sever to listen (named conn)
     strcpy(cmdbuff,"srv:listen(80,function(conn)\r\n");
     SendCMD();
-    getreply();
-    wait(2);
+    wait(1);
         // Define receive function
         strcpy(cmdbuff,"conn:on(\"receive\", function(conn, receivedData)\r\n");
         SendCMD();
-        getreply();
-        wait(2);
+        wait(1);
         
         //print data to mbed
         strcpy(cmdbuff,"print(\"Received Data: \" .. receivedData)\r\n");
         SendCMD();
-        getreply();
-        wait(2);
+        wait(1);
         
         // End receive function
         strcpy(cmdbuff,"end)\r\n");
         SendCMD();
-        getreply();
-        wait(2);
+        wait(1);
         
         // Define sent function
         strcpy(cmdbuff,"conn:on(\"sent\",function(conn)\r\n");
         SendCMD();
-        getreply();
-        wait(2);
+        wait(1);
         
         //print data to mbed
         strcpy(cmdbuff,"collectgarbage()\r\n");
         SendCMD();
-        getreply();
-        wait(2);
+        wait(1);
         
         // End sent function
         strcpy(cmdbuff,"end)\r\n");
         SendCMD();
-        getreply();
-        wait(2);
+        wait(1);
         
     // End server listening    
     strcpy(cmdbuff,"end)\r\n");
     SendCMD();
-    getreply();
     wait(2);
 }