Dependencies:   mbed

Files at this revision

API Documentation at this revision

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