Lichtwächter: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Markierung: Manuelle Zurücksetzung
Markierung: Manuelle Zurücksetzung
Zeile 323: Zeile 323:


== Weblinks ==
== Weblinks ==
[[Datei:TestZIP.zip]]


== Literatur ==
== Literatur ==

Version vom 14. Januar 2025, 16:52 Uhr

Autor: Marvin Flach und Andreas Werning
Betreuer: Prof. Göbel

Autor: Marvin Flach und Andreas Werning


Einleitung

In diesem Rätsel geht es darum verschiedene Lichtstärken zu finden und ermitteln. Die Lichtstärke wird mit Hilfe eines Fotowiderstandes gemessen. Entspricht die gemessene Lichtstärke der gesuchten Lichtstärke (+- Toleranz), zählt ein Timer die Zeit. Liegt die Lichtstärke mindestens 5 Sekunden im gesuchten Bereich, wird eine Lösungsziffer für die Lösungskombination auf dem LCD - Display angezeigt. Verlässt die Lichtstärke den gesuchten Bereich unter der 5 Sekunden Grenze, wird die Zeit auf 0 zurückgesetzt. Das Finden verschiedener Lichtstärken kann beliebig oft, für beliebig viele benötigte Lösungsziffern wiederholt werden. Optional kann man Hilfe anfordern, sodass auf dem LCD Display dann angezeigt wird, ob man den Fotowiderstand abdunkeln oder aufhellen muss.

Anforderungen

Tabelle 1: Anforderungen an den Lichtwächter
ID Inhalt Prio Ersteller Datum Geprüft von Datum
Req. 01 Der Arduino muss die Lichtstärke mit dem Fotowiderstand messen und auslesen können. 1 Andreas Werning 17.12.2024 siehe Komponententest siehe Komponententest
Req. 02 Der Arduino muss die 3 Taster auslesen können. 1 Andreas Werning 17.12.2024 siehe Komponententest siehe Komponententest
Req. 03 Die gemessene Lichtstärke muss mit dem gesuchten Referenzwert +- Toleranz verglichen werden 1 Andreas Werning 17.12.2024 siehe Komponententest siehe Komponententest
Req. 04 Liegt die gemessene Lichtstärke innerhalb der Grenzen, soll eine Zeit hochgezählt werden. 1 Andreas Werning 17.12.2024 siehe Komponententest siehe Komponententest
Req. 05 Verlässt die gemessene Lichtstärke die Toleranzen, dann soll die Zeit auf 0 zurückgesetzt werden. 1 Andreas Werning 17.12.2024 siehe Komponententest siehe Komponententest
Req. 06 Wird der Fotowiderstand mindestens 5 Sekunden mit der passenden Lichtstärke bestrahlt, muss die Lösungsziffer auf dem Display ausgegeben werden. 1 Andreas Werning 17.12.2024 siehe Komponententest siehe Komponententest
Req. 07 Durch Drücken des Tasters "Starte Spiel" soll das Spiel gestartet/neu gestartet werden können. 1 Andreas Werning 17.12.2024 siehe Komponententest siehe Komponententest
Req. 07 Durch drücken des Tasters "Starte Messung" sollen die vier Messungen der zu suchenden Lichtstärken gestartet werden. 1 Andreas Werning 17.12.2024 siehe Komponententest siehe Komponententest
Req. 08 Nach Starten der Messung soll auf dem Bildschirm der Messfortschritt angezeigt werden. 1 Andreas Werning 17.12.2024 siehe Komponententest siehe Komponententest
Req. 09 Durch drücken des Tasters "Hilfe", soll durch "++", "+", "-" oder "--" auf dem LCD eine Hilfestellung angezeigt werden. Die Hilfe soll nur beim Finden der Lichtstärke angezeigt werden, bei der der Taster gedrückt wurde 2 Andreas Werning 17.12.2024 siehe Komponententest siehe Komponententest
Req. 10 Projektdateien auf SVN dokumentiert 2 Marvin Flach 11.10.2024 siehe Komponententest siehe Komponententest

Funktionaler Systementwurf/Technischer Systementwurf

Abb. 01: Skizze des Systementwurfs in der Draufsicht, Original [[1]]
Abb. 02: Skizze des funktionalen Systementwurfs, Original [[2]]

