Escape Game: JoyCode
| Autoren: | Jens Potthoff Mohammed Yassine Houari |
| Betreuer: | Marc Ebmeyer |
Einleitung
Im Rahmen des Fachpraktikums im Modul Angewandte Mechatronik des Studiengangs Business and Systems Engineering werden Rätsel entwickelt, die in etwa fünf Minuten lösbar sind und in ein übergeordnetes Escape-Game integriert werden. Das Projekt „JoyCode“ ist ein solches Escape-Rätsel, das über zwei Joysticks gesteuert wird. Ziel ist es, beide Joysticks in zufällig generierte Zielpositionen zu bewegen, wobei jeder Joystick eine eigene Zielposition hat. Neben den Joysticks befindet sich eine LED-Statusanzeige, die den Abstand zur jeweiligen Zielposition in Echtzeit visualisiert. In drei aufeinanderfolgenden Runden müssen die Joysticks korrekt positioniert und die jeweilige Zielstellung für drei Sekunden gehalten werden. Nach jeder erfolgreich abgeschlossenen Runde wird eine Ziffer auf dem LC-Display freigeschaltet. Nach drei Runden ergibt sich so ein vollständiger Zahlencode, der für den Zugang zum nächsten Rätsel benötigt wird. Die Rückmeldung erfolgt über RGB-LEDs: Rot signalisiert eine große Abweichung, Gelb zeigt Annäherung, Grün steht für fast korrekt, und blinkendes Grün markiert die exakte Zielposition, die dann für drei Sekunden gehalten werden muss. Das Rätsel besteht aus den Joysticks, den RGB-LEDs zur visuellen Rückmeldung, dem LC-Display zur Anzeige der freigeschalteten Ziffern sowie den drei aufeinanderfolgenden Runden, deren erfolgreiche Bewältigung den Zahlencode freischaltet.
Schwierigkeitslevel
Fortgeschritten.
Das Rätsel erfordert eine gute Hand-Auge-Koordination, da beide Joysticks gleichzeitig und präzise bewegt werden müssen. Je nach eingestelltem Toleranzbereich und den angezeigten Hinweisen auf dem Display kann der Schwierigkeitsgrad leicht angepasst werden.
Lernziele
Das Lernziel des Rätsels besteht darin, zwei Steuerungen gleichzeitig präzise zu bedienen und ihre Bewegungen gezielt zu koordinieren. Durch die farbliche Rückmeldung der LEDs wird das Verständnis für Positionsänderungen und deren Auswirkungen geschult. Das Rätsel fördert somit die Hand-Auge-Koordination, Feinmotorik sowie die Fähigkeit, Rückmeldungen richtig zu interpretieren und entsprechend darauf zu reagieren.
Bezug zum BSE Studium
Für die Umsetzung des Projekts werden mechatronische Kenntnisse praktisch angewendet, insbesondere im Bereich Sensorik, Softwareintegration und Systemsteuerung. Das Projekt erfordert zudem die Verknüpfung der Hardware- und Softwarekomponenten sowie die Umsetzung von Echtzeit-Rückmeldungen über die LEDs. Dabei wird die Fähigkeit gefördert, von einer Idee über die Planung und Konzeption ein funktionierendes Hardware-/Software-System zu entwickeln, das praktisch innerhalb des übergeordneten Escape-Game genutzt werden kann. Die Planung, Programmierung und Steuerung mechatronischer Systeme wird erlernt, die Zusammenhänge zwischen Hardware und Software erlernt.
Anforderungen
| ID | Inhalt | Prio | Ersteller | Datum | Geprüft von | Datum |
|---|---|---|---|---|---|---|
| 1 | Das System muss die gleichzeitige Bedienung von zwei Joysticks ermöglichen. | Hoch | Potthoff | 02.10.2025 | ||
| 2 | Für jeden Joystick muss eine LED-Statusanzeige den Abstand zur jeweiligen Zielposition in Echtzeit anzeigen. | Hoch | Potthoff | 02.10.2025 | ||
| 3 | Beide Joysticks müssen gleichzeitig für mindestens 3 Sekunden an der Zielposition gehalten werden, damit eine Ziffer freigeschaltet wird. | Hoch | Houari | 02.10.2025 | ||
| 4 | Das Rätsel muss aus drei aufeinanderfolgenden Runden bestehen, wobei in jeder Runde eine Ziffer der dreistelligen PIN freigeschaltet wird. | Hoch | Houari | 02.10.2025 | ||
| 5 | Die RGB-LEDs müssen den Abstand zur Zielposition farblich darstellen: Rot = weit entfernt, Gelb = Annäherung, Grün = nahe, blinkendes Grün = Zielposition erreicht. | Hoch | Potthoff | 02.10.2025 | ||
| 6 | Das LC-Display muss die freigeschalteten Ziffern sowie optionale Startinformationen anzeigen. | Hoch | Potthoff | 02.10.2025 | ||
| 7 | Ein Start-Button muss das Rätsel initialisieren und alle Werte zurücksetzen. | Hoch | Houari | 02.10.2025 | ||
| 8 | Ein Reset-Button muss den aktuellen Spielstand löschen und das Rätsel in den Ausgangszustand versetzen. | Mittel | Houari | 02.10.2025 | ||
| 9 | Ein Lösungs-Button muss auf dem LC-Display den korrekten Zahlencode anzeigen, falls das Rätsel nicht gelöst wurde. | Hoch | Houari | 02.10.2025 | ||
| 10 | Die Zielpositionen müssen zu Beginn jeder Runde zufällig generiert werden. | Hoch | Potthoff | 02.10.2025 | ||
| 11 | Der Toleranzbereich der Zielpositionen muss so eingestellt sein, dass das Rätsel lösbar, aber herausfordernd bleibt. | Hoch | Potthoff | 02.10.2025 | ||
| 12 | Das Gehäuse muss aus 3D-gedrucktem Material bestehen und die Elektronik sicher und stabil aufnehmen. | Mittel | Houari | 02.10.2025 | ||
| 13 | Die maximale Außenabmessung des Gehäuses darf die Größe eines Standard-Schuhkartons nicht überschreiten. | Hoch | Potthoff | 02.10.2025 | ||
| 14 | Die Spieldauer pro Rätsel darf 5 Minuten nicht überschreiten. | Hoch | Potthoff | 02.10.2025 | ||
| 15 | Das Rätsel ist ohne zusätzliche digitale Geräte vollständig spielbar. | Mittel | Potthoff | 02.10.2025 | ||
| 16 | Die zufällige Initialisierung der Zielposition darf nicht der Standardposition des Joysticks entsprechen. | Hoch | Potthoff | 02.10.2025 |
Funktionaler Systementwurf
Die beiden Joysticks dienen dazu, vordefinierte Zielpositionen zu erreichen. Jeder Joystick hat eine eigene Zielposition für X- und Y-Achse, die zu Beginn jeder Runde zufällig festgelegt wird. Die Joysticks müssen so bewegt werden, dass die Zielpositionen innerhalb eines definierten Toleranzbereichs erreicht und für drei Sekunden gehalten werden. Sobald beide Joysticks korrekt positioniert sind, wird eine Ziffer auf dem LC-Display freigeschaltet. Die RGB-LEDs liefern dabei zusätzlich Echtzeit-Feedback über die aktuelle Abweichung von der Zielposition.
Der Aufbau des Projekts JoyCode erfolgt in einem kompakten, rechteckigen Gehäuse, dessen Frontplatte alle Bedienelemente übersichtlich anordnet, wie Abbildung 2 zeigt. Im oberen mittleren Bereich befindet sich das LC-Display, das als zentrale Anzeige dient. Es zeigt den jeweils aktuellen Fortschritt, freigeschaltete Ziffern des Zahlencodes sowie Statusmeldungen während des Rätzels an. Direkt unterhalb des Displays sind drei Taster angeordnet: links der Start-Button (gelb) zum Initialisieren des Rätzels, in der Mitte der Reset-Button (grau) zum Zurücksetzen des aktuellen Fortschritts und rechts der Lösungs-Button (blau), der bei Bedarf den korrekten Zahlencode auf dem Display anzeigt.
Im unteren Bereich der Frontplatte sollen die beiden Joysticks symmetrisch angeordnet – einer links, einer rechts. Diese dienen als Haupteingabegeräte, über die die Zielpositionen gesteuert werden. Oberhalb jedes Joysticks wird eine RGB-LED positioniert, die den aktuellen Abstand zur jeweiligen Zielposition farblich visualisiert: Rot signalisiert eine große Abweichung, Gelb zeigt eine Annäherung und Grün markiert eine nahezu korrekte Position. Wenn die Zielposition exakt erreicht wurde, beginnt die LED grün zu blinken.
Links neben dem Display soll sich der Anschlussbereich für die Stromversorgung bzw. den PD-Port befinden, über den das System mit Energie versorgt wird.
Im Inneren des Gehäuses ist die gesamte Elektronik auf einer Trägerplatte montiert. Der Arduino Uno R3 fungiert als zentrale Steuereinheit und ist so platziert, dass alle Verbindungskabel zu den Joysticks, LEDs, Tastern und dem Display möglichst kurz gehalten werden.
Das Gehäuse selbst soll so konstruiert werden, dass alle Komponenten bündig in die Frontplatte eingelassen sind. Die Bedienelemente ragen leicht hervor, während die RGB-LEDs durch Öffnungen sichtbar bleiben. Im Inneren sollen Abstandshalter und Podeste dafür sorgen, dass alle Bauteile auf derselben Höhe liegen und mechanisch stabil montiert sind.
Abb. 02: Konzeptzeichnung JoyCode
Abb. 01: Programmablaufplan JoyCode
Technischer Systementwurf
Für das Projekt zeigt die folgende Abbildung den technischen Systementwurf. In diesem sind alle elektronischen Bauteile des sowie deren Verdrahtung mit dem Arduino dargestellt.
Abb. 03: Technischer Systementwurf
Komponentenspezifikation
Mikrocontroller-Board – Arduino Uno R3
Der Arduino Uno R3 dient als zentrale Steuereinheit und ist mit dem ATmega328P ausgestattet. Es bietet ausreichend Anschlussmöglichkeiten, um alle für das Rätsel benötigten Komponenten unterzubringen.
LC-Display – Joy-it SBC-LCD16x2 Display-Modul
Das LC-Display zeigt die freigeschalteten Ziffern des Zahlencodes an. Dank des integrierten I²C-Moduls kann es direkt über die SDA- und SCL-Pins (A4 und A5) des Arduino Uno R3 angeschlossen werden. Zusätzlich benötigt das Display eine Spannungsversorgung (VCC) und Masse (GND).
Joystick – KY-023 Joystick-Modul (2 Stück)
Die Joysticks dienen zur Eingabe von X/Y-Koordinaten. Die Anschlüsse für die vertikale und horizontale Achse werden an zwei analoge Eingänge des Arduino angeschlossen. Die integrierte Tasterfunktion wird nicht verwendet.
RGB-LED – Iduino SE010 RGB-LED-Modul (2 Stück)
Die RGB-LEDs geben visuelles Feedback über die Abweichung von der Zielposition. Die Vorwiderstände sind bereits integriert. Jede LED wird über drei digitale PWM-Pins des Arduino für die Farben Rot, Grün und Blau angesteuert.
Taster (3 Stück)
Die Taster dienen als Bedienelemente (Starten, Zurücksetzen, Lösung). Sie werden jeweils zwischen Masse (GND) und einen digitalen Eingang des Arduino angeschlossen, um deren Zustand (0 oder 1) abzufragen.
Gehäuse und Montage
Alle Komponenten werden auf ein 3D-gedrucktes Gehäuse montiert, wobei die Kabelverbindungen verborgen werden. Um sicherzustellen, dass alle Bauteile die richtige Höhe im Gehäuse haben, werden zusätzliche Podeste für die einzelnen Komponenten gedruckt. Die sichtbaren Teile der Komponenten ragen dabei durch passgenaue Ausschnitte des Gehäuses nach außen.
Materialliste
Für die Realisierung des Projekts werden verschiedene Hardwarekomponenten benötigt, die in Tabelle 2 aufgeführt sind. Die Kernkomponenten sind das Mikrocontroller-Board Arduino Uno R3 als zentrale Steuereinheit, zwei Joystick-Module als Eingabegeräte, RGB-LEDs für die visuelle Rückmeldung sowie ein LC-Display zur Anzeige des Zahlencodes. Ergänzt wird die Schaltung durch Taster zur Steuerung und ein Netzteil zur Stromversorgung.
| ID | Anzahl | Kosten pro Stück € | Summe | Bezeichnung / Komponente | technische Bezeichnung | Beschreibung | Datenblatt | Abbildung |
|---|---|---|---|---|---|---|---|---|
| 1 | 1x | 13,90€ | 13,90€ | Mikrocontroller-Board | Arduino Uno R3 | Zentrale Steuereinheit mit ATmega328P. | Datenblatt Arduino Uno | |
| 2 | 2x | 1,29€ | 2,58€ | Joystick | KY-023-Joystick Modul | Dient zur Eingabe (X/Y-Koordinaten). | Benutzung Joystick-Modul | |
| 3 | 2x | 2,49€ | 4,98€ | RGB LED | Iduino SE010 RGB LED-Modul | Visuelles Feedback über Abweichung von der Zielposition. Die Widerstände sind bereits montiert. | Datenblatt RGB-LED-Modul | |
| 4 | 1x | 9,88€ | 9,88€ | LC-Display | Joy-it SBC-LCD16x2 Display-Modul | Anzeige der freigeschalteten Ziffern des Zahlencodes. Das LC-Display kann direkt an die SDA- und SCL-Pins (A4 und A5) des Arduino Uno R3 angeschlossen werden. | LCD16x2 Display-Modul | |
| 5 | 3x | 1,65€ | 4,95€ | Taster | Taster | Bedienelemente zur Steuerung des Rätzels (starten, zurücksetzen, Lösung). | Taster-Modul | |
| 6 | 1x | 3,90€ | 3,90€ | 9V Netzteil | 9V Netzteil | Stromversorgung des Mikrocontrollers. | ||
| 40,19 € |
Regelungstechnische Theorie
Regelungstechnische Betrachtung des Projekts „JoyCode“
Das im Rahmen des Fachpraktikums entwickelte Escape-Rätsel „JoyCode“ lässt sich aus regelungstechnischer Sicht als ein geschlossener Regelkreis mit Mensch-Maschine-Interaktion beschreiben. Ziel des Systems ist es, zwei Joysticks in vorgegebene, zufällig generierte Zielpositionen zu bewegen und diese Positionen über einen definierten Zeitraum stabil zu halten.
Regelungstechnische Einordnung
Bei dem System handelt es sich um einen geschlossenen Regelkreis, da eine kontinuierliche Rückführung der Istwerte erfolgt und der Nutzer anhand dieser Rückmeldung Korrekturen vornimmt. Der Mensch übernimmt dabei die Funktion des Reglers, während die technische Umsetzung (Joystick, Mikrocontroller, LEDs und Display) die Regelstrecke bildet.
Führungs- und Regelgrößen
Die Führungsgröße (Sollwert) wird durch die vom System zufällig generierten Zielpositionen der beiden Joysticks definiert. Für jeden Joystick existiert eine eigene Zielposition.
Die Regelgröße (Istwert) ist die aktuell gemessene Position der Joysticks, die über analoge Eingangswerte erfasst und vom Mikrocontroller verarbeitet wird.
Die Regelabweichung ergibt sich aus der Differenz zwischen Soll- und Istwert und dient als Grundlage für die visuelle Rückmeldung an den Nutzer.
Regler und Stellgröße
Der Regler ist in diesem System der Nutzer selbst. Mithilfe der visuellen Rückmeldung interpretiert er die aktuelle Regelabweichung und passt die Position der Joysticks entsprechend an.
Die Stellgröße ist somit die manuelle Bewegung der Joysticks durch den Nutzer, mit der versucht wird, die Regelabweichung zu minimieren.
Regelstrecke und Rückführung
Die Regelstrecke umfasst die Joysticks als Eingabeelemente, den Mikrocontroller zur Auswertung der Positionsdaten sowie die Ausgabeelemente zur Rückmeldung.
Die Rückführung erfolgt über RGB-LEDs, die den Abstand zur Zielposition visualisieren:
- Rot signalisiert eine große Abweichung
- Gelb zeigt eine Annäherung an die Zielposition
- Grün steht für eine geringe Abweichung
- Blinkendes Grün kennzeichnet das Erreichen der exakten Zielposition
Diese Rückmeldung schließt den Regelkreis, indem sie dem Nutzer kontinuierlich Informationen über den aktuellen Systemzustand liefert.
Zeitliche Stabilitätsanforderung
Eine Besonderheit des Systems ist die zusätzliche zeitliche Bedingung: Die Zielposition muss für einen Zeitraum von drei Sekunden gehalten werden. Erst wenn diese Stabilitätsanforderung erfüllt ist, gilt die jeweilige Runde als erfolgreich abgeschlossen. Regelungstechnisch entspricht dies einer Überprüfung der Stabilität des Systems um den Sollwert.
Mehrstufiger Regelprozess
Das Rätsel besteht aus drei aufeinanderfolgenden Runden, die jeweils einen eigenen Regelkreis mit neu generierten Sollwerten darstellen. Nach jeder erfolgreich abgeschlossenen Runde wird eine Ziffer auf dem LC-Display freigeschaltet. Erst nach Abschluss aller drei Runden ergibt sich ein vollständiger Zahlencode, der den Zugang zum nächsten Escape-Rätsel ermöglicht.
Toleranzbereich und regelungstechnische Bewertung
Aufgrund der hohen Sensibilität der verwendeten Joysticks ist es in der Praxis nicht möglich, eine exakt punktgenaue Zielposition dauerhaft zu erreichen. Aus regelungstechnischer Sicht wird dieses Problem durch die Einführung eines Toleranzbereichs um den Sollwert gelöst.
Der Toleranzbereich definiert einen zulässigen Wertebereich, innerhalb dessen die Regelabweichung als ausreichend klein betrachtet wird. Befindet sich der Istwert innerhalb dieses Bereichs, gilt der Sollwert als erreicht.
Toleranzwert als Totzone
Regelungstechnisch kann der Toleranzbereich als sogenannte Totzone (Deadband) interpretiert werden. Innerhalb dieser Totzone führt eine geringe Regelabweichung zu keiner weiteren Regelaktion, da das System diesen Zustand als stabil bewertet.
Die Totzone verhindert:
- ständiges Nachregeln durch minimale Abweichungen,
- unruhiges Verhalten des Reglers (Nutzer),
- sowie das Scheitern der Aufgabe durch nicht vermeidbares Sensorrauschen.
Regelkreis

