Team Ascent / Mbed 2 deprecated TDPCode1

Dependencies:   mbed

Revision:
1:2bab3a0bc3bc
Parent:
0:59d25bb7f825
Child:
2:1feae3cb6731
--- a/main.cpp	Wed Feb 04 16:55:27 2015 +0000
+++ b/main.cpp	Wed Feb 18 14:57:56 2015 +0000
@@ -14,33 +14,28 @@
 PwmOut motor_r (PTE29);
 
 //LED to test
-DigitalOut myled(LED_RED);
-/*
-Pivot Right: //Change duties for speed
-motor_rf=0;
-motor_rb=0;
-motor_lf=1;
-motor_lb=0;
-Pivot Left: //Change duties for speed
-motor_rf=1;
-motor_rb=0;
-motor_lf=0;
-motor_lb=0;
-Forwards: //Change duties for speed & direction
-motor_rf=1;
-motor_rb=0;
-motor_lf=1;
-motor_lb=0;
-Backwards: //Change duties for speed & direction
-motor_rf=0;
-motor_rb=1;
-motor_lf=0;
-motor_lb=1;
-*/
-void set_direction( int nature_of_direction, float speed)
+DigitalOut led(LED_RED);
+
+void set_direction( bool direction, float speed, float angle)
 {
-    switch(nature_of_direction) {
-        case "forward": {
+    /* *******************Example Use*****************
+                 set_direction(1, 0.5, 0);  //This would set the robot to go forward, at half speed, straight
+
+                 set_directin(1, 0.8, 0.2); //this would set robot to go forward, at 100% to the right and 60% to the left (turn right)
+
+                 set_direction(0, 0.3, 0.7); //robot back, 100% rightmotor; 0%left (technically -40%, but 0% is min)
+
+                 set_direction(1, 0.5, 0.5); // robot pivots forward, to the right, full speed (100% duty right ; 0% duty left)
+
+                 set_direction(1, 0.5, -0.5); //robot pivots forward, to the left,  full speed  (0% duty right ; 100% duty left)
+
+                 set_direction(1, 0.3, 0.5); //robot pivots forard, to the right , at 80% speed (80% right; 0% left)
+
+                 set_direction(1, -0.3, 0.5); //robot pivotrs foward, to the right, AT 20% SPEED (20%, 0%)
+
+    */
+    switch(direction) {
+        case '1': { //forward
             motor_r.write(speed + angle); //where angle can be postive and negative and will TURN the robot
             motor_l.write(speed - angle);
             //if turning left, you'd make the angle postive (right motor goes faster left motor goes slwoer)
@@ -49,7 +44,7 @@
             motor_lf=1;
             motor_lb=0;
         }
-        case "backwards": {
+        case '0': { //backward
             motor_r.write(speed + angle); //where angle can be postive and negative and will TURN the robot
             motor_l.write(speed - angle);
             //if turning left, you'd make the angle postive (right motor goes faster left motor goes slwoer)
@@ -58,24 +53,6 @@
             motor_lf=0;
             motor_lb=1;
         }
-        case "pivot right": {
-            motor_r.write(0); //motor doesn't need to be enabled
-            motor_l.write(speed);
-
-            motor_rf=0;
-            motor_rb=0;
-            motor_lf=1;
-            motor_lb=0;
-        }
-        case "pivot left": {
-            motor_r.write(speed);
-            motor_l.write(0); //motor doesn't need to be enabled
-
-            motor_rf=1;
-            motor_rb=0;
-            motor_lf=0;
-            motor_lb=0;
-        }
     }
 }
 
@@ -92,6 +69,40 @@
     motor_lb=0;
 
 
+
+    while(1) {
+        wait(2);
+        led = !led;
+        set_direction(1, 0.5, 0);  //This would set the robot to go forward, at half speed, straight
+
+        wait(2);
+        led = !led;
+        set_direction(1, 0.8, 0.2); //this would set robot to go forward, at 100% to the right and 60% to the left (turn right)
+
+        wait(2);
+        led = !led;
+        set_direction(0, 0.3, 0.7); //robot back, 100% rightmotor; 0%left (technically -40%, but 0% is min)
+
+        wait(2);
+        led = !led;
+        set_direction(1, 0.5, 0.5); // robot pivots forward, to the right, full speed (100% duty right ; 0% duty left)
+
+        wait(2);
+        led = !led;
+        set_direction(1, 0.5, -0.5); //robot pivots forward, to the left,  full speed  (0% duty right ; 100% duty left)
+
+        wait(2);
+        led = !led;
+        set_direction(1, 0.3, 0.5); //robot pivots forard, to the right , at 80% speed (80% right; 0% left)
+
+        wait(2);
+        led = !led;
+        set_direction(1, -0.3, 0.5); //robot pivotrs foward, to the right, AT 20% SPEED (20%, 0%)
+    }
+
+
+    /* working demo
+
     while(1) { //infinite loop
         //***********************************************
         myled = !myled;
@@ -184,7 +195,8 @@
         motor_lb=0; //go forwards
         //
         wait(4);
+    }
+        */
 
-    }
 
 }