Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: main.cpp
- Revision:
- 11:f07662c64e26
- Parent:
- 9:92895704e1a4
- Child:
- 15:3f6626f68836
diff -r 92895704e1a4 -r f07662c64e26 main.cpp
--- a/main.cpp Thu Mar 12 14:44:56 2015 +0000
+++ b/main.cpp Fri Mar 13 10:55:39 2015 +0000
@@ -67,6 +67,7 @@
sensor_select(x);
//blue = !blue;
wait(0.1);
+ blue.printf("X is %i, ", x);
if (input == 1) {
val=val+2^x; //could you comment on what this is for?
@@ -74,20 +75,16 @@
val=val;//+2^x;
}
}
- blue.printf("%i\n",val);
+ blue.printf("\nVAL : %i\n",val);
return val;
}
void set_direction( int direction, float duty_l, float duty_r)
{
-
-
- // float r_result = (speed + angle); //where angle can be postive and negative and will TURN the robot
- // float l_result = (speed - angle); //if turning left, you'd make the angle postive (right motor goes faster left motor goes slwoer)
switch( direction ) {
case 0x11: { //forward
- motor_r.write( duty_r);
+ motor_r.write( duty_r);
//Look up ternary statements -- {condition ? value_if_true : value_if_false} This makes 0<result<1
motor_l.write( duty_l);
@@ -95,6 +92,8 @@
motor_rb=0;
motor_lf=1;
motor_lb=0;
+ blue.printf("Going forward, right:%f ; left:%f\n", duty_r, duty_l);
+ break;
}
case 0x00: { //backward
motor_r.write( duty_r);
@@ -104,6 +103,8 @@
motor_rb=1;
motor_lf=0;
motor_lb=1;
+ blue.printf("Going backward, right:%f ; left:%f\n", duty_r, duty_l);
+ break;
}
case 0x01: { //spin left -- Right forward, left backward
motor_r.write( duty_r);
@@ -113,6 +114,8 @@
motor_rb=0;
motor_lf=0;
motor_lb=1;
+ blue.printf("Spinning Left, right:%f ; left:%f\n", duty_r, duty_l);
+ break;
}
case 0x10: { //spin right
motor_r.write( duty_r);
@@ -122,6 +125,8 @@
motor_rb=1;
motor_lf=1;
motor_lb=0;
+ blue.printf("Spinning Right, right:%f ; left:%f\n", duty_r, duty_l);
+ break;
}
}
}
@@ -131,27 +136,32 @@
//Line_right = !Line_right;
switch( sensor_values ) {
case 0x00: { //no lines robot is lost!!!!
+ blue.printf("no lines robot is lost!!!!\n");
set_direction(0x00, 1.0, 1.0);
wait(1);
break;
}
case 0x01: { //to far left turn right 0001
+ blue.printf("0001\n");
set_direction(0x11, 0.0, 1.0); //this doesn't turn right; this goes straight at half speed
wait(1);
Line_right = !Line_right;
break;
}
case 0x02: { //left turn right 0010
+ blue.printf("0010\n");
set_direction(0x11, 0, 0.5);
wait(1);
break;
}
case 0x03: { //far left turn right 0011
+ blue.printf("0011\n");
set_direction(0x11, 0.0, 0.0);
wait(1);
break;
}
case 0x4: { //right turn left 0100
+ blue.printf("0100\n");
set_direction(0x11, 0.5, 0.0);
wait(1);
break;
@@ -161,16 +171,19 @@
break;
}
case 0x6: { //perfect 0110
+ blue.printf("perfect, 0110\n");
set_direction(0x00, 1.0, 1.0);
wait(1);
break;
}
case 0x7: {//corner junction or plate 0111
+ blue.printf("0111\n");
set_direction(0x00, 0.0, 0.0);
wait(1);
break;
}
case 0x8: {//to far right turn left 1000
+ blue.printf("1000\n");
set_direction(0x11, 1.0, 0.0);
wait(1);
break;
@@ -190,6 +203,7 @@
break;
}
case 0xC: { //far right turn left 1100
+ blue.printf("1100\n");
set_direction(0x00, 0.0, 0.0);
wait(1);
break;
@@ -199,11 +213,13 @@
break;
}
case 0xE: { //corner or plate 1110
+ blue.printf("1110\n");
set_direction(0x00, 0.0, 0.0);
wait(1);
break;
}
case 0xF: { //corner 1111
+ blue.printf("1111\n");
set_direction(0x11, 0.0, 0.0);
wait(1);
break;
@@ -223,36 +239,43 @@
motor_lb=0;
while(1) {
- /* NOT WORKING?!?!?!
-
- led = !led;
- set_direction(0x11, 1.0,1.0);//forward full speed
- wait(4);
- led = !led;
- set_direction(0x11, 0.5 ,0); //forward left half
- wait(4);
- led = !led;
- set_direction(0x11, 0 ,0.5); //forward right half
- wait(4);
- led = !led;
- set_direction(0x00, 0 ,0); //stop
- wait(4);
- led = !led;
- set_direction(0x00, 1.0 ,1.0); //backward full speed
- wait(4);
- led = !led;
- set_direction(0x00, 0.5 ,0);
- wait(4);
- led = !led;
- set_direction(0x00, 0 ,0.5);
-
+ //Working
+ /*
+ led = !led;
+ wait(4);
+ blue.printf("Forward, full\n");
+ set_direction(0x11, 1.0,1.0);//forward full speed
+ wait(4);
+ blue.printf("Forward, left half\n");
+ led = !led;
+ set_direction(0x11, 0.5 ,0); //forward left half
+ wait(4);
+ blue.printf("Forward, right half\n");
+ led = !led;
+ set_direction(0x11, 0 ,0.5); //forward right half
+ wait(4);
+ led = !led;
+ blue.printf("stop\n");
+ set_direction(0x00, 0 ,0); //stop
+ wait(4);
+ led = !led;
+ blue.printf("Back, full\n");
+ set_direction(0x00, 1.0 ,1.0); //backward full speed
+ wait(4);
+ led = !led;
+ blue.printf("Back, left\n");
+ set_direction(0x00, 0.5 ,0);
+ wait(4);
+ blue.printf("Back, right\n");
+ led = !led;
+ set_direction(0x00, 0 ,0.5);
+
*/
-
+
//Sensor Code + Motor Test
- //int values = 0;
- //values = sensor_read();
-
- //change_direction(values);
+ int values = 0;
+ values = sensor_read();
+ change_direction(values);
}
}