Bike Safety Assistent: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 61: Zeile 61:
long entfernungMinus45 = 0;
long entfernungMinus45 = 0;


void setup() {
void setup()  
  // put your setup code here, to run once:
{
   Serial.begin(9600);
   Serial.begin(9600);
   pinMode(trigger0,OUTPUT);
   pinMode(trigger0,OUTPUT);
Zeile 70: Zeile 70:
   pinMode(triggerMinus45,OUTPUT);
   pinMode(triggerMinus45,OUTPUT);
   pinMode(echoMinus45, INPUT);
   pinMode(echoMinus45, INPUT);
 
}
}


void loop() {
void loop()  
  // put your main code here, to run repeatedly:
{
   digitalWrite(trigger0,LOW);
   digitalWrite(trigger0,LOW);
   delay(5);
   delay(5);
Zeile 81: Zeile 80:
   digitalWrite(trigger0,LOW);
   digitalWrite(trigger0,LOW);
    
    
  // Sensor 2 Mitte bei 0 Grad
   dauer0 = pulseIn(echo0, HIGH);
   dauer0 = pulseIn(echo0, HIGH);
   entfernung0 = (dauer0/2) * 0.3432;
   entfernung0 = (dauer0/2) * 0.3432;
Zeile 87: Zeile 85:


   if (entfernung0 >= 5000 || entfernung0 <= 0)
   if (entfernung0 >= 5000 || entfernung0 <= 0)
  {
    {
     Serial.println("Sensor 2 Mitte bei 0 Grad Kein Messwert");
     Serial.println("Sensor 2 Mitte bei 0 Grad Kein Messwert");
      
     }
  }
   else
   else
  {
    {
     Serial.print("Sensor 2 Mitte bei 0 Grad misst: ");
     Serial.print("Sensor 2 Mitte bei 0 Grad misst: ");
     Serial.print(entfernung0);
     Serial.print(entfernung0);
     Serial.println(" mm");
     Serial.println(" mm");
  }
    }
    
    
   delay(100);
   delay(100);
Zeile 105: Zeile 102:
   digitalWrite(triggerPlus45,LOW);
   digitalWrite(triggerPlus45,LOW);


  // Sensor 1 Vorne bei +45 Grad
   dauerPlus45 = pulseIn(echoPlus45, HIGH);
   dauerPlus45 = pulseIn(echoPlus45, HIGH);
   entfernungPlus45 = (dauerPlus45/2) * 0.3432;
   entfernungPlus45 = (dauerPlus45/2) * 0.3432;


   if (entfernungPlus45 >= 5000 || entfernungPlus45 <= 0)
   if (entfernungPlus45 >= 5000 || entfernungPlus45 <= 0)
  {
    {
     Serial.println("Sensor 1 Vorne bei +45 Grad Kein Messwert");
     Serial.println("Sensor 1 Vorne bei +45 Grad Kein Messwert");
      
     }
  }
 
   else
   else
  {
    {
     Serial.print("Sensor 1 Vorne bei +45 Grad misst: ");
     Serial.print("Sensor 1 Vorne bei +45 Grad misst: ");
     Serial.print(entfernungPlus45);
     Serial.print(entfernungPlus45);
     Serial.println(" mm");
     Serial.println(" mm");
  }
    }




Zeile 129: Zeile 125:
   digitalWrite(triggerMinus45,LOW);
   digitalWrite(triggerMinus45,LOW);


  // Sensor 3 Hinten bei -45 Grad
 
   dauerMinus45 = pulseIn(echoMinus45, HIGH);
   dauerMinus45 = pulseIn(echoMinus45, HIGH);
   entfernungMinus45 = (dauerMinus45/2) * 0.3432;
   entfernungMinus45 = (dauerMinus45/2) * 0.3432;
Zeile 135: Zeile 131:
      
      
   if (entfernungMinus45 >= 5000 || entfernungMinus45 <= 0)
   if (entfernungMinus45 >= 5000 || entfernungMinus45 <= 0)
  {
    {
     Serial.println("Sensor 3 Hinten bei -45 Grad Kein Messwert");
     Serial.println("Sensor 3 Hinten bei -45 Grad Kein Messwert");
      
     }
  }
 
   else
   else
  {
    {
 
     Serial.print("Sensor 3 Hinten bei -45 Grad misst: ");
     Serial.print("Sensor 3 Hinten bei -45 Grad misst: ");
     Serial.print(entfernungMinus45);
     Serial.print(entfernungMinus45);
     Serial.println(" mm");
     Serial.println(" mm");
      
     }
  }
 
   delay(1000);
   delay(1000);
}
}

