Escape Game: Lichtlabyrinth: Unterschied zwischen den Versionen
→Software: Script hinterlegt |
|||
| Zeile 281: | Zeile 281: | ||
Datei:Lichtlabyrinth SimulinkProgramm.png|Abb:9 [https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Projekte/185-196/187_Lichtlabyrinth/ Simulink Programm vom Lichtlabyrinth] | Datei:Lichtlabyrinth SimulinkProgramm.png|Abb:9 [https://svn.hshl.de/svn/Elektrotechnik_Fachpraktikum/trunk/Projekte/185-196/187_Lichtlabyrinth/ Simulink Programm vom Lichtlabyrinth] | ||
</gallery> | </gallery> | ||
Für die Software wurden C-Funktion Blöcke genutzt, da diese wenig Speicherplatz bei der Compilierung benötigen. | |||
Der blaue Block wird zur Erfassung der Tastereingänge genutzt. Hierbei werden die Signale von Arduino an den digitalen Inputs der Taster eingelesen und in der C Funktion ausgewertet. Ein Taster-Signal wird hier nur weitergeleitet, wenn ausschließlich einer der Taster gedrückt wurde. Für den jeweilen Taster wird dann eine Zahl von 1 bis 4 entsprechend der Taster weitergegeben. | |||
<br> <br> | <br> <br> | ||
Die eigentliche Spielmechanik wird in dem gelben C-Funtion-Block realisiert. Und erfolgt nach der PAP. Der Timer, welcher die vergangene Zeit des aktuellen Spiels anzeigt und ein Ereignis bei Ablauf der Zeit auslöst, wurde ebenfalls mit einer C-Funkton-Block realisiert und ist an der orangen Farbe zu erkennen. Die aktuelle Zeit wird dann noch in eine separten, türkisen C-Funktion-Block weitergeleitet, der dann das gewünschte PWM Signal an die Countdown LED über den digitalen Output des Arduinos sendet. | Die eigentliche Spielmechanik wird in dem gelben C-Funtion-Block realisiert. Und erfolgt nach der PAP. Der Timer, welcher die vergangene Zeit des aktuellen Spiels anzeigt und ein Ereignis bei Ablauf der Zeit auslöst, wurde ebenfalls mit einer C-Funkton-Block realisiert und ist an der orangen Farbe zu erkennen. Die aktuelle Zeit wird dann noch in eine separten, türkisen C-Funktion-Block weitergeleitet, der dann das gewünschte PWM Signal an die Countdown LED über den digitalen Output des Arduinos sendet. | ||
<br><br> | <br><br> | ||
Für die LED-Matrix wurde über den I/ | Für die LED-Matrix wurde über den I/O Builder ein eigenen Block realisiert, welcher dann die aktuellen Felder der LEDs anzeigt und die beim Erreichen des Zielpunktes den Zahlencode auf der RGB Matrix anzeigt. | ||
== Komponententest == | == Komponententest == | ||
Version vom 11. Januar 2026, 13:39 Uhr
| Autoren: | Jonas von Döllen & Julius von Agris |
| Betreuer: | Prof. Schneider |
Einleitung
Das Escape-Game „Lichtlabyrinth“ basiert auf einer RGB-8x8-LED-Matrix. Ziel des Spiels ist es, von einem Bewegungs-Lichtpunkt (z. B. Farbe x) zu einem Ziel-Lichtpunkt (z. B. Farbe y)zu gelangen. Der Anwender kann sich mit einem Steuerkreuz in Form von Tastern bewegen, um zur Ziel-LED zu gelangen. Die Schwierigkeit dabei liegt darin, dass der Anwender nicht einen beliebigen Weg einschlagen kann, sondern aus verschiedenen Labyrinth-Weg-Karten, die richtige herausfinden muss. Der Spieler erkennt somit auf der Matrix nicht direkt die möglichen Wege. Um die richtige Labyrinth-Weg-Karte zu finden, werden auf dem Spielfeld neben der Start-/ und der Ziel-LED, auch zwei weitere LEDs (z. B. Farbe z) leuchten, die auf den Labyrinth-Weg-Karten an unterschiedlichen Stellen mit einem Kreis gekennzeichnet sind. Diese LEDs muss der Anwender mit seinen Labyrinth-Weg-Karten abgleichen und die richtige auswählen. Hat der Anwender die richtige Karte ausgewählt, muss er dem Weg der Karte folgen, um das Rätsel zu lösen. Wählt der Anwender allerdings eine falsche Karte aus, macht einen Fehler (z. B. Betätigung eines falschen Tasters) auf dem Weg ins Ziel oder läuft die vorgegebene Zeit (wird durch eine immer schneller blinkende LED, welche nicht zu dem Spielfeld gehört, angezeigt) ab, verändern sich die LEDs auf dem Spielfeld und der Anwender muss von neu starten.
Schwierigkeitslevel: Mittel
Lernziele: Schüler schaffen es, räumlich und abstrakt zu denken. Die Informationen von der zweidimensionalen Karte müssen auf das Gerät (die Lichtmatrix) eigenständig projiziert werden.
Bezug zum MTR Studium: Die Vorstellungen von Räumen und äußerlichen Gegebenheiten sind grundlegend für CAD-Programme und zum Konstruieren. Das Gerät mit der Lichtmatrix bildet auch eigenständig ein mechatronisches System, welches Sensoren (Taster), Aktoren (die Lichtmatrix) und eine zentrale Prozesseinheit (Arduino) umfasst.
Anforderungen
| Nr | Inhalt | Prüfbarkeit | Prio | Ersteller | Datum | Geprüft von | Datum |
|---|---|---|---|---|---|---|---|
| 1 | Die LEDs auf der Matrix müssen einzeln mit dem Arduino Controller angesteuert werden. | Sichtkontrolle auf der Matrix | 1 | Jonas von Döllen | 3.10.2025 | ||
| 2 | Taster müssen einzeln über einen Tastendruck per Hand ansteuerbar sein und nur einzeln ein Signal zulassen | Auswertung der Tastersignale über Seriellenmonitor | 1 | Julius von Agris | 3.10.2025 | ||
| 3 | Countdown LED muss immer schneller blinken und nach 40 Sekunden mit der Anfangsblinkgeschwindigkeit wieder beginnen | Sichtkontrolle auf dem Breadboard | 1 | Jonas von Döllen | 3.10.2025 | ||
| 4 | LED Matrix muss die Zahlen für das nächste Schloss in Form einer Segmentanzeige nacheinander anzeigen können | Sichtkontrolle auf der Matrix | 1 | Jonas von Döllen | 3.10.2025 | ||
| 5 | Die vier Spielfelder-LEDs müssen auf dem Bildschrim angezeigt werden | Sichtkontrolle auf der Matrix | 1 | Julius von Agris | 3.10.2025 | ||
| 6 | Bewegungs-LED muss mit den Tastern auf der Matrix bewegbar sein | Sichtkontrolle auf der Matrix | 1 | Julius von Agris | 3.10.2025 | ||
| 7 | Unzulässige Bewegungen von der Wegkarte müssen das Spiel neu starten und das Feld soll rot aufleuchten | Sichtkontrolle auf der Matrix und der Countdown-LED | 1 | Julius von Agris | 3.10.2025 | ||
| 9 | Bei Erreichen des Ziel-Lichtpunktes müssen die Zahlen auf der LED Matrix ausgegeben werden | Sichtkontrolle auf der Matrix | 1 | Jonas von Döllen | 3.10.2025 |
Funktionaler Systementwurf
Das Gehäuse beinhaltet eine Seite, in der 4 Taster eingebaut werden. Mittig davon ist die LED Matrix gut ersichtlich, welche einen Blick auf die 4 LED in 3 unterschiedlichen Farben (1 Rote für das Ziel, 1 blaue für den Bewegungspunkt und 2 grüne für Orientierungspunkte) anzeigen. Zusätzlich muss die Countdown-LED ersichtlich sein, welche die noch verbliebene Zeit durch ein immer schnelleres blinken anzeigt.
-
Abb. 1: Escape Game Lichtlabyrinth
Um das Spiel durchführen zu können, muss der Spieler Informationen über den Topologie des Labyrinthes haben. Daher werden zwei Zettel mit jeweils 2 Labyrinthwegen aufgezeichnet. Zu Unterscheidung der Labyrinthe werden die Orientierungspunkte markiert. Dies kann entweder mit einem Kreis, wie die Abbildung 2 zeigt oder farblich mit einem Punkt geschehen.
-
Abb.2: Wegkarten des Lichtlabyrrinthes
Das Escape Game soll anhand dieses Programmablaufsplan erfolgen. (siehe abbildung)
-
Abb.3: PAP Lichtlabyrinth
Technischer Systementwurf
Der Arduino diese Schaltung wird mit einem Netzteil über die DC Jack Buchse am Arduino versorgt. Die LED-Matrix wird mit den 5V des Arduinos versorgt. Eine weitere Leitung zur Ansteuerung der LED führt in die Digitalen I/O Pins des Arduinos. Hiermit wird per PWM Signalen, die LED-Matrix angesteuert. Des Weiteren wurden 4 Taster aufgebaut. Vom Ground-Potential der Taster führt jeweils eine grüne Leitung in den Arduino. Die Taster selber besitzen ein Pull-Up Widerstand. Der Ausgang des Tasters gehen jeweils an einem digitalem I/O Pin des Arduinos. Die Countdown LED wird dann noch mittels einem Vorwiderstandes auch wieder über einen digitalem I/O Pin angesteuert. Die digitalen I/O Ausgänge können bis auf die der LED-Matrix, da diesen ein digitalen I/O Pin mit PWM signal braucht, frei auswählen. Für die wirkliche Verdrahtung der einzelnen Bauelementen wird eine Leiterplatte designt, welche die Bauelemente untereinander verbindet und fixiert. (siehe Kapitel: Hardware)
-
Abb.4: PAP Lichtlabyrinth
Materialliste / Komponentenspezifikationen
| Nr. | Anz. | Preis | Beschreibung / Link | Spezifikationen | Abbildungen |
|---|---|---|---|---|---|
| 1 | 1 | 19,90 € | Arduino UNO R3 |
|
|
| 2 | 1 | 8,99 € | WS2812B RGB LED Digital Individually Addressable Panel Light LED Module Matrix Screen DC5V Controllers Image Video Text Display (2pcs 8x8 Pixels) |
|
|
| 3 | 1 | 0,26 € | LED, 10 mm, THT, rot, Diffus, 900 mcd, 30° |
|
|
| 4 | 4 | 4,33 € | Leuchttaster |
|
|
| 5 | 1 | 3,90 € | Netzteil für Mikrocontroller 9V 1A |
|
|
| 6 | 10 | 2,40 € | Blechschrauben, |
|
|
| 7 | 1 | - | 3D-Druck Gehäuse (von HSHL) |
|
|
| 8 | 1 | - | 150 Ohm Widerstand für die Countdown-LED (von HSHL) |
|
|
| 9 | div. | - | Leitungen (von HSHL) |
|
|
| 10 | div. | - | Lötzinn (von HSHL) | ||
| 11 | 1 | - | Leiterplatte (Hergestellt von HSHL) |
Bei Verwendung der Lochrasterplatte:
| Nr. | Anz. | Preis | Beschreibung / Link | Spezifikationen | Abbildungen |
|---|---|---|---|---|---|
| 11 | 1 | 2,60€ | Lochrasterplatte |
|
|
Werkzeugliste
| Nr. | Beschreibung | Größe |
|---|---|---|
| 1 | Lötkolben | |
| 2 | Abisolierzange | |
| 3 | Kreuzschlitz-Schraubendreher | 2mm |
| 4 | Schlitz-Schraubendreher | 1mm |
| 5 | Schraubenschlüssel | S22 |
Umsetzung (HW/SW)
Hardware
Zur Verbindung der einzelnen Taster, der LED-Matrix und der Countdown-LED wurde eine Leiterplatte entworfen, die später dann mit einfach als Arduino Shield auf dem Arduino Uno R3 aufgesteckt werden kann. Diese Leiterplatte wird dann auch über die 4 Bohrungen der mit dem Gehäuse über die Schrauben verbunden. Die Leiterplatte wurde von Hand verlötet. Die Taster wurden mit flexibler Leitung verlötet und dann in die Schraubklemmen der Leiterplatte eingefügt. Zusätzlich wurde der Vorwiderstand der LED mit angelötet.
-
Abb.5: Leiterplatten-Layout
-
Abb.6 : Leiterplatte beschrfitet
Für das Gehäuse wurde eine CAD Modell in Solid Works erstellt, welche die Taster, Arduino, Schrauben, Leiterplatte und die LED-Matrix beinhalten (Siehe Abbildung: )Die Montage erfolgt dann anhand der Explosionsansicht. Das Gehäuse sowie der Deckel wurden per 3D Druck angefertigt.
-
Abb. 7: CADExplosionsansicht
Die Taster sind beleuchtet und besitzen daher zwei GND Anschlüsse. Um eine Buchse auf der Leiterplatte zu sparen werden diese zusammengelötet.
Aufgrund von schlechter Lötstellen an der selbst designten Leiterplatte, war keine zuversichtlicher Kontakt gegeben. Aus zeitlichen Gründen konnte keine neue Leiterplatte gefräßt werden. Daher ist man dann auf eine vorhandene lochrasterplatte gewechselt. Hierbei ist zu beachten, dass durch den Versatz der der Female-Headerpins beim Arduino bei dem digitalem I/O Pins nur die digitalen I/O Pins von 0 - 7 verwendet werden können. Daher muss man die digitalen Ein- und Ausgänge anhand der Abbildung: in dem Simulink Programm abgeändert werden. Mehr dazu in Kapitel Software.
-
Abb:8 Lochrasterplatte
Software

Das Programm wurde wie in der PAP in ein Simulink Programm realisiert (siehe Funktionaler Systementwurf). Die einzelnen Labyrinthe wurden über die obigen Konstanten in einer Matrix [8][8] mit dem Datentyp uint8 abgespeichert. Hierfür wurde in Matlab ein Script geschrieben, welches die entsprechende Labyrinth zufällig über ein Backtracking-Algorithmus ausgibt. Bei dem Datentyp uint8 werden die ersten 4 bits verantwortlich für die möglichen zugänglichen Bewegungsrichtungen, wobei die Bitsstelle 0 die Richtung nach oben beschreibt, 1 nach rechts, 2 nach unten und 3 nach links. Die Dimensionen der Matirx gibt an, welche Lichtpunkt gemeint ist. Man kann es sich wie eine Tabelle mit Zeilen und Spalten vorstellen. Somit wäre für die für das Feld, welches die 10 beinhaltet, der dazugehörige Matrixausschnitt und das dahinterstehende Bitmuster für den uint8 Wert so sein:
Labyrinth1(2,3) = 0b0000 1001
Bitstelle 0 ist eine 1 daher ist der Weg nach oben erlaubt
Bitstelle 1 ist eine 0 daher ist der Weg nach rechts blockiert
Bitstelle 2 ist eine 0 daher ist der Weg nach unten blockiert
Bitstelle 3 ist eine 1 daher ist der Weg nach links erlaubt
Diese Konstanten kann man in diesem Programmen an den weißen Konstanten-Blöcken in dem folgendem Simulinkprogramm wiederfinden.
Für die Software wurden C-Funktion Blöcke genutzt, da diese wenig Speicherplatz bei der Compilierung benötigen.
Der blaue Block wird zur Erfassung der Tastereingänge genutzt. Hierbei werden die Signale von Arduino an den digitalen Inputs der Taster eingelesen und in der C Funktion ausgewertet. Ein Taster-Signal wird hier nur weitergeleitet, wenn ausschließlich einer der Taster gedrückt wurde. Für den jeweilen Taster wird dann eine Zahl von 1 bis 4 entsprechend der Taster weitergegeben.
Die eigentliche Spielmechanik wird in dem gelben C-Funtion-Block realisiert. Und erfolgt nach der PAP. Der Timer, welcher die vergangene Zeit des aktuellen Spiels anzeigt und ein Ereignis bei Ablauf der Zeit auslöst, wurde ebenfalls mit einer C-Funkton-Block realisiert und ist an der orangen Farbe zu erkennen. Die aktuelle Zeit wird dann noch in eine separten, türkisen C-Funktion-Block weitergeleitet, der dann das gewünschte PWM Signal an die Countdown LED über den digitalen Output des Arduinos sendet.
Für die LED-Matrix wurde über den I/O Builder ein eigenen Block realisiert, welcher dann die aktuellen Felder der LEDs anzeigt und die beim Erreichen des Zielpunktes den Zahlencode auf der RGB Matrix anzeigt.
Komponententest
Tabelle 4: Geprüfte Anforderungen
| ID | Inhalt | Bereich | Autoren | Geprüft am | Status |
|---|---|---|---|---|---|
| 1 | Beim Einstecken des Netzteils leuchten der Bewegungspunkt und der Zielpunkt auf der RGB-Matrix | Hardware/Software | Julius von Agris & Jonas von Döllen | 10.01.2026 | i.O. |
| 2 | Durch Betätigung eines Tasters oder nach Ablauf des Timers (30 Sekunden) erscheinen die ersten Orientierungspunkte des ersten Labyrinthes auf der RGB-Matrix | Hardware/Software | Julius von Agris & Jonas von Döllen | 10.01.2026 | i.O. |
| 3 | Durch Betätigung eines Tasters bewegt sich der Bewegungspunkt in die Richtung dieses Tasters | Hardware/Software | Julius von Agris & Jonas von Döllen | 10.01.2026 | i.O. |
| 4 | Wird eine falsche Bewegung ausgeführt oder die Zeit läuft ab, wird der Bewegungspunkt zum Anfang zurück gesetzt und es erscheinen neue Orientierungspunkte für ein anderes Labyrinth | Hardware/Software | Julius von Agris & Jonas von Döllen | 10.01.2026 | i.O. |
| 5 | Wird der Zielpunkt erreicht, ohne eine unzulässige Bewegung auszuführen und innerhalb der 40 Sekunden, ist das Labyrinth gelöst und es erscheint ein Zahlencode auf der Matrix als Lauflicht | Hardware/Software | Julius von Agris & Jonas von Döllen | 10.01.2026 | i.O. |
Ergebnis
Das Escape Game "Lichtlabyrinth" konnte erfolgreich Umgesetzt werden.
Es ermöglicht die Bewegung von einem Startpunkt zu einem Zielpunkt durch die Betätigung von vier Tastern, mit denen der Anwender die Richtung der Bewegung bestimmen kann. Dies ist allerdings nur möglich, solange der Anwender keine unerlaubten Begegnungen macht und dies in einer Zeit von 40 Sekunden schafft. Hat der Anwender es geschafft das Ziel zu erreichen, erscheint auf der GBR-Matrix ein Lauflicht in dem der Zahlencode zu erkennen ist.
Zusammenfassung
Fazit
Das Escape Game "Lichtlabyrinth" konnte erfolgreich Umgesetzt werden. Zu erst wurden die Anforderungen an das Lichtlabyrinth definiert. Anschließend wurde für das Lichtlabyrinth ein Funktionaler Systementwurf erstellt. In diesem wurde eine Skizze des Aufbaus und ein Programmablaufplan erstellt. Nach der Erstellung des Funktionalen Systementwurf wurde ein Technischer Entwurf erstellt. In diesem ist die technische Realisierung zu erkennen. Anschließend mussten die benötigten Bauteile zusammengetragen und bestellt werden. Des Weiteren wurde eine Platine designt und gefertigt. Auf Grund von Beschädigungen an der Platine durch das Löten, musste auf eine Lochrasterplatte umgestiegen werden. Ein weiter Schritt war die Erstellung eines Gehäuses mit CAD. Dieses Konnte anschließend gedruckt und montiert werden. Ein weiterer Schritt die Programmierung für den Arduino in Matlab Simulink werden. Nach all diesen Schritten konnte das Lichtlabyrinth erfolgreich hergestellt und montiert werden.
Lessons Learned
Bei der Durchführung dieses Projektes konnte viel Wissen und Erfahrung gesammelt werden. Es konnten Erfahrungen mit dem Arduino und dem Umgang mit Matlab Simulink gesammelt werden. Außerdem konnten Erfahrungen im Bereich der Projektplanung allgemein gesammelt werden. Dazu gehört sowohl die Planung des Projektes als auch die zeitliche Organisation. Bei der Durchführung dieses Projektes sind auch einige Probleme aufgetreten, welche behoben werden mussten. Ein gute Beispiel dafür ist die Platine, welche korrekt und Funktionsfähig designend wurde aber letztendlich beim Löten beschädigt wurde.
Abschließend ist anzumerken, dass viele Erfahrungen gesammelt werden konnten.
Projektunterlagen
Projektplan
-
Abb:xx Ganttchart des Projektes
Projektdurchführung
Weblinks
[1] https://www.bombmanual.com/web/index.html (Seite 15)
Literatur
→ zurück zur Übersicht: WS 25/26: Escape Game







