Escape Game: Lichtlabyrinth

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
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

Tabelle 1: Anforderungen an das Servo-Labyrinth
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


Technischer Systementwurf

Abb. 3: Systementwurf des Lichtlabyrinth






















Der Arduino diese Schaltung wird mit 4 1,5V AA Batterien versorgt. Die LED-Matrix wird mit den 5V des Arduinos versorgt. Zwei weitern Leitungen für das Bussystem führen in die Eingänge 0 und 1 des Arduinos. Des Weiteren wurden vier Taster auf dem Breadbord aufgebaut. Diese senden jeweils über eine Diode ein Signal zum Interruptpin des Arduinos. Dadurch wird getriggert, dass die digitalen Eingänge am Arduino ausgelesen werden und der Arduino den jeweiligen Taster identifiziert. Vom Ground-Potential der Taster führt jeweils eine grüne Leitung in den Arduino. Dies sind die Anschlüsse 3, 4, 5 und 6 des Arduinos. Auf dem Ground-Potential ist bei jedem Taster noch ein Widerstand verbaut, welcher dafür sorgt, dass der Arduino zwischen dem High-Signal und dem Low-Signal unterschieden werden kann. Zu Letzt ist noch eine LED verbaut, welche später die Zeit des Anwenders zum lösen des Rätsels anzeigt. Vor der Diode ist noch ein Widerstand verbaut, welcher den Strom durch die Diode begrenzt und so die Diode schützt.

Materialliste

Tabelle 2: Materialliste
Nr. Anz. Preis Beschreibung Link
1 1 19,90 € Arduino UNO R3 https://www.reichelt.de/arduino-uno-rev-3-smd-variante-atmega328-usb-arduino-uno-p119045.html?&trstct=pos_0&nbc=1
2 1 12,99 € WS2812B RGB LED Digital Individually Addressable Panel Light LED Module Matrix Screen DC5V Controllers Image Video Text Display (2pcs 8x8 Pixels) https://www.amazon.com/dp/B0CY2MPGJW?ref=cm_sw_r_cso_em_apin_dp_AETM4KNBVY9PRZZQVTB1&ref_=cm_sw_r_cso_em_apin_dp_AETM4KNBVY9PRZZQVTB1&social_share=cm_sw_r_cso_em_apin_dp_AETM4KNBVY9PRZZQVTB1&th=1
3 1 0,26 € LED, 10 mm, THT, rot, Diffus, 900 mcd, 30° https://www.reichelt.de/de/de/shop/produkt/led_10_mm_tht_rot_diffus_900_mcd_30_-374183?search=LED%2520THT&
4 10 2,40 € Blechschrauben, PAN Head, PZD, 2,9 x 6,5 mm https://www.reichelt.de/de/de/shop/produkt/blechschrauben_pan_head_pzd_2_9_x_6_5_mm_100_stueck-65858
5 1 3,99 € Experimentier-Steckboard, 830 Kontakte https://www.reichelt.de/de/de/shop/produkt/experimentier-steckboard_830_kontakte-282600
6 4 4,33 € Drucktaster, Chrom - 3V/5V, LED beleuchtet https://funduinoshop.com/bauelemente/taster-und-schalter/taster/drucktaster-chrom-3v/5v-led-beleuchtet?number=F23108566
7 1 3,90 € Netzteil für Mikrocontroller 9V 1A https://funduinoshop.com/werkstatt/stromversorgung/netzteile/netzteil-fuer-mikrocontroller-9v-1a
8 1 - 3D-Druck Gehäuse Das Gehäuse wird per 3D-Druck angefertigt (CAD-Datei wird später nachgereicht)
9 4 - 10k Ohm Widerstände Wird von der Hochschule bereitgestellt
10 1 - 150 Ohm Widerstand für die Countdown-LED Wird von der Hochschule bereitgestellt
11 div. - Leitungen Wird von der Hochschule bereitgestellt
12 4 - Dioden Wird von der Hochschule bereitgestellt
13 div. - Lötzinn Wird von der Hochschule bereitgestellt

Werkzeugliste

Tabelle 3: Werkzeugliste
Nr. Beschreibung
1 Lötkolben
2 Abisolierzange
3 Kreuzschlitz-Schraubendreher
4 Schraubenschlüssel


Komponentenspezifikation

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. 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. Die Leiterplatte wurde von Hand verlötet. Die Taster wurden mit flexibler Leitung verlötet und dann in die Schraubklemmen der Leiterplatte eingefügt.


Software

Beispiel generiertes Labyrinth

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 uint0 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 rechts blockiert
Bitstelle 3 ist eine 1 daher ist der Weg nach rechts erlaubt

Diese Konstanten kann man in diesem Programmen an den weißen Konstanten-Blöcken in dem folgendem Simulinkprogramm wiederfinden.

Die blauen Blocke werden 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

Ergebnis

Zusammenfassung

Lessons Learned

Projektunterlagen

Projektplan

PAP Lichtlabyrinth


























Projektdurchführung

YouTube Video

Weblinks

[1] https://www.bombmanual.com/web/index.html (Seite 15)

Literatur


→ zurück zur Übersicht: WS 25/26: Escape Game