Version vom 1. November 2021, 13:13 Uhr

→ zurück zum Hauptartikel: WS 21/22: Fachpraktikum Elektrotechnik (MTR) und Angewandte Elektrotechnik (BSE)

Autoren: Pia Kostede; Gerrit Wurth; Andreas Mentrup
Betreuer: Marc Ebmeyer

Abb. 1: Symbolbild Bike Safety Assistent

Einleitung

Das Fahrradfahren wird seit Jahren immer beliebter. So nimmt die Anzahl an Fahrrädern in Deutschland kontinuierlich zu. Im Jahr 2005 gab es 67 Mio. Fahrräder. 2020 waren es bereits 79,1 Mio. Dies entspricht einem Anstieg um 18 Prozent [1]. Nicht nur der Umweltgedanke, sondern auch die persönliche Fitness spielen dabei eine wichtige Rolle. Allerdings ist das Fahrradfahren, besonders im fließenden Straßenverkehr, nicht gerade ungefährlich. So gab es im Jahr 2020 allein im ersten Jahresquartal 10.200 registrierte Fahrradunfälle mit Personenschaden. Davon waren 8.245 Unfälle mit Leichtverletzen, 1.901 Schwerverletzten und 54 Unfälle endeten tödlich [2]. Besonders die schlecht ausgebauten Radwege bzw. Radfahrstreifen werden von den Fahrradfahrern als Risikofaktor wahrgenommen [3].
Da auch die Politik dieses Problem erkannt hat, wurde reagiert und die StVO hinsichtlich der geltenden Abstandsregelungen beim Überholen von Fahrrädern mit Kraftfahrzeugen geändert. Seit April 2020 gilt nun ein Mindestabstand innerorts von 1,5 Metern und außerorts von 2 Metern. Diese Vorschrift trägt dazu bei, das Radfahren ein wenig sicherer zu machen. Allerdings wird dieser Abstand von den Autofahrern in den meisten Fällen nicht eingehalten. Daher ist es als Fahrradfahrer notwendig, sich zusätzlich selbst zu schützen. Eine Möglichkeit wird der Bike Safety Assistent, ein Abstandsmesssystem für das Fahrrad, sein. Dieser misst den zu erwartenden Seitenabstand und zeigt diesen dem Fahrradfahrer an. Der Bike Safety Assistent soll im Rahmen dieses Projektes im Fach Angewandte Elektrotechnik im Masterstudiengang Business and Systems Engineering entwickelt und realisiert werden.

Projektplanung

Abb. 2: Projektplanung als Gantt-Diagramm [4]


Der aktuelle Stand der Projektplanung ist in dieser Excel-Tabelle zu finden

Anforderungen

Abb. 3: Anforderungsliste



Funktionaler Systementwurf

Abb. 4: Funktionaler Systementwurf

Der funktionale Systementwurf besteht aus drei Modulgruppen.

Sensoren

Mit den drei Ultraschallsensoren wird die Distanz zum überholenden KFZ gemessen. Ergänzend dazu wird über Sensor 1 und Sensor 3 die Zeit des Überholvorganges erfasst. Mit dem induktiven Näherungssensor wird über die Raddrehzahl und den Umfang des Vorderrades die eigene Geschwindigkeit ermittelt. Mit einem Schalter kann der Bike Safety Assistent ein- und ausgeschaltet werden. Um zwischen einer Fahrt innerhalb oder außerhalb einer Ortschaft zu wählen wird ein zweiter Schalter verwendet. Durch drücken des Tasters wird der Überholvorgang bestätigt.