Umsetzung (HW/SW)
Hardware Umsetzung
Platinendesign und Erstellung
Auf der Platine müssen keine zusätzlichen Widerstände oder andere elektronische Bauteile untergebracht werden. Diese Teile sind bereits auf den internen Platinen der einzelnen Komponenten vorhanden, zum Beispiel bei den RGB-LEDs. Deshalb muss keine eigene Platine gefräst oder gebohrt werden. Die elektronischen Bauteile brauchen nur einen gemeinsamen Masseanschluss und einen gemeinsamen Anschluss für die Spannungsversorgung. Daher wird eine Lochplatine bzw. Streifenrasterplatine verwendet. Auf der Platine werden acht Masseanschlüsse und drei Spannungsanschlüsse benötigt. Der 5-V-Pin des Arduino wird an eine Seite der Platine geführt. Die dafür genutzten Lötpunkte werden miteinander verbunden, so entsteht eine gemeinsame 5-V-Schiene. Genauso wird der Masseanschluss (GND) des Arduino an eine andere Seite der Platine geführt. Die acht Masseanschlüsse werden mit dieser GND-Schiene verbunden. Abbildung 05 zeigt das vorgehen.

Testen der Hardwarekomponenten

Um die einzelnen Komponenten zunächst zu testen, wurden diese auf einem Steckbrett aufgebaut (siehe Abbildung X) und mit einer ersten Simulink-Software in Betrieb genommen.
Alle Komponenten funktionierten dabei wie erwartet.
Um die Komponenten korrekt nutzen zu können, wurden zunächst ihre internen Wertebereiche und mögliche offsets überprüft.
Joystick: Die analogen Eingänge lieferten Werte im Bereich von 0 bis 1023 (10 Bit). In der Neutralstellung (Mitte) betrug der Wert ca. 512. Aufgrund kleiner Fertigungstoleranzen trat ein Offset von bis zu ±30 auf, der berücksichtige werden muss. Beim Testen fiel auf, dass der Wertebereich von 0 bis 1023 die vollen Stellungsgrenzen des Joysticks nicht exakt abbildet. Bereits bei etwa ¾ der maximalen Auslenkung erreicht der Wert 0 bzw. 1023, was bei der Auswertung berücksichtigt werden musste. Außerdem zeigte sich, dass es umso schwieriger wird, einen bestimmten Zielwert genau zu treffen, je weiter sich der Joystick von seiner Neutralstellung entfernt. Dies liegt an der nichtlinearen Charakteristik und den mechanischen Eigenschaften des Joysticks, die bei maximaler Auslenkung zu einer höheren Empfindlichkeit führen.
RGB-LEDs: Die Helligkeitswerte für Rot, Grün und Blau steuern sich über PWM-Signale mit einem Wertebereich von 0 bis 255 (8 Bit). Um die Werte von den Joysticks als Eingabe für die RGB-LEDs zu nutzen müssen diese auf einen wert von 0 bis 255 normiert werden. Da das Ziel darin besteht, die RGB-LED abhängig von der Entfernung des Joysticks zur Zielposition einzufärben – rot = weit entfernt, gelb = Annäherung, grün = sehr nah – zeigte sich beim Testen, dass es schwierig war, einen geeigneten Wertebereich für die LED zu definieren. Besonders verschiedene Grüntöne lassen sich sehr genau unterscheiden, sodass ein „echtes“ klares Grün erst angezeigt werden sollte, wenn die Zielposition tatsächlich erreicht wurde. Andernfalls sollte die LED deutlich gelb oder rot leuchten. Zudem zeigte sich, dass man die Joysticks einfach beliebig bewegen kann und einfach beobachten kann, wann die LED grün wird. Dadurch wäre das Rätsel sofort lösbar, ohne gezielt die Zielpositionen zu treffen. Aus diesem Grund musss die LED/Joystick-Logik überdacht und angepasst werden.
LC-Display: Das Display wurde zunächst über die Library LiquidCrystal_I2C in der Arduino IDE konfiguriert („vorprogrammiert“) und anschließend ein eigener Simulink-Block mit dem IO Device Builder erstellt, der Eingänge für die Steuerung und das Schreiben von Zeichen bereitstellt. Die Idee, dynamisch veränderbaren Text anzuzeigen, wurde folgendermaßen umgesetzt.
Es wurden insgesamt vier Eingänge konfiguriert: Zwei Eingänge, die jeweils eine Liste von uint8-Werten übergeben – eine Liste für die erste Zeile (0,0) und eine für die zweite Zeile (0,1). Die Zahlen werden entsprechend der ASCII-Tabelle in Zeichen konvertiert. Dritter Eingang: Eine Zahl (0, 1, 2, 3, 4), um den aktuellen Fortschritt zu überprüfen (z. B. wie viele Zahlen bereits freigeschaltet wurden) oder den kompletten Zahlencode anzuzeigen. Vierter Eingang: Ein Boolean-Signal, das überprüft, ob die Joystick-Position der Zielposition entspricht. Nur wenn dies zutrifft, wird der Text auf dem LC-Display aktualisiert.
Taster: Die Signale der drei Taster wurden mit Digital Input-Blöcken aufgenommen, wobei der PinMode auf Pull-Up gesetzt wurde, um stabile Eingabewerte zu gewährleisten.
Um alle PWN Ausgänge nutzen zu könne muss in den Einstellungen in Simulink unter Solver "Treat each discrete rate as a separate task" deaktiviert werden.

