Escape Game: Polarlock: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Yash.uppal@stud.hshl.de (Diskussion | Beiträge)
Yash.uppal@stud.hshl.de (Diskussion | Beiträge)
 
(229 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 10: Zeile 10:
|-
|-
|}
|}
[[Datei:Status Prüfe.jpg|mini|rechts|500px|Abb.01. Polarlock]]




Zeile 19: Zeile 20:


Der Start erfolgt über eine Start-Taste. Fehlermeldungen und das Endergebnis werden über ein LCD-Display (16×2) ausgegeben. Sind alle drei farbmarkierten Würfel in den vorgesehenen Slots (A–C) mit der jeweils korrekten Polrichtung (Nord/Süd) eingesetzt, meldet das System den Erfolg: Die grüne LED leuchtet und auf dem LCD-Display erscheint der dreistellige Code. Liegt hingegen eine Fehlbelegung vor, etwa durch einen falschen Slot oder eine falsche Polausrichtung, zeigt das Display die Meldung „Fehlversuch“, und die rote LED schaltet ein und bleibt aktiv, bis ein neuer Versuch über den Reset-Taster gestartet wird. In dieser verriegelten Phase werden weitere Änderungen an den Magneten nicht ausgewertet. Das System arbeitet vollständig offline, und befindet sich in einem kompakten, tragbaren 3D-gedruckten Gehäuse, das definierte Sensorabstände und eindeutig markierte Slots sicherstellt.
Der Start erfolgt über eine Start-Taste. Fehlermeldungen und das Endergebnis werden über ein LCD-Display (16×2) ausgegeben. Sind alle drei farbmarkierten Würfel in den vorgesehenen Slots (A–C) mit der jeweils korrekten Polrichtung (Nord/Süd) eingesetzt, meldet das System den Erfolg: Die grüne LED leuchtet und auf dem LCD-Display erscheint der dreistellige Code. Liegt hingegen eine Fehlbelegung vor, etwa durch einen falschen Slot oder eine falsche Polausrichtung, zeigt das Display die Meldung „Fehlversuch“, und die rote LED schaltet ein und bleibt aktiv, bis ein neuer Versuch über den Reset-Taster gestartet wird. In dieser verriegelten Phase werden weitere Änderungen an den Magneten nicht ausgewertet. Das System arbeitet vollständig offline, und befindet sich in einem kompakten, tragbaren 3D-gedruckten Gehäuse, das definierte Sensorabstände und eindeutig markierte Slots sicherstellt.




Zeile 28: Zeile 28:
'''Bezug zum MTR Studium:''' Elektronik 1, Elektrotechnik 1&2, Informatik 1 (Praktikum), Informatik 2 (Praktikum)
'''Bezug zum MTR Studium:''' Elektronik 1, Elektrotechnik 1&2, Informatik 1 (Praktikum), Informatik 2 (Praktikum)


'''So sehen die beigestellten Rätsel aus:'''


'''So könnten die beigestellten Rätsel aussehen:'''
1) In der LED-Technik steht eine bestimmte Farbe für kurze Wellenlängen und hohe Signalwirkung bei Statusanzeigen. Welche Farbe ist das?




Hat eine Siliziumdiode typisch ca. 0,7 V Durchlassspannung?
2) Ein digitales System arbeitet mit binären Signalen. Wie viele verschiedene Zustände kann ein einzelnes Bit annehmen?


Stabilisiert eine Zenerdiode in Sperrrichtung eine Spannung?


Besitzt der A3144 besitzt einen Open-Collector-Ausgang und benötigt einen Pull-Up?
3) In der Elektronik werden Skalen, Referenzflächen oder Anzeigen häufig in einer Farbe ausgeführt, die nahezu das gesamte sichtbare Licht reflektiert und dadurch besonders gut erkennbar ist. Welche Farbe ist das?


Verdoppelt man den Abstand zu einem kleinen Permanentmagneten, sinkt die Feldstärke annähernd auf ein Achtel (Dipol-Näherung ~1/r³)?


Reagiert Ein Hall-Sensor primär auf die Flussdichtekomponente senkrecht zur Chipfläche?
4) Ein digitaler Sensor erkennt „Signal vorhanden“ oder „kein Signal“. Kombiniert man diese Information mit zwei möglichen Magnetpolen, wie viele Zustandskombinationen ergeben sich insgesamt?


Halbiert man einen Stabmagneten, erhält man einen reinen Nord- und einen reinen Südpol?


Dreht man den Magneten um 180°, erkennt derselbe unipolare Hall-Schalter die Gegenrichtung genauso sicher?
5) In der Elektrotechnik wird für Masse, Abschirmung oder inaktive Bereiche häufig eine sehr dunkle Farbe verwendet. Welche Farbe ist das?


Hat ein linearer Hall-Sensor einen digitalen Schaltausgang statt eines analogen Signals?


Verliert ein ferromagnetischer Stoff Oberhalb der Curie-Temperatur seinen ferromagnetischen Charakter?
6) Ein digitaler Codeträger besitzt mehrere klar unterscheidbare Zustände. Entspricht die Anzahl dieser Zustände der Seitenzahl eines klassischen Würfels, wie viele Zustände sind das?


Benötigt ein n-Kanal-MOSFET eine positive V_GS, um zu leiten?
Verlaufen außerhalb eines Stabmagneten verlaufen die Feldlinien von Nord nach Süd?


Die sechs Rätselaufgaben des Polarlocks sind so gestaltet, dass die Besucher der Projektmesse mithilfe grundlegender Kenntnisse aus der Elektrotechnik, Digitaltechnik und dem Magnetismus die richtige Kombination der drei Würfel ermitteln können. Die erste, dritte und fünfte Frage liefern Informationen, aus denen sich jeweils die korrekte Farbe des Würfels in den drei Slots ableiten lässt. Die zweite, vierte und sechste Frage beziehen sich hingegen auf die richtige Orientierung bzw. nummerierte Seite des jeweiligen Würfels und verknüpfen damit logisches Denken mit einfachen physikalischen und elektronischen Grundlagen.




Zeile 59: Zeile 54:
{| class="wikitable"
{| class="wikitable"
|+ style = "text-align: left"|
|+ style = "text-align: left"|
! ID !! Inhalt !! Priorität !! Ersteller !! Datum !! Status Auftragnehmer
! ID !! Inhalt !! Priorität !! Ersteller !! Datum !! Geprüft von !! Datum
|-
|1  || Das Spiel muss in maximal 5 Minuten lösbar sein.||  Hoch || Singh/Uppal || 03.10.2025 || Ausstehend
|-
|2 || Eine Auswahl passender elektronischer Komponenten muss erfolgen.||  Hoch || Singh/Uppal || 03.10.2025 || Ausstehend
|-
|3 || Die Konstruktion der benötigten CAD-Modelle für mechanische Bauteile muss erfolgen. ||  Hoch || Singh/Uppal || 03.10.2025 || Ausstehend
|-
|-
|4 || Die Verdrahtung der elektronischen Komponenten mit dem Mikrocontroller muss überprüft werden. ||  Hoch || Singh/Uppal || 03.10.2025 || Ausstehend
||| Das Spiel muss in maximal 5 Minuten lösbar sein.||  Hoch || Singh/Uppal || 03.10.2025 ||Singh||15.12.2025
|-
|-
|5 || Das Spiel startet beim Drücken von Taste 1 (Start-Button). || Hoch || Singh/Uppal || 03.10.2025 || Ausstehend 
|2 || Eine Auswahl passender elektronischer Komponenten muss erfolgen.|| Hoch || Singh/Uppal || 03.10.2025 || Singh||15.12.2025
|-
|-
|6 || Drei farbige, nummerierte  Würfel (rot/blau/grün) mit eingebauten Magneten werden verwendet. || Hoch || Singh/Uppal || 03.10.2025 || Ausstehend
|3 || Die Konstruktion der benötigten CAD-Modelle für mechanische Bauteile muss erfolgen. || Hoch || Singh/Uppal || 03.10.2025 ||Singh||15.12.2025
|-
|-
|7 || Jeder Würfel enthält einen orientiert eingebauten Magneten, dessen Nordpol auf eine definierte, nummerierte Seite zeigt. || Hoch || Singh/Uppal || 03.10.2025 || Ausstehend
|4 || Die Verdrahtung aller elektronischen Komponenten mit dem Mikrocontroller muss vollständig umgesetzt und funktionsfähig sein.|| Hoch || Singh/Uppal || 03.10.2025 ||Singh||15.12.2025
|- 
|8 ||Farben der Würfel (rot/blau/grün) dienen ausschließlich als Rätselhinweis; das System prüft nur Slot und Polung. || Hoch || Singh/Uppal || 03.10.2025 || Ausstehend
|-
|-
|9 ||Es werden Rätsel auf einem Zettel bereitgestellt. || Hoch || Singh/Uppal || 03.10.2025 || Ausstehend
|5 || Das Spiel startet beim Drücken von Taste 1 (Start-Button). || Hoch || Singh/Uppal || 03.10.2025 ||Singh||15.12.2025
|-
|-
|10  || Der beigelegte Rätselzettel enthält Rätsel, die korrekt gelöst werden müssen. ||  Hoch || Singh/Uppal || 03.10.2025 || Ausstehend
|6 ||Den Spielern wird per Ausdruck ein Rätseltext bereitgestellt, der die Lösungsvoraussetzungen für das Magnetwürfel-Puzzle vollständig beschreibt.||  Hoch || Singh/Uppal || 03.10.2025 ||Singh||15.12.2025
|-
|-
|11 || Die korrekte Lösung des Rätsels führt dazu, dass jeder Würfel mit der richtigen nummerierten Seite in den jeweiligen korrekten Slots gelegt wird. ||  Hoch || Singh/Uppal || 03.10.2025 || Ausstehend
|7 || Die korrekte Lösung des Rätsels führt dazu, dass jeder Würfel mit der richtigen nummerierten Seite in den jeweiligen korrekten Slots gelegt wird. ||  Hoch || Singh/Uppal || 03.10.2025 ||Singh||15.12.2025
|-
|-
|12 ||Die Rätsel haben einen mittleren Schwierigkeitsgrad. ||  Hoch || Singh/Uppal || 03.10.2025 || Ausstehend
|8 ||Die Rätsel haben einen mittleren Schwierigkeitsgrad. ||  Hoch || Singh/Uppal || 03.10.2025 ||Singh||15.12.2025
|-
|-
|13 || Je Slot (A/B/C) wird Magnetpräsenz und korrekte Polorientierung (N/S) über ein Hallsenor detektiert. ||  Hoch || Singh/Uppal || 03.10.2025 || Ausstehend
|9 || Je Slot (A/B/C) wird Magnetpräsenz und korrekte Polorientierung (N/S) über ein Hallsenor detektiert. ||  Hoch || Singh/Uppal || 03.10.2025 ||Uppal || 15.12.2025
|-
|-
|14 || Wenn alle Würfel korrekt platziert und ausgerichtet sind, leuchtet die grüne LED und der dreistellige Code wird auf dem LCD-Display 16×2 ausgegeben.||  Hoch || Singh/Uppal || 03.10.2025 || Ausstehend
|10 || Wenn alle Würfel korrekt platziert und ausgerichtet sind, leuchtet die grüne LED und der dreistellige Code wird auf dem LCD-Display 16×2 ausgegeben.||  Hoch || Singh/Uppal || 03.10.2025 ||Uppal || 15.12.2025
|-
|-
|15 || Ein Reset-Taster (Taste 2) erlaubt Neustart nach Spielende oder Fehlversuch.||  Hoch || Singh/Uppal || 03.10.2025 || Ausstehend
|11 || Ein Reset-Taster (Taste 2) erlaubt Neustart nach Spielende oder Fehlversuch.||  Hoch || Singh/Uppal || 03.10.2025 ||Uppal || 15.12.2025
|-
|-
|16 || Wenn mindestens ein Würfel falsch liegt, zeigt das LCD „Fehlversuch“; die rote LED leuchtet dauerhaft, bis ein neuer Versuch mit dem Reset-Taster gestartet wird.||  Hoch || Singh/Uppal || 03.10.2025 || Ausstehend
|12 || Wenn mindestens ein Würfel falsch liegt, zeigt das LCD „Fehlversuch“; die rote LED leuchtet dauerhaft, bis ein neuer Versuch mit dem Reset-Taster gestartet wird.||  Hoch || Singh/Uppal || 03.10.2025 ||Uppal || 15.12.2025
|-
|-
|17 || Die erforderlichen CAD-Modelle, Datenblätter und Programmdaten müssen dokumentiert werden.||  Hoch || Singh/Uppal || 03.10.2025 || Ausstehend
|13 || Die erforderlichen CAD-Modelle, Datenblätter und Programmdaten müssen dokumentiert werden.||  Hoch || Singh/Uppal || 03.10.2025 || Uppal||15.12.2025
|-
|-
|18 || Ein Wiki-Artikel muss nach Anleitung fertiggestellt werden.||  Hoch || Singh/Uppal || 03.10.2025 || Ausstehend
|14 || Ein Wiki-Artikel muss nach Anleitung fertiggestellt werden.||  Hoch || Singh/Uppal || 03.10.2025 || Uppal || 15.12.2025


|}
|}