Komponentenspezifikation

In diesem Kapitel werden die Hauptkomponenten zur Umsetzung des Lichtwächter Rätsels erläutert.

Material und Stückliste

Tabelle 2: Material und Stückliste
ID Anzahl Kosten pro Stück € Summe Bezeichnung / Komponente technische Bezeichnung
1 1 20,99€ 20,99€ Arduino UNO Rev 3 Arduino A000073 Board Uno Rev3 SMD Core ATMega328
2 1 3,29€ 3,29€ Fotowiderstand Fotowiderstand LDR
3 3 1,99€ 5,97€ Einschraubdrucktaster Einschraubdrucktaster schwarz 6mm
4 1 9,88€ 9,88€ LC-Display LC-Display 16x2 i²C
5 1 / / Streifenrasterplatine

Komponenten

Hardware Board:
Als Mikrocontroller wird ein Arduino Uno Rev 3 eingesetzt.

Sensor:
Zur Erfassung der Lichtstärke wird ein Fotowiderstand eingesetzt. Dieser beruht auf dem photoelektrischen Effekt. Fällt Licht, also Photonen auf das Halbleitermaterial werden Elektronen aus den Kristallen gelöst. Dadurch wird der Fotowiderstand leitfähiger und der Widerstandswert sinkt. Je mehr Licht auf den Widerstand einfällt, desto geringer wird der Widerstand und desto höher der Strom. Der Sensor wird in Reihe mit einem Widerstand mit ähnlichem Widerstandswert geschaltet (siehe Kapitel Elektrische Planung). Dadurch entsteht ein Spannungsteiler. Die Spannung, die über dem Fotowiderstand abfällt, wird am Analogeingang des Mikrocontroller abgegriffen.

Bedienung:
Zur Bedienung des Spiels werden Taster eingesetzt. Als Anzeigeelement wird ein LCD-Display verwendet.

Umsetzung (HW/SW)

Planung Software

Abb. 03: Programmablaufplan Lichtwächter, Original [[3]]

Die Software soll folgendermaßen arbeiten. Der Wert des Fotowiderstand wird dauerhaft ausgelesen. Über den Taster "Start Spiel" wird das Spiel gestartet beziehungsweise neu gestartet. Durch den Taster "Start Messung" kann jetzt die entsprechende Messung gestartet/aktiviert werden. Ist eine Messung aktiv wird abgefragt, ob die Hilfe durch den Taster "Hilfe" aktiviert wurde. Je nach Ergebnis der Abfrage wird auf dem LCD-Display eine Hilfestellung ausgegeben. Dann wird der gemessene Lichtwert mit dem geforderten Lichtwert für die jeweilige Messung verglichen. Auf den geforderten Lichtwert wird eine Toleranz berechnet. Liegt der gemessene Lichtwert im gewünschten Bereich, wird begonnen eine Zeit hochzuzählen. Der Fortschritt wird auf dem Display ausgegeben. Nachdem die hochgezählte Zeit die geforderte Zeit überschreitet, wird auf dem Display eine Lösungsziffer ausgegeben. Anschließend werden Hilfsvariablen gesetzt, zurückgesetzt oder geändert. Zum Beispiel wird die nächste Messung aktiviert, die Hilfestellung wird zurückgesetzt und die aktuelle Messung wird deaktiviert. Während die Lösungsziffer auf dem Display wird wieder ein Timer hochgezählt. Erreicht dieser Timer eine gewünschte Wartezeit wird auf dem Display der Hinweis zum Starten der nächsten Messung ausgegeben. Sind alle 4 Messungen abgeschlossen, wird auf dem Display der Hinweis ausgegeben, dass das Spiel beendet ist.



Umsetzung Software


Abb. 04: Simulink Modell, Original [[4]]


