소스 검색

Improved Bluetooth Communication

fstange 6 년 전
부모
커밋
8aedffc156

BIN
ArduinoOutput/Hauptprojekt.ino.elf


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1343 - 1306
ArduinoOutput/Hauptprojekt.ino.hex


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1343 - 1306
ArduinoOutput/Hauptprojekt.ino.with_bootloader.hex


+ 13 - 13
ArduinoOutput/preproc/ctags_target_for_gcc_minus_e.cpp

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

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

@@ -1,10 +1,10 @@
 #include <Arduino.h>
 #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: 19.07.2017 erstellt, 01.02.2018 zuletzt geändert
-//Projekt: Der Zumo fährt automatisch zwischen 2 Linien ohne diese zu überfahren mithilfe der 
-//Liniensensoren (3), ähnlich einer Spurhalteautomatik (heller Belag und dunkle Streifen). 
+//Verfassser: Felix Stange, 4056379, MET2016 
+//Datum: erstellt am 19.07.2017, zuletzt geändert am 06.02.2018 
+//Projektbeschreibung: Der Zumo fährt automatisch zwischen 2 Linien ohne diese zu überfahren mithilfe 
+//der Liniensensoren (3), ähnlich einer Spurhalteautomatik (heller Belag und dunkle Streifen). 
 //Außerdem werden Kollisionen verhindert durch Nutzung der vorderen Abstandssensoren. Kommt es 
 //dennoch zu einer Kollision, wird diese durch die Beschleunigungssensoren (LSM303) erkannt. 
 //Für den Überholvorgang werden die seitlichen Abstandssensoren und der Drehbewegungssensor (L3G) 
@@ -49,7 +49,7 @@ uint16_t  CycleTime = 0;                //Zykluszeit
 int       maxSpeed = 200;               //Maximale Geschwindigkeit (möglich 400)
 char      dir;                          //Fahrtrichtung, Ereignis
 char      report[200];                  //Ausgabe
-int       warning = 0;                  //1 zeigt Überhol-/Abbiegevorgang an
+String    btData;
 
 /*-----------------------------------------------------------------*/
 
@@ -80,13 +80,13 @@ void EncoderUpdate();
 void Kollisionserkennung();
 #line 238 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
 void Hindernisumfahren();
-#line 321 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+#line 320 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
 void Abbiegen();
-#line 398 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+#line 396 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
 void Spurhalten();
-#line 445 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+#line 443 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
 void SerialOutput();
-#line 457 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+#line 455 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
 void loop();
 #line 54 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
 void LineSetup()                                            
