![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
mit pathdingsbums
Dependencies: mbed
Fork of MicroMouse_MASTER_TWO by
Diff: main.cpp
- Revision:
- 7:5ef09519a6e9
- Parent:
- 5:b8b1a979b0d5
- Child:
- 8:1c8a747c49c8
--- a/main.cpp Wed Apr 25 12:49:48 2018 +0000 +++ b/main.cpp Mon May 07 18:52:04 2018 +0000 @@ -9,8 +9,6 @@ #include "CheckWalls.h" #include "Turn.h" - - //Initialisierung LEDs Blinker/Surri/Button DigitalIn button(USER_BUTTON); //Moduswählknopf DigitalOut myled(LED1); //Heartbeat (evt auch Anzeige für Modus, vor start @@ -27,8 +25,6 @@ PwmOut led5(PB_10); PwmOut led6(PB_9); - - //Initialisierung IR-Sensoren AnalogIn distance0(PC_2); //Kreieren der Eingangsobjekte AnalogIn distance1(PC_3); @@ -39,22 +35,9 @@ IRSensor irSensor2(distance2); //links-vorne IRSensor irSensor3(distance3); //links-hinten - -//AnalogIn distance(PB_1); //Kreieren der Ein - und Ausgangsobjekte -//DigitalOut bit0(PH_1); -//DigitalOut bit1(PC_2); -//DigitalOut bit2(PC_3); -//IRSensor irSensor0(distance, bit0, bit1, bit2, 0); -//IRSensor irSensor1(distance, bit0, bit1, bit2, 1); -//IRSensor irSensor2(distance, bit0, bit1, bit2, 2); -//IRSensor irSensor3(distance, bit0, bit1, bit2, 3); - - //Initialisierung Kontrastsensor AnalogIn kontrast(PC_0); - - //Initialisierung Motor und Encoder DigitalOut enableMotorDriver(PB_2); PwmOut pwmLeft(PA_8); //Motor links @@ -78,13 +61,16 @@ int wallFront = 0; int wallLeft = 0; int blackLine = 0; + int dontStop = 0; + //int way = 220; // int way[5][10][4] = {{0},{0},{0}}; // Abspeicherung wird in roboterkoordinaten gespeichert vierstellige Zahl => 1.Zahl gefahrene Richtung, 2.Zahl Wand rechts, 3.Zahl Wand vorne, 4.Zahl Wand links - + + //Funktionsdeklarationen CheckWalls checkWalls(irSensor0, irSensor1, irSensor2, wallRight, wallFront, wallLeft); //Ermittlung wo freie Wege(0) bzw welche Waende vorhanden (1) - Turn turn(counterLeft, counterRight, controller, wallRight, wallFront, wallLeft); //Nach Ausrichtung bewegt sich der Roboter um ein Feld weiter und die Ausrichutung beginnt von vorne + Turn turn(counterLeft, counterRight, controller, wallRight, wallFront, wallLeft, dontStop); //Nach Ausrichtung bewegt sich der Roboter um ein Feld weiter und die Ausrichutung beginnt von vorne KontrastSensor kontrastSensor(kontrast, blackLine); - Drive drive(kontrastSensor, counterLeft, counterRight, controller, irSensor0, irSensor1, irSensor2, irSensor3); //20cm nach vorne...//Ablauf ist jeweils immer Feldweise...Waende checken, allenfalls drehen (Ausrichten), waehrend der Fahrt nur Ausrichtung der Geradeausfahrt... + Drive drive(kontrastSensor, counterLeft, counterRight, controller, irSensor0, irSensor1, irSensor2, irSensor3, dontStop); //20cm nach vorne...//Ablauf ist jeweils immer Feldweise...Waende checken, allenfalls drehen (Ausrichten), waehrend der Fahrt nur Ausrichtung der Geradeausfahrt... while(1) { // Wiederholungsschleife @@ -96,6 +82,8 @@ while (button) { //printf("WARTE AUF 1.START..."); + //controller.setDesiredSpeedRight(0.5f); + //controller.setDesiredSpeedLeft(-0.5f); wait(1.0f); //Die Ruhe vor dem Sturm... } @@ -104,12 +92,9 @@ } case 1: {// 1.Lauf Fahrzyklus und Aufzeichungszyklus + checkWalls.check(); //prueft wo Waende vorhanden sind - //wallRight = 1; - //wallFront = 1; - //wallLeft = 1; - turn.turning(); //entscheidet welche Richtung und Wendet dann zu dieser... @@ -133,15 +118,12 @@ // way[0][0][3] = 0; // } //Abspeicherung des entschiedenen Wegs und Anpassung des - - -// printf("%d", way[0][0][0]); + //dontStop = way%10; + //way = way/10; + drive.driving(); //faehrt, kontrolliert ob richtig steht und achtet auch schwarze Linie am Boden - - - //blackLine = 1; if(blackLine == 1) { //ist schwarze Linie ueberfahren...stoppt der Fahrzyklus hier. state = 2; @@ -165,11 +147,16 @@ //pruefug der waender entfaellt, da jetzt die daten aus dem speicher geladen werden - checkWalls.check(); //prueft wo Waende vorhanden sind + //checkWalls.check(); //prueft wo Waende vorhanden sind + // + //integer fuer kuerzesten weg...1 rechts 2 gerade aus 3 links + // wallRight = 0; + // wallFront = 0; + // wallLeft = 0; turn.turning(); //entscheidet welche Richtung und Wendet dann zu dieser... - + //dontStop = 2; drive.driving(); //faehrt, kontrolliert ob richtig steht und achtet auch schwarze Linie am Boden