= Funktionaler Systementwurf =
= Funktionaler Systementwurf/ Technischer Systementwurf =
 


Polar-Lock ist ein eingebettetes Rätselsystem, dass die korrekte Polorientierung der drei farbig markierten, seitennummerierten Würfel mit eingebauten Magneten in den Slots A–C prüft und bei Erfolg einen dreistelligen Code ausgibt. Der beigelegte Rätselzettel enthält Rätsel, die korrekt gelöst werden müssen. Die korrekte Lösung des Rätsels führt dazu, dass jeder Würfel mit der richtigen nummerierten Seite in den jeweiligen korrekten Slots gelegt wird. Farben der Würfel (rot/blau/grün) dienen ausschließlich als Rätselhinweis; das System prüft nur Slot und Polung. Elektronisch werden ausschließlich Magnetpräsenz und Polrichtung bewertet. Die Hardware basiert auf einem Arduino UNO R3 mit drei digitalen Hall-Schaltern vom Typ Infineon TLE4935L (bipolarer Latch), einem LCD-Display 16×2 mit I²C-Backpack, einer Start- und einer Reset-Taste sowie zwei LEDs (grün/rot). Pro Slot sitzt ein TLE4935L direkt unter der Auflagefläche des Würfels. Der TLE4935L verfügt über einen Open-Collector-Ausgang und liefert ein digitales Signal, das abhängig von der anliegenden magnetischen Polorientierung schaltet. Als Latch hält der Sensor seinen Schaltzustand, bis ein Magnetfeld der entgegengesetzten Polung erkannt wird. Die Sensorsignale werden an den digitalen Eingängen D2, D3 und D4 des Arduino UNO R3 eingelesen und zur Auswertung der korrekten Polorientierung je Slot herangezogen. Die Tasten liegen an D5 (Start) und D6 (Reset). Der Start-Taster beginnt das Spiel und der Reset-Taster setzt den Spielzustand zurück.


Polar-Lock ist ein eingebettetes Rätselsystem, das die korrekte Polorientierung dreier magnetisierter, farbig markierter und nummerierter Würfel in den Slots A–C prüft und bei Erfolg einen dreistelligen Code ausgibt. Der beigelegte Rätselzettel enthält Rätsel, die korrekt gelöst werden müssen. Die korrekte Lösung des Rätsels führt dazu, dass jeder Würfel mit der richtigen nummerierten Seite in den jeweiligen korrekten Slots gelegt wird. Farben der Würfel (rot/blau/grün) dienen ausschließlich als Rätselhinweis; das System prüft nur Slot und Polung. Elektronisch werden ausschließlich Magnetpräsenz und Polrichtung bewertet. Die Hardware basiert auf einem Arduino UNO R3 mit drei digitalen Hall-Schaltern vom Typ A3144, einem LCD-Display 16×2 mit I²C-Backpack, einer Start- und einer Reset-Taste sowie zwei LEDs (grün/rot). Pro Slot sitzt ein A3144 direkt unter der Auflagefläche; der A3144 liefert als Open-Collector-Schalter ein digitales Signal (LOW bei erkannter, vorgegebener Polung; HIGH bei fehlendem Magnet). Diese Signale werden an den digitalen Eingängen D2, D3 und D4 eingelesen. Die Tasten liegen an D5 (Start) und D6 (Reset). Der Start-Taster beginnt das Spiel und der Reset-Taster setzt den Spielzustand zurück.
Der Ablauf des Spiels ist: nach dem Einschalten zeigt das LCD „Bereit – Start drücken“, beide LEDs sind aus. Mit dem Startsignal liest der Mikrocontroller die drei Hall-Eingänge in einem kurzen Stabilitätsfenster (Entprellung/Filter, z. B. 30–100 ms). Wenn alle drei Würfel vom Spieler in den Slots gelegt werden, vergleicht das System das Ergebnis mit der vorgegebenen Lösung (N/S je Slot). Sind alle Vorgaben erfüllt, leuchtet die grüne LED und der dreistellige Code wird ausgegeben. Liegt mindestens ein Würfel mit der falschen Polung, zeigt das LCD „Fehlversuch“ und die rote LED bleibt an, bis die Reset-Taste gedrückt wird.
Der Ablauf des Spiels ist: nach dem Einschalten zeigt das LCD „Bereit – Start drücken“, beide LEDs sind aus. Mit dem Startsignal liest der Mikrocontroller die drei Hall-Eingänge in einem kurzen Stabilitätsfenster (Entprellung/Filter, z. B. 30–100 ms). Wenn die Würfel von Spieler gelegt werden, vergleicht das System das Ergebnis mit der vorgegebenen Lösung (N/S je Slot). Sind alle Vorgaben erfüllt, erscheint der dreistellige Code und die grüne LED leuchtet. Liegt mindestens ein Würfel falsch, zeigt das LCD „Fehlversuch“ und die rote LED bleibt an, bis die Reset-Taste gedrückt wird.


= Technischer Systementwurf =
Abbildung 1 zeigt den funktionalen Systementwurf. In den Abbildungen 2 und 4 sind jeweils die technische Schaltung und der technische Systementwurf dargestellt. Die Abbildung 3 legt den Schaltplan des Polarlocks dar.


Unter diesem Link ist der technische Systementwurf des Polarlocks dargestellt:


https://wiki.hshl.de/wiki/index.php/Datei:Technischer_Systementwurf_des_Polarlocks.jpg
[[Datei:Abb-02- Funktionaler Systementwurf.jpg|400px|thumb|left|Abb.02- Funktionaler Systementwurf ]]




[[Datei:Technischer_Systementwurf_des_Polarlocks.jpg|600px|thumb|left|Abb.01 Technischer Systementwurf]]
[[Datei:Technischer_Systementwurf_des_Polarlocks.jpg|400px|thumb|left|Abb.03- Technische Schaltung]]