Mikrocontroller

Der Mikrocontroller verarbeitet die Sensordaten und übernimmt die Auswertung und Berechnung des Überholvorganges.

Anzeige

Auf einem Display kann die eigene Geschwindigkeit, die zurückgelegte Strecke, die Durchschnittsgeschwindigkeit der letzten 2 Kilometer und die Dauer der Fahrt angezeigt werden. Wird ein Überholvorgang erkannt, werden diese Werte durch die Überholdistanz sowie die Geschwindigkeit des überholenden KFZ ergänzt.

Technischer Systementwurf

Komponentenspezifikation

Programmierung

int trigger0 = 3; int echo0 = 2; int triggerPlus45 = 6; int echoPlus45 = 7; int triggerMinus45 = 9; int echoMinus45 = 8; long dauer0 = 0; long dauerPlus45 = 0; long dauerMinus45 = 0; long entfernung0 = 0; long entfernungPlus45 = 0; long entfernungMinus45 = 0;

void setup() {

 Serial.begin(9600);
 pinMode(trigger0,OUTPUT);
 pinMode(echo0, INPUT);
 pinMode(triggerPlus45,OUTPUT);
 pinMode(echoPlus45, INPUT);
 pinMode(triggerMinus45,OUTPUT);
 pinMode(echoMinus45, INPUT);

}

void loop() {

 digitalWrite(trigger0,LOW);
 delay(5);
 digitalWrite(trigger0,HIGH);
 delay(10);
 digitalWrite(trigger0,LOW);
 
 dauer0 = pulseIn(echo0, HIGH);
 entfernung0 = (dauer0/2) * 0.3432;
 
 if (entfernung0 >= 5000 || entfernung0 <= 0)
   {
   Serial.println("Sensor 2 Mitte bei 0 Grad Kein Messwert");
   }
 else
   {
   Serial.print("Sensor 2 Mitte bei 0 Grad misst: ");
   Serial.print(entfernung0);
   Serial.println(" mm");
   }
 
 delay(100);
 digitalWrite(triggerPlus45,LOW);
 delay(5);
 digitalWrite(triggerPlus45,HIGH);
 delay(10);
 digitalWrite(triggerPlus45,LOW);
 dauerPlus45 = pulseIn(echoPlus45, HIGH);
 entfernungPlus45 = (dauerPlus45/2) * 0.3432;
 if (entfernungPlus45 >= 5000 || entfernungPlus45 <= 0)
   {
   Serial.println("Sensor 1 Vorne bei +45 Grad Kein Messwert");
   }
 else
   {
   Serial.print("Sensor 1 Vorne bei +45 Grad misst: ");
   Serial.print(entfernungPlus45);
   Serial.println(" mm");
   }


 delay(100);
 digitalWrite(triggerMinus45,LOW);
 delay(5);
 digitalWrite(triggerMinus45,HIGH);
 delay(10);
 digitalWrite(triggerMinus45,LOW);


 dauerMinus45 = pulseIn(echoMinus45, HIGH);
 entfernungMinus45 = (dauerMinus45/2) * 0.3432;


 if (entfernungMinus45 >= 5000 || entfernungMinus45 <= 0)
   {
   Serial.println("Sensor 3 Hinten bei -45 Grad Kein Messwert");
   }
 else
   {
   Serial.print("Sensor 3 Hinten bei -45 Grad misst: ");
   Serial.print(entfernungMinus45);
   Serial.println(" mm");
   }
 delay(1000);

}

Komponententest

Zusammenfassung

Literaturverzeichnis



→ zurück zum Hauptartikel: WS 21/22: Fachpraktikum Elektrotechnik (MTR) und Angewandte Elektrotechnik (BSE)