Test der Sensoren
Für die Umsetzung des Projekts müssen die beiden Joysticks zunächst getestet werden, um ihr Verhalten genau zu verstehen. Dabei sind zwei Aspekte besonders wichtig.
Zum einen der hardwareseitige Test: Hierbei wird untersucht, in welchem Maß sich die Joysticks beim Betätigen mechanisch bewegen bzw. auslenken. Diese Informationen sind entscheidend, da sie bereits vor der Erstellung und dem 3D-Druck des CAD-Modells berücksichtigt werden müssen.
Zum anderen wird das Kennlinienverhalten der Joysticks analysiert. Dabei ist zu klären, ob die Ausgabe der Sensoren linear, exponentiell oder auf andere Weise nichtlinear verläuft. Dieses Verhalten ist maßgeblich für die spätere Auswertung der Messwerte und die korrekte Ansteuerung im System.
Gehäuse 3D-Druck
Das Gehäuse des Escape-Game-Moduls JoyCode wurde vollständig als 3D-druckbares Bauteil konzipiert und dient der sicheren Aufnahme sowie der strukturierten Integration aller elektronischen und mechanischen Komponenten. Ziel der Konstruktion war eine kompakte, stabile und wartungsfreundliche Lösung, die sich für den Einsatz im Escape-Game-Umfeld eignet.
Konstruktiver Aufbau
Das Gehäuse besteht aus zwei Hauptkomponenten:
- einer Frontplatte mit Bedienelementen (200mm x 100mm)
- einem rückseitigen Gehäusekörper zur Aufnahme der Elektronik (206mm x 106mm x 80mm)
Die Frontplatte ist verschraubt ausgeführt und ermöglicht dadurch einen einfachen Zugang zu den internen Komponenten. Alle Bedienelemente sind präzise in die Front integriert und mechanisch abgestützt.
Die Wandstärke beträgt 3mm.
Integration der Komponenten
In die Frontplatte sind folgende Elemente integriert:
- zwei Joysticks zur Benutzereingabe,
- drei Taster (Start, Reset, Solution),
- ein LCD-Display zur Anzeige von Informationen und Codes,
- zwei LEDs zur optischen Rückmeldung während des Spiels.
Im Inneren des Gehäuses sind Montagebolzen und Distanzhalter vorgesehen, um die Joystick-Module, das LCD-Display, die LED-Module, sowie den Arduino-Controllerpositionsgenau zu fixieren. Dadurch wird eine spannungsfreie Montage der Leiterplatten gewährleistet und mechanische Belastungen auf Lötstellen vermieden. Die Anordnung der Komponenten erlaubt eine übersichtliche Kabelführung und ausreichend Platz für Wartung oder spätere Erweiterungen.
Schnittstellen und Zugänglichkeit
An der Seitenwand des Gehäuses befindet sich eine Aussparung für den USB-Anschluss des Arduino-Boards, sodass Programmierung und Spannungsversorgung ohne Demontage möglich sind. Zusätzlich ist eine Öffnung für die externe Stromversorgung vorgesehen.
Design- und Fertigungsaspekte
Das Gehäuse wurde mit abgerundeten Kanten und definierten Wandstärken konstruiert, um:
- eine gute Druckbarkeit zu gewährleisten,
- Verzug und Materialspannungen zu reduzieren,
- sowie eine robuste Haptik zu erzeugen.
Die Konstruktion ist so ausgelegt, dass sie ohne oder mit minimalen Stützstrukturen gefertigt werden kann. Schraubverbindungen und Befestigungspunkte sind auf Standard-Metrikschrauben ausgelegt.
CAD Modell