Im Simulinik-Modell werden die Taster über die entsprechenden digitalen Pins eingelesen. Der Fotowiderstand wird über den Analogpin 0 eingelesen. Der Sensorwert wird dann auf die vier verschiedenen Bereiche zur Messung der Lichtstärken 1-4 weiter geleitet. Er wird mit dem oberen und unteren Grenzwert der geforderten Lichtstärke verglichen. Ist der Wert des Fotowiderstandes kleiner der Obergrenze und größer der Untergrenze, dann wird über den AND-Block ein 1 Signal auf den Multiplikator Block geführt. Der zweite Multiplikator kommt aus dem IO-Device Block. Über die Rückführung aus dem IO-Device Block wird festgelegt welche Messung gerade aktiv ist. Ist dieses Signal 1 wird eine 1 vom Multiplikator auf den Zeitdiskreten Integrator Block weitergeleitet. Anderenfalls ist der zweite Multiplikator 0 und es kommt eine 0 aus dem Multiplikator Block. Der Zeitdiskrete Integrator ist so parametriert, dass das Ergebnis im Sekundentakt die nächste ganze Zahl erreicht. Das Ergebnis des Zeitdiskreten Integrators wird in den IO-Device Block geführt. Die Ausgangssignale aus dem IO-Device Block geben entweder an, welche Messung gerade aktiv ist oder welche Messung abgeschlossen wurde. Da diese Signale zurück geführt werden, muss ein Delay-Block eingefügt werden, da ansonsten eine algebraische Schleife entstehen würde. Die Signale, dass eine Messung beendet ist, werden wieder über einen zeitdiskreten Integrator aufintegriert und gehen wieder in den IO-Device Block hinein.

Abb. 05: IO-Device Block Code 1, Original [[5]]



Im ersten Teil des IO-Device Block sieht man zunächst einen Spielstart beziehungsweise Neustart. Wird der Taster am Eingang "Starte_Spiel" gedrückt, dann werden alle Hilfsvariablen und Ausgänge welche Messung aktiv ist zurück gesetzt. Anschließend wird eine Anweisung zum Starten der ersten Messung auf dem Display ausgegeben und die Hilfsvariable "Spiel_gestartet" = 1 gesetzt.

Wenn diese Hilfsvariable gesetzt ist und dann der Taster am Eingang "Starte Messung" gedrückt wird, dann wird die Hilfsvariable zurückgesetzt und eine weitere Hilfsvariable "Messung_1" = 1 gesetzt. Diese Variable wird am Ende des Programms auf den Ausgang Messung 1 gelegt und zur ersten Abfrage im Simulink Modell zurückgeführt, sodass diese jetzt aktiv ist. Außerdem wird auf dem Dipslay die Anzeige des Fortschritts vorbereitet. Solange "Messung_1" jetzt aktiv ist, wird der Fortschritt der Zeitmessung berechnet und auf dem Display ausgegeben. Wenn jetzt zusätzlich noch der Taster "Hilfe" gedrückt wird, wird die Variable "Hilfe_Messung_1" gesetzt.

Abb. 06: IO-Device Block Code 2, Original [[6]]



Wenn jetzt die Variable "Hilfe_Messung_1" aktiv ist, wird der Wert des Fotowiderstandes am Eingang "Sensor_Wert" ausgelesen und mit dem geforderten Wert verglichen.

Liegt der Wert 200 oder mehr über/unter dem geforderten Bereich dann wird neben dem Wort "Hilfe:" ein "--"/"++" ausgegeben.

Liegt der Wert bis zu 200 über/unter dem geforderten Bereich, dann wird neben dem "Hilfe:" ein "-"/"+" ausgegeben.

Liegt der Wert in dem geforderten Bereich, dann wird hinter dem Wort "Hilfe:" nichst mehr ausgegeben.

Abb. 07: IO-Device Block Code 3, Original [[7]]



Wenn der Wert am Eingang "Zeit_Messung_1" größer als 5 ist und die Messung_1 aktiv ist, dann wird die Variable und somit der Ausgang "Messung_1" zurückgesetzt. Die Hilfestellung für Messung 1 wird ebenfalls zurück gesetzt. Auf dem Display wird jetzt die Lösungsziffer ausgegeben. Die Variable "Messung_1_beendet" wird gesetzt und damit auch der Ausgang. Dieser Ausgang wird dann im Simulink Modell mit einen zeitdiskreten Integrator aufintegriert und an den Eingang des IO-Device Blocks zurückgeführt.

Wenn dieser Wert dann größer als 7 ist, wird die Variable "Messung_1_beendet" wieder zurückgesetzt. Auf dem Display wird der Hinweis zum Starten der zweiten Messung ausgegeben und die Variable "Messung_2_vorbereitet" wird gesetzt. Damit ist die Programmierung für die Messung der ersten Lichtstärke abgeschlossen.


