Lichtsteuerung: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(6 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 4: Zeile 4:
[[Benutzer:Hauke_Ludwig| Hauke Ludwig]]
[[Benutzer:Hauke_Ludwig| Hauke Ludwig]]
== Allgemeines ==
== Allgemeines ==
Die Systematik hinter der Lichtsteuerung sieht vor, dass es sowohl eine manuelle Steuerung der Lichter am Fahrzeug, als auch eine automatische Lichtsteuerung geben wird. Da dieser Prozess am Ende jedes Zyklus steht wird er nur durch die manuellen Bits zur Lichtsteuerung, sowie über die Werte für Geschwindigkeit und Lenkeinschlag gesteuert. Nachfolgend soll zuerst auf den allgemeinen Aufbau der verbauten Lichter eingegangen werden, bevor es zur Implementierung in Hard- und Software kommt.
Die Fahrzeugbeleuchtung besteht aus folgenden LED's:
Die Fahrzeugbeleuchtung besteht aus folgenden LED's:


Zeile 62: Zeile 65:
=== Schaltplan ===
=== Schaltplan ===
Der Schaltplan des Lichtmoduls ist Teil des Schaltplans der Adapterplatine.<br />
Der Schaltplan des Lichtmoduls ist Teil des Schaltplans der Adapterplatine.<br />
[[Datei:Schaltplan_Lichtmodul_AMR2012.png]]
[[Datei:Schaltplan_Lichtmodul_AMR2012.png]]<br />
Schaltplan für Multisim von 29.06.2014: [[Datei:Adapterplatine_2014_06_29.zip]]
 
=== Platinenlayout ===
=== Platinenlayout ===
[[Datei:Platinenlayout_Lichtmodul_AMR2012.png]]
[[Datei:Platinenlayout_Lichtmodul_AMR2012.png]]<br />
Platinenlayout für Ultiboard vom 29.06.2014: [[Datei:Adapterplatine_2014_06_29.zip]]
 
== Logik ==
== Logik ==
Die Logik wurde im Simulinkmodell implementiert. Sie befindet sich im Modell unter "AKT - Aktoren" und ihre Signale liegen für das offline Modell auf dem Bus unter dem Bereich "Akt_LED*_f64" mit dem jeweiligen Namen anstelle des *.
Die Logik wurde im Simulinkmodell implementiert. Sie befindet sich im Modell unter "AKT - Aktoren" und ihre Signale liegen für das offline Modell auf dem Bus unter dem Bereich "Akt_LED*_f64" mit dem jeweiligen Namen anstelle des *.
Zeile 73: Zeile 80:
  File:CC_Blinker_Frequenz.png|Simulinkmodell "Frequenzbildung"
  File:CC_Blinker_Frequenz.png|Simulinkmodell "Frequenzbildung"
  </gallery>
  </gallery>
[[Datei:Logik_Blinker.jpg|thumb|right|300px|Simulink-Modell Blinker]]
Die Blinklogik orientiert sich am Eingang "FAMO_LwSoll_f64" welcher im ersten Schritt einen downsample auf eine Simulationsfrequenz von f= 2Hz. Anschließend wird der Lenkwinkel mit einem Schwellwert verglichen, wodurch boolscher Wert ermittelt wird, welcher bestimmt, ob die jeweilige Richtung blinken soll oder nicht. Dieser Teil wird "automatische Blinkermittlung" genannt.
Die Blinklogik orientiert sich am Eingang "FAMO_LwSoll_f64" welcher im ersten Schritt einen downsample auf eine Simulationsfrequenz von f= 2Hz. Anschließend wird der Lenkwinkel mit einem Schwellwert verglichen, wodurch boolscher Wert ermittelt wird, welcher bestimmt, ob die jeweilige Richtung blinken soll oder nicht. Durch eine AND-Verknüpfung mit einem kontinuierlichen Signal, welches in einer Frequenz von f = 2Hz zwischen den Zuständen 0 und 1 wechselt, kann ein Blinksignal für die Linke und Rechte Seite erzeugt werden. Dieser Zusammenhang ist im folgenden Bild abgebildet.
 
Sollten einzelne Teams Blinkerwünsche haben, so besteht die Möglichkeit diese manuell zu setzen. Durch eine OR-Verknüpfung mit dem gesetzten Bit wird garantiert, dass entweder die manuelle oder automatische Blinkersetzung durchgeführt wird. Gleichfalls besteht über eine AND-Verknüpfung die Möglichkeit die automatische Blinkersetzung zu unterdrücken. Dieser Teil wird "manuelle Blinkersetzung" genannt.
 
Durch eine AND-Verknüpfung mit einem kontinuierlichen Signal, welches in einer Frequenz von f = 2Hz zwischen den Zuständen 0 und 1 wechselt, kann ein Blinksignal für die Linke und Rechte Seite erzeugt werden. Dieser Zusammenhang ist im folgenden Bild abgebildet.


=== Fahranzeiger ===
=== Fahranzeiger ===
Zeile 109: Zeile 119:
| BlinkerAutomatik_ManualDisable_f64 == 1
| BlinkerAutomatik_ManualDisable_f64 == 1
|}
|}
== Fazit ==
Die Lichtsteuerung wurde gemäß der Spezifikation implementiert und konnte verifiziert werden. Über die Parameter für den Linkeinschlag, sowie die Wahl der Filterparameter lässt sich die automatische Blinkersteuerung einstellen. Hierbei ist jedoch auf Hystereeffekte zu achten, welche bei der Bremserkennung zum Tragen kommen können. In den meisten Fällen wird jedoch dazu geraten, die Werte beim aktuellen Stand zu belassen, da diese so implementiert wurden, dass sie sich der Umgebung entsprechend anpassen.
<br>
Notiz: Die ordnungsgemäße Funktionsweise konnte von der Gruppe des Sommersemesters 2018 erfolgreich überprüft werden. Ein Testprotokoll ist im SVN abgelegt.