Einbinden der Hardwarekomponenten
Die Einbindung der Hardwarekomponenten im System JoyCode erfolgt zentral über den Mikrocontroller, der als Schnittstelle zwischen Sensorik, Aktorik und Anzeigeelementen fungiert. Ziel der Hardwareintegration ist eine zuverlässige, störungsarme Signalverarbeitung sowie eine eindeutige Zuordnung aller Ein- und Ausgänge.
Analoge Eingabekomponenten
Die beiden Joysticks werden jeweils über zwei analoge Signalleitungen (x- und y-Achse) an den Mikrocontroller angebunden. Die Potentiometer der Joysticks liefern positionsabhängige Spannungen im zulässigen Eingangsbereich des Analog-Digital-Wandlers. Die Signale werden direkt auf dedizierte ADC-Eingangspins geführt, wobei auf eine gemeinsame Masseführung geachtet wird, um Offset- und Rauscheffekte zu minimieren.
Die Zuordnung der ADC-Kanäle erfolgt fest in der Software, sodass jede Joystick-Achse eindeutig adressiert und ausgewertet werden kann. Eine zusätzliche externe Signalaufbereitung ist nicht erforderlich, da die Spannungspegel den Spezifikationen des Mikrocontrollers entsprechen.
Digitale Ausgabekomponenten
Die RGB-LEDs werden über digitale Ausgangspins angesteuert. Jede Farbkomponente (Rot, Grün, Blau) ist separat verschaltet, wodurch eine flexible Farbmischung realisiert werden kann. Die Ansteuerung erfolgt softwareseitig über definierte Schaltzustände bzw. Pulsweitenmodulation, um sowohl statische Farben als auch Blinkmuster darzustellen.
Das LC-Display wird über eine serielle Schnittstelle (z. B. I²C) in das System eingebunden. Dadurch kann die Anzahl benötigter Ein- und Ausgangspins reduziert werden. Die Initialisierung des Displays sowie die Aktualisierung der Inhalte erfolgen zyklisch bzw. ereignisabhängig aus der Software heraus.
Spannungsversorgung und Massekonzept
Die Spannungsversorgung aller Hardwarekomponenten erfolgt zentral über den Mikrocontroller. Dabei wird sichergestellt, dass alle Module eine gemeinsame Referenzmasse besitzen. Dieses Massekonzept ist entscheidend für die stabile Funktion der analogen Joystick-Signale und die reproduzierbare ADC-Messung.
Die Stromaufnahme der angeschlossenen Komponenten liegt innerhalb der zulässigen Grenzwerte des Systems, sodass keine zusätzliche externe Versorgung notwendig ist.
Systemintegration
Durch die klare Trennung von analogen Eingängen (Joysticks) und digitalen Ausgängen (LEDs, Display) entsteht eine übersichtliche und wartbare Systemstruktur. Die Hardware ist so eingebunden, dass jede Komponente eindeutig adressierbar ist und unabhängig getestet werden kann.
Die enge Kopplung zwischen Hardwareanschluss und Softwarestruktur ermöglicht eine konsistente Signalverarbeitung und bildet die Grundlage für den stabilen Betrieb des regelungstechnischen Gesamtsystems.
Ergebnis
Software Umsetzung
Signalverarbeitung
Programmablauf
Joystick auslesen und LED Steuerung


