Tapton Dog / Mbed 2 deprecated mbed1movement_MPtest5

Dependencies:   m3pi mbed

Files at this revision

API Documentation at this revision

Comitter:
matt8174
Date:
Tue Mar 14 13:42:23 2017 +0000
Commit message:
mbed1 Tapton school eds robot project

Changed in this revision

m3pi.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
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 0c9486499a97 m3pi.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/m3pi.lib	Tue Mar 14 13:42:23 2017 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/chris/code/m3pi/#4b7d6ea9b35b
diff -r 000000000000 -r 0c9486499a97 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Mar 14 13:42:23 2017 +0000
@@ -0,0 +1,162 @@
+// Mbed 1 Robot, robot base sensors and bluetooth
+// serial port pins 9 and 10(tx rx) used to communicate with robot base
+#include "mbed.h"
+#include "m3pi.h"
+#include "string"
+#include <stdio.h>
+#include <stdlib.h>
+#include <iostream>
+//Serial pc(USBTX, USBRX); // for terminal diagnostics
+Serial device(p28, p27); // Bluetooth comms tx rx 
+Serial communicate(p13, p14); // to Mbed 2 tx rx
+m3pi m3pi;
+DigitalOut myled1(LED1);
+DigitalOut myled2(LED2);
+DigitalOut myled3(LED3);
+DigitalOut myled4(LED4);
+DigitalIn stopgo (p20); // from mbed2 sensor move forward or not something blocking (1=block)
+
+char letters[26] = {
+    'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
+    'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
+    'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
+};
+char receivedchar[10];
+
+
+void rxCallback() //interrupt from rx serial port
+{
+    myled3=!myled3;
+    receivedchar[0]=communicate.getc(); // put received character from mbed2 into array for later
+ // pc.printf("%d ",receivedchar[0]);
+    //m3pi.cls();
+    m3pi.locate(0,0); // x then y co-ordinates on screen
+    m3pi.printf("%d  ",receivedchar[0]);
+    //wait (0.2);
+}
+
+void txCallback() //interrupt from tx serial port
+{
+    myled4=!myled4;
+}
+
+int main()
+{
+    int  cmd_option;
+    char cmd_convert;
+    // Display welcome message to the scripting
+   // display_part("Init : ", "FIDO-Ed");
+
+    // Configure device baud rates
+    device.baud(115200); //Bluetooth
+ //   pc.baud(115200); //for diagnostics pc
+    communicate.baud(19200); //to mbed 2
+    setbuf(stdin,NULL); //clear serial input buffer
+    communicate.attach(&txCallback, Serial::TxIrq);
+    communicate.attach(&rxCallback, Serial::RxIrq); //for serial interrupt callback function
+    m3pi.cls(); 
+    cmd_convert=0;
+    
+    // Global program variables
+   bool nerror  = true;
+
+    // Iterate while simulation is error free
+    while(nerror) 
+    {
+         myled1=stopgo; // mbed2 says stop or go - 1/on =something blocking movement  
+        // Check for readability of device
+        if(device.readable()) 
+           {
+            // Display device recieved transactions
+            // Fetch command and cast to char value
+            cmd_option  = device.getc();
+            cmd_convert = static_cast<char>(cmd_option);
+             m3pi.locate(0,1);
+             m3pi.printf("B%c %d", cmd_convert,cmd_option);
+            // Hold for half a second
+            wait(0.2);
+            }
+
+if (cmd_convert !=0)
+    {
+     if(cmd_convert >=49 && cmd_convert <=53) // numbers 1 to 5 from mobile app, Movement
+       {  
+     // Determine action to be taken based on switching
+        switch(cmd_convert) 
+            {
+         
+             case '1': //Move Forward
+                       if(!stopgo) //if nothing blocking way
+                          {
+                        //  while (!stopgo)
+                        //     {
+                             communicate.putc(49); //move forward - send 1 to mbed 2
+                             cmd_convert=0;
+                             m3pi.forward(0.25);
+                             wait(1.1);
+                             m3pi.stop();
+                          //   }
+                          }
+                         else 
+                          {    
+                          communicate.putc(53); // dont move forward and send 5 to mbed 2
+                          }    
+                        m3pi.stop();
+                        break;
+
+                case '2': //Turn Right
+                       if(!stopgo) //if nothing blocking way
+                          {
+                         // while (!stopgo)
+                         //       {
+                                  communicate.putc(50);// turn right and send 2 to mbed2 
+                                  cmd_convert=0;
+                                  m3pi.right(0.25);
+                                  wait(0.5);
+                                  m3pi.stop();
+                         //         }
+                         }
+                      else 
+                         {
+                         m3pi.stop();    
+                         communicate.putc(53); // dont move forward and send 5 to mbed 2
+                         }                  
+                     break;
+
+                case '3': //Backwards - no movement
+                         communicate.putc(51); // turn around and send 3 to mbed 2
+                         cmd_convert=0;
+          //             m3pi.right(0.5);
+          //             wait(0.25);
+          //             m3pi.stop();
+                    break;
+
+                  case '4': // Turn Left
+                      if(!stopgo) //if nothing blocking way
+                        {
+                          // while (!stopgo)
+                          //       {
+                                 communicate.putc(52); //turn left and send 4 to mbed2
+                                 cmd_convert=0;
+                                 m3pi.left(0.25);
+                                 wait(0.5);
+                                   m3pi.stop();
+                          //       }
+                        }
+                      else 
+                         {
+                         m3pi.stop();    
+                         communicate.putc(53); // dont move forward and send 5 to mbed 2
+                         }  
+                      break;
+                                            
+      
+        } // switch    
+        }
+        if(cmd_convert >=65 && cmd_convert <=122) // send any other valid command to mbed2
+          {
+            communicate.putc(cmd_convert); //send cmd_convert to mbed 2
+            cmd_convert=0;
+          }  //cmd_convert >=65
+    } // if cmd_convert not 0
+}}
\ No newline at end of file
diff -r 000000000000 -r 0c9486499a97 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Mar 14 13:42:23 2017 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/176b8275d35d
\ No newline at end of file