@@ -260,9 +260,9 @@ void EncoderUpdate()
 void Kollisionserkennung()                                            
 {
   dir = 'X';
-  Serial1.println("Kollision erkannt");
-  Serial1.println("1"); 
+  Serial1.println("Kollision");
   ledRed(1);
+
   motors.setSpeeds(0, 0);
   delay(500);
   while(lineValue[0] < 300 && lineValue[2] < 300)
@@ -276,8 +276,7 @@ void Kollisionserkennung()
 void Hindernisumfahren()                                              
 {
   dir = 'U';
-  Serial1.println("Hindernis umfahren"); 
-  Serial1.println("1"); 
+  Serial1.println("Hindernisumfahren"); 
   ledYellow(1);
 
   //Schritt 1: Spurwechsel links   
@@ -361,7 +360,6 @@ void Abbiegen()
   dir = 'A';
   ledYellow(1); 
   Serial1.println("Abbiegen");  
-  Serial1.println("1"); 
 
   //Kodierung analysieren
   bool  leftCode;                                                         //links => 1
@@ -507,15 +505,17 @@ void loop()
   EncoderUpdate();
 
   //Funktionsauswahl
-  warning = Serial1.read();
-  if(warning == 1)                                                  //verfügbare Funktionen bei laufenden Manövern
+  btData = Serial1.readString();
+  //verfügbare Funktionen bei laufenden Manövern
+  if(btData == "Abbiegen" || btData == "Hindernisumfahren" || btData == "Kollision")                                                  
   {
     maxSpeed = 100;
     if(moveRate > 1000 || proxValue[1] > 4 || proxValue[2] > 4 || lineValue[0] > 1000 || 
     lineValue[2] > 1000) motors.setSpeeds(0, 0);  
     else Spurhalten();
   }
-  else                                                              //verfügbare Funktionen im Normalfall
+  //verfügbare Funktionen im Normalfall
+  else                                                              
   {
     if(moveRate > 1000) Kollisionserkennung();         
     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 @@
-//Verfassser: Felix Stange 4056379 MET2016
-//Datum: 19.07.2017 erstellt, 02.02.2018 zuletzt geändert
-//Projekt: Der Zumo fährt automatisch zwischen 2 Linien ohne diese zu überfahren mithilfe der 
-//Liniensensoren (3), ähnlich einer Spurhalteautomatik (heller Belag und dunkle Streifen). 
+//Verfassser: Felix Stange, 4056379, MET2016 
+//Datum: erstellt am 19.07.2017, zuletzt geändert am 15.02.2018 
+//Projektbeschreibung: Der Zumo fährt automatisch zwischen 2 Linien ohne diese zu überfahren mithilfe 
+//der Liniensensoren (3), ähnlich einer Spurhalteautomatik (heller Belag und dunkle Streifen). 
 //Außerdem werden Kollisionen verhindert durch Nutzung der vorderen Abstandssensoren. Kommt es 
 //dennoch zu einer Kollision, wird diese durch die Beschleunigungssensoren (LSM303) erkannt. 
 //Für den Überholvorgang werden die seitlichen Abstandssensoren und der Drehbewegungssensor (L3G) 
@@ -46,7 +46,7 @@ uint16_t  CycleTime = 0;                //Zykluszeit
 int       maxSpeed = 200;               //Maximale Geschwindigkeit (möglich 400)
 char      dir;                          //Fahrtrichtung, Ereignis
 char      report[200];                  //Ausgabe
-int       warning = 0;                  //1 zeigt Überhol-/Abbiegevorgang an
+String    btData;
 
 /*-----------------------------------------------------------------*/
 
@@ -222,9 +222,9 @@ void EncoderUpdate()
 void Kollisionserkennung()                                            
 {
   dir = 'X';
-  Serial1.println("Kollision erkannt");
-  Serial1.println("1"); 
+  Serial1.println("Kollision");
   ledRed(1);
+
   motors.setSpeeds(0, 0);
   delay(500);
   while(lineValue[0] < 300 && lineValue[2] < 300)
@@ -238,8 +238,7 @@ void Kollisionserkennung()
 void Hindernisumfahren()                                              
 {
   dir = 'U';
-  Serial1.println("Hindernis umfahren"); 
-  Serial1.println("1"); 
+  Serial1.println("Hindernisumfahren"); 
   ledYellow(1);
 
   //Schritt 1: Spurwechsel links   
@@ -272,7 +271,7 @@ void Hindernisumfahren()
   proxSensors.read();                                                 
   proxValue[1] = proxSensors.countsFrontWithLeftLeds();
   proxValue[2] = proxSensors.countsFrontWithRightLeds();  
-  if(proxValue[1] < 4 || proxValue[2] < 4)
+  if(proxValue[1] < 5 || proxValue[2] < 5)
   {
     //Schritt 2: Hindernis passieren
     motors.setSpeeds(maxSpeed, maxSpeed);                    
@@ -323,7 +322,6 @@ void Abbiegen()
   dir = 'A';
   ledYellow(1); 
   Serial1.println("Abbiegen");  
-  Serial1.println("1"); 
 
   //Kodierung analysieren
   bool  leftCode;                                                         //links => 1
@@ -469,15 +467,17 @@ void loop()
   EncoderUpdate();
 
   //Funktionsauswahl
-  warning = Serial1.read();
-  if(warning == 1)                                                  //verfügbare Funktionen bei laufenden Manövern
+  btData = Serial1.readString();
+  //verfügbare Funktionen bei laufenden Manövern
+  if(btData == "Abbiegen" || btData == "Hindernisumfahren" || btData == "Kollision")                                                  
   {
     maxSpeed = 100;
     if(moveRate > 1000 || proxValue[1] > 4 || proxValue[2] > 4 || lineValue[0] > 1000 || 
     lineValue[2] > 1000) motors.setSpeeds(0, 0);  
     else Spurhalten();
   }
-  else                                                              //verfügbare Funktionen im Normalfall
+  //verfügbare Funktionen im Normalfall
+  else                                                              
   {
     if(moveRate > 1000) Kollisionserkennung();         
     else if(proxValue[1] == 6 || proxValue[2] == 6) motors.setSpeeds(0, 0);