Roboshark / Mbed 2 deprecated Roboshark_V10

Dependencies:   mbed

Fork of Roboshark_V9 by Roboshark

Revision:
4:767fd282dd9c
Parent:
2:402b1a74fff6
Child:
6:7bbcdd07bc2d
diff -r e4264cb5b9a9 -r 767fd282dd9c main.cpp
--- a/main.cpp	Mon Apr 23 12:19:12 2018 +0000
+++ b/main.cpp	Tue Apr 24 18:16:05 2018 +0000
@@ -16,7 +16,7 @@
 DigitalOut led4(PC_0);
 DigitalOut led5(PC_9);
 
-AnalogIn distance(PB_1);
+AnalogIn LineSensor(PB_1); // Line Sensor
 DigitalOut enable(PC_1);
 DigitalOut bit0(PH_1);
 DigitalOut bit1(PC_2);
@@ -42,9 +42,15 @@
 int IrR = 0;
 int IrL = 0;
 int IrF = 0;
-int caseDrive = 0;                                                              //von main Vincent kopiert
+int caseDrive = 0;   
+double line = 0;
+bool finish = 0;       
+bool finishLast = 0;
+int ende = 0;    
+int temp = 0;                                                        //von main Vincent kopiert
 
-IRSensor iRSensor(IrRight, IrLeft, IrFront, dis2R, dis2L, dis2F);               //von main Vincent kopiert
+IRSensor iRSensor(IrRight, IrLeft, IrFront, dis2R, dis2L, dis2F, LineSensor); 
+//IRSensor bottom (IrRight, IrLeft, IrFront, dis2R, dis2L, dis2F, LineSensor);           //von main Vincent kopiert
 StateMachine stateMachine(IrR, IrL, IrF);                                       //von main Vincent kopiert
 
 
@@ -85,10 +91,7 @@
         
         fahren.links90();
         wait(1.0f);*/
-        
-                                                                                // IR Sensoren einlesen Programm Vincent
-        
-                    
+                                                                         // IR Sensoren einlesen Programm Vincen      
         float disR = iRSensor.readR(); // Distanz in mm
         float disL = iRSensor.readL();
         float disF = iRSensor.readF();
@@ -99,30 +102,41 @@
         int IrL = iRSensor.codeL();
         int IrF = iRSensor.codeF();
         /*int caseDrive = stateMachine.drive();*/ //entscheidung welcher Drive Case
-        
+        ende = iRSensor.get_ende();
+
+
+   
+  /* printf (" ende = %d\n",ende); 
+    printf (" finish = %d\n",finish);
+    printf (" finishLast = %d\n",finishLast);
+    printf("line = %f\n", line);
         
-        printf ("IR Right = %d \n", IrR);
+      /*  printf ("IR Right = %d \n", IrR);
         printf("IR Left = %d\n",IrL);
-        printf("IR Front = %d\n",IrF);
+        printf("IR Front = %d\n",IrF);*/
         
-        if((IrR==0) && (IrL==0) && (IrF==1)){
-        caseDrive = 2;                                                          // Folge: 90 Grad nach rechts drehen
-        }   else  if ((IrR==0) && (IrL==1) && (IrF==0)){
+         if((IrR==0) && (IrL==0) && (IrF==1) && (ende == 0)){
         caseDrive = 2;                                                          // Folge: 90 Grad nach rechts drehen
-        }   else  if ((IrR==0) && (IrL==1) && (IrF==1)){
+        }   else  if ((IrR==0) && (IrL==1) && (IrF==0) && (ende == 0)){
+        caseDrive = 2;                                                          // Folge: 90 Grad nach rechts drehen
+        }   else  if ((IrR==0) && (IrL==1) && (IrF==1) && (ende == 0)){
         caseDrive = 2;                                                          // Folge: 90 Grad nach rechts drehen                 
-        }   else  if ((IrR==1) && (IrL==0) && (IrF==0)){
+        }   else  if ((IrR==1) && (IrL==0) && (IrF==0) && (ende == 0)){
         caseDrive = 1;                                                          // Folge: geradeaus fahren
-        }   else  if ((IrR==1) && (IrL==0) && (IrF==1)){
+        }   else  if ((IrR==1) && (IrL==0) && (IrF==1) && (ende == 0)){
         caseDrive = 3;                                                          // Folge: 270 Grad nach rechts drehen
-        }   else  if ((IrR==1) && (IrL==1) && (IrF==0)){
+        }   else  if ((IrR==1) && (IrL==1) && (IrF==0) && (ende == 0)){
         caseDrive = 1;                                                          // Folge: geradeaus fahren
-        }   else  if ((IrR==1) && (IrL==1) && (IrF==1)){
+        }   else  if ((IrR==1) && (IrL==1) && (IrF==1) && (ende == 0)){
         caseDrive = 4;                                                          // Folge: 180 Grad nach rechts drehen
-        }   else{ caseDrive=0;
+        } else if ((ende == 1) && (temp == 0)){
+        caseDrive = 5;
+        temp = 1;
+        } else {caseDrive = 0;
         }
         
         printf("caseDrive = %d\n",caseDrive);
+        printf("ende = %d\n",ende);
 
         wait (0.5);
         
@@ -140,11 +154,11 @@
         } else if (caseDrive == 4){
             fahren.rechts180();
             fahren.geradeaus();
-        }
-                
-            
+        } else if (caseDrive == 0){
+            fahren.stopp();
+        } else if(caseDrive == 5){
+            fahren.ziel();
+            fahren.stopp();
+          }  
     }
 }
-
-
-