== Einzelnachweis ==  
== Einzelnachweis ==  
<references/>
<references/>
== Feedback zum Artikel ==
--[[Benutzer:Mirekgoebel|Prof. Dr. Mirek Göbel]] ([[Benutzer Diskussion:Mirekgoebel|Diskussion]]) 13:48, 8. Aug. 2014 (CEST)
Originaldateien zu den Bildern mit ablegen


----
----
→ zurück zum Hauptartikel: [[Praktikum_SDE|Praktikum SDE]]
→ zurück zum Hauptartikel: [[Praktikum_SDE|Praktikum SDE]]

Aktuelle Version vom 4. Juli 2018, 16:35 Uhr

Ziel dieses Spezialthemas ist die Steuerung der Lichtanlage gemäß §54 StVO [1]. Als Inputs werden hierfür die Fahrsignale für das Gas und den Lenkwinkel benötigt.

Projektteam

Jan Kifmann
Hauke Ludwig

Allgemeines

Die Systematik hinter der Lichtsteuerung sieht vor, dass es sowohl eine manuelle Steuerung der Lichter am Fahrzeug, als auch eine automatische Lichtsteuerung geben wird. Da dieser Prozess am Ende jedes Zyklus steht wird er nur durch die manuellen Bits zur Lichtsteuerung, sowie über die Werte für Geschwindigkeit und Lenkeinschlag gesteuert. Nachfolgend soll zuerst auf den allgemeinen Aufbau der verbauten Lichter eingegangen werden, bevor es zur Implementierung in Hard- und Software kommt.

Die Fahrzeugbeleuchtung besteht aus folgenden LED's:

Verbauposition Front Heck
Blinker: Links Rechts Links Rechts
Fahrlicht: Links Rechts
Rückfahrlicht: Links Rechts
Bremslicht: Links Rechts Mitte

Diese einzelnen LED's werden zur Steuerung zu Gruppen zusammengefasst, welche folgende Funktionen haben:

Gruppe: Blinker Links Blinker Rechts Bremslicht Fahrlicht Rückfahrlicht
LEDs: Front
Links
Heck
Links
Front
Rechts
Heck
Rechts
Heck
Rechts
Heck
Links
Heck
Mitte
Front
Links
Front
Rechts
Heck
Links
Heck
Rechts
Funktion: Richtungsänderung nach Links Richtungsänderung nach Links An bei aktiven Bremseingriffen Immer an An bei v < 0 m/s
Warnblinken (Einparken beendet)

Die aktuelle Pinbelegung der DS1104 ist dem Pinbelegungsplan im SVN ( Dokumentation\Systemarchitektur\DS1104 - Adapterkabel - Pinbelegungsplan.xlsx ) zu entnehmen.

Schaltung

Berechnung

Ein IO-Pin der DS1104 darf maximal mit 5mA belastet werden, pro LED sind aber 20-25mA nötig. Deshalb wird eine Transistorstufe dazwischengeschaltet. Es wurden Transistoren vom Typ BC337-400 ausgewählt, da diese bereits im Inventar des Mechatroniklabors vorhanden sind. Der Basiswiderstand berechnet sich wie folgt:


Gerundet auf Widerstandswerte der E12-Reihe ergibt das einen Basiswiderstand von 3.9kOhm.

Für die LED's sind keine zusätzlichen Vorwiderstande notwendig, da es sich um LED-Module mit integrierten Vorwiderständen für 5V handelt.

Schaltplan

Der Schaltplan des Lichtmoduls ist Teil des Schaltplans der Adapterplatine.

Schaltplan für Multisim von 29.06.2014: Datei:Adapterplatine 2014 06 29.zip

Platinenlayout


Platinenlayout für Ultiboard vom 29.06.2014: Datei:Adapterplatine 2014 06 29.zip

Logik

