READY TO RUMBLE

Dependencies:   mbed

Fork of Micromouse_alpha_copy_copy by PES2_R2D2.0

Revision:
7:5ef09519a6e9
Parent:
5:b8b1a979b0d5
--- 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