Labyrinth
Autor: | Lukas Berkemeier und Jannik Kemper |
Betreuer: | Prof. Schneider |
Einleitung
Die Spieler*innen müssen sich durch ein Labyrinth voller Rätsel bewegen. Aber aufgepasst es warten spannende Herausforderungen und Sackgassen. Aufgebaut ist das Labyrinth wie folgt, am Ende verschiedener Abschnitte warten verschiedene Rätsel auf dem Weg zum Ziel. Gekennzeichnet sind die Rätsel im Labyrinth mit LEDs. An dieser Stelle müssen die Spieler*innen die Rätsel lösen. Die Fragen/Rätsel haben vier Antwortmöglichkeiten, welche mit vier Tastern (1-4 von links nach rechts) gewählt werden können. Die LEDs des Labyrinths leuchten nun durch die verschiedenen Antwortmöglichkeiten in verschiedenen Farben auf (z.B. in rot, blau, grün, gelb). Durch diesen Farbcode muss ein Widerstandswert ermittelt werden, dieser dient den Spieler*innen als Schlüssel für das nächste Rätsel.
Schwierigkeitsgrad: Einsteiger
Anforderungen
ID | Inhalt | Prüfbarkeit | Prio | Ersteller | Datum | Geprüft von | Datum | |
---|---|---|---|---|---|---|---|---|
1 | Der Aufbau erfolgt in Schuhkartongröße. | Maße einhalten (200–205 mm Breite, 320–340 mm Länge und 100–125 mm Höhe) | 1 | Lukas Berkemeier | 11.10.24 | Jannik Kemper | 11.10.24 | |
2 | Vier Rätsel werden im Labyrinth versteckt und bilden die Lösung | Sichtprüfung der genutzten Hardware | 1 | Lukas Berkemeier | 26.11.24 | Lukas Berkemeier | 15.01.25 | |
3 | Ein Arduino, ein Breadboard, Einbautaster, eine 9 V Blackbatterie und RGB LEDs werden als Hardware verwendet | Sichtprüfung der genutzten Hardware | 1 | Lukas Berkemeier | 11.10.24 | Jannik Kemper | 11.10.24 | |
4 | Vom Start und zwischen den Rätseln bis zum Ende sind die Rätsel mit Labyrinthpfaden verbunden | Folgen des Pfades vom Start zum Ziel | 1 | Lukas Berkemeier | 11.10.24 | Jannik Kemper | 11.10.24 | |
5 | Zu jedem Rätsel gibt es vier Antwortmöglichkeiten die eine Farbe darstellen | Testen der Software | 1 | Lukas Berkemeier | 11.10.24 | Jannik Kemper | 11.10.24 | |
6 | Die Antwortlässt sich mit den vier Taster geben. | Testen der Software | 1 | Lukas Berkemeier | 11.10.24 | Jannik Kemper | 11.10.24 | |
7 | Die Gegebenen Antworten werden mithilfe von LEDs ausgegeben | Testen der Software | 1 | Lukas Berkemeier | 11.10.24 | Jannik Kemper | 11.10.24 | |
8 | Das Ergebnis umfasst einen vierstelligen Farbcode | Testen der Software | 1 | Lukas Berkemeier | 11.10.24 | Jannik Kemper | 11.10.24 | |
9 | LED1 steht für die erste Farbe des Farbcodes | Prüfen der Software im Zusammenhang mit dem Ergebnis | 1 | Lukas Berkemeier | 21.12.24 | Lukas Berkemeier | 14.01.25 | |
10 | LED2 steht für die zweite Farbe des Farbcodes | Prüfen der Software im Zusammenhang mit dem Ergebnis | 1 | Lukas Berkemeier | 21.12.24 | Lukas Berkemeier | 14.01.25 | |
11 | LED3 steht für die dritte Farbe des Farbcodes | Prüfen der Software im Zusammenhang mit dem Ergebnis | 1 | Lukas Berkemeier | 21.12.24 | Lukas Berkemeier | 14.01.25 | |
12 | LED4 steht für die vierte Farbe des Farbcodes | Prüfen der Software im Zusammenhang mit dem Ergebnis | 1 | Lukas Berkemeier | 21.12.24 | Lukas Berkemeier | 14.01.25 | |
13 | Bei richtiger Antwort leuchtet die LED in Farbe des Farbcode, danach wird zum nächsten Rätsel fortgeschritten. | Testen der Software | 1 | Lukas Berkemeier | 21.12.24 | Lukas Berkemeier | 15.01.25 | |
14 | Bei falscher Antwort leuchten alle LEDs für 1 s Rot, danach kann eine andere Antwortmöglichkeit für die Frage ausgewählt werden. | Testen der Software mit Rätsel + Lösung | 1 | Lukas Berkemeier | 21.12.24 | Lukas Berkemeier | 15.01.25 | |
15 | Der Farbcode muss in einen Widerstandswert aus der Farbcodetabelle umgewandelt werden. | Vergleich des Farbcodes und der Widerstandstabelle | 1 | Lukas Berkemeier | 11.10.24 | Jannik Kemper | 11.10.24 | |
16 | Der Widerstandswert ergibt die Zahlenkombination für das Schloss des nächsten Rätsels. | Prüfen des Schlosses | 1 | Lukas Berkemeier | 11.10.24 | Jannik Kemper | 11.10.24 | |
17 | Ergebnisse müssen in SVN gesichert werden. | Überprüfen der Ergebnisse in SVN | 1 | Lukas Berkemeier | 21.12.24 | Lukas Berkemeier | 15.01.25 |
Funktionaler Systementwurf/Technischer Systementwurf
Nr. | Anz. | Beschreibung |
---|---|---|
1 | 1 | Funduino Arduino UNO R3 |
2 | 4 | RGB LEDs |
3 | 4 | Taster |
4 | 8 | Widerstände(100 Ohm) |
5 | 4 | Widerstände(1 kOhm) |
6 | 17 | Jumper Kabel, männlich/männlich, 20 cm |
7 | - | Klingeldraht versch. Farben |
8 | 1 | Breadboard |
9 | 1 | 9V Blockbatterie |
10 | 1 | Gehäuse und Labyrinth (3D-Druck) |
11 | 1 | Schloss (zum öffnen des Rätsels) |
12 | 1 | Batterieclip mit Stecker |
13 | 1 | Schalter |
14 | 1 | PC mit Matlab/Simulink R2024b |
Beschreibung Funktionsweise der verwendeten Hard- und Software:
- Arduino Uno R3: Der Arduino Uno R3 ist ein Mikrocontroller, der auf dem ATmega328P-Mikrocontroller basiert. Er besitzt 14 digital Ein- und Ausgänge von denen sechs als PWM Ausgang genutzt werden können und sechs analog Eingänge. Der Arduino Uno kann über USB am Computer über externes Netzteil oder mit einer 9V Blockbatterie inklusive Batterieclip betreiben werden. Die Programmierung findet über die Arduino IDE in C/C++ oder über Matlab/Simulink statt.[3]
- RGB-LED: Die RGB-LEDs Haben vier Anschlusspins. Drei für die Farben Rot, Grün und Blau und einen für die Masse. Über den Arduino lassen sich die einzelnen Pins ansteuern und mithilfe eines PWM-Ausgangs lässt sich die Intensität der Farben einstellen. So sind auch möglich aus den Primärfarben gemischte Farben darzustellen. Im Rätsel bilden die Farben der vier RGB-LEDs den Farbcode für das Ergebnis.[1]
- Taster/Schalter: Bei Betätigung eines Tasters wird ein Stromkreis geöffnet oder geschlossen, je nach Schalter. Für das Rätsel werden werden Taster genutzt die den Stromkreis von 5 V zu den Arduino Analog Eingängen geschlossen. Der Schalter um die Spannungsversorgung des Arduino ein- und auszuschalten.
- Widerstand: Im Labyrinth sind Widerstände mit zwei verschiedenen Widerstandswerten genutzt. Die 100-Ohm Widerstände werden zur Strombegrenzung an den RGB-LEDs genutzt. Die 1-kOhm Widerstände dienen als Pull-Down Widerstand an den Tastern um am Analogen Eingang, bei nicht Betätigung des Tasters, eine klare 0 V Spannung zu erhalten.
- Jumperkabel/Klingeldraht: Jumperkabel sind flexible Kabel, die verwendet werden, um Verbindungen zwischen den einzelnen Komponenten herzustellen. Sie ermöglichen es, Signale und Strom zwischen dem Arduino, dem Drucksensor, dem Display und anderen Bauteilen zu übertragen.
- Steckbrett: Das Steckbrett ermöglicht das unkomplizierte Einstecken und Verbinden von elektronischen Komponenten ohne die Notwendigkeit von Löten. Die auf dem Steckbrett aufgebaute Schaltung kann flexibel verändert und angepasst werden.
- 9 V-Blockbatterie/Batterieclip: Eine 9 V-Blockbatterie kann an einen Batterieclip angeschlossen werden um eine mobile und unabhängige externe Spannungsversorgung zu gewährleisten.
- Gehäuse: Das Gehäuse unseres Projektes wurde in der Hochschule mit einem der 3D Drucker gedruckt. In Abbildung 1 sieht man, dass das Labyrinth kleine Bohrungen hat, die über die Fläche verteilt sind. Dort werden die vier RGB LEDs eingebaut und mit dem Arduino verbunden. Insgesamt besteht das Gehäuse aus zwei Teilen. Dem unteren Block in dem der Arduino eingebaut ist und dem oberen Block der die LEDs enthält. In den vier Bohrungen auf der Vorderseite der Konstruktion sind die Taster eingebaut, welche die Farben der LEDs bestimmen.
- Simulink R2024b: Simulink ist ein grafikorientiertes Softwaretool zur Simulation und Analyse von linea- ren und nichtlinearen mathematischen Modellen. Simulink ist als Unterprogramm von Matlab implementiert und greift auf dessen numerischen Lösungsalgorithmen zu.[4]
Komponentenspezifikation
Mikrocontroller: In unserem Projekt wurde der Arduino Uno R3 verwendet.
RGB LEDs: Verwendet wurden in unserem Projekt vier RGB-LEDs. Hinter dem Begriff RGB verbergen sich die Farben "Rot", "Grün" und "Blau". Durch die Ansteuerung mit der Pulsweitenmodulation können weitere Farben angesteuert werden. In unserem Labyrinth leuchtet die erste LED "Blau" und die zweite "Grün". Die dritte wurde mittel Pulsweitenmodulation "Orange" gefärbt mit einem Anteil von 255 rot und 45 grün. Die vierte LED leuchtet "Lila" mit den Werten von 255 rot und 70 blau. Für spezifische Fragen steht das Datenblatt der RGB LED in der Literatur bereit.
Taster: Um die RGB LEDs anzusteuern wurden vier Taster von der Firma Conrad verwendet.
Umsetzung (HW/SW)
Hardware: Das Gehäuse wird in SolidWorks gezeichnet und mithilfe eines 3D-Druckers hergestellt. Dieses besteht aus zwei Teilen, die miteinander verschraubt werden. Hardwarekomponenten - Arduino, Taster, RGB-LEDs, 9V Blockbatterie zur Spannungsversorgung und Breadboard werden im Gehäuse untergebracht und befestigt.
-
Abb. 05: Hardwareaufbau des Labyrinths
-
Abb. 06: Schaltplan des Labyrinths
Software: Die Softwareentwicklung wird mit MATLAB-Simulink realisiert. Die Programmierung erfolgt dabei Modellbasiert.
Abbildung 4 zeigt das Simulink Modell des Labyrinth. Die Arduino Blöcke lesen die analogen Signale von den Pins A0, A1, A2, A3 aus. Es handelt sich hierbei um die Signale der Taster. Die 1-D T(u) Blöcke übernehmen die Verarbeitung der analogen Eingänge, um die Signale für weitere Verarbeitungsschritte vorzubereiten. Der "Labyrinth" Subsystemblock verarbeitet die Signale der Taster und schaltet abhängig der Taster Eingabe die verschiedenen LEDs. Der Timer steuert in unserem Projekt wie lange die LEDs bei einer falschen Antwort rot leuchten.
Das Stateflow-Diagramm in Abbildung 5 bildet die Logik unseres Rätselspiels ab, bei dem die LEDs und die Taster eine zentrale Rolle spielen. Beim Start des Spiels befindet sich das System im Initialzustand. In diesem Zustand leuchten alle LEDs für zwei Sekunden rot auf, um das Spiel zu starten. Nach Ablauf des Timers wechselt das System auf "Frage 1". Im Zustand "Frage 1" beginnt das eigentliche Rätsel. Die Spieler*innen müssen eine korrekte Antwort durch das Drücken eines bestimmten Tasters eingeben. Drückt der Spieler beispielsweise "Taster 2", wird dies als richtige Antwort gewertet und wechselt in den Zustand "Antwort 1". Durch das Einschalten einer LED signalisiert das System das die Antwort korrekt war. Anschließend geht das System weiter zur nächsten Frage, dargestellt durch den Zustand "Frage 2". Dieser Ablauf wiederholt sich für die weiteren Fragen. Jede Frage hat eine spezifische Antwort, die durch das Betätigen des entsprechenden Tasters erkannt wird. Bei einer korrekten Eingabe schaltet das System eine LED ein, um den Fortschritt zu visualisieren und springt dann zur nächsten Frage. Falls die Spieler*innen eine falsche Antwort geben, wechselt das System in den Zustand "FalscheAntwort". In diesem Zustand leuchten alle LEDs für eine Sekunde rot auf, um den Fehler zu visualisieren. Danach werden die Spieler*innen zurück in die aktuelle Frage geleitet, damit eine neue Eingabe versucht werden kann. Nachdem alle vier Fragen erfolgreich beantwortet wurden, wechselt das System in den Zustand "Fertig". Um das Spiel neu zu starten, müssen die Taster 1 und 4 gleichzeitig für zwei Sekunden gedrückt werden.
Komponententest
Tabelle 3: Geprüfte Anforderungen
ID | Inhalt | Bereich | Autoren | Geprüft am | Status |
---|---|---|---|---|---|
1 | Die Spannungsversorgung wird durch den Schalter eingeschaltet. | Hardware | Lukas Berkemeier | 15.01.25 | i.O. |
2 | Initialisierung der Software, RGB-LEDs leuchten 1s rot auf. | Software | Lukas Berkemeier | 15.01.25 | i.O. |
3 | Bei Tasterdruck wird eine Antwort gegeben. | Hardware/Software | Lukas Berkemeier | 15.01.25 | i.O. |
4 | Richtige Antwort: passende LED leuchtet in gewünschter Farbe auf. | Hardware/Software | Lukas Berkemeier | 15.01.25 | i.O. |
5 | Falsche Antwort: alle LEDs leuchten für eine Sekunde rot auf, werden dann ausgeschaltet und der letzte Zustand wird wieder hergestellt | Hardware/Software | Lukas Berkemeier | 15.01.25 | i.O. |
6 | Die LEDs bilden einen vierstelligen Farbcode | Hardware/Software | Lukas Berkemeier | 15.01.25 | i.O. |
7 | Ein Widerstandswert lässt sich mit einer Widerstandsfarbtabelle ermitteln. | Software | Lukas Berkemeier | 15.01.25 | i.O. |
10 | Zahlenwert kann benutzt werden, um das Schloss für die nächste Station zu öffnen. | Hardware/Software | Lukas Berkemeier | 15.01.25 | i.O. |
11 | Die Ergebnisse werden im SVN gesichert | Software | Lukas Berkemeier | 15.01.25 | i.O. |
Ergebnis
Das Projekt "Labyrinth" wurde erfolgreich umgesetzt und alle Anforderungen, sowie Probleme wurden erfolgreich bearbeitet. Die LEDs leuchten bei Betätigung der Taster in den verschiedenen Farben und ergeben am Ende den gewünschten Widerstandswert, der nötig ist als Code, um das nächste Rätsel zu öffnen. Siehe Komponententest in Tabelle 3.
Zusammenfassung
Lessons Learned
Bei der Durchführung unseres Mechatronik-Projekts ist es wichtig, aus den Erfahrungen zu lernen, um die Effizienz und Qualität der nächsten Projekte zu verbessern. Eine zentrale Erkenntnis betrifft die Planung und Organisation. Es hat sich gezeigt, dass es wichtig ist, die Ziele und Anforderungen von Anfang an klar zu definieren, um Missverständnisse und Verzögerungen zu vermeiden. Darüber hinaus sollte der Zeitplan beim nächsten Mal realistischer sein und genügend Pufferzeiten für unvorhergesehene Probleme oder Verzögerungen enthalten, insbesondere bei anspruchsvollen Aufgaben wie Programmierung oder Prototypenbau. Die Umsetzung der Idee bis hin zu unserem mechatronischen Projekt hat uns einige Probleme bereitet, die wir zu zweit sehr gut lösen konnten. Bei der Umsetzung des Simulink Programms sind uns beispielsweise häufig Kleinigkeiten in den Weg gekommen, diese bestanden häufig aus der falschen Belegung der Pins des Arduinos und waren somit nicht ausschlaggebend.
Projektunterlagen
Projektplan
Projektdurchführung
Das Projekt folgt einem klar strukturierten Zeitplan und gliedert sich in die Phasen Vorbereitung, Planung, Durchführung sowie Test und Abschluss. Die Vorbereitungsphase (27. September bis 10. Oktober 2024) legt den Grundstein für den Projekterfolg: Erste Ideen werden entwickelt, in unser Wiki eingetragen und konkretisiert, bevor eine vollständige Einkaufsliste erstellt wird. Darauf aufbauend beginnt die Planungsphase (14. bis 29. Oktober 2024), in der die Funktionsplanung durchgeführt und das CAD-Modell erstellt wird. Die zentrale Durchführungsphase startet am 30. Oktober 2024 und erstreckt sich bis zum 9. Januar 2025. Hier werden wesentliche Arbeitsschritte wie das Aktualisieren des Wiki-Artikels, der 3D-Druck des Gehäuses, die Erstellung eines Simulink-Modells und der praktische Aufbau des Projekts umgesetzt. Parallel dazu wird ein Zwischenstand dokumentiert und mit unserem Betreuer Herr Schneider abgestimmt, um sicherzustellen, dass alle Meilensteine termingerecht erreicht werden. Nach Abschluss der Durchführung folgt die Testphase ab dem 10. Januar 2025, in der die Funktionen überprüft und optimiert werden. Den Abschluss bildet die Präsentation des Projekts und die Teilnahme an der Projektmesse am 17. Januar 2025, bei der die Ergebnisse vorgestellt werden.
ZIP-Archiv: Datei:172 Labyrinth.zip Das ZIP-Archiv enthält alle relevanten Dateien die für dieses Projekt notwendig sind. Von den ersten Anfangsideen bis hin zur fertigen Software.
Musterlösung
- Das Betätigen des Schalters an der rechten Seite des Labyrinth schaltet dir Spannungsversorgung ein.
- Nach dem Start des Arduino folgt die Initialisierung des Rätsels: Alle LEDs leuchten für eine Sekunde Rot auf.
- Dann kann mit dem beantworten der vier Fragen (siehe Abbildung 8) gestartet werden. Jeder Taster stellt eine Antwortmöglichkeit dar:
- Von links nach rechts, Taster 1 für Antwortmöglichkeit 1, Taster 2 für Antwortmöglichkeit 2 und folgend.
- Den vier Fragen ist in ihrer Reihenfolge eine LED, passend zum Labyrinth zugeordnet. Bei richtiger Antwort leuchtet die jeweilige LED in einer bestimmten Farbe.
- Bei falscher Antwort leuchten alle LEDs für eine Sekunde Rot auf, werden wieder ausgeschaltet und dann wird der letzte Zustand des Rätsels wieder hergestellt. Danach kann eine erneute Antwort gegeben werden.
- Wenn alle vier Fragen richtig beantwortet wurden bilden die LEDs den Farbcode für den zu ermittelnden Widerstandswert (siehe Abbildung 9).
Aus den richtigen Antworten zu den Fragen und dem entstandenen Farbcode der LEDs lässt sich ein Widerstandswert bestimmen.
-
Abb. 10: Fragen zu unserem Projekt
-
Abb. 11: Widerstandsfarbtabelle [5]
Lösung Ermittelter Widerstandswert: 6530.000.000 Ohm
Die ersten vier Ziffern bilden das Ergebnis: 6 5 3 0
Literatur
[1] Datenblatt: : RGB-LED [online]. [Zugriff am: 15.01.2025].
[2] Datenblatt: : Taster [online]. [Zugriff am: 15.01.2025].
[3] Docs.arduino : Arduino Uno R3 [online]. [Zugriff am: 14.01.2025].
[4] Uni Ulm : Einführung Simulink [online]. [Zugriff am: 14.01.2025].
[5] Conrad: : Widerstandsfarbtabelle [online]. [Zugriff am: 14.01.2025].
→ zurück zur Übersicht: WS 24/25: Escape Game