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
Fork of Roboshark_V3 by
Diff: main.cpp
- Revision:
- 4:767fd282dd9c
- Parent:
- 2:402b1a74fff6
- Child:
- 6:a4b745625dbe
--- 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();
+ }
}
}
-
-
-