Die Logik wurde im Simulinkmodell implementiert. Sie befindet sich im Modell unter "AKT - Aktoren" und ihre Signale liegen für das offline Modell auf dem Bus unter dem Bereich "Akt_LED*_f64" mit dem jeweiligen Namen anstelle des *.

Blinken

Die Blinklogik orientiert sich am Eingang "FAMO_LwSoll_f64" welcher im ersten Schritt einen downsample auf eine Simulationsfrequenz von f= 2Hz. Anschließend wird der Lenkwinkel mit einem Schwellwert verglichen, wodurch boolscher Wert ermittelt wird, welcher bestimmt, ob die jeweilige Richtung blinken soll oder nicht. Dieser Teil wird "automatische Blinkermittlung" genannt.

Sollten einzelne Teams Blinkerwünsche haben, so besteht die Möglichkeit diese manuell zu setzen. Durch eine OR-Verknüpfung mit dem gesetzten Bit wird garantiert, dass entweder die manuelle oder automatische Blinkersetzung durchgeführt wird. Gleichfalls besteht über eine AND-Verknüpfung die Möglichkeit die automatische Blinkersetzung zu unterdrücken. Dieser Teil wird "manuelle Blinkersetzung" genannt.

Durch eine AND-Verknüpfung mit einem kontinuierlichen Signal, welches in einer Frequenz von f = 2Hz zwischen den Zuständen 0 und 1 wechselt, kann ein Blinksignal für die Linke und Rechte Seite erzeugt werden. Dieser Zusammenhang ist im folgenden Bild abgebildet.

Fahranzeiger

Simulink-Modell Fahranzeige

Die Entscheidung für die Signale der Fahranzeige basiert auf dem Signal "FAMO_VxSoll_f64". Zuerst wird bestimmt, ob das Fahrzeug sich in einer Vorwärts- oder Rückwärtsfahrt befindet. Dies passiert durch Vergleichen der Geschwindigkeit mit 0. Ist die Geschwindigkeit kleiner 0, so wird das Rückfahrlicht aktiviert. Das gleiche Signal wird auch für die Entscheidung über das Bremssignal verwendet. In jedem Zyklus wird die aktuelle Geschwindigkeit mit der letzten Geschwindigkeit verglichen, ist die letzte Geschwindigkeit größer, wenn das Fahrzeug geradeausfährt, oder kleiner, wenn das Fahrzeug rückwärts fährt, so wird das Bremssignal aktiviert. Die Entscheidung welcher Fall gerade beachtet wird, wird über einen nachgelagerten Schalter ausgewählt, welcher als Umschalter das Signal des Rückfahrlichts benutzt. Der Zusammenhang ist im folgenden Bild abgebildet.


Blinkmodus

Der Blinker kann in den Modi: Automatik, Manuell und Hybrid betrieben werden. Im Automatik-Modus wird der Blinker komplett von der Logik, basierend auf dem Lenkeinschlag, betrieben. Im Manuell-Modus kann der Blinker ausschließlich über die Signale für Links-, Rechts- oder Warnblinker betrieben werden. Sämtliche Signale der Blinkautomatik werden aktiv unterdrückt. Im Hybrid-Modus ist es möglich sowohl die Blinksignale der manuellen als auch der automatischen Logik zu nutzen.

Modus Linksblinker Rechtsblinker Warnblinker Hinweis
Automatik abhängig von Lw_Pwm_f64 abhängig von Lw_Pwm_f64 nicht möglich BlinkerAutomatik_ManualDisable_f64 == 0
Hybrid abhängig von Lw_Pwm_f64 oder BlinkerLinks_ManualEnable_f64 == 1 abhängig von Lw_Pwm_f64 oder BlinkerRechts_ManualEnable_f64 == 1 Warnblinker_ManualDisable_f64 == 1 BlinkerAutomatik_ManualDisable_f64 == 0
Manuell BlinkerLinks_ManualEnable_f64 == 1 BlinkerRechts_ManualEnable_f64 == 1 Warnblinker_ManualDisable_f64 == 1 BlinkerAutomatik_ManualDisable_f64 == 1

Fazit

Die Lichtsteuerung wurde gemäß der Spezifikation implementiert und konnte verifiziert werden. Über die Parameter für den Linkeinschlag, sowie die Wahl der Filterparameter lässt sich die automatische Blinkersteuerung einstellen. Hierbei ist jedoch auf Hystereeffekte zu achten, welche bei der Bremserkennung zum Tragen kommen können. In den meisten Fällen wird jedoch dazu geraten, die Werte beim aktuellen Stand zu belassen, da diese so implementiert wurden, dass sie sich der Umgebung entsprechend anpassen.

Notiz: Die ordnungsgemäße Funktionsweise konnte von der Gruppe des Sommersemesters 2018 erfolgreich überprüft werden. Ein Testprotokoll ist im SVN abgelegt.

Einzelnachweis

  1. [1] §54 StVO Fahrtrichtungsanzeiger

→ zurück zum Hauptartikel: Praktikum SDE