Durch drücken des Tasters "Start Messung" kann nun die zweite Messung begonnen werden. Der Code für die weiteren Messungen ist vom Aufbau her identisch aufgebaut, wie der beschriebene Code. Er ist dementsprechend an den Stellen an denen sich die Messungen unterscheiden angepasst.

Planung Hardware


Das CAD Modell ist simpel gehalten und optimiert für die Herstellung mit dem 3D Drucker. Alle Aussparungen für die Bauteile sind zuvor erstellt worden, sodass diese einfach eingeschraubt werden können.

Abb.08: CAD Modell Hardware, Original [[8]]

Umsetzung Hardware


Gedruckt wurde das Modell aus dem Kunststoff PLA. Aufgrund von Fertigungstoleranzen der elektrischen Bauelemente, musste die Aussparung für den Stromanschluss am Arduino mit einer Schlüsselfeile etwas bearbeitet werden.

Abb. 09: 3D gedruckter Deckel eingesetzt mit Bauteilen umgekehrt gedreht auf der Bodenschale, Original [[9]]

Elektrische Planung


Abb. 10: Schaltplan Lichtwächter, Original [[10]]

Insgesamt ist der elektrische Aufbau einfach gehalten. Die drei Taster (S1 - S3) sind jeweils mit einem Pull down Widerstand versehen, damit die Spannungen am digitalen Eingang jederzeit klar definiert sind. Der Fotowiderstand R5 ist in Reihe mit dem Widerstand R4 geschaltet. Dadurch ergibt sich ein Spannungsteiler. Die Spannung über dem Fotowiderstand wird dann am Analogeingang 0 abgegriffen. Das LCD-Dipslay ist über den I^2C-Bus an den Arduino angeschlossen. Versorgt werden alle Bauteile mit 5 Volt über den Spannungsanschluss am Arduino.

Elektrische Umsetzung


Die elektrische Umsetzung des Projekts wurde mit einem Arduino als zentralem Mikrocontroller realisiert. Der Arduino wurde mithilfe von Steckkabeln verbunden, um die Signal- und Stromleitungen flexibel zu gestalten. Diese Kabel wurden auf einer Streifenrasterplatine verlötet, die als zentrales Verteilungs- und Montagemodul diente.

Auf der Streifenrasterplatine wurden zusätzlich alle notwendigen Widerstände verlötet. Diese dienen zur Strombegrenzung oder Anpassung der Signale und sind fest in die Schaltung integriert. Von der Platine aus führen weitere Leitungen zu den Bauteilen im Gehäusedeckel.

Im Deckel sind mehrere Elemente angebracht und ebenfalls verlötet, darunter:

Taster: Zur Benutzereingabe

LC-Display: Zur Anzeige von Informationen

LDR-Widerstand (Lichtabhängiger Widerstand): Zur Messung der Umgebungshelligkeit

Die Leitungsverbindungen zwischen der Platine und den Deckelkomponenten wurden sorgfältig ausgeführt, um eine zuverlässige Signalübertragung und mechanische Stabilität zu gewährleisten. Dies ermöglichte eine robuste und übersichtliche Verkabelung des Gesamtsystems.

Abb. 11: Elektrische Umsetzung des Kastens, Original [[11]]

Komponententest

