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_V9 by
Diff: main.cpp
- 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(); + } } } - - -