Ver código fonte

Updated Function ProxUpdate()

fstange 6 anos atrás
pai
commit
1ec74d2f28
46 arquivos alterados com 2876 adições e 2770 exclusões
  1. BIN
      ArduinoOutput/Hauptprojekt.ino.elf
  2. 1380 1360
      ArduinoOutput/Hauptprojekt.ino.hex
  3. 1380 1360
      ArduinoOutput/Hauptprojekt.ino.with_bootloader.hex
  4. 1 1
      ArduinoOutput/build.options.json
  5. BIN
      ArduinoOutput/core/CDC.cpp.o
  6. BIN
      ArduinoOutput/core/HardwareSerial.cpp.o
  7. BIN
      ArduinoOutput/core/HardwareSerial0.cpp.o
  8. BIN
      ArduinoOutput/core/HardwareSerial1.cpp.o
  9. BIN
      ArduinoOutput/core/HardwareSerial2.cpp.o
  10. BIN
      ArduinoOutput/core/HardwareSerial3.cpp.o
  11. BIN
      ArduinoOutput/core/IPAddress.cpp.o
  12. BIN
      ArduinoOutput/core/PluggableUSB.cpp.o
  13. BIN
      ArduinoOutput/core/Print.cpp.o
  14. BIN
      ArduinoOutput/core/Stream.cpp.o
  15. BIN
      ArduinoOutput/core/Tone.cpp.o
  16. BIN
      ArduinoOutput/core/USBCore.cpp.o
  17. BIN
      ArduinoOutput/core/WInterrupts.c.o
  18. BIN
      ArduinoOutput/core/WMath.cpp.o
  19. BIN
      ArduinoOutput/core/WString.cpp.o
  20. BIN
      ArduinoOutput/core/abi.cpp.o
  21. BIN
      ArduinoOutput/core/core.a
  22. BIN
      ArduinoOutput/core/hooks.c.o
  23. BIN
      ArduinoOutput/core/main.cpp.o
  24. BIN
      ArduinoOutput/core/new.cpp.o
  25. BIN
      ArduinoOutput/core/wiring.c.o
  26. BIN
      ArduinoOutput/core/wiring_analog.c.o
  27. BIN
      ArduinoOutput/core/wiring_digital.c.o
  28. BIN
      ArduinoOutput/core/wiring_pulse.c.o
  29. BIN
      ArduinoOutput/core/wiring_shift.c.o
  30. BIN
      ArduinoOutput/libraries/MedianFilter/MedianFilter.cpp.o
  31. BIN
      ArduinoOutput/libraries/Wire/Wire.cpp.o
  32. BIN
      ArduinoOutput/libraries/Wire/utility/twi.c.o
  33. BIN
      ArduinoOutput/libraries/Zumo32U4/L3G.cpp.o
  34. BIN
      ArduinoOutput/libraries/Zumo32U4/LSM303.cpp.o
  35. BIN
      ArduinoOutput/libraries/Zumo32U4/PololuBuzzer.cpp.o
  36. BIN
      ArduinoOutput/libraries/Zumo32U4/PololuHD44780.cpp.o
  37. BIN
      ArduinoOutput/libraries/Zumo32U4/Pushbutton.cpp.o
  38. BIN
      ArduinoOutput/libraries/Zumo32U4/QTRSensors.cpp.o
  39. BIN
      ArduinoOutput/libraries/Zumo32U4/Zumo32U4Encoders.cpp.o
  40. BIN
      ArduinoOutput/libraries/Zumo32U4/Zumo32U4IRPulses.cpp.o
  41. BIN
      ArduinoOutput/libraries/Zumo32U4/Zumo32U4Motors.cpp.o
  42. BIN
      ArduinoOutput/libraries/Zumo32U4/Zumo32U4ProximitySensors.cpp.o
  43. 32 10
      ArduinoOutput/preproc/ctags_target_for_gcc_minus_e.cpp
  44. 51 29
      ArduinoOutput/sketch/Hauptprojekt.ino.cpp
  45. BIN
      ArduinoOutput/sketch/Hauptprojekt.ino.cpp.o
  46. 32 10
      Zumo32U4/Hauptprojekt/Hauptprojekt.ino