[[Datei:Schaltplan in Multism.jpg|400px|thumb|left|Abb.04- Schaltplan des Polarlocks]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
Zeile 136: Zeile 139:
<br>
<br>
<br>
<br>
<br>
<br>
[[Datei:Technische_Schaltung.jpg|400px|thumb|right|Abb.05- Technischer Systementwurf]]
'''Technischer Systementwurf'''
Der in der Abbildung dargestellte technische Systementwurf zeigt die Architektur des Arduino-basierten Escape-Game-Moduls „Polarlock“.
Der Arduino UNO R3 übernimmt die zentrale Verarbeitung der Eingangssignale. Die von den Hall-Sensoren erfassten magnetischen Zustände werden softwareseitig ausgewertet und mit einer vorgegebenen Soll-Konfiguration verglichen.
''' Eingabekomponenten'''
• Hall-Sensoren (Slot A–C): Drei digitale Hall-Sensoren sind an den digitalen Eingängen D2, D3 und D4 des Arduino UNO R3 angeschlossen. Sie dienen zur Erkennung der magnetischen Polarität bzw. Anwesenheit von Magneten in den jeweiligen Slots des Spielmoduls.
• Start-Taster: Der Start-Taster ist am digitalen Eingang D5 angeschlossen und dient zur Initialisierung des Spiels bzw. zum Starten der Code-Überprüfung.
• Reset-Taster: Der Reset-Taster ist am digitalen Eingang D6 angeschlossen und ermöglicht das Zurücksetzen des Systems in den Ausgangszustand.
• Spannungsversorgung: Eine externe Spannungsquelle versorgt den Arduino sowie die angeschlossenen Peripheriekomponenten mit Betriebsspannung.
''' Ausgabekomponenten'''
• LCD-Display: Das LCD-Display wird vom Arduino angesteuert und dient zur Ausgabe von Statusmeldungen, Benutzerhinweisen sowie Spielrückmeldungen (z. B. „bereit“, „Fehlversuch“, „Erfolg“).
• Grüne LED: signalisiert, dass alle Würfel mit der richtigen Seite in die jeweiligen richtigen Slots platziert wurden.
• Rote LED: signalisiert einen Fehlversuch.


= Komponentenspezifikation =
= Komponentenspezifikation =


{| class="wikitable"
{| class="wikitable"
|+ style = "text-align: left"| Tabelle : Materialliste  
|+ style = "text-align: left"| Tabelle : Materialliste (aktualisiert)
|-
|-
! Nr. !! Anzahl   !! Beschreibung  
! Nr. !! Anzahl !! Preis pro Stück  !! Beschreibung !! Link
|-
|-
|1 || 3 || Hall Sensor A3144 3144 digital Unipolar Hall Effekt Sensor [https://arduino-projekte.info/products/a3144-3144-digital-hall-effekt-sensor?srsltid=AfmBOoofQP_x0uK2bE46nJalHn8v69jOc3hIod6h1q7ADdDGuZPVv_mr]  
|1 || 3 || 0,99€ || Hallsensor, digital, bipolar, latch, 3,8 - 24 V || [https://www.reichelt.de/de/de/shop/produkt/hallsensor_digital_bipolar_latch_3_8_-_24_v-25718]  
|-
|-
|2 || 1 || Microkontroller: Arduino Uno R3 [https://www.reichelt.de/de/de/shop/produkt/arduino_uno_rev_3_dip-variante_atmega328p_usb-154902?PROVID=2788&gad_source=1&gad_campaignid=1622074784&gbraid=0AAAAADwnxtYWr4rv9stjKvhER85GDINAL&gclid=CjwKCAjwup3HBhAAEiwA7euZulQv76IGeucteBGZutdqjTXbLa4RvBNTX9rg51XMmAmExvRLPDT7zhoCcb8QAvD_BwE]
|2 || 1 || 20,80€ || Microkontroller: Arduino Uno R3 ||[https://www.reichelt.de/de/de/shop/produkt/arduino_uno_rev_3_dip-variante_atmega328p_usb-154902?PROVID=2788&gad_source=1&gad_campaignid=1622074784&gbraid=0AAAAADwnxtYWr4rv9stjKvhER85GDINAL&gclid=CjwKCAjwup3HBhAAEiwA7euZulQv76IGeucteBGZutdqjTXbLa4RvBNTX9rg51XMmAmExvRLPDT7zhoCcb8QAvD_BwE]
|-
|-
|3  || 1 || I2C LCD 1602 16x2 Module [https://www.roboter-bausatz.de/p/lcd-display-modul-1602-hd44780-mit-i2c-controller?sPartner=8&gad_source=1&gad_campaignid=12461217733&gbraid=0AAAAADKFiCDd4dNqM7573D4DMPktyNwK9&gclid=CjwKCAjwup3HBhAAEiwA7euZusD5U7EXUkuJ27vuggYG_6-DBWhuHupA69IPYwFLXs8tozbXqcYOQRoCntsQAvD_BwE]  
|3  || 1 || 3,78€ || I2C LCD 1602 16x2 Module || [https://funduinoshop.com/elektronische-module/displays/lcd/1602-i2c-lcd-modul-mit-hd44780]  
|-
|-
|4  || div. || Widerstände  
|4  || div. || - || Widerstände || werden durch die Hochschule zur Verfügung gestellt
|-
|-
|5 || 1 || Stromversorgung: Steckernetzteil 9V [https://www.reichelt.de/de/de/shop/produkt/steckernetzteil_18_w_9_v_2_a-298327?PROVID=2788&gad_source=1&gad_campaignid=18336599199&gbraid=0AAAAADwnxtZB7JvDm3cyxWVCdW2wRCTRH&gclid=CjwKCAjwup3HBhAAEiwA7euZuvpAFz0RYvHytdoJFamRCOPB402ww1d5ewxVqYm4fAcHhfQlvD8vfBoCyIQQAvD_BwE]
|5 || 1 || 3,90€ || Netzteil für Mikrocontroller - 9V, 1A ||[https://funduinoshop.com/werkstatt/stromversorgung/netzteile/netzteil-fuer-mikrocontroller-9v-1a]
|-
|-
|6 || 1 || Taster TRU COMPONENTS 701280 GQ 16F-S Vandalismusgeschützter Drucktaster 48 V/DC 2 A 1 x Aus/(Ein) tastend IP65 [https://www.conrad.de/de/p/tru-components-701280-gq-16f-s-vandalismusgeschuetzter-drucktaster-48-v-dc-2-a-1-x-aus-ein-tastend-ip65-1-st-701280.html]
|6 || 1 || 5,99€ || Taster TRU COMPONENTS 701280 GQ 16F-S Vandalismusgeschützter Drucktaster 48 V/DC 2 A 1 x Aus/(Ein) tastend IP65 ||[https://www.conrad.de/de/p/tru-components-701280-gq-16f-s-vandalismusgeschuetzter-drucktaster-48-v-dc-2-a-1-x-aus-ein-tastend-ip65-1-st-701280.html]
|-
|-
|7 || 1 || An/Aus-Schalter TRU COMPONENTS 700185 Wippschalter R13-112A B/B 0-I 250 V/AC 6 A 1 x Aus/Ein rastend [https://www.conrad.de/de/p/tru-components-700185-wippschalter-r13-112a-b-b-0-i-250-v-ac-6-a-1-x-aus-ein-rastend-1-st-1565955.html]  
|7 || 1 || 1,99€ ||An/Aus-Schalter TRU COMPONENTS 700185 Wippschalter R13-112A B/B 0-I 250 V/AC 6 A 1 x Aus/Ein rastend || [https://www.conrad.de/de/p/tru-components-700185-wippschalter-r13-112a-b-b-0-i-250-v-ac-6-a-1-x-aus-ein-rastend-1-st-1565955.html]  
|-
|8|| 2 || - ||LEDs (Grün/Rot) || werden durch die Hochschule zur Verfügung gestellt
|-
|9|| div. || - || Verbindungskabeln || werden durch die Hochschule zur Verfügung gestellt
|-
|10|| 3 || 1,29€ || PIC-M0805 Permanent-Magnet Rund (Ø x L) 8 mm x 5 mm N35 1.19 T (max) || [https://www.conrad.de/de/p/pic-m0805-permanent-magnet-rund-o-x-l-8-mm-x-5-mm-n35-1-19-t-max-grenztemperatur-max-80-c-185106.html?hk=SEM&WT.mc_id=google_pla&qwer=CjwKCAjwup3HBhAAEiwA7euZut289OvnQ_yJjdX8EWYxsnP2JUY_S8y7tHQAJEZ0eNh3mNfZvfZpbBoCSWsQAvD_BwE&utm_source=google&utm_medium=cpc&utm_campaign=DE+-+PMAX+-+Nonbrand+-+Private+Labels&utm_id=18711827708&gad_source=1&gad_campaignid=18711932588&gbraid=0AAAAAD1-3H6DFp7_TuWXZsj9KMmAYSViz&gclid=CjwKCAjwup3HBhAAEiwA7euZut289OvnQ_yJjdX8EWYxsnP2JUY_S8y7tHQAJEZ0eNh3mNfZvfZpbBoCSWsQAvD_BwE]
|-
|11|| 1 || - || 3D-Druck Gehäuse || Das Modell wird aus den CAD-Daten generiert und im 3D-Druck gefertigt
|-
|<del>12</del>||<del> 1</del> || - ||<del> Breadboard </del>||<del> wird durch die Hochschule zur Verfügung gestellt</del>
|}
 
 
 
'''Hall-Sensoren'''
 
Ein Hall-Sensor besteht aus einem dünnen Halbleiterplättchen, durch das ein elektrischer Strom fließt. Wirkt ein Magnetfeld senkrecht auf dieses Plättchen ein, werden die Ladungsträger im Halbleiter durch die Lorentzkraft abgelenkt. Dadurch entsteht eine elektrische Spannung quer zur Stromrichtung, die sogenannte Hall-Spannung. Die Höhe dieser Spannung ist proportional zur Stärke des einwirkenden Magnetfeldes.
 
Beim im Projekt verwendeten Sensor handelt es sich um einen digitalen Hall-Sensor vom Typ Infineon TLE4935L, der als bipolarer Latch ausgeführt ist. Der Sensor kann Nord- und Südpol erkennen. Abhängig von der anliegenden Polung schaltet der Sensor seinen digitalen Open-Collector-Ausgang entweder in einen LOW- oder HIGH-Zustand. Als Latch speichert der TLE4935L diesen Schaltzustand und hält ihn so lange, bis ein Magnetfeld der entgegengesetzten Polung erkannt wird oder zurückgesetzt wird.
 
Im Gegensatz zu analogen Hall-Sensoren liefert der TLE4935L kein kontinuierliches Spannungssignal, sondern ein stabiles digitales Signal, das zur zuverlässigen Erkennung der Polorientierung eines Magneten geeignet ist. Diese Eigenschaft macht den Sensor besonders geeignet für Anwendungen wie Polar-Lock, bei denen eine eindeutige und reproduzierbare Zustandsentscheidung erforderlich ist.
 
Pinbelegung der Hall-Sensoren:
 
• 1 = Versorgungsspannung (5V)
 
• 2 = GND (0V)
 
• 3 = Data (Digitial in Pin 3, 4, 6)
 
 
'''LCD-Display'''
 
Als Display kommt "1602 I2C LCD Modul mit HD44780" zum Einsatz. Dieses verfügt über die folgende Eigenschaften:
 
• 2 Zeichenreihen, jeweils 16 Zeichen pro Reihe
 
• Display mit blauer Hintergrundbeleuchtung und weißer Schrift
 
• Betriebsspannung: 5V
 
• Pinbelegung: 4 Pins (VCC, GND, SDA, SCL)
 
• I2C HD44780 Modul ist direkt mit dem LCD verlötet
 
 
'''Arduino Uno R3'''
 
Als Mikrocontroller kommt ein Arduino Uno R3 (DIP-Variante) zum Einsatz, der über folgende Eigenschaften besitzt:
 
• Betriebsspannung: 5 V
 
• 14 digitale I/O - Schnittstellen, 6 analoge Eingänge
 
• ATmega328P, 8-Bit AVR RISC
 
• Flash Memory: 32 KByte
 
• SRAM : 2 KByte
 
• EEPROM: 1 KByte
 
• Takt: 16 MHz
 
= Umsetzung (Hardware/Software) =
 
===Hardware===
 
Das Gehäuse der Hardware wurde für die Fertigung im 3D-Druckverfahren ausgelegt. Hierzu wurden mit der Software SolidWorks mehrere CAD-Modelle der einzelnen Bauelemente erstellt. Diese sind im Folgenden dargestellt:
 
Die Abbildung 4 zeigt die Gesamte Baugruppe des Polarlocks. In der Frontfläche befindet sich eine kreisförmige Aussparung, die für Reset Taster vorgesehen ist. Daneben ist eine rechteckige Öffnung integriert, welche für die Montage des LCD-Displays dient. Unterhalb des Displays sind die Platzierungen für die Würfel angeordnet. Diese Bereiche sind so gestaltet, dass die Würfel eindeutig positioniert werden können. In Abbildung 5 ist eine einzelne Würfel. Im Inneren des Würfel befindet sich eine Ausschnitt für das Magnet zur erkennung der Würfelposition. Abbildung 6 zeigt die Unterseite der Baugruppe, welche als Trägerstruktur für die gesamte Konstruktion dient. Sie bildet die mechanische Basis und ermöglicht die Befestigung weitere Komponenten wie z.B. Arduino, Elektronik und Sensoren.
 
[[Datei:Gesamte Baugruppe neu.png|350px|thumb|left|Abb.06:CAD_Zeichnung Gesamte Baugruppe]]
 
[[Datei:Würfel Neu.png|350px|thumb|left|Abb.07:CAD_Zeichnung Würfel]]
 
[[Datei:CAD Zeichnung Bottom Platte.jpg|350px|thumb|left|Abb.08:CAD_Zeichnung Bottom Platte]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
 
===Software===
 
'''Programmablaufplan'''
 
In Abbildung 9 ist der Programmablaufplan des Polarlocks dargestellt.
[[Datei:Programmablaufplan Polarlock.png||400px|thumb|left|Abb.09- Programmablaufplan]]
 
 
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
'''Simulink-Modell'''
 
Die Abbildung 9 legt das Simulink-Modell des Polarlocks dar. Das Modell ist farblich markiert, um die Signalflüsse erkenntlich zu machen. Gelb markierte Blöcke stellen die Eingänge dar: Dazu gehören die drei Hall-Sensoren an den digitalen Pins 3, 4 und 6, die jeweils ein digitales Signal zur Magneterkennung liefern, sowie die Reset-Taste an Pin 9. Das Reset-Signal wird zusätzlich durch einen Entprell-Block geführt, um ein stabiles, störungsfreies Eingangssignal zu erzeugen. Der graue Block in der Mitte bildet die zentrale Spiellogik, in der alle Eingangssignale zusammengeführt und ausgewertet werden. Grün markierte Blöcke kennzeichnen die Ausgänge: Eine grüne LED an Pin 11 signalisiert einen erfolgreichen Spielabschluss und die rote LED an Pin 12 zeigt einen Fehlversuch. Über den LCD-Ausgang werden Statusmeldungen und Textinformationen an ein über die I²C-Schnittstelle angebundenes Display übertragen und dort angezeigt.
[[Datei:Simulink-Modell des Polarlocks.png||1000px|thumb|left|Abb.10- Simulink-Modell des Polarlocks]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
 
'''Spiellogik'''
 
Der Block „Polarlock_Logik“ ist ein MATLAB-Simulink-Subsystem.  Dieser stellt die zentrale Spiellogik des Systems dar und besitzt klar definierte Ein- und Ausgänge. Im Anschluss an die Abbildung des Subsystems „Spiel_Logik“ folgt der zugehörige MATLAB-Code, der die interne Spiellogik implementiert.
 
[[Datei:Spiellogik des Polarlocks.png|800px|thumb|left|Abb.11- Subsystem "Spiel_logik"]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
 
{| class="wikitable"
|-
|-
|8|| 2 || LEDs (Grün/Rot) 
{|
| <small><small>
{| class="wikitable"
|-
|-
|9|| div. || Verbindungskabeln
| <div style="width:600px; height:600px; overflow:scroll; border: hidden">
<syntaxhighlight lang="cpp" style="border: none; background-color: #EFF1C1; font-size:larger">
 
%****************************************************************
% Funktion        : Polar_Lock_Neu.slx                          *
%                                                              *
% Datum          : 28.11.2025                                  *
%                                                              *
% Betreuer        : Marc Ebmeyer                                *
%                                                              *
% Funktion        : Steuerung des Polarlocks                    *
%                                                              *
% Implementation  : Matlab R2024b                              *
%                                                              *
% Author          : Barinder Singh und Yash Uppal              *
%                                                              *
% Hardware        : Arduino Uno R3                              *
%                                                              *
% Letzte Änderung : 14.01.2026                                  *
%                                                              *
%****************************************************************
 
function [LED_gruen, LED_rot, lcdData] = SpielLogik(hallA, hallB, hallC, reset)
 
% Persistent Variablen
persistent state                  % Aktueller Stand des Spiels
persistent prevA prevB prevC      % Letzte stabile Hall-Sensorwerte
persistent stableCount            % Zähler für stabile Messungen
persistent prevReset              % Reset Zustand der letzten Iteration
persistent waitForChange          % Warten bis
persistent lastWasSuccess
 
if isempty(state)
    state = int32(0);  % STATE_IDLE
end
if isempty(prevA)
    prevA = int32(hallA);
    prevB = int32(hallB);
    prevC = int32(hallC);
end
if isempty(stableCount)
    stableCount = int32(0);
end
if isempty(prevReset)
    prevReset = int32(0);
end
if isempty(waitForChange)
    waitForChange = int32(0);
end
if isempty(lastWasSuccess)
    lastWasSuccess = int32(0);
end
 
% Verschiedene Zustände
STATE_IDLE  = int32(0);
STATE_PRUEFE = int32(1);
STATE_ERFOLG = int32(2);
STATE_FEHL  = int32(3);
 
N_STABLE = int32(50);  % 50 Sensor Werte
 
% LCD und LEDs Output
LED_gruen = int32(0);
LED_rot  = int32(0);
lcdData  = uint8(32 * ones(16,1));
 
% INPUT_PULLUP: gedrückt = 0
reset_i = int32(reset == 0);
resetFlanke = int32(reset_i == 1 && prevReset == 0);
prevReset = reset_i;
 
if resetFlanke
    state = STATE_IDLE;
    stableCount = int32(0);
 
    % Nach Erfolg muss Zustand an Hall sensor geändert werden
    if lastWasSuccess
        waitForChange = int32(1);
    else
        waitForChange = int32(0);
    end
 
    prevA = int32(hallA);
    prevB = int32(hallB);
    prevC = int32(hallC);
end
 
% Zustand
switch state
 
    case STATE_IDLE
        if waitForChange
          % Nach Erfolg: Warten bis sich mindestens ein Sensor wert ändert
            if (hallA ~= prevA) || (hallB ~= prevB) || (hallC ~= prevC)
                waitForChange = int32(0);
                state = STATE_PRUEFE;
                stableCount = int32(1);
                prevA = int32(hallA);
                prevB = int32(hallB);
                prevC = int32(hallC);
            end
        else
            % Normaler Start nach Fehlversuch
            state = STATE_PRUEFE;
            stableCount = int32(1);
            prevA = int32(hallA);
            prevB = int32(hallB);
            prevC = int32(hallC);
        end
 
    case STATE_PRUEFE
        % Stabilität der gesamten Kombination prüfen
        if (hallA == prevA) && (hallB == prevB) && (hallC == prevC)
            stableCount = stableCount + 1;
        else
            stableCount = int32(1);
            prevA = int32(hallA);
            prevB = int32(hallB);
            prevC = int32(hallC);
        end
 
        % Nur bei stabiler Kombination auswerten sonst Fehlversuch
        if stableCount >= N_STABLE
            if (hallA == 1) && (hallB == 0) && (hallC == 1)
                state = STATE_ERFOLG;
            else
                state = STATE_FEHL;
            end
        end
 
    case STATE_ERFOLG
        LED_gruen = int32(1);
        lastWasSuccess = int32(1);
 
    case STATE_FEHL
        LED_rot = int32(1);
        lastWasSuccess = int32(0);
end
 
% Ausgabe LCD_Display
textStr = '                ';
 
switch state
    case STATE_IDLE
        if waitForChange
            textStr = 'Magnet aendern ';
        else
            textStr = '    Bereit    ';
        end
    case STATE_PRUEFE
        textStr = '  Pruefe...   ';
    case STATE_ERFOLG
        textStr = 'Erfolg! Code941';
    case STATE_FEHL
        textStr = 'Fehlversuch    ';
end
 
for i = 1:16
    lcdData(i) = uint8(textStr(i));
end
 
end
 
 
</syntaxhighlight>
</small></small>
|}
 
|}
 
 
 
'''Taster Entprellen'''
 
Die Funktion Entprellfunktion_Reset dient zur Entprellung der Reset-Taste. Das rohe Eingangssignal resetRaw wird nur dann als gültiger Reset erkannt, wenn es über mehrere aufeinanderfolgenden Abtastungen hinweg den Wert 1 besitzt. Dazu wird ein Zähler verwendet, der bei jedem High-Signal erhöht und bei einem Low-Signal zurückgesetzt wird. Erst wenn die definierte Entprellzeit von 20ms erreicht ist, wird das entprellte Reset-Signal resetDeb gesetzt und ausgegeben.
 
{| class="wikitable"
|-
|-
|10|| 3 || PIC-M0805 Permanent-Magnet Rund (Ø x L) 8 mm x 5 mm N35 1.19 T (max) [https://www.conrad.de/de/p/pic-m0805-permanent-magnet-rund-o-x-l-8-mm-x-5-mm-n35-1-19-t-max-grenztemperatur-max-80-c-185106.html?hk=SEM&WT.mc_id=google_pla&qwer=CjwKCAjwup3HBhAAEiwA7euZut289OvnQ_yJjdX8EWYxsnP2JUY_S8y7tHQAJEZ0eNh3mNfZvfZpbBoCSWsQAvD_BwE&utm_source=google&utm_medium=cpc&utm_campaign=DE+-+PMAX+-+Nonbrand+-+Private+Labels&utm_id=18711827708&gad_source=1&gad_campaignid=18711932588&gbraid=0AAAAAD1-3H6DFp7_TuWXZsj9KMmAYSViz&gclid=CjwKCAjwup3HBhAAEiwA7euZut289OvnQ_yJjdX8EWYxsnP2JUY_S8y7tHQAJEZ0eNh3mNfZvfZpbBoCSWsQAvD_BwE]
 
{|
| <small><small>
{| class="wikitable"
|-
|-
|11|| 1 || 3D-Druck Gehäuse
| <div style="width:800px; height:400px; overflow:scroll; border: hidden">
<syntaxhighlight lang="cpp" style="border: none; background-color: #EFF1C1; font-size:larger">
 
%****************************************************************
% Funktion        : Entprellfunktion_Reset                      *
%                                                              *
% Datei          : Polar_Lock_Neu.slx                          *
%                                                              *
% Datum          : 28.11.2025                                  *
%                                                              *
% Betreuer        : Marc Ebmeyer                                *
%                                                              *
% Funktion        : Entprellung der Reset-Taste                *
%                                                              *
% Implementation  : Matlab R2024b                              *
%                                                              *
% Author          : Barinder Singh und Yash Uppal              *
%                                                              *
% Hardware        : Arduino Uno R3                              *
%                                                              *
% Letzte Änderung : 03.01.2026                                  *
%                                                              *
%****************************************************************
function resetDeb = Entprellfunktion_Reset(resetRaw)
 
 
 
N_Entprell = int32(2);  % Entprellzeit = 20 ms
 
persistent cnt;            % Zähler für aufeinanderfolgende High-Samples
persistent entprellt;      %  Entprelltes Reset-Signal
 
if isempty(cnt)
    cnt = int32(0);
end
if isempty(entprellt)
    entprellt = int32(0);
end
 
%% Entprellung
if resetRaw == 1
    if cnt < N_Entprell
        cnt = cnt + 1;
    end
else
    cnt = int32(0);
    entprellt = int32(0);
end
 
if cnt >= N_Entprell
    entprellt = int32(1);
end
 
resetDeb = entprellt;
end
 
</syntaxhighlight>
</small></small>
|}
|}


= Umsetzung (HW/SW) =
|}


= Komponententest =
= Komponententest =
{| class="wikitable"
|+ style = "text-align: left"| Tabelle: Komponententest (aktualisiert: 15.12.2025)
|-
! Nr. !! Anzahl !! Preis pro Stück  !! Beschreibung !! Link !! Teststatus !! Testdatum
|-
|1 || 3 || 0,99€ || Hallsensor, digital, bipolar, latch, 3,8 - 24 V || [https://www.reichelt.de/de/de/shop/produkt/hallsensor_digital_bipolar_latch_3_8_-_24_v-25718] || getestet || 20.10.2025
|-
|2 || 1 || 20,80€ || Microkontroller: Arduino Uno R3 ||[https://www.reichelt.de/de/de/shop/produkt/arduino_uno_rev_3_dip-variante_atmega328p_usb-154902?PROVID=2788&gad_source=1&gad_campaignid=1622074784&gbraid=0AAAAADwnxtYWr4rv9stjKvhER85GDINAL&gclid=CjwKCAjwup3HBhAAEiwA7euZulQv76IGeucteBGZutdqjTXbLa4RvBNTX9rg51XMmAmExvRLPDT7zhoCcb8QAvD_BwE] || getestet || 20.10.2025
|-
|3  || 1 || 3,78€ || I2C LCD 1602 16x2 Module || [https://funduinoshop.com/elektronische-module/displays/lcd/1602-i2c-lcd-modul-mit-hd44780]  || getestet || 20.10.2025
|-
|4  || div. || - || Widerstände || werden durch die Hochschule zur Verfügung gestellt || Kein Test notwendig || -
|-
|5 || 1 || 3,90€ || Netzteil für Mikrocontroller - 9V, 1A ||[https://funduinoshop.com/werkstatt/stromversorgung/netzteile/netzteil-fuer-mikrocontroller-9v-1a] || getestet || 20.10.2025
|-
|6 || 1 || 5,99€ || Taster TRU COMPONENTS 701280 GQ 16F-S Vandalismusgeschützter Drucktaster 48 V/DC 2 A 1 x Aus/(Ein) tastend IP65 ||[https://www.conrad.de/de/p/tru-components-701280-gq-16f-s-vandalismusgeschuetzter-drucktaster-48-v-dc-2-a-1-x-aus-ein-tastend-ip65-1-st-701280.html] || getestet || 20.10.2025
|-
|7 || 1 || 1,99€ ||An/Aus-Schalter TRU COMPONENTS 700185 Wippschalter R13-112A B/B 0-I 250 V/AC 6 A 1 x Aus/Ein rastend || [https://www.conrad.de/de/p/tru-components-700185-wippschalter-r13-112a-b-b-0-i-250-v-ac-6-a-1-x-aus-ein-rastend-1-st-1565955.html]  || getestet || 20.10.2025
|-
|8|| 2 || - ||LEDs (Grün/Rot) || werden durch die Hochschule zur Verfügung gestellt || getestet || 20.10.2025
|-
|9|| div. || - || Verbindungskabeln || werden durch die Hochschule zur Verfügung gestellt || Kein Test notwendig || -
|-
|10|| 3 || 1,29€ || PIC-M0805 Permanent-Magnet Rund (Ø x L) 8 mm x 5 mm N35 1.19 T (max) || [https://www.conrad.de/de/p/pic-m0805-permanent-magnet-rund-o-x-l-8-mm-x-5-mm-n35-1-19-t-max-grenztemperatur-max-80-c-185106.html?hk=SEM&WT.mc_id=google_pla&qwer=CjwKCAjwup3HBhAAEiwA7euZut289OvnQ_yJjdX8EWYxsnP2JUY_S8y7tHQAJEZ0eNh3mNfZvfZpbBoCSWsQAvD_BwE&utm_source=google&utm_medium=cpc&utm_campaign=DE+-+PMAX+-+Nonbrand+-+Private+Labels&utm_id=18711827708&gad_source=1&gad_campaignid=18711932588&gbraid=0AAAAAD1-3H6DFp7_TuWXZsj9KMmAYSViz&gclid=CjwKCAjwup3HBhAAEiwA7euZut289OvnQ_yJjdX8EWYxsnP2JUY_S8y7tHQAJEZ0eNh3mNfZvfZpbBoCSWsQAvD_BwE] || getestet || 20.10.2025
|-
|11|| 1 || - || 3D-Druck Gehäuse || Das Modell wird aus den CAD-Daten generiert und im 3D-Druck gefertigt || getestet || 20.12.2025
|-
|<del>12</del>|| <del>1 </del>|| - ||<del> Breadboard </del>||<del> wird durch die Hochschule zur Verfügung gestellt</del> ||<del> Kein Test notwendig</del> ||<del> -</del>
|}
<br>
<br>
<gallery widths="400px" heights="400px" >
Datei:Systemintegration und Gesamttest 1.jpg|400px|Abb.12- Gesamttest Nr. 1 "falsche Kombination"
Datei:Systemintegration und Gesamttest 2.jpg|400px|Abb.13- Gesamttest Nr. 2 "richtige Kombination"
</gallery>


= Ergebnis =
= Ergebnis =
Das Projekt „Polarlock“ wurde erfolgreich realisiert. Sämtliche Anforderungen konnten erfüllt werden, und die im Projektverlauf aufgetretenen zahlreichen Herausforderungen wurden systematisch analysiert und gelöst. Die implementierten Sensoren erkennen zuverlässig die Magnetkonfiguration. Bei korrekter Reihenfolge leuchtet die grüne LED, bei falscher Reihenfolge wird die rote LED aktiviert. Auch das LCD-Display arbeitet zuverlässig und stellt die Systemzustände korrekt dar.
'''Lösungen zu den Fragen'''
1) Blau
2) 2
3) Weiß
4) 4
5) Schwarz
6) 6


== Zusammenfassung ==
== Zusammenfassung ==
=== Lessons Learned ===
=== Lessons Learned ===
Eine zentrale Erkenntnis aus dem Projekt betrifft die Planung und Zeitgestaltung. Zu Beginn hätten Ziele und Anforderungen klarer definiert werden müssen, um Verzögerungen zu vermeiden. Für zukünftige Projekte ist daher ein realistischerer Zeitplan mit ausreichenden Pufferzeiten, insbesondere für komplexe Aufgaben wie Programmierung und CAD-Konstruktion, erforderlich.
Darüber hinaus zeigte sich, dass die Verwendung digitaler Hall-Sensoren die Implementierung unnötig erschwert hat. Analoge Hall-Sensoren hätten eine flexiblere und robustere Auswertung ermöglicht. Zudem brachte das gewählte Würfelkonzept Nachteile mit sich, da die digitalen Hall-Sensoren ihren letzten Zustand speichern und nach jedem erfolgreichen Spiel manuell mit einem Magneten zurückgesetzt werden müssen. Ohne diesen Reset wird beim nächsten Durchlauf erneut derselbe Zustand ausgegeben.


== Projektunterlagen ==
== Projektunterlagen ==
=== Projektplan ===
=== Projektplan ===
[[Datei:Gantt Diagramm MTR5 Polar Lock.jpg|1000px|thumb|links|Abb.14- Projektplan des Projekts "Polarlock"]]
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
=== Projektdurchführung ===
=== Projektdurchführung ===


== YouTube Video ==
Das Projekt folgt einem strukturierten Zeitplan und besteht aus fünf entscheidenden Phasen. Die Vorbereitungsphase legt den Grundstein für das Projekt: Erste Ideen werden entwickelt, in unsere Wiki-Seite eingetragen und finalisiert, bevor die endgültige Einkaufsliste erstellt wird. Darauf aufbauend beginnt die Planungsphase, in der der Projektplan erstellt, die bestellten Komponenten getestet und das CAD-Modell ausgearbeitet wird. Die zentrale Durchführungsphase startet am 06. November 2025. In dieser Phase werden wesentliche Arbeitsschritte umgesetzt, darunter der 3D-Druck des Gehäuses und die Erstellung des Simulink-Modells. Diese Phase läuft bis zum 15. Dezember 2025. Anschließend folgt die Testphase, in der die Schaltung und das Simulink-Modell einzeln geprüft, anschließend erstmals zusammen integriert und einem vollständigen Gesamttest unterzogen werden. Danach wird die Präsentation erstellt. Den Abschluss bildet die Teilnahme an der Projektmesse am 15. Januar 2026, bei der das Projekt den Besuchern vorgestellt wird.
 
== Zip-Archiv==
 
In diesem Zip-Ordner befinden sich alle Originaldateien für das Projekt: [[Datei: Polarlock WS25-26.zip ]]
<br>
<br>


== Weblinks ==
== Weblinks ==
Produktdatenblatt der Hall-Sensoren: https://cdn-reichelt.de/documents/datenblatt/B400/TLE49X5L.pdf
Steuerung der Hall-Sensoren am Arduino: https://www.youtube.com/watch?v=feraKorln3o&t=243s
Produktdatenblatt der Reset-Taste: https://asset.conrad.com/media10/add/160267/c1/-/en/000701280DS00/datenblatt-701280-tru-components-701280-gq-16f-s-vandalismusgeschuetzter-drucktaster-48-vdc-2-a-1-x-ausein-tastend-ip65-1-st.pdf
Produktdatenblatt von Arduino Uno R3: https://docs.arduino.cc/resources/datasheets/A000066-datasheet.pdf
Einführung in Simulink: https://www.uni-ulm.de/fileadmin/website_uni_ulm/iui.inst.050/vorlesungen/sose15/err/simulink_einfuhrung.pdf


== Literatur ==
== Literatur ==

Aktuelle Version vom 15. Januar 2026, 14:28 Uhr

Autoren: Barinder Singh, Yash Uppal
Betreuer: Marc Ebmeyer
Abb.01. Polarlock


Einleitung

Im Rahmen des Praktikums „Fachpraktikum Mechatronik“ im Studiengang Mechatronik an der Hochschule Hamm-Lippstadt wird ein kompaktes Escape-Game-Rätsel „Polar-Lock“ entwickelt, das Magnetismus und digitale Signalverarbeitung praktisch erfahrbar macht. Polar-Lock ist ein kompaktes Escape-Game-System, das die Grundlagen des Magnetismus mit Hall-Sensorik in einem eingebetteten Aufbau demonstriert.

Verwendet werden drei farbige, nummerierte Würfel (rot, blau, grün), in die jeweils ein Permanentmagnet so eingebaut ist, dass sein Nordpol eindeutig auf eine definierte, nummerierte Würfelseite zeigt. Die beigelegte Rätselzettel enthält Hinweise, welcher Würfel mit welcher nummerierten Seite in welchen Slot (A–C) zu legen ist. Elektronisch wird ausschließlich geprüft, ob je Slot ein Magnet vorhanden ist und ob dessen Polausrichtung (Nord/Süd) der Vorgabe entspricht. Farbe und Nummer dienen der Rätselführung, gehen aber nicht in die elektronische Bewertung ein. Unter jedem Slot befindet sich ein Hall-Effekt-Sensor, dessen digitales Signal durch den Arduino UNO R3 ausgewertet wird.

Der Start erfolgt über eine Start-Taste. Fehlermeldungen und das Endergebnis werden über ein LCD-Display (16×2) ausgegeben. Sind alle drei farbmarkierten Würfel in den vorgesehenen Slots (A–C) mit der jeweils korrekten Polrichtung (Nord/Süd) eingesetzt, meldet das System den Erfolg: Die grüne LED leuchtet und auf dem LCD-Display erscheint der dreistellige Code. Liegt hingegen eine Fehlbelegung vor, etwa durch einen falschen Slot oder eine falsche Polausrichtung, zeigt das Display die Meldung „Fehlversuch“, und die rote LED schaltet ein und bleibt aktiv, bis ein neuer Versuch über den Reset-Taster gestartet wird. In dieser verriegelten Phase werden weitere Änderungen an den Magneten nicht ausgewertet. Das System arbeitet vollständig offline, und befindet sich in einem kompakten, tragbaren 3D-gedruckten Gehäuse, das definierte Sensorabstände und eindeutig markierte Slots sicherstellt.


Schwierigkeitsgrad: Mittel

Lernziel: Mit Spaß am Experimentieren vertiefen die Besucher der Projektmesse Magnetismus (Hall-Effekt) und wenden Grundlagen der Elektrotechnik an, um die Rätsel zu lösen.

Bezug zum MTR Studium: Elektronik 1, Elektrotechnik 1&2, Informatik 1 (Praktikum), Informatik 2 (Praktikum)

So sehen die beigestellten Rätsel aus:

1) In der LED-Technik steht eine bestimmte Farbe für kurze Wellenlängen und hohe Signalwirkung bei Statusanzeigen. Welche Farbe ist das?


2) Ein digitales System arbeitet mit binären Signalen. Wie viele verschiedene Zustände kann ein einzelnes Bit annehmen?


3) In der Elektronik werden Skalen, Referenzflächen oder Anzeigen häufig in einer Farbe ausgeführt, die nahezu das gesamte sichtbare Licht reflektiert und dadurch besonders gut erkennbar ist. Welche Farbe ist das?


4) Ein digitaler Sensor erkennt „Signal vorhanden“ oder „kein Signal“. Kombiniert man diese Information mit zwei möglichen Magnetpolen, wie viele Zustandskombinationen ergeben sich insgesamt?


5) In der Elektrotechnik wird für Masse, Abschirmung oder inaktive Bereiche häufig eine sehr dunkle Farbe verwendet. Welche Farbe ist das?


6) Ein digitaler Codeträger besitzt mehrere klar unterscheidbare Zustände. Entspricht die Anzahl dieser Zustände der Seitenzahl eines klassischen Würfels, wie viele Zustände sind das?


Die sechs Rätselaufgaben des Polarlocks sind so gestaltet, dass die Besucher der Projektmesse mithilfe grundlegender Kenntnisse aus der Elektrotechnik, Digitaltechnik und dem Magnetismus die richtige Kombination der drei Würfel ermitteln können. Die erste, dritte und fünfte Frage liefern Informationen, aus denen sich jeweils die korrekte Farbe des Würfels in den drei Slots ableiten lässt. Die zweite, vierte und sechste Frage beziehen sich hingegen auf die richtige Orientierung bzw. nummerierte Seite des jeweiligen Würfels und verknüpfen damit logisches Denken mit einfachen physikalischen und elektronischen Grundlagen.


Anforderungen

ID Inhalt Priorität Ersteller Datum Geprüft von Datum
1 Das Spiel muss in maximal 5 Minuten lösbar sein. Hoch Singh/Uppal 03.10.2025 Singh 15.12.2025
2 Eine Auswahl passender elektronischer Komponenten muss erfolgen. Hoch Singh/Uppal 03.10.2025 Singh 15.12.2025
3 Die Konstruktion der benötigten CAD-Modelle für mechanische Bauteile muss erfolgen. Hoch Singh/Uppal 03.10.2025 Singh 15.12.2025
4 Die Verdrahtung aller elektronischen Komponenten mit dem Mikrocontroller muss vollständig umgesetzt und funktionsfähig sein. Hoch Singh/Uppal 03.10.2025 Singh 15.12.2025
5 Das Spiel startet beim Drücken von Taste 1 (Start-Button). Hoch Singh/Uppal 03.10.2025 Singh 15.12.2025
6 Den Spielern wird per Ausdruck ein Rätseltext bereitgestellt, der die Lösungsvoraussetzungen für das Magnetwürfel-Puzzle vollständig beschreibt. Hoch Singh/Uppal 03.10.2025 Singh 15.12.2025
7 Die korrekte Lösung des Rätsels führt dazu, dass jeder Würfel mit der richtigen nummerierten Seite in den jeweiligen korrekten Slots gelegt wird. Hoch Singh/Uppal 03.10.2025 Singh 15.12.2025
8 Die Rätsel haben einen mittleren Schwierigkeitsgrad. Hoch Singh/Uppal 03.10.2025 Singh 15.12.2025
9 Je Slot (A/B/C) wird Magnetpräsenz und korrekte Polorientierung (N/S) über ein Hallsenor detektiert. Hoch Singh/Uppal 03.10.2025 Uppal 15.12.2025
10 Wenn alle Würfel korrekt platziert und ausgerichtet sind, leuchtet die grüne LED und der dreistellige Code wird auf dem LCD-Display 16×2 ausgegeben. Hoch Singh/Uppal 03.10.2025 Uppal 15.12.2025
11 Ein Reset-Taster (Taste 2) erlaubt Neustart nach Spielende oder Fehlversuch. Hoch Singh/Uppal 03.10.2025 Uppal 15.12.2025
12 Wenn mindestens ein Würfel falsch liegt, zeigt das LCD „Fehlversuch“; die rote LED leuchtet dauerhaft, bis ein neuer Versuch mit dem Reset-Taster gestartet wird. Hoch Singh/Uppal 03.10.2025 Uppal 15.12.2025
13 Die erforderlichen CAD-Modelle, Datenblätter und Programmdaten müssen dokumentiert werden. Hoch Singh/Uppal 03.10.2025 Uppal 15.12.2025
14 Ein Wiki-Artikel muss nach Anleitung fertiggestellt werden. Hoch Singh/Uppal 03.10.2025 Uppal 15.12.2025

Funktionaler Systementwurf/ Technischer Systementwurf

Polar-Lock ist ein eingebettetes Rätselsystem, dass die korrekte Polorientierung der drei farbig markierten, seitennummerierten Würfel mit eingebauten Magneten in den Slots A–C prüft und bei Erfolg einen dreistelligen Code ausgibt. Der beigelegte Rätselzettel enthält Rätsel, die korrekt gelöst werden müssen. Die korrekte Lösung des Rätsels führt dazu, dass jeder Würfel mit der richtigen nummerierten Seite in den jeweiligen korrekten Slots gelegt wird. Farben der Würfel (rot/blau/grün) dienen ausschließlich als Rätselhinweis; das System prüft nur Slot und Polung. Elektronisch werden ausschließlich Magnetpräsenz und Polrichtung bewertet. Die Hardware basiert auf einem Arduino UNO R3 mit drei digitalen Hall-Schaltern vom Typ Infineon TLE4935L (bipolarer Latch), einem LCD-Display 16×2 mit I²C-Backpack, einer Start- und einer Reset-Taste sowie zwei LEDs (grün/rot). Pro Slot sitzt ein TLE4935L direkt unter der Auflagefläche des Würfels. Der TLE4935L verfügt über einen Open-Collector-Ausgang und liefert ein digitales Signal, das abhängig von der anliegenden magnetischen Polorientierung schaltet. Als Latch hält der Sensor seinen Schaltzustand, bis ein Magnetfeld der entgegengesetzten Polung erkannt wird. Die Sensorsignale werden an den digitalen Eingängen D2, D3 und D4 des Arduino UNO R3 eingelesen und zur Auswertung der korrekten Polorientierung je Slot herangezogen. Die Tasten liegen an D5 (Start) und D6 (Reset). Der Start-Taster beginnt das Spiel und der Reset-Taster setzt den Spielzustand zurück.

Der Ablauf des Spiels ist: nach dem Einschalten zeigt das LCD „Bereit – Start drücken“, beide LEDs sind aus. Mit dem Startsignal liest der Mikrocontroller die drei Hall-Eingänge in einem kurzen Stabilitätsfenster (Entprellung/Filter, z. B. 30–100 ms). Wenn alle drei Würfel vom Spieler in den Slots gelegt werden, vergleicht das System das Ergebnis mit der vorgegebenen Lösung (N/S je Slot). Sind alle Vorgaben erfüllt, leuchtet die grüne LED und der dreistellige Code wird ausgegeben. Liegt mindestens ein Würfel mit der falschen Polung, zeigt das LCD „Fehlversuch“ und die rote LED bleibt an, bis die Reset-Taste gedrückt wird.

Abbildung 1 zeigt den funktionalen Systementwurf. In den Abbildungen 2 und 4 sind jeweils die technische Schaltung und der technische Systementwurf dargestellt. Die Abbildung 3 legt den Schaltplan des Polarlocks dar.


Abb.02- Funktionaler Systementwurf


Abb.03- Technische Schaltung
Abb.04- Schaltplan des Polarlocks








































Abb.05- Technischer Systementwurf

Technischer Systementwurf

Der in der Abbildung dargestellte technische Systementwurf zeigt die Architektur des Arduino-basierten Escape-Game-Moduls „Polarlock“. Der Arduino UNO R3 übernimmt die zentrale Verarbeitung der Eingangssignale. Die von den Hall-Sensoren erfassten magnetischen Zustände werden softwareseitig ausgewertet und mit einer vorgegebenen Soll-Konfiguration verglichen.


Eingabekomponenten

• Hall-Sensoren (Slot A–C): Drei digitale Hall-Sensoren sind an den digitalen Eingängen D2, D3 und D4 des Arduino UNO R3 angeschlossen. Sie dienen zur Erkennung der magnetischen Polarität bzw. Anwesenheit von Magneten in den jeweiligen Slots des Spielmoduls.

• Start-Taster: Der Start-Taster ist am digitalen Eingang D5 angeschlossen und dient zur Initialisierung des Spiels bzw. zum Starten der Code-Überprüfung.

• Reset-Taster: Der Reset-Taster ist am digitalen Eingang D6 angeschlossen und ermöglicht das Zurücksetzen des Systems in den Ausgangszustand.

• Spannungsversorgung: Eine externe Spannungsquelle versorgt den Arduino sowie die angeschlossenen Peripheriekomponenten mit Betriebsspannung.


Ausgabekomponenten

• LCD-Display: Das LCD-Display wird vom Arduino angesteuert und dient zur Ausgabe von Statusmeldungen, Benutzerhinweisen sowie Spielrückmeldungen (z. B. „bereit“, „Fehlversuch“, „Erfolg“).

• Grüne LED: signalisiert, dass alle Würfel mit der richtigen Seite in die jeweiligen richtigen Slots platziert wurden.

• Rote LED: signalisiert einen Fehlversuch.

Komponentenspezifikation

Tabelle : Materialliste (aktualisiert)
Nr. Anzahl Preis pro Stück Beschreibung Link
1 3 0,99€ Hallsensor, digital, bipolar, latch, 3,8 - 24 V [1]
2 1 20,80€ Microkontroller: Arduino Uno R3 [2]
3 1 3,78€ I2C LCD 1602 16x2 Module [3]
4 div. - Widerstände werden durch die Hochschule zur Verfügung gestellt
5 1 3,90€ Netzteil für Mikrocontroller - 9V, 1A [4]
6 1 5,99€ Taster TRU COMPONENTS 701280 GQ 16F-S Vandalismusgeschützter Drucktaster 48 V/DC 2 A 1 x Aus/(Ein) tastend IP65 [5]
7 1 1,99€ An/Aus-Schalter TRU COMPONENTS 700185 Wippschalter R13-112A B/B 0-I 250 V/AC 6 A 1 x Aus/Ein rastend [6]
8 2 - LEDs (Grün/Rot) werden durch die Hochschule zur Verfügung gestellt
9 div. - Verbindungskabeln werden durch die Hochschule zur Verfügung gestellt
10 3 1,29€ PIC-M0805 Permanent-Magnet Rund (Ø x L) 8 mm x 5 mm N35 1.19 T (max) [7]
11 1 - 3D-Druck Gehäuse Das Modell wird aus den CAD-Daten generiert und im 3D-Druck gefertigt
12 1 - Breadboard wird durch die Hochschule zur Verfügung gestellt


Hall-Sensoren

Ein Hall-Sensor besteht aus einem dünnen Halbleiterplättchen, durch das ein elektrischer Strom fließt. Wirkt ein Magnetfeld senkrecht auf dieses Plättchen ein, werden die Ladungsträger im Halbleiter durch die Lorentzkraft abgelenkt. Dadurch entsteht eine elektrische Spannung quer zur Stromrichtung, die sogenannte Hall-Spannung. Die Höhe dieser Spannung ist proportional zur Stärke des einwirkenden Magnetfeldes.

Beim im Projekt verwendeten Sensor handelt es sich um einen digitalen Hall-Sensor vom Typ Infineon TLE4935L, der als bipolarer Latch ausgeführt ist. Der Sensor kann Nord- und Südpol erkennen. Abhängig von der anliegenden Polung schaltet der Sensor seinen digitalen Open-Collector-Ausgang entweder in einen LOW- oder HIGH-Zustand. Als Latch speichert der TLE4935L diesen Schaltzustand und hält ihn so lange, bis ein Magnetfeld der entgegengesetzten Polung erkannt wird oder zurückgesetzt wird.

Im Gegensatz zu analogen Hall-Sensoren liefert der TLE4935L kein kontinuierliches Spannungssignal, sondern ein stabiles digitales Signal, das zur zuverlässigen Erkennung der Polorientierung eines Magneten geeignet ist. Diese Eigenschaft macht den Sensor besonders geeignet für Anwendungen wie Polar-Lock, bei denen eine eindeutige und reproduzierbare Zustandsentscheidung erforderlich ist.

Pinbelegung der Hall-Sensoren:

• 1 = Versorgungsspannung (5V)

• 2 = GND (0V)

• 3 = Data (Digitial in Pin 3, 4, 6)


LCD-Display

Als Display kommt "1602 I2C LCD Modul mit HD44780" zum Einsatz. Dieses verfügt über die folgende Eigenschaften:

• 2 Zeichenreihen, jeweils 16 Zeichen pro Reihe

• Display mit blauer Hintergrundbeleuchtung und weißer Schrift

• Betriebsspannung: 5V

• Pinbelegung: 4 Pins (VCC, GND, SDA, SCL)

• I2C HD44780 Modul ist direkt mit dem LCD verlötet


Arduino Uno R3

Als Mikrocontroller kommt ein Arduino Uno R3 (DIP-Variante) zum Einsatz, der über folgende Eigenschaften besitzt:

• Betriebsspannung: 5 V

• 14 digitale I/O - Schnittstellen, 6 analoge Eingänge

• ATmega328P, 8-Bit AVR RISC

• Flash Memory: 32 KByte

• SRAM : 2 KByte

• EEPROM: 1 KByte

• Takt: 16 MHz

Umsetzung (Hardware/Software)

Hardware

Das Gehäuse der Hardware wurde für die Fertigung im 3D-Druckverfahren ausgelegt. Hierzu wurden mit der Software SolidWorks mehrere CAD-Modelle der einzelnen Bauelemente erstellt. Diese sind im Folgenden dargestellt:

Die Abbildung 4 zeigt die Gesamte Baugruppe des Polarlocks. In der Frontfläche befindet sich eine kreisförmige Aussparung, die für Reset Taster vorgesehen ist. Daneben ist eine rechteckige Öffnung integriert, welche für die Montage des LCD-Displays dient. Unterhalb des Displays sind die Platzierungen für die Würfel angeordnet. Diese Bereiche sind so gestaltet, dass die Würfel eindeutig positioniert werden können. In Abbildung 5 ist eine einzelne Würfel. Im Inneren des Würfel befindet sich eine Ausschnitt für das Magnet zur erkennung der Würfelposition. Abbildung 6 zeigt die Unterseite der Baugruppe, welche als Trägerstruktur für die gesamte Konstruktion dient. Sie bildet die mechanische Basis und ermöglicht die Befestigung weitere Komponenten wie z.B. Arduino, Elektronik und Sensoren.

Abb.06:CAD_Zeichnung Gesamte Baugruppe
Abb.07:CAD_Zeichnung Würfel
Abb.08:CAD_Zeichnung Bottom Platte

























































Software

Programmablaufplan

In Abbildung 9 ist der Programmablaufplan des Polarlocks dargestellt.

Abb.09- Programmablaufplan


























Simulink-Modell

Die Abbildung 9 legt das Simulink-Modell des Polarlocks dar. Das Modell ist farblich markiert, um die Signalflüsse erkenntlich zu machen. Gelb markierte Blöcke stellen die Eingänge dar: Dazu gehören die drei Hall-Sensoren an den digitalen Pins 3, 4 und 6, die jeweils ein digitales Signal zur Magneterkennung liefern, sowie die Reset-Taste an Pin 9. Das Reset-Signal wird zusätzlich durch einen Entprell-Block geführt, um ein stabiles, störungsfreies Eingangssignal zu erzeugen. Der graue Block in der Mitte bildet die zentrale Spiellogik, in der alle Eingangssignale zusammengeführt und ausgewertet werden. Grün markierte Blöcke kennzeichnen die Ausgänge: Eine grüne LED an Pin 11 signalisiert einen erfolgreichen Spielabschluss und die rote LED an Pin 12 zeigt einen Fehlversuch. Über den LCD-Ausgang werden Statusmeldungen und Textinformationen an ein über die I²C-Schnittstelle angebundenes Display übertragen und dort angezeigt.

Abb.10- Simulink-Modell des Polarlocks

























Spiellogik

Der Block „Polarlock_Logik“ ist ein MATLAB-Simulink-Subsystem. Dieser stellt die zentrale Spiellogik des Systems dar und besitzt klar definierte Ein- und Ausgänge. Im Anschluss an die Abbildung des Subsystems „Spiel_Logik“ folgt der zugehörige MATLAB-Code, der die interne Spiellogik implementiert.

Abb.11- Subsystem "Spiel_logik"














%****************************************************************
% Funktion        : Polar_Lock_Neu.slx                          *
%                                                               *
% Datum           : 28.11.2025                                  *
%                                                               *
% Betreuer        : Marc Ebmeyer                                *
%                                                               *
% Funktion        : Steuerung des Polarlocks                    *
%                                                               *
% Implementation  : Matlab R2024b                               *
%                                                               *
% Author          : Barinder Singh und Yash Uppal               *
%                                                               *
% Hardware        : Arduino Uno R3                              *
%                                                               *
% Letzte Änderung : 14.01.2026                                  *
%                                                               *
%****************************************************************

function [LED_gruen, LED_rot, lcdData] = SpielLogik(hallA, hallB, hallC, reset)

% Persistent Variablen
persistent state                  % Aktueller Stand des Spiels
persistent prevA prevB prevC      % Letzte stabile Hall-Sensorwerte
persistent stableCount            % Zähler für stabile Messungen
persistent prevReset              % Reset Zustand der letzten Iteration
persistent waitForChange          % Warten bis 
persistent lastWasSuccess

if isempty(state)
    state = int32(0);   % STATE_IDLE
end
if isempty(prevA)
    prevA = int32(hallA);
    prevB = int32(hallB);
    prevC = int32(hallC);
end
if isempty(stableCount)
    stableCount = int32(0);
end
if isempty(prevReset)
    prevReset = int32(0);
end
if isempty(waitForChange)
    waitForChange = int32(0);
end
if isempty(lastWasSuccess)
    lastWasSuccess = int32(0);
end

% Verschiedene Zustände
STATE_IDLE   = int32(0);
STATE_PRUEFE = int32(1);
STATE_ERFOLG = int32(2);
STATE_FEHL   = int32(3);

N_STABLE = int32(50);   % 50 Sensor Werte

% LCD und LEDs Output
LED_gruen = int32(0);
LED_rot   = int32(0);
lcdData   = uint8(32 * ones(16,1));

% INPUT_PULLUP: gedrückt = 0
reset_i = int32(reset == 0);
resetFlanke = int32(reset_i == 1 && prevReset == 0);
prevReset = reset_i;

if resetFlanke
    state = STATE_IDLE;
    stableCount = int32(0);

    % Nach Erfolg muss Zustand an Hall sensor geändert werden
    if lastWasSuccess
        waitForChange = int32(1);
    else
        waitForChange = int32(0);
    end

    prevA = int32(hallA);
    prevB = int32(hallB);
    prevC = int32(hallC);
end

% Zustand
switch state

    case STATE_IDLE
        if waitForChange
          % Nach Erfolg: Warten bis sich mindestens ein Sensor wert ändert
            if (hallA ~= prevA) || (hallB ~= prevB) || (hallC ~= prevC)
                waitForChange = int32(0);
                state = STATE_PRUEFE;
                stableCount = int32(1);
                prevA = int32(hallA);
                prevB = int32(hallB);
                prevC = int32(hallC);
            end
        else
            % Normaler Start nach Fehlversuch
            state = STATE_PRUEFE;
            stableCount = int32(1);
            prevA = int32(hallA);
            prevB = int32(hallB);
            prevC = int32(hallC);
        end

    case STATE_PRUEFE
        % Stabilität der gesamten Kombination prüfen 
        if (hallA == prevA) && (hallB == prevB) && (hallC == prevC)
            stableCount = stableCount + 1;
        else
            stableCount = int32(1);
            prevA = int32(hallA);
            prevB = int32(hallB);
            prevC = int32(hallC);
        end

        % Nur bei stabiler Kombination auswerten sonst Fehlversuch
        if stableCount >= N_STABLE
            if (hallA == 1) && (hallB == 0) && (hallC == 1)
                state = STATE_ERFOLG;
            else
                state = STATE_FEHL;
            end
        end

    case STATE_ERFOLG
        LED_gruen = int32(1);
        lastWasSuccess = int32(1);

    case STATE_FEHL
        LED_rot = int32(1);
        lastWasSuccess = int32(0);
end

% Ausgabe LCD_Display
textStr = '                ';

switch state
    case STATE_IDLE
        if waitForChange
            textStr = 'Magnet aendern ';
        else
            textStr = '    Bereit     ';
        end
    case STATE_PRUEFE
        textStr = '   Pruefe...   ';
    case STATE_ERFOLG
        textStr = 'Erfolg! Code941';
    case STATE_FEHL
        textStr = 'Fehlversuch    ';
end

for i = 1:16
    lcdData(i) = uint8(textStr(i));
end

end


Taster Entprellen

Die Funktion Entprellfunktion_Reset dient zur Entprellung der Reset-Taste. Das rohe Eingangssignal resetRaw wird nur dann als gültiger Reset erkannt, wenn es über mehrere aufeinanderfolgenden Abtastungen hinweg den Wert 1 besitzt. Dazu wird ein Zähler verwendet, der bei jedem High-Signal erhöht und bei einem Low-Signal zurückgesetzt wird. Erst wenn die definierte Entprellzeit von 20ms erreicht ist, wird das entprellte Reset-Signal resetDeb gesetzt und ausgegeben.

%****************************************************************
% Funktion        : Entprellfunktion_Reset                      *
%                                                               *
% Datei           : Polar_Lock_Neu.slx                          *
%                                                               *
% Datum           : 28.11.2025                                  *
%                                                               *
% Betreuer        : Marc Ebmeyer                                *
%                                                               *
% Funktion        : Entprellung der Reset-Taste                 *
%                                                               *
% Implementation  : Matlab R2024b                               *
%                                                               *
% Author          : Barinder Singh und Yash Uppal               *
%                                                               *
% Hardware        : Arduino Uno R3                              *
%                                                               *
% Letzte Änderung : 03.01.2026                                  *
%                                                               *
%****************************************************************
function resetDeb = Entprellfunktion_Reset(resetRaw)



N_Entprell = int32(2);   % Entprellzeit = 20 ms

persistent cnt;            % Zähler für aufeinanderfolgende High-Samples
persistent entprellt;       %  Entprelltes Reset-Signal

if isempty(cnt)
    cnt = int32(0);
end
if isempty(entprellt)
    entprellt = int32(0);
end

%% Entprellung 
if resetRaw == 1
    if cnt < N_Entprell
        cnt = cnt + 1;
    end
else
    cnt = int32(0);
    entprellt = int32(0);
end

if cnt >= N_Entprell
    entprellt = int32(1);
end

resetDeb = entprellt;
end

Komponententest

Tabelle: Komponententest (aktualisiert: 15.12.2025)
Nr. Anzahl Preis pro Stück Beschreibung Link Teststatus Testdatum
1 3 0,99€ Hallsensor, digital, bipolar, latch, 3,8 - 24 V [8] getestet 20.10.2025
2 1 20,80€ Microkontroller: Arduino Uno R3 [9] getestet 20.10.2025
3 1 3,78€ I2C LCD 1602 16x2 Module [10] getestet 20.10.2025
4 div. - Widerstände werden durch die Hochschule zur Verfügung gestellt Kein Test notwendig -
5 1 3,90€ Netzteil für Mikrocontroller - 9V, 1A [11] getestet 20.10.2025
6 1 5,99€ Taster TRU COMPONENTS 701280 GQ 16F-S Vandalismusgeschützter Drucktaster 48 V/DC 2 A 1 x Aus/(Ein) tastend IP65 [12] getestet 20.10.2025
7 1 1,99€ An/Aus-Schalter TRU COMPONENTS 700185 Wippschalter R13-112A B/B 0-I 250 V/AC 6 A 1 x Aus/Ein rastend [13] getestet 20.10.2025
8 2 - LEDs (Grün/Rot) werden durch die Hochschule zur Verfügung gestellt getestet 20.10.2025
9 div. - Verbindungskabeln werden durch die Hochschule zur Verfügung gestellt Kein Test notwendig -
10 3 1,29€ PIC-M0805 Permanent-Magnet Rund (Ø x L) 8 mm x 5 mm N35 1.19 T (max) [14] getestet 20.10.2025
11 1 - 3D-Druck Gehäuse Das Modell wird aus den CAD-Daten generiert und im 3D-Druck gefertigt getestet 20.12.2025
12 1 - Breadboard wird durch die Hochschule zur Verfügung gestellt Kein Test notwendig -



Ergebnis

Das Projekt „Polarlock“ wurde erfolgreich realisiert. Sämtliche Anforderungen konnten erfüllt werden, und die im Projektverlauf aufgetretenen zahlreichen Herausforderungen wurden systematisch analysiert und gelöst. Die implementierten Sensoren erkennen zuverlässig die Magnetkonfiguration. Bei korrekter Reihenfolge leuchtet die grüne LED, bei falscher Reihenfolge wird die rote LED aktiviert. Auch das LCD-Display arbeitet zuverlässig und stellt die Systemzustände korrekt dar.


Lösungen zu den Fragen

1) Blau

2) 2

3) Weiß

4) 4

5) Schwarz

6) 6

Zusammenfassung

Lessons Learned

Eine zentrale Erkenntnis aus dem Projekt betrifft die Planung und Zeitgestaltung. Zu Beginn hätten Ziele und Anforderungen klarer definiert werden müssen, um Verzögerungen zu vermeiden. Für zukünftige Projekte ist daher ein realistischerer Zeitplan mit ausreichenden Pufferzeiten, insbesondere für komplexe Aufgaben wie Programmierung und CAD-Konstruktion, erforderlich.

Darüber hinaus zeigte sich, dass die Verwendung digitaler Hall-Sensoren die Implementierung unnötig erschwert hat. Analoge Hall-Sensoren hätten eine flexiblere und robustere Auswertung ermöglicht. Zudem brachte das gewählte Würfelkonzept Nachteile mit sich, da die digitalen Hall-Sensoren ihren letzten Zustand speichern und nach jedem erfolgreichen Spiel manuell mit einem Magneten zurückgesetzt werden müssen. Ohne diesen Reset wird beim nächsten Durchlauf erneut derselbe Zustand ausgegeben.

Projektunterlagen

Projektplan

Abb.14- Projektplan des Projekts "Polarlock"
























Projektdurchführung

Das Projekt folgt einem strukturierten Zeitplan und besteht aus fünf entscheidenden Phasen. Die Vorbereitungsphase legt den Grundstein für das Projekt: Erste Ideen werden entwickelt, in unsere Wiki-Seite eingetragen und finalisiert, bevor die endgültige Einkaufsliste erstellt wird. Darauf aufbauend beginnt die Planungsphase, in der der Projektplan erstellt, die bestellten Komponenten getestet und das CAD-Modell ausgearbeitet wird. Die zentrale Durchführungsphase startet am 06. November 2025. In dieser Phase werden wesentliche Arbeitsschritte umgesetzt, darunter der 3D-Druck des Gehäuses und die Erstellung des Simulink-Modells. Diese Phase läuft bis zum 15. Dezember 2025. Anschließend folgt die Testphase, in der die Schaltung und das Simulink-Modell einzeln geprüft, anschließend erstmals zusammen integriert und einem vollständigen Gesamttest unterzogen werden. Danach wird die Präsentation erstellt. Den Abschluss bildet die Teilnahme an der Projektmesse am 15. Januar 2026, bei der das Projekt den Besuchern vorgestellt wird.

Zip-Archiv

In diesem Zip-Ordner befinden sich alle Originaldateien für das Projekt: Datei:Polarlock WS25-26.zip

Weblinks

Produktdatenblatt der Hall-Sensoren: https://cdn-reichelt.de/documents/datenblatt/B400/TLE49X5L.pdf

Steuerung der Hall-Sensoren am Arduino: https://www.youtube.com/watch?v=feraKorln3o&t=243s

Produktdatenblatt der Reset-Taste: https://asset.conrad.com/media10/add/160267/c1/-/en/000701280DS00/datenblatt-701280-tru-components-701280-gq-16f-s-vandalismusgeschuetzter-drucktaster-48-vdc-2-a-1-x-ausein-tastend-ip65-1-st.pdf

Produktdatenblatt von Arduino Uno R3: https://docs.arduino.cc/resources/datasheets/A000066-datasheet.pdf

Einführung in Simulink: https://www.uni-ulm.de/fileadmin/website_uni_ulm/iui.inst.050/vorlesungen/sose15/err/simulink_einfuhrung.pdf

Literatur


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