Browse Source

Improved Bluetooth Communication

fstange 6 years ago
parent
commit
8aedffc156

BIN
ArduinoOutput/Hauptprojekt.ino.elf


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


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


+ 13 - 13
ArduinoOutput/preproc/ctags_target_for_gcc_minus_e.cpp

@@ -1,9 +1,9 @@
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
-//Verfassser: Felix Stange 4056379 MET2016
4
-//Datum: 19.07.2017 erstellt, 01.02.2018 zuletzt geändert
5
-//Projekt: Der Zumo fährt automatisch zwischen 2 Linien ohne diese zu überfahren mithilfe der 
6
-//Liniensensoren (3), ähnlich einer Spurhalteautomatik (heller Belag und dunkle Streifen). 
3
+//Verfassser: Felix Stange, 4056379, MET2016 
4
+//Datum: erstellt am 19.07.2017, zuletzt geändert am 06.02.2018 
5
+//Projektbeschreibung: Der Zumo fährt automatisch zwischen 2 Linien ohne diese zu überfahren mithilfe 
6
+//der Liniensensoren (3), ähnlich einer Spurhalteautomatik (heller Belag und dunkle Streifen). 
7 7
 //Außerdem werden Kollisionen verhindert durch Nutzung der vorderen Abstandssensoren. Kommt es 
8 8
 //dennoch zu einer Kollision, wird diese durch die Beschleunigungssensoren (LSM303) erkannt. 
9 9
 //Für den Überholvorgang werden die seitlichen Abstandssensoren und der Drehbewegungssensor (L3G) 
@@ -48,7 +48,7 @@ uint16_t CycleTime = 0; //Zykluszeit
48 48
 int maxSpeed = 200; //Maximale Geschwindigkeit (möglich 400)
49 49
 char dir; //Fahrtrichtung, Ereignis
50 50
 char report[200]; //Ausgabe
51
-int warning = 0; //1 zeigt Überhol-/Abbiegevorgang an
51
+String btData;
52 52
 
53 53
 /*-----------------------------------------------------------------*/
54 54
 
@@ -224,9 +224,9 @@ void EncoderUpdate()
224 224
 void Kollisionserkennung()