BIN
ArduinoOutput/Hauptprojekt.ino.elf


Diferenças do arquivo suprimidas por serem muito extensas
+ 1380 - 1360
ArduinoOutput/Hauptprojekt.ino.hex


Diferenças do arquivo suprimidas por serem muito extensas
+ 1380 - 1360
ArduinoOutput/Hauptprojekt.ino.with_bootloader.hex


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 1
ArduinoOutput/build.options.json


BIN
ArduinoOutput/core/CDC.cpp.o


BIN
ArduinoOutput/core/HardwareSerial.cpp.o


BIN
ArduinoOutput/core/HardwareSerial0.cpp.o


BIN
ArduinoOutput/core/HardwareSerial1.cpp.o


BIN
ArduinoOutput/core/HardwareSerial2.cpp.o


BIN
ArduinoOutput/core/HardwareSerial3.cpp.o


BIN
ArduinoOutput/core/IPAddress.cpp.o


BIN
ArduinoOutput/core/PluggableUSB.cpp.o


BIN
ArduinoOutput/core/Print.cpp.o


BIN
ArduinoOutput/core/Stream.cpp.o


BIN
ArduinoOutput/core/Tone.cpp.o


BIN
ArduinoOutput/core/USBCore.cpp.o


BIN
ArduinoOutput/core/WInterrupts.c.o


BIN
ArduinoOutput/core/WMath.cpp.o


BIN
ArduinoOutput/core/WString.cpp.o


BIN
ArduinoOutput/core/abi.cpp.o


BIN
ArduinoOutput/core/core.a


BIN
ArduinoOutput/core/hooks.c.o


BIN
ArduinoOutput/core/main.cpp.o


BIN
ArduinoOutput/core/new.cpp.o


BIN
ArduinoOutput/core/wiring.c.o


BIN
ArduinoOutput/core/wiring_analog.c.o


BIN
ArduinoOutput/core/wiring_digital.c.o


BIN
ArduinoOutput/core/wiring_pulse.c.o


BIN
ArduinoOutput/core/wiring_shift.c.o


BIN
ArduinoOutput/libraries/MedianFilter/MedianFilter.cpp.o


BIN
ArduinoOutput/libraries/Wire/Wire.cpp.o


BIN
ArduinoOutput/libraries/Wire/utility/twi.c.o


BIN
ArduinoOutput/libraries/Zumo32U4/L3G.cpp.o


BIN
ArduinoOutput/libraries/Zumo32U4/LSM303.cpp.o


BIN
ArduinoOutput/libraries/Zumo32U4/PololuBuzzer.cpp.o


BIN
ArduinoOutput/libraries/Zumo32U4/PololuHD44780.cpp.o


BIN
ArduinoOutput/libraries/Zumo32U4/Pushbutton.cpp.o


BIN
ArduinoOutput/libraries/Zumo32U4/QTRSensors.cpp.o


BIN
ArduinoOutput/libraries/Zumo32U4/Zumo32U4Encoders.cpp.o


BIN
ArduinoOutput/libraries/Zumo32U4/Zumo32U4IRPulses.cpp.o


BIN
ArduinoOutput/libraries/Zumo32U4/Zumo32U4Motors.cpp.o


BIN
ArduinoOutput/libraries/Zumo32U4/Zumo32U4ProximitySensors.cpp.o


+ 32 - 10
ArduinoOutput/preproc/ctags_target_for_gcc_minus_e.cpp

@@ -1,7 +1,7 @@
 # 1 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
 # 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 
 
@@ -36,10 +36,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);
 # 48 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
 int16_t lineValue[3]; //Liniensensoren
 uint16_t lineOffset[3]; //von links (0) nach rechts (2)
@@ -77,6 +77,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
@@ -257,11 +258,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 = 0x0;
+  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

+ 51 - 29
ArduinoOutput/sketch/Hauptprojekt.ino.cpp

@@ -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

BIN
ArduinoOutput/sketch/Hauptprojekt.ino.cpp.o


+ 32 - 10
Zumo32U4/Hauptprojekt/Hauptprojekt.ino

@@ -1,5 +1,5 @@
 //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). 
@@ -26,10 +26,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
@@ -81,6 +81,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
@@ -261,11 +262,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