|
@@ -2,7 +2,7 @@
|
|
|
#line 1 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
#line 1 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
//Verfassser: Felix Stange, 4056379, MET2016
|
|
|
-//Datum: erstellt am 19.07.2017, zuletzt geändert am 08.05.2018
|
|
|
+//Datum: erstellt am 19.07.2017, zuletzt geändert am 14.05.2018
|
|
|
//Projektthema: Untersuchungen und Implementierung eines automatisierten Fahrens mittels Pololu Zumo
|
|
|
/*Kurzbeschreibung: Der Zumo fährt automatisch zwischen 2 Linien ohne diese zu überfahren mithilfe
|
|
|
der Liniensensoren (3), ähnlich einer Spurhalteautomatik (heller Belag und dunkle Streifen).
|
|
@@ -29,10 +29,10 @@ L3G gyro; //Drehbewegungssensor z-Achse
|
|
|
MedianFilter LineFilter0(3, 0); //erstellen der Filter für Liniensensoren
|
|
|
MedianFilter LineFilter1(3, 0); //Medianfilter geben mittleren Wert einer Reihe aus
|
|
|
MedianFilter LineFilter2(3, 0); //Fenstergröße: 3, Basiswerte: 0 0 0
|
|
|
-MedianFilter ProxFilter0(3, 0); //erstellen der Filter für Abstandssensoren
|
|
|
-MedianFilter ProxFilter1(3, 0);
|
|
|
-MedianFilter ProxFilter2(3, 0);
|
|
|
-MedianFilter ProxFilter3(3, 0);
|
|
|
+MedianFilter ProxFilter0(5, 0); //erstellen der Filter für Abstandssensoren
|
|
|
+MedianFilter ProxFilter1(5, 0);
|
|
|
+MedianFilter ProxFilter2(5, 0);
|
|
|
+MedianFilter ProxFilter3(5, 0);
|
|
|
|
|
|
#define MARKLINE0 150
|
|
|
#define MARKLINE1 100
|
|
@@ -80,43 +80,43 @@ bool alarm = false; //zeigt Manöver abhängig von btData
|
|
|
//Setup Bluetoothverbindung
|
|
|
#line 78 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void BlueSetup();
|
|
|
-#line 87 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 88 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void LineSetup();
|
|
|
-#line 116 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 117 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void ProxSetup();
|
|
|
-#line 122 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 123 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void GyroSetup();
|
|
|
-#line 155 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 156 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void CompassSetup();
|
|
|
-#line 186 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 187 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void setup();
|
|
|
-#line 212 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 213 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void TimeUpdate();
|
|
|
-#line 218 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 219 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void LoopTiming();
|
|
|
-#line 262 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 263 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void ProxUpdate();
|
|
|
-#line 272 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 294 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void LineUpdate();
|
|
|
-#line 282 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 304 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void GyroUpdate();
|
|
|
-#line 295 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 317 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void CompassUpdate();
|
|
|
-#line 308 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 330 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void EncoderUpdate();
|
|
|
-#line 319 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 341 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void Kontaktvermeiden();
|
|
|
-#line 338 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 360 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void Hindernisumfahren();
|
|
|
-#line 464 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 486 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void Abbiegen();
|
|
|
-#line 625 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 647 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void Spurhalten();
|
|
|
-#line 670 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 692 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void Spurfinden();
|
|
|
-#line 688 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 710 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void SerielleAusgabe();
|
|
|
-#line 703 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
+#line 725 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void loop();
|
|
|
#line 78 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
|
|
|
void BlueSetup()
|
|
@@ -125,6 +125,7 @@ void BlueSetup()
|
|
|
Serial1.setTimeout(10); //verkürzt Serial(1).read auf 10 ms statt 1000 ms
|
|
|
if(Serial1.available()) Serial.println("Bluetoothverbindung hergestellt");
|
|
|
if(Serial1.available() > 0) Serial1.read(); //Verwerfen der alten Informationen aus dem Puffer
|
|
|
+ Serial1.print(0);
|
|
|
}
|
|
|
|
|
|
//Setup Liniensensoren
|
|
@@ -305,11 +306,32 @@ void LoopTiming()
|
|
|
//Update Abstandssensoren
|
|
|
void ProxUpdate()
|
|
|
{
|
|
|
- proxSensors.read();
|
|
|
- proxValue[0] = ProxFilter0.in(proxSensors.countsLeftWithLeftLeds());
|
|
|
- proxValue[1] = ProxFilter1.in(proxSensors.countsFrontWithLeftLeds());
|
|
|
- proxValue[2] = ProxFilter2.in(proxSensors.countsFrontWithRightLeds());
|
|
|
- proxValue[3] = ProxFilter3.in(proxSensors.countsRightWithRightLeds());
|
|
|
+ bool done = false;
|
|
|
+ int state = LOW;
|
|
|
+ while(done == false)
|
|
|
+ {
|
|
|
+ //wiederholt abfragen, ob bereits gesendet wird (Dauer je 1000 us bzw. 1 ms)
|
|
|
+ if(pulseIn(20, state, 1000) == 0 && pulseIn(22, state, 1000) == 0 && pulseIn(4, state, 1000) == 0)
|
|
|
+ //if(pulseIn(22, state, 1000) > 0)
|
|
|
+ {
|
|
|
+ //wenn nichts gesendet wird, selbst Messung durchführen
|
|
|
+ proxSensors.read();
|
|
|
+ proxValue[0] = ProxFilter0.in(proxSensors.countsLeftWithLeftLeds());
|
|
|
+ proxValue[1] = ProxFilter1.in(proxSensors.countsFrontWithLeftLeds());
|
|
|
+ proxValue[2] = ProxFilter2.in(proxSensors.countsFrontWithRightLeds());
|
|
|
+ proxValue[3] = ProxFilter3.in(proxSensors.countsRightWithRightLeds());
|
|
|
+ // Serial.println(proxValue[0]);
|
|
|
+ // Serial.println(proxValue[1]);
|
|
|
+ // Serial.println(proxValue[2]);
|
|
|
+ // Serial.println(proxValue[3]);
|
|
|
+ done = true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //solange fremde Signale empfangen werden, Fehler ausgeben
|
|
|
+ Serial.println("Fremdmessung erkannt");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//Update Liniensensoren
|