Fahrrad-Bremsleuchte: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „Kategorie:Projekte Kategorie:ProjekteET MTR BSE WS2021 <!-- Kopieren Sie diesen Header in Ihren Artikel, damit er aufgelistet wird. --> '''Autoren: S…“)
 
Keine Bearbeitungszusammenfassung
 
(35 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Projekte]]  
[[Kategorie:Projekte]]  
[[Kategorie:ProjekteET MTR BSE WS2021]]
[[Kategorie:ProjekteET MTR BSE WS2021]]
[[Datei:Fahrrad_Bremsleuchte_Messestand.png|550px|thumb|right|Abb. 1: Werbeplakat für Projektmesse]]
<!-- Kopieren Sie diesen Header in Ihren Artikel, damit er aufgelistet wird.  -->
<!-- Kopieren Sie diesen Header in Ihren Artikel, damit er aufgelistet wird.  -->
'''Autoren: Sandra Hoppe & [[Benutzer:Florian Brinkmann | Florian Brinkmann]] ''' <br/>
'''Autoren: [[Benutzer:Sandra-Yvonne Hoppe | Sandra Yvonne Hoppe]] & [[Benutzer:Florian Brinkmann | Florian Brinkmann]] ''' <br/>
'''Betreuer: Prof. Göbel & Prof. Schneider''' <br/>
'''Betreuer: Prof. Göbel & Prof. Schneider''' <br/>


→ zurück zur Übersicht: [[:Kategorie:ProjekteET_MTR_BSE_WS2021|WS 21/22: Angewandte Elektrotechnik (BSE)]]
→ zurück zur Übersicht: [[:Kategorie:ProjekteET_MTR_BSE_WS2021|WS 21/22: Angewandte Elektrotechnik (BSE)]]
Zeile 13: Zeile 15:


== Anforderungen ==
== Anforderungen ==
{| class="mw-datatable"
{| class="wikitable"
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | Anforderung
! style="font-weight: bold;" | Anforderung


|+ style = "text-align: left"|Tabelle: Anforderungen an die Fahrrad-Bremsleuchte
|+ style = "text-align: left"|Tabelle 1: Anforderungen an die Fahrrad-Bremsleuchte
|-  
|-  
| '''1''' || '''Allgemein'''  
| '''1''' || '''Allgemein'''  
|-  
|-  
| 1.1 || Der Fahrradfahrer/die Fahrradfahrerin darf von dem System nicht beeinträchtigt werden.  
| 1.1 || Der Fahrradfahrer/die Fahrradfahrerin darf von dem System beim Fahren nicht beeinträchtigt werden, insbesondere beim Tretvorgang darf das System nicht mit dem Fahrer/der Fahrerin kollidieren.  
|-  
|-  
| 1.2 || Das System muss möglichst leicht sein.
| 1.2 || Das System muss möglichst leicht sein und sollte ein Gewicht von 750 g ±250 g nicht überschreiten.
|-
|-
| 1.3 || Das System muss mit einem Akku oder einer Batterie betrieben werden können
| 1.3 || Das System muss mit einem einer Batterie (9 V Block) betrieben werden können.
|-
|-
| '''2''' || '''Messung und Auswertung'''
| '''2''' || '''Messung und Auswertung'''
|-  
|-  
| 2.1 || Es muss die Beschleunigung oder die Geschwindigkeit (jeweils in Fahrtrichtung) gemessen werden.
| 2.1 || Es muss die Beschleunigung (in Fahrtrichtung) gemessen werden. Die Genauigkeit des Beschleunigungssensors sollte bei mindestens  ±<math> 0.5 \frac{m}{s^2} </math> liegen.
|-
|-
| 2.2 || Der Bremsvorgang muss erfasst werden.
| 2.2 || Der Bremsvorgang muss eindeutig erfasst werden. Um einen genauen Verzögerungswert angeben zu können, bei welchem das Bremslicht angeht, wird die Beschleunigung beim Ausrollen und Bremsen experimentell ermittelt.  
|-
|-
| '''3''' || '''Ausgabe'''
| '''3''' || '''Ausgabe'''
|-
|-
| 3.1 || Das Bremslicht muss erkennbar leuchten.
| 3.1 || Das Bremslicht muss beim Bremsvorgang aufleuchten.
|-
|-
| 3.2 || Andere Verkehrsteilnehmer oder Verkehrsteilnehmerinnen dürfen nicht beeinträchtigt oder abgelenkt werden. Dies gilt insbesondere für blendende oder ständig blinkende Beleuchtung.
| 3.2 || Andere Verkehrsteilnehmer oder Verkehrsteilnehmerinnen dürfen nicht beeinträchtigt oder abgelenkt werden. Dies gilt insbesondere für blendende oder ständig blinkende Beleuchtung.
Zeile 41: Zeile 43:


== Funktionaler Systementwurf/Technischer Systementwurf ==
== Funktionaler Systementwurf/Technischer Systementwurf ==
[[Datei:Funktionaler_Systementwurf_Fahrrad_Bremsleuchte.png|600px|thumb|right|Abb. 1: Funktionaler Systementwurf]]
Zum Erkennen eines Bremsvorgangs soll ein Beschleunigungssensor eingesetzt werden. Der Sensor misst die Beschleunigung, die dann vom Mikrocontroller ausgewertet wird. Erkennt der Mikrocontroller einen Bremsvorgang soll das Bremslicht eingeschaltet werden. Das Bremslicht soll mit einer LED-Matrix realisiert werden. Um das System ein- und ausschalten zu können soll zudem ein Schalter eingebaut werden, der in Reihe mit der Spannungsversorgung geschaltet ist. Ein entsprechender funktionaler Systementwurf ist in Abbildung 2 dargestellt. Die einzelnen Komponenten des Systems sollen in einem Gehäuse (siehe Abb. 3) untergebracht werden, welches mittelt 3D-Druck hergestellt werden soll.  
 
Zum Erkennen eines Bremsvorgangs soll ein Beschleunigungssensor eingesetzt werden. Der Sensor misst die Beschleunigung, die dann vom Mikrocontroller ausgewertet wird. Erkennt der Mikrocontroller einen Bremsvorgang soll das Bremslicht eingeschaltet werden. Ein entsprechender funktionaler Systementwurf ist in Abbildung 1 dargestellt.


Ein Entwurf der Schaltung wurde mit der Software Fritzing erstellt. Dieser ist in Abbildung 4 dargestellt. Zu beachten ist, dass in dem Schaltungsentwurf kein Schalter eingebracht ist. Dieser wird wie oben beschrieben in Reihe mit der Spannungsversorgung (9 V Block) angeschlossen.


<gallery widths="400" heights="200" perrow="3">
Funktionaler_Systementwurf_Fahrrad_Bremsleuchte.png|Abb. 2: Funktionaler Systementwurf
Datei:Skizze_Fahrrad_Bremsleuchte.png|Abb. 3: Skizze des Aufbaus
Datei:Schaltungsmodell_Fahrrad-Bremsleuchte.png|Abb. 4: Fritzing-Schaltungsmodell der Fahrrad-Bremsleuchte (ohne Schalter)
</gallery>


<!-- Füllen Sie Ihre Projektskizze bis hierher aus. Fügen Sie einen Projektplan unten ein.  -->
<!-- Füllen Sie Ihre Projektskizze bis hierher aus. Fügen Sie einen Projektplan unten ein.  -->


== Komponentenspezifikation ==
== Komponentenspezifikation ==
=== Beschleunigungssensor GY-521 ===
Um einen Bremsvorgang detektieren zu können, wird die Beschleunigung mit Hilfe eines Beschleunigungssensors gemessen. Der [https://www.funduinoshop.com/epages/78096195.sf/de_DE/?ObjectID=229830052 Beschleunigungssensor GY-521] basiert auf dem Modul MPU-6050. Dabei handelt es sich um einen Sensor der neben der Beschleunigung in den drei Raumrichtungen auch als Gyroskop um diese drei Achsen eingesetzt werden kann. Für den Beschleunigungssensor und das Gyroskop können jeweils vier verschiedene Messbereiche eingestellt werden. Diese sind für den Beschleunigungssensor ±2''g'', ±4''g'', ±8''g'' und ±16''g''. Des Weiteren enthält das Modul einen Temperatursensor. Intern werden die Messwerte bereits mit dem integrierten 16-bit Analog-Digital-Wandler digitalisiert, sodass die Messwerte anschließend über die I²C-Schnittstelle ausgelesen werden können.  <ref> [https://invensense.tdk.com/wp-content/uploads/2015/02/MPU-6000-Datasheet1.pdf Datenblatt MPU-6050]</ref> Zur Einstellung bzw. zur Konfiguration des Sensors kann der Inhalt der Register des Sensormoduls verändert werden. Beispielsweise kann der Messbereich des Sensors mit Hilfe des 3. und 4. Bits des Registers 0x1C eingestellt werden.<ref> [https://invensense.tdk.com/wp-content/uploads/2015/02/MPU-6000-Register-Map1.pdf Register Map MPU-6050] </ref> Dazu gibt es eine Beschreibung aller Register in der [https://invensense.tdk.com/wp-content/uploads/2015/02/MPU-6000-Register-Map1.pdf Register Map].
Technisch handelt es sich bei dem MPU-6050-Modul um einen kapazitiven, mikroelektromechanischen Beschleunigungssensor. Der Sensor besteht dabei aus einer mikromechanischen Kammstruktur, wobei die Kämme einen Kondensator bilden. Dabei sind die äußeren Elektrodenkämme feststehend, der mittlere Kamm jedoch beweglich. Der Abstand der Elektrodenkämme zueinander ist somit variabel und bestimmt die Kapazität des Kondensators. Wirkt nun auf den Sensor eine Beschleunigung in Bewegungsrichtung des beweglichen Elektrodenkamms, so wirkt die mechanische Beschleunigung auch auf die seismische Masse des beweglichen Elektrodenkamms. Somit kommt es zu einer Relativbewegung zwischen dem feststehenden und dem beweglichen Elektrodenkamm, sodass sich auch die Kapazität der Kondensatoren verändert. Diese Kapazitätsänderung lässt sich mit einer geeigneten Auswerteelektronik detektieren und weiterverarbeiten.<ref> [https://hshl.bsz-bw.de/cgi-bin/koha/opac-detail.pl?biblionumber=62560&query_desc=kw%2Cwrdl%3A%20Schiessle, SCHIESSLE, E. Industriesensorik. Sensortechnik und Messwertaufnahme. 2., aktualisierte und erweiterte Auflage. Würzburg: Vogel Business Media, 2016. ISBN 978-3-8343-6211-7.]</ref>
=== LED-Matrix ===
Zur Darstellung des Bremslichts soll eine [https://www.funduinoshop.com/epages/78096195.sf/de_DE/?ObjectID=128599545 8x8 LED-Matrix mit einer MAX7219 Treiberplatine] eingesetzt werden. Dieses Modul lässt sich über eine SPI-Schnittstelle ansteuern und ermöglicht so die Steuerung aller 64 LEDs der Matrix. <ref> [https://starthardware.org/arduino-led-matrix-mit-max7219-treiber/ Anleitung LED-Matrix mit MAX7219-Treiberplatine]</ref>


== Umsetzung (HW/SW) ==
== Umsetzung (HW/SW) ==
=== Hardware ===
Das Gehäuse wurde mithilfe von Solidworks entworfen und anschließend mithilfe eines 3D-Druckers gedruckt. Für den Arduino, die Platine und die Batterie wurden Fixierpunkte bei der Konstruktion des Gehäuses berücksichtigt. Ebenfalls wurden Aussparungen für den Ein- und Ausschalter sowie für die LED-Matrix gelassen. Für die Fixierung des Gehäuses auf dem Gepäckträger des Fahrrades wurden Haltepunkte am Gehäuse ergänzt.
<gallery widths="500" heights="334" perrow="2">
Datei: Bremslicht_Gehaeuse.png|Abb. 5: CAD Ansicht Gehäuse
Datei: Bremslicht_Deckel.png|Abb. 6: CAD Ansicht Deckel
</gallery>
=== Software ===
Der Beschleunigungssensor [https://www.funduinoshop.com/epages/78096195.sf/de_DE/?ObjectID=229830052 Beschleunigungssensor GY-521] gibt die Messwerte wie oben beschrieben über einen I²C-Bus an den Mikrocontroller weiter, nachdem die Messwerte mithilfe eines 16-bit Analog/Digital-Wandlers digitalisiert wurden. Da zwischen den Messwerten und der tatsächlichen Beschleunigung ein linearer Zusammenhang vorliegt, können die Rohwerte mit folgender Formel in Beschleunigungswerte umgerechnet werden:
<math> Beschleunigung = \frac{Rohwert\cdot Messbereich \cdot g}{32768} </math>
Dabei gilt für den Messbereich
<math> Messbereich := \{2,4,8,16\} </math>
und die Erdbeschleunigung:
<math> g = 9,81 \frac{m}{s^2} </math>
Um die Steuerung des Beschleunigungssensors zu realisieren, wird die [https://www.arduino.cc/en/reference/wire Wire-Bibliothek von Arduino] genutzt, mit der die Kommunikation über den I²C-Bus umgesetzt werden kann. Im Gegensatz dazu wird zur Ansteuerung der LED-Matrix mit MAX7219-Treiberplatine auf die [https://www.arduino.cc/reference/en/libraries/ledcontrol/ LedControl-Bibliothek] von Eberhard Fahle zurückgegriffen. Zur Steuerung der LED-Matrix werden zwei Funktionen geschrieben. Eine Funktion ist für die erstmalige Initialisierung der LED-Matrix zuständig (setupMatrix()), die andere Funktion dient zum Ein- und Ausschalten der LED-Matrix (setMatrix(state)). Damit die LED-Matrix nicht die ganze Zeit Strom verbraucht, wird anstatt alle LEDs auszuschalten die gesamte LED-Matrix in den Stromsparmodus versetzt. Der Vorteil dieses Verfahrens liegt neben dem reduzierten Stromverbrauch darin, dass nicht alle LEDs bei jedem Ein- und Ausschaltvorgang einzeln angesteuert werden müssen. Wird die LED-Matrix aus dem Stromsparmodus wieder aufgeweckt, leuchten die gleichen LEDs wie vorher. Um mit diesem Verfahren zu arbeiten, müssen folglich bei der erstmaligen Initialisierung alle LEDs einmal eingeschaltet werden.
Damit die Bremsleuchte nur dann eingeschaltet wird, wenn auch tatsächlich ein Bremsvorgang stattfindet, muss ein Grenzwert festgelegt werden. Durch experimentelles Ermitteln konnte für eine Geschwindigkeit von 20 km/h ein "angenehmer" Bremsweg von 6 m ermittelt werden. Daraus ergibt sich folgender Beschleunigungsgrenzwert:
<math> a = \frac{s}{t} = \frac{20 \frac{km}{h}}{6 m} = \frac{5,55 \frac{m}{s}}{6m}=0,\overline{925}\frac{m}{s^2}\approx 0,9\frac{m}{s^2} </math>
Nachfolgend ist das Hauptprogramm für die Steuerung der Fahrrad-Bremsleuchte dargestellt. Der vollständige Programmcode befindet sich im [https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Projekte/126-150/132_Fahrrad-Bremsleuchte/Software/ SVN-Repository].
<div style="width:1200px; height:300px; overflow:auto; border: 2px solid #088">
<pre>
/******************************************************************************************************
* PROJEKT FAHRRAD-BREMSLEUCHTE                                                                      *
******************************************************************************************************
* Ein Projekt von Sandra Yvonne Hoppe und Florian Brinkmann im Rahmem des GET-Fachpraktikums im Win- *
* tersemester 2021/2022 im 5. Semester des Mechatronik-Studiengangs an der Hochschule Hamm-Lippstadt.*
******************************************************************************************************
* Autor:        Florian Brinkmann, Sandra Yvonne Hoppe                                              *
* Datum:        20.12.2021                                                                          *
* Version:      1.0                                                                                *
* Hardware:      - Arduino UNO R3                                                                    *
*                  https://www.funduinoshop.com/epages/78096195.sf/sec8d7707031a/?ObjectID=45510756  *
*                - 8x8-LED-Matrix mit MAX7219-Treiberplatine                                        *
*                  https://www.funduinoshop.com/epages/78096195.sf/sec8d7707031a/?ObjectID=128599545 *
*                - Beschleunigungssensor GY-521 mit MPU-6050 Modul                                  *
*                  https://www.funduinoshop.com/epages/78096195.sf/de_DE/?ObjectID=229830052        *
* Bibliotheken:  - Wire                                                                              *
*                - LedControl by Eberhard Fahle, Version 1.0.6                                      *
******************************************************************************************************
* Versionsgeschichte:                                                                                *
* 0.1  26.11.2021  Erster funktionsfähiger Entwurf zur Ansteuerung der LED-Matrix                    *
* 0.2  28.11.2021  Erster funktionsfähiger Entwurf zur Ansteuerung des Beschleunigungssensors,      *
*                  Initialisierung des Sensors, Abfrage/Auslesen von Rohdaten, Umrechnung der        *
*                  Rohdaten in Beschleunigung in m/s^2                                              *
* 1.0  20.12.2021  Schwellwert für Bremsvorgang festgelegt, Erster vollständig funktionsfähiger Code *
******************************************************************************************************
* Pinbelegung der LED-Matrix am Arduino                                                              *
* - VCC -> 5 V                                                                                      *
* - GND -> GND                                                                                      *
* - DIN -> 12                                                                                        *
* - CS  -> 10                                                                                        *
* - CLK -> 11                                                                                        *
*                                                                                                    *
* Pinbelegung des Beschleunigungssensors Arduino                                                    *
* - VCC -> 3.3 V                                                                                    *
* - GND -> GND                                                                                      *
* - SDA -> SDA (Arduino Uno R3) oder A4                                                              *
* - SCL -> SCL (Arduino Uno R3) oder A5                                                              *
******************************************************************************************************/
// Makros definieren
#define OFF 0                // Zustand der Led-Matrix/des Beschleunigungssensors: Aus
#define ON  1                // Zustand der Led-Matrix/des Beschleunigungssensors: An
int16_t rawValue = 0;        // Rohdaten des Beschleunigungssensors
double beschleunigung = 0.0;  // Beschleunigung in m/s^2
void setup()
{
  Serial.begin(9600);
  setupMPU6050();
  setupMatrix();
}
void loop()
{
  // Eingabe - Messwerte abfragen
  rawValue = getRawData();
  // Verarbeitung - Umrechnung der Messwerte
  beschleunigung = convertRawData(rawValue);
  // Ausgabe - Ausgabe der Daten, Ansteuerung der LED-Matrix
  printData(rawValue, beschleunigung);
  if(beschleunigung >= 0.9)
  {
    setMatrix(ON);            // Einschalten der Led-Matrix
  }
  else
  {
    setMatrix(OFF);          // Ausschalten der Led-Matrix
  }
}
</pre>
</div>
<br clear = all>
Weiterhin sind im Programmcode folgende Funktionen zur Steuerung der LED-Matrix vorhanden:
void setupMatrix()                                        // Initialisiert die LED-Matrix
void setMatrix(bool state)                                // Ein-/Ausschalten der LED-Matrix
Zur Steuerung des Beschleunigungssensors sind folgende Funktionen definiert:
void setupMPU6050()                                        // Initialisiert den Beschleunigungssensor
void write2mpu(uint16_t registerAdresse, byte data)        // Sendet den Wert data an das Register mit der Adresse registerAdresse
void setMode(bool mode)                                    // Ein-/Ausschalten des Beschleunigungssensors
int16_t getRawData()                                      // Abfrage der Rohdaten des Beschleunigungssensors
void printData(int16_t rawData, double data)              // Ausgabe von Rohdaten (rawData) und Beschleunigungswert (data) auf dem seriellen Monitor
double convertRawData(int16_t rawValue)                    // Umrechnung der Rohdaten (rawValue) in Beschleunigungswerte


== Komponententest ==
== Komponententest ==
Vor dem Zusammensetzen der Hardware wurden die Komponenten mithilfe eines Testprogramms separat angesteuert und getestet.
Nach dem Zusammenfügen der Hard- und Software wurde das gesamte System getestet und der in der Berechnung ermittelte Beschleunigungschwellwert zum Einschalten der LED-Matrix überprüft und bestätigt. Nachfolgend ist nochmals die Tabelle mit den verschiedenen Anforderungen dargestellt, wobei nun jeweils überprüft wurde, ob das entwickelte System alle Anforderungen erfüllt. Aus Tabelle 2 geht hervor, dass alle in Tabelle 1 beschriebenen Abforderungen erfolgreich umgesetzt wurden.
{| class="wikitable"
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | Anforderung
! style="font-weight: bold;" | Anforderung umgesetzt
! style="font-weight: bold;" | Anforderung nicht umgesetzt
! style="font-weight: bold;" | Bemerkung
|+ style = "text-align: left"|Tabelle 2: Umgesetzte Anforderungen an die Fahrrad-Bremsleuchte
|-
| '''1''' || '''Allgemein'''  || || ||
|-
| 1.1 || Der Fahrradfahrer/die Fahrradfahrerin darf von dem System beim Fahren nicht beeinträchtigt werden, insbesondere beim Tretvorgang darf das System nicht mit dem Fahrer/der Fahrerin kollidieren. || <div class="center">X</div> || ||
|-
| 1.2 || Das System muss möglichst leicht sein und sollte ein Gewicht von 750 g ±250 g nicht überschreiten. || <div class="center">X</div> || || Die Fahrrad-Bremsleuchte ist mit 360 g deutlich leichter als in der Anforderung angegeben.
|-
| 1.3 || Das System muss mit einem einer Batterie (9 V Block) betrieben werden können. || <div class="center">X</div> || ||
|-
| '''2''' || '''Messung und Auswertung''' || || ||
|-
| 2.1 || Es muss die Beschleunigung (in Fahrtrichtung) gemessen werden. Die Genauigkeit des Beschleunigungssensors sollte bei mindestens ±<math> 0.5 \frac{m}{s^2} </math> liegen. || <div class="center">X</div> || ||
|-
| 2.2 || Der Bremsvorgang muss eindeutig erfasst werden. Um einen genauen Verzögerungswert angeben zu können, bei welchem das Bremslicht angeht, wird die Beschleunigung beim Ausrollen und Bremsen experimentell ermittelt. || <div class="center">X</div> || ||
|-
| '''3''' || '''Ausgabe''' || || ||
|-
| 3.1 || Das Bremslicht muss beim Bremsvorgang aufleuchten. || <div class="center">X</div> || ||
|-
| 3.2 || Andere Verkehrsteilnehmer oder Verkehrsteilnehmerinnen dürfen nicht beeinträchtigt oder abgelenkt werden. Dies gilt insbesondere für blendende oder ständig blinkende Beleuchtung. || <div class="center">X</div> || ||
|}


== Ergebnis ==
== Ergebnis ==
Die fertige Fahrrad-Bremsleuchte ist in den folgenden Fotos zu sehen. Abbildung 7 zeigt das montierte System auf einem Fahrrad und Abbildung 8 den inneren Aufbau.
<gallery widths="500" heights="334" perrow="2">
Fahrrad_Bremleuchte_montiert.jpg|Abb. 7: Montierte Fahrrad-Bremsleuchte
Fahrrad_Bremsleuchte_Aufbau.jpg|Abb. 8: Innerer Aufbau der Fahrrad-Bremsleuchte
</gallery>


== Zusammenfassung ==
== Zusammenfassung ==
In dem Projekt wurde eine Konzept für eine Fahrrad Bremsleuchte entwickelt, konstruiert und gefertigt. Für die Entwicklung des Projektes waren Kenntnisse aus dem Modul Mechatronische-Systeme, sowie die Kenntnisse aus dem CAD Fachpraktikum und dem Fach Systemarchitektur & Embedded Systems von Vorteil. Durch die erlangten Kenntnisse über das Löten, das verwenden von Filtern und das Konstruieren konnte das Projekt gut umgesetzt werden.
=== Lessons Learned ===
=== Lessons Learned ===
Die folgenden Studieninhalte konnten durch die Umsetzung des Projektes praktisch angewendet und vertieft werden:
*Projektplanung und Durchführung
*Auswahl von geeigneten Sensoren und Materialien für die Umsetzung
*Programmierung eines Microcontroller
*CAD Konstruktion und 3D Druck
*Löten
*Erstellung eines Verkabelungsplan
Bei der Projektdurchführung ist lediglich eine Komplikation aufgetreten. Das auslesen des Beschleunigungsdaten hat über die gegebenen Bibliotheken nicht funktioniert. Nach umfangreicher Recherche haben wir uns dazu entschlossen, die Rohdaten über das Register direkt auszulesen und anschließend in Beschleunigungsdaten umzurechnen.


== Projektunterlagen ==
== Projektunterlagen ==
=== Projektplan ===
=== Projektplan ===
=== Projektdurchführung ===
[[Datei:Projektplan_Bremsleuchte.png|1000px|thumb|left|Abb. 9: Projektplan Fahrrad Bremsleuchte]]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
=== Projektdurchführung ===  
Für das Projekt "Fahrrad Bremsleuchte" werden zunächst die benötigten Materialien rausgesucht und bestellt. Anschließend werden die Materialien auf ihre Funktion getestet. Des Weiteren muss ein Gehäuse für die Elektronik, sowie eine Software zur Steuerung der Elektronik erstellt werden. Abschließend werden die Komponenten und das Gesamtsystem auf ihre Funktion getestet.


== YouTube Video ==
== YouTube Video ==
Im folgenden [https://youtu.be/-sgMyfNvuxE YouTube-Video] wird die Funktionsfähigkeit der Fahrrad-Bremsleuchte gezeeigt.
{{#ev:youtube|https://youtu.be/-sgMyfNvuxE| 600 | | Video 1: Fahrrad-Bremsleuchte im Einsatz |frame}}


== Weblinks ==
== Weblinks ==
Zeile 70: Zeile 290:
== Literatur ==
== Literatur ==


 
<references />


<!-- Fügen Sie diesen Footer hinzu.  -->
<!-- Fügen Sie diesen Footer hinzu.  -->
----
----
→ zurück zur Übersicht: [[:Kategorie:ProjekteET_MTR_BSE_WS2021|WS 21/22: Angewandte Elektrotechnik (BSE)]]
→ zurück zur Übersicht: [[:Kategorie:ProjekteET_MTR_BSE_WS2021|WS 21/22: Angewandte Elektrotechnik (BSE)]]

Aktuelle Version vom 5. Juli 2022, 09:40 Uhr


Abb. 1: Werbeplakat für Projektmesse

Autoren: Sandra Yvonne Hoppe & Florian Brinkmann
Betreuer: Prof. Göbel & Prof. Schneider

→ zurück zur Übersicht: WS 21/22: Angewandte Elektrotechnik (BSE)


Einleitung

Dieser Artikel beschreibt die Entwicklung eines Bremslichts für ein Fahrrad, sodass rückwärtige Verkehrsteilnehmerinnen und Verkehrsteilnehmer über einen Bremsvorgang der Fahrradfahrerin bzw. des Fahrradfahrers informiert bzw. gewarnt werden können. Das Projekt wird im Rahmen des GET-Fachpraktikums im Studiengang Mechatronik durchgeführt.

Anforderungen

ID Anforderung
Tabelle 1: Anforderungen an die Fahrrad-Bremsleuchte
1 Allgemein
1.1 Der Fahrradfahrer/die Fahrradfahrerin darf von dem System beim Fahren nicht beeinträchtigt werden, insbesondere beim Tretvorgang darf das System nicht mit dem Fahrer/der Fahrerin kollidieren.
1.2 Das System muss möglichst leicht sein und sollte ein Gewicht von 750 g ±250 g nicht überschreiten.
1.3 Das System muss mit einem einer Batterie (9 V Block) betrieben werden können.
2 Messung und Auswertung
2.1 Es muss die Beschleunigung (in Fahrtrichtung) gemessen werden. Die Genauigkeit des Beschleunigungssensors sollte bei mindestens ± liegen.
2.2 Der Bremsvorgang muss eindeutig erfasst werden. Um einen genauen Verzögerungswert angeben zu können, bei welchem das Bremslicht angeht, wird die Beschleunigung beim Ausrollen und Bremsen experimentell ermittelt.
3 Ausgabe
3.1 Das Bremslicht muss beim Bremsvorgang aufleuchten.
3.2 Andere Verkehrsteilnehmer oder Verkehrsteilnehmerinnen dürfen nicht beeinträchtigt oder abgelenkt werden. Dies gilt insbesondere für blendende oder ständig blinkende Beleuchtung.

Funktionaler Systementwurf/Technischer Systementwurf

Zum Erkennen eines Bremsvorgangs soll ein Beschleunigungssensor eingesetzt werden. Der Sensor misst die Beschleunigung, die dann vom Mikrocontroller ausgewertet wird. Erkennt der Mikrocontroller einen Bremsvorgang soll das Bremslicht eingeschaltet werden. Das Bremslicht soll mit einer LED-Matrix realisiert werden. Um das System ein- und ausschalten zu können soll zudem ein Schalter eingebaut werden, der in Reihe mit der Spannungsversorgung geschaltet ist. Ein entsprechender funktionaler Systementwurf ist in Abbildung 2 dargestellt. Die einzelnen Komponenten des Systems sollen in einem Gehäuse (siehe Abb. 3) untergebracht werden, welches mittelt 3D-Druck hergestellt werden soll.

Ein Entwurf der Schaltung wurde mit der Software Fritzing erstellt. Dieser ist in Abbildung 4 dargestellt. Zu beachten ist, dass in dem Schaltungsentwurf kein Schalter eingebracht ist. Dieser wird wie oben beschrieben in Reihe mit der Spannungsversorgung (9 V Block) angeschlossen.


Komponentenspezifikation

Beschleunigungssensor GY-521

Um einen Bremsvorgang detektieren zu können, wird die Beschleunigung mit Hilfe eines Beschleunigungssensors gemessen. Der Beschleunigungssensor GY-521 basiert auf dem Modul MPU-6050. Dabei handelt es sich um einen Sensor der neben der Beschleunigung in den drei Raumrichtungen auch als Gyroskop um diese drei Achsen eingesetzt werden kann. Für den Beschleunigungssensor und das Gyroskop können jeweils vier verschiedene Messbereiche eingestellt werden. Diese sind für den Beschleunigungssensor ±2g, ±4g, ±8g und ±16g. Des Weiteren enthält das Modul einen Temperatursensor. Intern werden die Messwerte bereits mit dem integrierten 16-bit Analog-Digital-Wandler digitalisiert, sodass die Messwerte anschließend über die I²C-Schnittstelle ausgelesen werden können. [1] Zur Einstellung bzw. zur Konfiguration des Sensors kann der Inhalt der Register des Sensormoduls verändert werden. Beispielsweise kann der Messbereich des Sensors mit Hilfe des 3. und 4. Bits des Registers 0x1C eingestellt werden.[2] Dazu gibt es eine Beschreibung aller Register in der Register Map.

Technisch handelt es sich bei dem MPU-6050-Modul um einen kapazitiven, mikroelektromechanischen Beschleunigungssensor. Der Sensor besteht dabei aus einer mikromechanischen Kammstruktur, wobei die Kämme einen Kondensator bilden. Dabei sind die äußeren Elektrodenkämme feststehend, der mittlere Kamm jedoch beweglich. Der Abstand der Elektrodenkämme zueinander ist somit variabel und bestimmt die Kapazität des Kondensators. Wirkt nun auf den Sensor eine Beschleunigung in Bewegungsrichtung des beweglichen Elektrodenkamms, so wirkt die mechanische Beschleunigung auch auf die seismische Masse des beweglichen Elektrodenkamms. Somit kommt es zu einer Relativbewegung zwischen dem feststehenden und dem beweglichen Elektrodenkamm, sodass sich auch die Kapazität der Kondensatoren verändert. Diese Kapazitätsänderung lässt sich mit einer geeigneten Auswerteelektronik detektieren und weiterverarbeiten.[3]

LED-Matrix

Zur Darstellung des Bremslichts soll eine 8x8 LED-Matrix mit einer MAX7219 Treiberplatine eingesetzt werden. Dieses Modul lässt sich über eine SPI-Schnittstelle ansteuern und ermöglicht so die Steuerung aller 64 LEDs der Matrix. [4]

Umsetzung (HW/SW)

Hardware

Das Gehäuse wurde mithilfe von Solidworks entworfen und anschließend mithilfe eines 3D-Druckers gedruckt. Für den Arduino, die Platine und die Batterie wurden Fixierpunkte bei der Konstruktion des Gehäuses berücksichtigt. Ebenfalls wurden Aussparungen für den Ein- und Ausschalter sowie für die LED-Matrix gelassen. Für die Fixierung des Gehäuses auf dem Gepäckträger des Fahrrades wurden Haltepunkte am Gehäuse ergänzt.

Software

Der Beschleunigungssensor Beschleunigungssensor GY-521 gibt die Messwerte wie oben beschrieben über einen I²C-Bus an den Mikrocontroller weiter, nachdem die Messwerte mithilfe eines 16-bit Analog/Digital-Wandlers digitalisiert wurden. Da zwischen den Messwerten und der tatsächlichen Beschleunigung ein linearer Zusammenhang vorliegt, können die Rohwerte mit folgender Formel in Beschleunigungswerte umgerechnet werden:


Dabei gilt für den Messbereich


und die Erdbeschleunigung:


Um die Steuerung des Beschleunigungssensors zu realisieren, wird die Wire-Bibliothek von Arduino genutzt, mit der die Kommunikation über den I²C-Bus umgesetzt werden kann. Im Gegensatz dazu wird zur Ansteuerung der LED-Matrix mit MAX7219-Treiberplatine auf die LedControl-Bibliothek von Eberhard Fahle zurückgegriffen. Zur Steuerung der LED-Matrix werden zwei Funktionen geschrieben. Eine Funktion ist für die erstmalige Initialisierung der LED-Matrix zuständig (setupMatrix()), die andere Funktion dient zum Ein- und Ausschalten der LED-Matrix (setMatrix(state)). Damit die LED-Matrix nicht die ganze Zeit Strom verbraucht, wird anstatt alle LEDs auszuschalten die gesamte LED-Matrix in den Stromsparmodus versetzt. Der Vorteil dieses Verfahrens liegt neben dem reduzierten Stromverbrauch darin, dass nicht alle LEDs bei jedem Ein- und Ausschaltvorgang einzeln angesteuert werden müssen. Wird die LED-Matrix aus dem Stromsparmodus wieder aufgeweckt, leuchten die gleichen LEDs wie vorher. Um mit diesem Verfahren zu arbeiten, müssen folglich bei der erstmaligen Initialisierung alle LEDs einmal eingeschaltet werden.

Damit die Bremsleuchte nur dann eingeschaltet wird, wenn auch tatsächlich ein Bremsvorgang stattfindet, muss ein Grenzwert festgelegt werden. Durch experimentelles Ermitteln konnte für eine Geschwindigkeit von 20 km/h ein "angenehmer" Bremsweg von 6 m ermittelt werden. Daraus ergibt sich folgender Beschleunigungsgrenzwert:


Nachfolgend ist das Hauptprogramm für die Steuerung der Fahrrad-Bremsleuchte dargestellt. Der vollständige Programmcode befindet sich im SVN-Repository.

/******************************************************************************************************
 * PROJEKT FAHRRAD-BREMSLEUCHTE                                                                       *
 ******************************************************************************************************
 * Ein Projekt von Sandra Yvonne Hoppe und Florian Brinkmann im Rahmem des GET-Fachpraktikums im Win- *
 * tersemester 2021/2022 im 5. Semester des Mechatronik-Studiengangs an der Hochschule Hamm-Lippstadt.*
 ******************************************************************************************************
 * Autor:         Florian Brinkmann, Sandra Yvonne Hoppe                                              *
 * Datum:         20.12.2021                                                                          *
 * Version:       1.0                                                                                 *
 * Hardware:      - Arduino UNO R3                                                                    *
 *                  https://www.funduinoshop.com/epages/78096195.sf/sec8d7707031a/?ObjectID=45510756  *
 *                - 8x8-LED-Matrix mit MAX7219-Treiberplatine                                         *
 *                  https://www.funduinoshop.com/epages/78096195.sf/sec8d7707031a/?ObjectID=128599545 *
 *                - Beschleunigungssensor GY-521 mit MPU-6050 Modul                                   *
 *                  https://www.funduinoshop.com/epages/78096195.sf/de_DE/?ObjectID=229830052         *
 * Bibliotheken:  - Wire                                                                              *
 *                - LedControl by Eberhard Fahle, Version 1.0.6                                       *
 ******************************************************************************************************
 * Versionsgeschichte:                                                                                *
 * 0.1  26.11.2021  Erster funktionsfähiger Entwurf zur Ansteuerung der LED-Matrix                    *
 * 0.2  28.11.2021  Erster funktionsfähiger Entwurf zur Ansteuerung des Beschleunigungssensors,       *
 *                  Initialisierung des Sensors, Abfrage/Auslesen von Rohdaten, Umrechnung der        *
 *                  Rohdaten in Beschleunigung in m/s^2                                               *
 * 1.0  20.12.2021  Schwellwert für Bremsvorgang festgelegt, Erster vollständig funktionsfähiger Code *
 ******************************************************************************************************
 * Pinbelegung der LED-Matrix am Arduino                                                              *
 * - VCC -> 5 V                                                                                       *
 * - GND -> GND                                                                                       *
 * - DIN -> 12                                                                                        *
 * - CS  -> 10                                                                                        *
 * - CLK -> 11                                                                                        *
 *                                                                                                    *
 * Pinbelegung des Beschleunigungssensors Arduino                                                     *
 * - VCC -> 3.3 V                                                                                     *
 * - GND -> GND                                                                                       *
 * - SDA -> SDA (Arduino Uno R3) oder A4                                                              *
 * - SCL -> SCL (Arduino Uno R3) oder A5                                                              *
 ******************************************************************************************************/

// Makros definieren
#define OFF 0                 // Zustand der Led-Matrix/des Beschleunigungssensors: Aus
#define ON  1                 // Zustand der Led-Matrix/des Beschleunigungssensors: An

int16_t rawValue = 0;         // Rohdaten des Beschleunigungssensors
double beschleunigung = 0.0;  // Beschleunigung in m/s^2




void setup() 
{
  Serial.begin(9600);
  setupMPU6050();
  setupMatrix();
}




void loop() 
{
  // Eingabe - Messwerte abfragen 
  rawValue = getRawData();

  // Verarbeitung - Umrechnung der Messwerte
  beschleunigung = convertRawData(rawValue);

  // Ausgabe - Ausgabe der Daten, Ansteuerung der LED-Matrix
  printData(rawValue, beschleunigung);
  if(beschleunigung >= 0.9)
  {
    setMatrix(ON);            // Einschalten der Led-Matrix
  }
  else
  {
    setMatrix(OFF);           // Ausschalten der Led-Matrix
  }
}


Weiterhin sind im Programmcode folgende Funktionen zur Steuerung der LED-Matrix vorhanden:

void setupMatrix()                                         // Initialisiert die LED-Matrix
void setMatrix(bool state)                                 // Ein-/Ausschalten der LED-Matrix

Zur Steuerung des Beschleunigungssensors sind folgende Funktionen definiert:

void setupMPU6050()                                        // Initialisiert den Beschleunigungssensor
void write2mpu(uint16_t registerAdresse, byte data)        // Sendet den Wert data an das Register mit der Adresse registerAdresse
void setMode(bool mode)                                    // Ein-/Ausschalten des Beschleunigungssensors
int16_t getRawData()                                       // Abfrage der Rohdaten des Beschleunigungssensors
void printData(int16_t rawData, double data)               // Ausgabe von Rohdaten (rawData) und Beschleunigungswert (data) auf dem seriellen Monitor
double convertRawData(int16_t rawValue)                    // Umrechnung der Rohdaten (rawValue) in Beschleunigungswerte

Komponententest

Vor dem Zusammensetzen der Hardware wurden die Komponenten mithilfe eines Testprogramms separat angesteuert und getestet. Nach dem Zusammenfügen der Hard- und Software wurde das gesamte System getestet und der in der Berechnung ermittelte Beschleunigungschwellwert zum Einschalten der LED-Matrix überprüft und bestätigt. Nachfolgend ist nochmals die Tabelle mit den verschiedenen Anforderungen dargestellt, wobei nun jeweils überprüft wurde, ob das entwickelte System alle Anforderungen erfüllt. Aus Tabelle 2 geht hervor, dass alle in Tabelle 1 beschriebenen Abforderungen erfolgreich umgesetzt wurden.

ID Anforderung Anforderung umgesetzt Anforderung nicht umgesetzt Bemerkung
Tabelle 2: Umgesetzte Anforderungen an die Fahrrad-Bremsleuchte
1 Allgemein
1.1 Der Fahrradfahrer/die Fahrradfahrerin darf von dem System beim Fahren nicht beeinträchtigt werden, insbesondere beim Tretvorgang darf das System nicht mit dem Fahrer/der Fahrerin kollidieren.
X
1.2 Das System muss möglichst leicht sein und sollte ein Gewicht von 750 g ±250 g nicht überschreiten.
X
Die Fahrrad-Bremsleuchte ist mit 360 g deutlich leichter als in der Anforderung angegeben.
1.3 Das System muss mit einem einer Batterie (9 V Block) betrieben werden können.
X
2 Messung und Auswertung
2.1 Es muss die Beschleunigung (in Fahrtrichtung) gemessen werden. Die Genauigkeit des Beschleunigungssensors sollte bei mindestens ± liegen.
X
2.2 Der Bremsvorgang muss eindeutig erfasst werden. Um einen genauen Verzögerungswert angeben zu können, bei welchem das Bremslicht angeht, wird die Beschleunigung beim Ausrollen und Bremsen experimentell ermittelt.
X
3 Ausgabe
3.1 Das Bremslicht muss beim Bremsvorgang aufleuchten.
X
3.2 Andere Verkehrsteilnehmer oder Verkehrsteilnehmerinnen dürfen nicht beeinträchtigt oder abgelenkt werden. Dies gilt insbesondere für blendende oder ständig blinkende Beleuchtung.
X

Ergebnis

Die fertige Fahrrad-Bremsleuchte ist in den folgenden Fotos zu sehen. Abbildung 7 zeigt das montierte System auf einem Fahrrad und Abbildung 8 den inneren Aufbau.

Zusammenfassung

In dem Projekt wurde eine Konzept für eine Fahrrad Bremsleuchte entwickelt, konstruiert und gefertigt. Für die Entwicklung des Projektes waren Kenntnisse aus dem Modul Mechatronische-Systeme, sowie die Kenntnisse aus dem CAD Fachpraktikum und dem Fach Systemarchitektur & Embedded Systems von Vorteil. Durch die erlangten Kenntnisse über das Löten, das verwenden von Filtern und das Konstruieren konnte das Projekt gut umgesetzt werden.

Lessons Learned

Die folgenden Studieninhalte konnten durch die Umsetzung des Projektes praktisch angewendet und vertieft werden:

  • Projektplanung und Durchführung
  • Auswahl von geeigneten Sensoren und Materialien für die Umsetzung
  • Programmierung eines Microcontroller
  • CAD Konstruktion und 3D Druck
  • Löten
  • Erstellung eines Verkabelungsplan

Bei der Projektdurchführung ist lediglich eine Komplikation aufgetreten. Das auslesen des Beschleunigungsdaten hat über die gegebenen Bibliotheken nicht funktioniert. Nach umfangreicher Recherche haben wir uns dazu entschlossen, die Rohdaten über das Register direkt auszulesen und anschließend in Beschleunigungsdaten umzurechnen.

Projektunterlagen

Projektplan

Abb. 9: Projektplan Fahrrad Bremsleuchte

















Projektdurchführung

Für das Projekt "Fahrrad Bremsleuchte" werden zunächst die benötigten Materialien rausgesucht und bestellt. Anschließend werden die Materialien auf ihre Funktion getestet. Des Weiteren muss ein Gehäuse für die Elektronik, sowie eine Software zur Steuerung der Elektronik erstellt werden. Abschließend werden die Komponenten und das Gesamtsystem auf ihre Funktion getestet.

YouTube Video

Im folgenden YouTube-Video wird die Funktionsfähigkeit der Fahrrad-Bremsleuchte gezeeigt.

Video 1: Fahrrad-Bremsleuchte im Einsatz

Weblinks

Literatur


→ zurück zur Übersicht: WS 21/22: Angewandte Elektrotechnik (BSE)