Browse Source

Updated Function ProxUpdate()

fstange 6 years ago
parent
commit
1ec74d2f28
46 changed files with 2876 additions and 2770 deletions
  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


File diff suppressed because it is too large
+ 1380 - 1360
ArduinoOutput/Hauptprojekt.ino.hex


File diff suppressed because it is too large
+ 1380 - 1360
ArduinoOutput/Hauptprojekt.ino.with_bootloader.hex


File diff suppressed because it is too large
+ 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 1
 # 1 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
2 2
 # 1 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
3 3
 //Verfassser: Felix Stange, 4056379, MET2016 
4
-//Datum: erstellt am 19.07.2017, zuletzt geändert am 08.05.2018 
4
+//Datum: erstellt am 19.07.2017, zuletzt geändert am 14.05.2018 
5 5
 //Projektthema: Untersuchungen und Implementierung eines automatisierten Fahrens mittels Pololu Zumo
6 6
 /*Kurzbeschreibung: Der Zumo fährt automatisch zwischen 2 Linien ohne diese zu überfahren mithilfe 
7 7
 
@@ -36,10 +36,10 @@ L3G gyro; //Drehbewegungssensor z-Achse
36 36
 MedianFilter LineFilter0(3, 0); //erstellen der Filter für Liniensensoren
37 37
 MedianFilter LineFilter1(3, 0); //Medianfilter geben mittleren Wert einer Reihe aus
38 38
 MedianFilter LineFilter2(3, 0); //Fenstergröße: 3, Basiswerte: 0 0 0
39
-MedianFilter ProxFilter0(3, 0); //erstellen der Filter für Abstandssensoren
40
-MedianFilter ProxFilter1(3, 0);
41
-MedianFilter ProxFilter2(3, 0);
42
-MedianFilter ProxFilter3(3, 0);
39
+MedianFilter ProxFilter0(5, 0); //erstellen der Filter für Abstandssensoren
40
+MedianFilter ProxFilter1(5, 0);
41
+MedianFilter ProxFilter2(5, 0);
42
+MedianFilter ProxFilter3(5, 0);
43 43
 # 48 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
44 44
 int16_t lineValue[3]; //Liniensensoren
45 45
 uint16_t lineOffset[3]; //von links (0) nach rechts (2)
@@ -77,6 +77,7 @@ void BlueSetup()
77 77
   Serial1.setTimeout(10); //verkürzt Serial(1).read auf 10 ms statt 1000 ms
78 78
   if(Serial1.available()) Serial.println("Bluetoothverbindung hergestellt");
79 79
   if(Serial1.available() > 0) Serial1.read(); //Verwerfen der alten Informationen aus dem Puffer
80
+  Serial1.print(0);
80 81
 }
81 82
 
82 83
 //Setup Liniensensoren
@@ -257,11 +258,32 @@ void LoopTiming()
257 258
 //Update Abstandssensoren
258 259
 void ProxUpdate()
259 260
 {
260
-  proxSensors.read();
261
-  proxValue[0] = ProxFilter0.in(proxSensors.countsLeftWithLeftLeds());
262
-  proxValue[1] = ProxFilter1.in(proxSensors.countsFrontWithLeftLeds());
263
-  proxValue[2] = ProxFilter2.in(proxSensors.countsFrontWithRightLeds());
264
-  proxValue[3] = ProxFilter3.in(proxSensors.countsRightWithRightLeds());
261
+  bool done = false;
262
+  int state = 0x0;
263
+  while(done == false)
264
+  {
265
+    //wiederholt abfragen, ob bereits gesendet wird (Dauer je 1000 us bzw. 1 ms)
266
+    if(pulseIn(20, state, 1000) == 0 && pulseIn(22, state, 1000) == 0 && pulseIn(4, state, 1000) == 0)
267
+    //if(pulseIn(22, state, 1000) > 0)
268
+    {
269
+      //wenn nichts gesendet wird, selbst Messung durchführen
270
+      proxSensors.read();
271
+      proxValue[0] = ProxFilter0.in(proxSensors.countsLeftWithLeftLeds());
272
+      proxValue[1] = ProxFilter1.in(proxSensors.countsFrontWithLeftLeds());
273
+      proxValue[2] = ProxFilter2.in(proxSensors.countsFrontWithRightLeds());
274
+      proxValue[3] = ProxFilter3.in(proxSensors.countsRightWithRightLeds());
275
+      // Serial.println(proxValue[0]);
276
+      // Serial.println(proxValue[1]);
277
+      // Serial.println(proxValue[2]);
278
+      // Serial.println(proxValue[3]);
279
+      done = true;
280
+    }
281
+    else
282
+    {
283
+      //solange fremde Signale empfangen werden, Fehler ausgeben
284
+      Serial.println("Fremdmessung erkannt");
285
+    }
286
+  }
265 287
 }
266 288
 
267 289
 //Update Liniensensoren

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

@@ -2,7 +2,7 @@
2 2
 #line 1 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
3 3
 #line 1 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
4 4
 //Verfassser: Felix Stange, 4056379, MET2016 
5
-//Datum: erstellt am 19.07.2017, zuletzt geändert am 08.05.2018 
5
+//Datum: erstellt am 19.07.2017, zuletzt geändert am 14.05.2018 
6 6
 //Projektthema: Untersuchungen und Implementierung eines automatisierten Fahrens mittels Pololu Zumo
7 7
 /*Kurzbeschreibung: Der Zumo fährt automatisch zwischen 2 Linien ohne diese zu überfahren mithilfe 
8 8
 der Liniensensoren (3), ähnlich einer Spurhalteautomatik (heller Belag und dunkle Streifen). 
@@ -29,10 +29,10 @@ L3G                       gyro;         //Drehbewegungssensor z-Achse
29 29
 MedianFilter LineFilter0(3, 0);         //erstellen der Filter für Liniensensoren
30 30
 MedianFilter LineFilter1(3, 0);         //Medianfilter geben mittleren Wert einer Reihe aus
31 31
 MedianFilter LineFilter2(3, 0);         //Fenstergröße: 3, Basiswerte: 0 0 0
32
-MedianFilter ProxFilter0(3, 0);         //erstellen der Filter für Abstandssensoren
33
-MedianFilter ProxFilter1(3, 0);
34
-MedianFilter ProxFilter2(3, 0);
35
-MedianFilter ProxFilter3(3, 0);
32
+MedianFilter ProxFilter0(5, 0);         //erstellen der Filter für Abstandssensoren
33
+MedianFilter ProxFilter1(5, 0);
34
+MedianFilter ProxFilter2(5, 0);
35
+MedianFilter ProxFilter3(5, 0);
36 36
 
37 37
 #define   MARKLINE0       150
38 38
 #define   MARKLINE1       100
@@ -80,43 +80,43 @@ bool      alarm = false;                //zeigt Manöver abhängig von btData
80 80
 //Setup Bluetoothverbindung
81 81
 #line 78 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
82 82
 void BlueSetup();
83
-#line 87 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
83
+#line 88 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
84 84
 void LineSetup();
85
-#line 116 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
85
+#line 117 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
86 86
 void ProxSetup();
87
-#line 122 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
87
+#line 123 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
88 88
 void GyroSetup();
89
-#line 155 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
89
+#line 156 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
90 90
 void CompassSetup();
91
-#line 186 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
91
+#line 187 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
92 92
 void setup();
93
-#line 212 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
93
+#line 213 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
94 94
 void TimeUpdate();
95
-#line 218 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
95
+#line 219 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
96 96
 void LoopTiming();
97
-#line 262 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
97
+#line 263 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
98 98
 void ProxUpdate();
99
-#line 272 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
99
+#line 294 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
100 100
 void LineUpdate();
101
-#line 282 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
101
+#line 304 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
102 102
 void GyroUpdate();
103
-#line 295 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
103
+#line 317 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
104 104
 void CompassUpdate();
105
-#line 308 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
105
+#line 330 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
106 106
 void EncoderUpdate();
107
-#line 319 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
107
+#line 341 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
108 108
 void Kontaktvermeiden();
109
-#line 338 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
109
+#line 360 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
110 110
 void Hindernisumfahren();
111
-#line 464 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
111
+#line 486 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
112 112
 void Abbiegen();
113
-#line 625 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
113
+#line 647 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
114 114
 void Spurhalten();
115
-#line 670 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
115
+#line 692 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
116 116
 void Spurfinden();
117
-#line 688 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
117
+#line 710 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
118 118
 void SerielleAusgabe();
119
-#line 703 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
119
+#line 725 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
120 120
 void loop();
121 121
 #line 78 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
122 122
 void BlueSetup()
@@ -125,6 +125,7 @@ void BlueSetup()
125 125
   Serial1.setTimeout(10);                           //verkürzt Serial(1).read auf 10 ms statt 1000 ms
126 126
   if(Serial1.available()) Serial.println("Bluetoothverbindung hergestellt");   
127 127
   if(Serial1.available() > 0) Serial1.read();       //Verwerfen der alten Informationen aus dem Puffer
128
+  Serial1.print(0);  
128 129
 }           
129 130
 
130 131
 //Setup Liniensensoren
@@ -305,11 +306,32 @@ void LoopTiming()
305 306
 //Update Abstandssensoren
306 307
 void ProxUpdate()
307 308
 {
308
-  proxSensors.read();
309
-  proxValue[0] = ProxFilter0.in(proxSensors.countsLeftWithLeftLeds());
310
-  proxValue[1] = ProxFilter1.in(proxSensors.countsFrontWithLeftLeds());
311
-  proxValue[2] = ProxFilter2.in(proxSensors.countsFrontWithRightLeds());  
312
-  proxValue[3] = ProxFilter3.in(proxSensors.countsRightWithRightLeds()); 
309
+  bool  done = false;
310
+  int   state = LOW;
311
+  while(done == false)
312
+  {
313
+    //wiederholt abfragen, ob bereits gesendet wird (Dauer je 1000 us bzw. 1 ms)
314
+    if(pulseIn(20, state, 1000) == 0 && pulseIn(22, state, 1000) == 0 && pulseIn(4, state, 1000) == 0) 
315
+    //if(pulseIn(22, state, 1000) > 0)
316
+    {
317
+      //wenn nichts gesendet wird, selbst Messung durchführen
318
+      proxSensors.read();
319
+      proxValue[0] = ProxFilter0.in(proxSensors.countsLeftWithLeftLeds());
320
+      proxValue[1] = ProxFilter1.in(proxSensors.countsFrontWithLeftLeds());
321
+      proxValue[2] = ProxFilter2.in(proxSensors.countsFrontWithRightLeds());  
322
+      proxValue[3] = ProxFilter3.in(proxSensors.countsRightWithRightLeds()); 
323
+      // Serial.println(proxValue[0]);
324
+      // Serial.println(proxValue[1]);
325
+      // Serial.println(proxValue[2]);
326
+      // Serial.println(proxValue[3]);
327
+      done = true;
328
+    }
329
+    else
330
+    {
331
+      //solange fremde Signale empfangen werden, Fehler ausgeben
332
+      Serial.println("Fremdmessung erkannt");
333
+    }
334
+  }
313 335
 }
314 336
 
315 337
 //Update Liniensensoren

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


+ 32 - 10
Zumo32U4/Hauptprojekt/Hauptprojekt.ino

@@ -1,5 +1,5 @@
1 1
 //Verfassser: Felix Stange, 4056379, MET2016 
2
-//Datum: erstellt am 19.07.2017, zuletzt geändert am 08.05.2018 
2
+//Datum: erstellt am 19.07.2017, zuletzt geändert am 14.05.2018 
3 3
 //Projektthema: Untersuchungen und Implementierung eines automatisierten Fahrens mittels Pololu Zumo
4 4
 /*Kurzbeschreibung: Der Zumo fährt automatisch zwischen 2 Linien ohne diese zu überfahren mithilfe 
5 5
 der Liniensensoren (3), ähnlich einer Spurhalteautomatik (heller Belag und dunkle Streifen). 
@@ -26,10 +26,10 @@ L3G                       gyro;         //Drehbewegungssensor z-Achse
26 26
 MedianFilter LineFilter0(3, 0);         //erstellen der Filter für Liniensensoren
27 27
 MedianFilter LineFilter1(3, 0);         //Medianfilter geben mittleren Wert einer Reihe aus
28 28
 MedianFilter LineFilter2(3, 0);         //Fenstergröße: 3, Basiswerte: 0 0 0
29
-MedianFilter ProxFilter0(3, 0);         //erstellen der Filter für Abstandssensoren
30
-MedianFilter ProxFilter1(3, 0);
31
-MedianFilter ProxFilter2(3, 0);
32
-MedianFilter ProxFilter3(3, 0);
29
+MedianFilter ProxFilter0(5, 0);         //erstellen der Filter für Abstandssensoren
30
+MedianFilter ProxFilter1(5, 0);
31
+MedianFilter ProxFilter2(5, 0);
32
+MedianFilter ProxFilter3(5, 0);
33 33
 
34 34
 #define   MARKLINE0       150
35 35
 #define   MARKLINE1       100
@@ -81,6 +81,7 @@ void BlueSetup()
81 81
   Serial1.setTimeout(10);                           //verkürzt Serial(1).read auf 10 ms statt 1000 ms
82 82
   if(Serial1.available()) Serial.println("Bluetoothverbindung hergestellt");   
83 83
   if(Serial1.available() > 0) Serial1.read();       //Verwerfen der alten Informationen aus dem Puffer
84
+  Serial1.print(0);  
84 85
 }           
85 86
 
86 87
 //Setup Liniensensoren
@@ -261,11 +262,32 @@ void LoopTiming()
261 262
 //Update Abstandssensoren
262 263
 void ProxUpdate()
263 264
 {
264
-  proxSensors.read();
265
-  proxValue[0] = ProxFilter0.in(proxSensors.countsLeftWithLeftLeds());
266
-  proxValue[1] = ProxFilter1.in(proxSensors.countsFrontWithLeftLeds());
267
-  proxValue[2] = ProxFilter2.in(proxSensors.countsFrontWithRightLeds());  
268
-  proxValue[3] = ProxFilter3.in(proxSensors.countsRightWithRightLeds()); 
265
+  bool  done = false;
266
+  int   state = LOW;
267
+  while(done == false)
268
+  {
269
+    //wiederholt abfragen, ob bereits gesendet wird (Dauer je 1000 us bzw. 1 ms)
270
+    if(pulseIn(20, state, 1000) == 0 && pulseIn(22, state, 1000) == 0 && pulseIn(4, state, 1000) == 0) 
271
+    //if(pulseIn(22, state, 1000) > 0)
272
+    {
273
+      //wenn nichts gesendet wird, selbst Messung durchführen
274
+      proxSensors.read();
275
+      proxValue[0] = ProxFilter0.in(proxSensors.countsLeftWithLeftLeds());
276
+      proxValue[1] = ProxFilter1.in(proxSensors.countsFrontWithLeftLeds());
277
+      proxValue[2] = ProxFilter2.in(proxSensors.countsFrontWithRightLeds());  
278
+      proxValue[3] = ProxFilter3.in(proxSensors.countsRightWithRightLeds()); 
279
+      // Serial.println(proxValue[0]);
280
+      // Serial.println(proxValue[1]);
281
+      // Serial.println(proxValue[2]);
282
+      // Serial.println(proxValue[3]);
283
+      done = true;
284
+    }
285
+    else
286
+    {
287
+      //solange fremde Signale empfangen werden, Fehler ausgeben
288
+      Serial.println("Fremdmessung erkannt");
289
+    }
290
+  }
269 291
 }
270 292
 
271 293
 //Update Liniensensoren