Trieu LE
/
mbed_blinky
Revision 1:552a34826f55, committed 2016-08-26
- Comitter:
- trieule95
- Date:
- Fri Aug 26 10:03:17 2016 +0000
- Parent:
- 0:b0c572636fc2
- Commit message:
- demo;
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Mon Aug 15 04:22:20 2016 +0000 +++ b/main.cpp Fri Aug 26 10:03:17 2016 +0000 @@ -189,7 +189,7 @@ else if (adc > 30) cm = adc/8; else if (adc > 0) cm = adc/7; - wait(0.001); + //wait(0.001); sensor = sensor + cm; if(cm == 0) break; cm = sensor/NOISE; @@ -211,7 +211,7 @@ uint16_t i, sensor = 0; for(i=0; i<NOISE; i++) { - wait(0.001); + //wait(0.001); sensor = sensor + SEN_IR; } if(sensor > NOISE/2) return OFF; @@ -228,7 +228,7 @@ uint16_t i, sensor = 0; for(i=0; i<NOISE; i++) { - wait(0.001); + //wait(0.001); sensor = sensor + SEN_UP_L; } if(sensor > NOISE/2) return OFF; @@ -244,7 +244,7 @@ uint16_t i, sensor = 0; for(i=0; i<NOISE; i++) { - wait(0.001); + //wait(0.001); sensor = sensor + SEN_UP_R; } if(sensor > NOISE/2) return OFF; @@ -260,7 +260,7 @@ uint16_t i, sensor = 0; for(i=0; i<NOISE; i++) { - wait(0.001); + //wait(0.001); sensor = sensor + SEN_DOWN; } if(sensor > NOISE/2) return OFF; @@ -287,9 +287,13 @@ return rand() % 2 == 1; } +bool isInDanger(void){ + return ((sensor_up_left() == OFF) || (sensor_up_right() == OFF) || (sensor_down() == OFF)); +} + int main(void) { - wait(0.1); + //wait(0.1); //Init Hardware SEN_UP_L.mode(PullUp); SEN_UP_R.mode(PullUp); @@ -298,104 +302,99 @@ led1 = 1; DIR_L = 0; DIR_R = 0; PWM_L = 0; PWM_R = 0; //Init interupt Timer ticker.attach(periodicCallback, 0.00015); - wait(0.5); - uint8_t start = 1; + //wait(0.5); + uint8_t sen_in = sensor_ir(); while (true) { - uint8_t sen_in = sensor_ir(); - //if ( (sen_in > 0) && (sen_in < 30) ) -// { -// move_up(100, 100); -// while( (sensor_up_left() == ON) && (sensor_up_right() == ON) ); -// move_down(50, 50); -// wait(1); -// if ((sensor_up_left() == OFF) && (sensor_up_right() == OFF)) -// { -// move_down(30, 30); -// while ((sensor_up_left() == ON) && (sensor_up_right() == ON)); -// // move_up(50, 50); -// } -// if ((sensor_up_left() == OFF) && (sensor_down() == OFF)) -// { -// move_left_down(100,100); -// while( (sensor_up_left() == ON) && (sensor_down() == ON) ); -// // move_up(50, 50); -// } -// if ((sensor_up_right() == OFF) && (sensor_down() == OFF)) -// { -// move_right_down(100,100); -// while( (sensor_up_right() == ON) && (sensor_down() == ON)); -// // move_up(50, 50); -// } -// if (sensor_up_left() == OFF) -// { -// move_down(100,30); -// while( sensor_up_left() == ON); -// } -// if (sensor_up_right() == OFF) -// { -// move_down(30,100); -// while( sensor_up_right() == ON); -// } -// if (sensor_down() == OFF) -// { -// move_up(100,100); -// while( sensor_down() == ON); -// } -// } -// else -// { -// if (start == 1) -// { -// start = 0; -// move_up(100,65); -// } -// else -// { -// rotator_right(20); -// } -// -// while ((sensor_up_left() == OFF) && (sensor_up_right() == OFF)) -// { -// if (randomBool() == 1) -// { -// move_up(70,0); -// } -// else -// { -// move_up(0,70); -// } -// while ((sensor_up_left() == ON) && (sensor_up_right() == ON)) ; -// // move_up(50, 50); -// } -// while ((sensor_up_left() == OFF) && (sensor_down() == OFF)) -// { -// move_right_down(100,100); -// while( (sensor_up_left() == ON) && (sensor_down() == ON) ); -// // move_up(50, 50); -// } -// while ((sensor_up_right() == OFF) && (sensor_down() == OFF)) -// { -// move_right_down(100,100); -// while( (sensor_up_right() == ON) && (sensor_down() == ON)); -// // move_up(50, 50); -// } -// while (sensor_up_left() == OFF) -// { -// move_down(100,30); -// while( sensor_up_left() == ON); -// } -// while (sensor_up_right() == OFF) -// { -// move_down(30,100); -// while( sensor_up_right() == ON); -// } -// while (sensor_down() == OFF) -// { -// move_up(100,100); -// while( sensor_down() == ON); -// } -// } - move_up(100, 100); - wait(5); + sen_in = sensor_ir(); + if(isInDanger()){ + g_sts_car = STOP; + //if (sensor_down() == OFF && sensor_up_left() == OFF){ +// rotator_right(30); +// while(sensor_down() == OFF && sensor_up_left() == OFF); +// uint8_t timer = 0; +// while(!isInDanger() && timer < 50){ +// //wait(0.01); +// timer++; +// } +// move_up(70,70); +// while(!isInDanger() && timer < 100){ +// //wait(0.01); +// timer++; +// } +// g_sts_car = STOP; +// } +// else if(sensor_down() == OFF && sensor_up_right() == OFF){ +// rotator_left(30); +// while(sensor_down() == OFF && sensor_up_right() == OFF); +// uint8_t timer = 0; +// while(!isInDanger() && timer < 50){ +// //wait(0.01); +// timer = timer + 1; +// } +// move_up(70,70); +// while(!isInDanger() && timer < 100){ +// //wait(0.01); +// timer = timer + 1; +// } +// g_sts_car = STOP; +// } +// else + if(sensor_up_left() == OFF && sensor_up_right() == OFF){ + move_down(100,100); + while(sensor_up_left() == OFF && sensor_up_right() == OFF); + uint8_t timer = 0; + move_down(30,100); + while((isInDanger() == false) && timer < 150){ + wait(0.001); + timer++; + } + g_sts_car = STOP; + } + else if(sensor_up_left() == OFF){ + move_down(30,100); + while(sensor_up_left() == OFF); + uint8_t timer = 0; + while((isInDanger() == false) && timer < 150){ + wait(0.001); + timer++; + } + // move_up(70,70); +// while((isInDanger() == false) && timer < 40){ +// timer++; +// } + g_sts_car = STOP; + } + else if(sensor_up_right() == OFF){ + move_down(100,30); + while(sensor_up_right() == OFF); + uint8_t timer = 0; + while((isInDanger() == false) && timer < 150){ + wait(0.001); + timer++; + } +// move_up(70,70); +// while((isInDanger() == false) && timer < 40){ +// timer++; +// } + g_sts_car = STOP; + } + else if (sensor_down() == OFF) { + move_up(100,100); + while(sensor_down() == OFF); + g_sts_car = STOP; + } + } + else{ + g_sts_car = STOP; + if(sen_in > 0 && sen_in <30){ + move_up(100,100); + while((isInDanger() == false) && sensor_ir() > 0 && sensor_ir() <30); + g_sts_car = STOP; + } + else { + rotator_right(20); + } + } + } -} +} \ No newline at end of file