Distanz zur Zielposition
LCD-Anzeige

Taster-Funktionalität
Runden Realisierung
Simulink-Modell

Tests
Ergebnis
Zusammenfassung
Das Projekt JoyCode realisiert ein interaktives Escape-Game-Rätsel, bei dem zwei Joysticks gleichzeitig präzise auf zufällig festgelegte Zielpositionen gebracht werden müssen. Die visuelle Rückmeldung über den Abstand zur Zielposition erfolgt in Echtzeit über farbcodierte RGB-LEDs. Nach drei aufeinanderfolgenden, erfolgreich gehaltenen Zielstellungen wird ein vollständiger Zahlencode sichtbar, der für den Zugang zum nächsten Spielabschnitt im übergeordneten Escape Game genutzt wird.
Technisch kombiniert das System Mechatronik-Grundlagen mit praxisnaher Sensorik, Steuerungstechnik und Echtzeit-Interaktion. Der Arduino Uno R3 fungiert als zentrale Steuereinheit und liest die Joystick-Positionen über analoge Eingänge aus. Die LEDs und das LC-Display werden zur Status- und Fortschrittsanzeige verwendet, während Taster zur Steuerung und Reset-Funktion integriert sind.
Die Hardwarekomponenten sind in einem 3D-gedruckten Gehäuse montiert, das alle Bausteine sicher aufnimmt und die Frontbedienelemente ergonomisch zugänglich macht. Die Verdrahtung ist so ausgelegt, dass Versorgungsspannung und Masse sauber verteilt werden, während Signalverbindungen kurz gehalten werden, um Störanfälligkeit zu minimieren.
Insgesamt stellt JoyCode eine gelungene Verbindung aus Konzept, Technik und Interaktion dar und demonstriert die praktische Anwendung mechatronischer Systeme im Rahmen eines komplexeren Spielsystems.
Lessons Learned
Im Verlauf der Entwicklung und Umsetzung des JoyCode-Systems konnten sowohl auf technischer als auch auf methodischer Ebene mehrere zentrale Erkenntnisse gewonnen werden.
Eine wesentliche Erkenntnis betrifft die Bedeutung einer sauberen Systemstruktur. Die klare Trennung zwischen Messung (Joystick-Signale), Auswertung (Regelabweichung und Toleranzprüfung), Entscheidungslogik (UND-Verknüpfung und Zeitbedingung) und Ausgabe (LED- und Display-Feedback) erwies sich als entscheidend für die Nachvollziehbarkeit und Erweiterbarkeit des Systems. Frühzeitige Strukturentscheidungen vereinfachten spätere Anpassungen deutlich.
Darüber hinaus zeigte sich, dass Human-in-the-Loop-Systeme andere Anforderungen stellen als klassische automatische Regelungen. Da der Mensch als Regler und Aktor fungiert, sind intuitive Rückmeldungen (Farblogik, Blinksignale) wichtiger als mathematisch optimale Reglerparameter. Kleine Anpassungen an der visuellen Rückmeldung hatten einen deutlich größeren Einfluss auf die Bedienbarkeit als Änderungen an Berechnungsalgorithmen.
Im Bereich der Hardwareintegration wurde deutlich, dass eine saubere Verdrahtung und gemeinsame Masseführung essenziell für einen stabilen Betrieb sind. Unklare oder lose Verbindungen führten zu Messrauschen und unzuverlässigem Verhalten der LEDs und Joysticks. Die mechanische Planung des 3D-gedruckten Gehäuses erwies sich ebenfalls als kritisch, da spätere Änderungen an der Hardware nur mit erheblichem Aufwand möglich sind.
Auf Softwareseite stellte sich heraus, dass zeitabhängige Logik (z. B. die Mindestdauer im Toleranzbereich) sorgfältig implementiert werden muss. Eine robuste Zeitmessung verhindert Fehlauslösungen und erhöht die Zuverlässigkeit des Systems. Gleichzeitig wurde deutlich, dass zustandsbasierte Programmstrukturen gegenüber rein linearem Code deutlich übersichtlicher und wartungsfreundlicher sind.
Zusätzlich verdeutlichte das Projekt den Wert von iterativem Testen. Regelmäßige Tests einzelner Module (Joystick-Auslesung, LED-Ansteuerung, Display-Ausgabe) erleichterten die Fehlersuche erheblich und verhinderten, dass sich Fehler über mehrere Systemebenen hinweg fortpflanzen.
Abschließend zeigt das Projekt JoyCode, dass auch vergleichsweise einfache Hardwarekomponenten durch eine durchdachte Systemarchitektur, klare Regelungslogik und gezielte Benutzerführung zu einem funktional anspruchsvollen und zuverlässigen Gesamtsystem kombiniert werden können.
Projektunterlagen
Projektplan

Projektdurchführung
YouTube Video
Weblinks
Literatur
→ zurück zur Übersicht: WS 25/26: Escape Game