Tabelle 3: Prüfung der Anforderungen an den Lichtwächter
Bezuf auf ID Prüfvorgang Prüfer Geprüft am Status
Req. 01 Das Auslesen und die Funktion des Fotowiderstandes mit Hilfe des Simulink Testmodells prüfen. Den Sensor mit den Händen abdunkeln und wieder aufhellen. Marvin Flach
Andreas Werning
12.01.2025 i.O.
Req. 02 Das Auslesen und die Funktion der 3 Taster mit Hilfe des Simulink Testmodells prüfen. Die Taster abwechselnd drücken. Marvin Flach
Andreas Werning
12.01.2025 i.O.
Req. 03 Das Simulink Modell des Lichtwächter auf den Mikrokontroller laden. Den Fotowiderstand mit der Hand abdunkeln und wieder aufhellen. Kontrolle durch den Ausgang des "AND-Blocks". Marvin Flach
Andreas Werning
12.01.2025 i.O.
Req. 04 Kontrolle durch den Ausgangswert des Zeitdiskreten Integrator-BLocks - muss hochzählen. Marvin Flach
Andreas Werning
12.01.2025 i.O.
Req. 05 Kontrolle über den Ausgang des Zeitdiskreten Integrators bei Verlassen des Messbereichs - muss gleich 0 sein. Marvin Flach
Andreas Werning
12.01.2025 i.O.
Req. 06 Kontrolle durch Zeitstoppen und Ausgabe auf dem Display. Marvin Flach
Andreas Werning
12.01.2025 i.O.
Req. 07 Kontrolle durch Ausgabetext auf dem Display. Marvin Flach
Andreas Werning
12.01.2025 i.O.
Req. 07 Kontrolle durch Ausgabe auf dem Display. Marvin Flach
Andreas Werning
12.01.2025 i.O.
Req. 08 Kontrolle durch Ausgabe auf dem Display. Marvin Flach
Andreas Werning
12.01.2025 i.O.
Req. 09 Kontrolle durch Ausgabe auf dem Display. Marvin Flach
Andreas Werning
12.01.2025 i.O.
Req. 10 Kontrolle im SVN. Marvin Flach
Andreas Werning
12.01.2025 i.O.

Ergebnis


Das Projekt "Lichtwächter" wurde erfolgreich umgesetzt. Das System erfüllt die gestellten Anforderungen und ermöglicht es, verschiedene Lichtstärken präzise zu messen und zu analysieren. Die Implementierung des Fotowiderstands und die Nutzung des Arduino Uno als Mikrocontroller funktionierten zuverlässig.

Alle Funktionen, wie die Toleranzprüfung, das Hochzählen der Zeit bei korrekten Lichtwerten und die Anzeige der Lösungsziffern auf dem LCD-Display, wurden erfolgreich integriert. Die Hilfefunktion, die durch einfache Symbole wie "++" oder "--" auf dem Display Unterstützung bietet, zeigte sich als besonders nutzerfreundlich und intuitiv.

Für den finalen Aufbau ist das Gehäuse mit einer Beschriftung der Taster versehen. Zusätzlich sind größere Betätigungsknöpfe angebracht

Abb. 12: Fertiger Aufbau des Lichtwächter Rätsels, Original [[12]]

Zusammenfassung

Lessons Learned

Während der Erarbeitung des Projekts "Lichtwächter" konnten viele im bisherigen Studienverlauf gewonnene Methoden und Inhalte angewendet und zusätzlich neue Erkenntnisse und Erfahrungen gesammelt werden. Beim Konstruieren und Planen der Hardware konnten die erlernten Inhalte des CAD-Praktikums sinnvoll angewendet werden. Eine völlig neue Erfahrung war die grundlegende Planung des Projektes. Es wurde erlernt einen Projektplan zu erstellen und im Laufe der Umsetzung zu führen und zu erweitern. Schwierigkeiten dabei waren es am Anfang die nötigen Arbeitsschritte zu sammeln und deren benötigten Umfang abzuschätzen. Während der Programmierung der Software konnten die bereits erlernten Grundkenntnisse im Umgang mit Simulink angewendet und vertieft werden. Neu erlernt wurde die Programmierung eines Mikrokontrollers mit Hilfe von Simulink. Dabei ist es vermehrt zu Schwierigkeiten gekommen, die im Laufe des Projektes behoben werden konnten. Unter anderem kam es zu Schwierigkeiten, da die Art des Programmierens mit Simulink deutlich von der bisher erlernten Art mit Hilfe der Arduino IDE abweicht. Eine weitere Erkenntnis ist, dass eine umfangreiche und detaillierte Dokumentation mindestens genau so viel Zeit in Anspruch nimmt, wie die Umsetzung des Projektes. Jedoch ist dabei zu berücksichtigen, dass eine solche Dokumentation dringend benötigt wird um das Projekt, die Umsetzung und die Probleme vollumfänglich zu verstehen.

Projektunterlagen

Projektplan inkl. Projektdurchführung


Abb. 13: GANTT Diagramm für Projektplan und Durchführung, Original [[13]]


ZIP-Archiv Projektunterlagen

Weblinks

Literatur


→ zurück zur Übersicht: WS 23/24: Angewandte Elektrotechnik (BSE)