225 225
 {
226 226
   dir = 'X';
227
-  Serial1.println("Kollision erkannt");
228
-  Serial1.println("1");
227
+  Serial1.println("Kollision");
229 228
   ledRed(1);
229
+
230 230
   motors.setSpeeds(0, 0);
231 231
   delay(500);
232 232
   while(lineValue[0] < 300 && lineValue[2] < 300)
@@ -240,8 +240,7 @@ void Kollisionserkennung()
240 240
 void Hindernisumfahren()
241 241
 {
242 242
   dir = 'U';
243
-  Serial1.println("Hindernis umfahren");
244
-  Serial1.println("1");
243
+  Serial1.println("Hindernisumfahren");
245 244
   ledYellow(1);
246 245
 
247 246
   //Schritt 1: Spurwechsel links   
@@ -325,7 +324,6 @@ void Abbiegen()
325 324
   dir = 'A';
326 325
   ledYellow(1);
327 326
   Serial1.println("Abbiegen");
328
-  Serial1.println("1");
329 327
 
330 328
   //Kodierung analysieren
331 329
   bool leftCode; //links => 1
@@ -471,15 +469,17 @@ void loop()
471 469
   EncoderUpdate();
472 470
 
473 471
   //Funktionsauswahl
474
-  warning = Serial1.read();
475
-  if(warning == 1) //verfügbare Funktionen bei laufenden Manövern
472
+  btData = Serial1.readString();
473
+  //verfügbare Funktionen bei laufenden Manövern
474
+  if(btData == "Abbiegen" || btData == "Hindernisumfahren" || btData == "Kollision")
476 475
   {
477 476
     maxSpeed = 100;
478 477
     if(moveRate > 1000 || proxValue[1] > 4 || proxValue[2] > 4 || lineValue[0] > 1000 ||
479 478
     lineValue[2] > 1000) motors.setSpeeds(0, 0);
480 479
     else Spurhalten();
481 480
   }
482
-  else //verfügbare Funktionen im Normalfall
481
+  //verfügbare Funktionen im Normalfall
482
+  else
483 483
   {
484 484
     if(moveRate > 1000) Kollisionserkennung();
485 485
     else if(proxValue[1] == 6 || proxValue[2] == 6) motors.setSpeeds(0, 0);

+ 17 - 17
ArduinoOutput/sketch/Hauptprojekt.ino.cpp

@@ -1,10 +1,10 @@
1 1
 #include <Arduino.h>
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
-//Verfassser: Felix Stange 4056379 MET2016
5
-//Datum: 19.07.2017 erstellt, 01.02.2018 zuletzt geändert
6
-//Projekt: Der Zumo fährt automatisch zwischen 2 Linien ohne diese zu überfahren mithilfe der 
7
-//Liniensensoren (3), ähnlich einer Spurhalteautomatik (heller Belag und dunkle Streifen). 
4
+//Verfassser: Felix Stange, 4056379, MET2016 
5
+//Datum: erstellt am 19.07.2017, zuletzt geändert am 06.02.2018 
6
+//Projektbeschreibung: Der Zumo fährt automatisch zwischen 2 Linien ohne diese zu überfahren mithilfe 
7
+//der Liniensensoren (3), ähnlich einer Spurhalteautomatik (heller Belag und dunkle Streifen). 
8 8
 //Außerdem werden Kollisionen verhindert durch Nutzung der vorderen Abstandssensoren. Kommt es 
9 9
 //dennoch zu einer Kollision, wird diese durch die Beschleunigungssensoren (LSM303) erkannt. 
10 10
 //Für den Überholvorgang werden die seitlichen Abstandssensoren und der Drehbewegungssensor (L3G) 
@@ -49,7 +49,7 @@ uint16_t  CycleTime = 0;                //Zykluszeit
49 49
 int       maxSpeed = 200;               //Maximale Geschwindigkeit (möglich 400)
50 50
 char      dir;                          //Fahrtrichtung, Ereignis
51 51
 char      report[200];                  //Ausgabe
52
-int       warning = 0;                  //1 zeigt Überhol-/Abbiegevorgang an
52
+String    btData;
53 53
 
54 54
 /*-----------------------------------------------------------------*/
55 55
 
@@ -80,13 +80,13 @@ void EncoderUpdate();
80 80
 void Kollisionserkennung();
81 81
 #line 238 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
82 82
 void Hindernisumfahren();
83
-#line 321 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
83
+#line 320 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
84 84
 void Abbiegen();
85
-#line 398 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
85
+#line 396 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
86 86
 void Spurhalten();
87
-#line 445 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
87
+#line 443 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
88 88
 void SerialOutput();
89
-#line 457 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
89
+#line 455 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
90 90
 void loop();
91 91
 #line 54 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
92 92
 void LineSetup()                                            
@@ -260,9 +260,9 @@ void EncoderUpdate()
260 260
 void Kollisionserkennung()                                            
261 261
 {
262 262
   dir = 'X';
263
-  Serial1.println("Kollision erkannt");
264
-  Serial1.println("1"); 
263
+  Serial1.println("Kollision");
265 264
   ledRed(1);
265
+
266 266
   motors.setSpeeds(0, 0);
267 267
   delay(500);
268 268
   while(lineValue[0] < 300 && lineValue[2] < 300)
@@ -276,8 +276,7 @@ void Kollisionserkennung()
276 276
 void Hindernisumfahren()                                              
277 277
 {
278 278
   dir = 'U';
279
-  Serial1.println("Hindernis umfahren"); 
280
-  Serial1.println("1"); 
279
+  Serial1.println("Hindernisumfahren"); 
281 280
   ledYellow(1);
282 281
 
283 282
   //Schritt 1: Spurwechsel links   
@@ -361,7 +360,6 @@ void Abbiegen()
361 360
   dir = 'A';
362 361
   ledYellow(1); 
363 362
   Serial1.println("Abbiegen");  
364
-  Serial1.println("1"); 
365 363
 
366 364
   //Kodierung analysieren
367 365
   bool  leftCode;                                                         //links => 1
@@ -507,15 +505,17 @@ void loop()
507 505
   EncoderUpdate();
508 506
 
509 507
   //Funktionsauswahl
510
-  warning = Serial1.read();
511
-  if(warning == 1)                                                  //verfügbare Funktionen bei laufenden Manövern
508
+  btData = Serial1.readString();
509
+  //verfügbare Funktionen bei laufenden Manövern
510
+  if(btData == "Abbiegen" || btData == "Hindernisumfahren" || btData == "Kollision")                                                  
512 511
   {
513 512
     maxSpeed = 100;
514 513
     if(moveRate > 1000 || proxValue[1] > 4 || proxValue[2] > 4 || lineValue[0] > 1000 || 
515 514
     lineValue[2] > 1000) motors.setSpeeds(0, 0);  
516 515
     else Spurhalten();
517 516
   }
518
-  else                                                              //verfügbare Funktionen im Normalfall
517
+  //verfügbare Funktionen im Normalfall
518
+  else                                                              
519 519
   {
520 520
     if(moveRate > 1000) Kollisionserkennung();         
521 521
     else if(proxValue[1] == 6 || proxValue[2] == 6) motors.setSpeeds(0, 0);  

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


+ 14 - 14
Zumo32U4/Hauptprojekt/Hauptprojekt.ino

@@ -1,7 +1,7 @@
1
-//Verfassser: Felix Stange 4056379 MET2016
2
-//Datum: 19.07.2017 erstellt, 02.02.2018 zuletzt geändert
3
-//Projekt: Der Zumo fährt automatisch zwischen 2 Linien ohne diese zu überfahren mithilfe der 
4
-//Liniensensoren (3), ähnlich einer Spurhalteautomatik (heller Belag und dunkle Streifen). 
1
+//Verfassser: Felix Stange, 4056379, MET2016 
2
+//Datum: erstellt am 19.07.2017, zuletzt geändert am 15.02.2018 
3
+//Projektbeschreibung: Der Zumo fährt automatisch zwischen 2 Linien ohne diese zu überfahren mithilfe 
4
+//der Liniensensoren (3), ähnlich einer Spurhalteautomatik (heller Belag und dunkle Streifen). 
5 5
 //Außerdem werden Kollisionen verhindert durch Nutzung der vorderen Abstandssensoren. Kommt es 
6 6
 //dennoch zu einer Kollision, wird diese durch die Beschleunigungssensoren (LSM303) erkannt. 
7 7
 //Für den Überholvorgang werden die seitlichen Abstandssensoren und der Drehbewegungssensor (L3G) 
@@ -46,7 +46,7 @@ uint16_t  CycleTime = 0;                //Zykluszeit
46 46
 int       maxSpeed = 200;               //Maximale Geschwindigkeit (möglich 400)
47 47
 char      dir;                          //Fahrtrichtung, Ereignis
48 48
 char      report[200];                  //Ausgabe
49
-int       warning = 0;                  //1 zeigt Überhol-/Abbiegevorgang an
49
+String    btData;
50 50
 
51 51
 /*-----------------------------------------------------------------*/
52 52
 
@@ -222,9 +222,9 @@ void EncoderUpdate()
222 222
 void Kollisionserkennung()                                            
223 223
 {
224 224
   dir = 'X';
225
-  Serial1.println("Kollision erkannt");
226
-  Serial1.println("1"); 
225
+  Serial1.println("Kollision");
227 226
   ledRed(1);
227
+
228 228
   motors.setSpeeds(0, 0);
229 229
   delay(500);
230 230
   while(lineValue[0] < 300 && lineValue[2] < 300)
@@ -238,8 +238,7 @@ void Kollisionserkennung()
238 238
 void Hindernisumfahren()                                              
239 239
 {
240 240
   dir = 'U';
241
-  Serial1.println("Hindernis umfahren"); 
242
-  Serial1.println("1"); 
241
+  Serial1.println("Hindernisumfahren"); 
243 242
   ledYellow(1);
244 243
 
245 244
   //Schritt 1: Spurwechsel links   
@@ -272,7 +271,7 @@ void Hindernisumfahren()
272 271
   proxSensors.read();                                                 
273 272
   proxValue[1] = proxSensors.countsFrontWithLeftLeds();
274 273
   proxValue[2] = proxSensors.countsFrontWithRightLeds();  
275
-  if(proxValue[1] < 4 || proxValue[2] < 4)
274
+  if(proxValue[1] < 5 || proxValue[2] < 5)
276 275
   {
277 276
     //Schritt 2: Hindernis passieren
278 277
     motors.setSpeeds(maxSpeed, maxSpeed);                    
@@ -323,7 +322,6 @@ void Abbiegen()
323 322
   dir = 'A';
324 323
   ledYellow(1); 
325 324
   Serial1.println("Abbiegen");  
326
-  Serial1.println("1"); 
327 325
 
328 326
   //Kodierung analysieren
329 327
   bool  leftCode;                                                         //links => 1
@@ -469,15 +467,17 @@ void loop()
469 467
   EncoderUpdate();
470 468
 
471 469
   //Funktionsauswahl
472
-  warning = Serial1.read();
473
-  if(warning == 1)                                                  //verfügbare Funktionen bei laufenden Manövern
470
+  btData = Serial1.readString();
471
+  //verfügbare Funktionen bei laufenden Manövern
472
+  if(btData == "Abbiegen" || btData == "Hindernisumfahren" || btData == "Kollision")                                                  
474 473
   {
475 474
     maxSpeed = 100;
476 475
     if(moveRate > 1000 || proxValue[1] > 4 || proxValue[2] > 4 || lineValue[0] > 1000 || 
477 476
     lineValue[2] > 1000) motors.setSpeeds(0, 0);  
478 477
     else Spurhalten();
479 478
   }
480
-  else                                                              //verfügbare Funktionen im Normalfall
479
+  //verfügbare Funktionen im Normalfall
480
+  else                                                              
481 481
   {
482 482
     if(moveRate > 1000) Kollisionserkennung();         
483 483
     else if(proxValue[1] == 6 || proxValue[2] == 6) motors.setSpeeds(0, 0);