Fahrrad-Bremsleuchte

Aus HSHL Mechatronik
Version vom 5. Juli 2022, 08:40 Uhr von Florian Brinkmann (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen


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)