Fahrrad-Bremsleuchte: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
(→‎Umsetzung (HW/SW): Beschreibung Umrechnung Rohdaten in Beschleunigungswerte)
(→‎Software: Beschreibung der Steuerung der LED-Matrix und genutzter Bibliotheken)
Zeile 73: Zeile 73:


  <math> g = 9,81 \frac{m}{s^2} </math>
  <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.


== Komponententest ==
== Komponententest ==

Version vom 6. Dezember 2021, 12:00 Uhr

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

Abb. 1: Funktionaler Systementwurf
Abb. 2: Skizze des Aufbaus
Abb. 3: Fritzing-Schaltungsmodell der Fahrrad-Bremsleuchte (ohne Schalter)

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 1 dargestellt. Die einzelnen Komponenten des Systems sollen in einem Gehäuse (siehe Abb. 2) untergebracht werden, welches mittelt 3D-Druck hergestellt werden soll.

Ein Entwurf der Schaltung wurde mit der Software Fritzing erstellt. Dieser ist in Abbildung 3 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.

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. [3]

Umsetzung (HW/SW)

Hardware

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.

Komponententest

Ergebnis

Zusammenfassung

Lessons Learned

Projektunterlagen

Projektplan

Projektdurchführung

YouTube Video

Weblinks

Literatur


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