Winkerrätsel - Entschlüsselung der Signalcodes: Unterschied zwischen den Versionen
Zeile 158: | Zeile 158: | ||
|RASP PI 5B 4GB mit Ladegerät und Gehäuse | |RASP PI 5B 4GB mit Ladegerät und Gehäuse | ||
|[https://www.reichelt.de/das-raspberry-pi-5-b-4gb-black-bundle-rpi5-bbdl-4gb-p362101.html?&nbc=1&trstct=lp_1358_155298 RPI5 BBDL 4GB Das Raspberry PI 5 B 4GB Black Bundle] | |[https://www.reichelt.de/das-raspberry-pi-5-b-4gb-black-bundle-rpi5-bbdl-4gb-p362101.html?&nbc=1&trstct=lp_1358_155298 RPI5 BBDL 4GB Das Raspberry PI 5 B 4GB Black Bundle] | ||
|- | |||
|[[Datei:Raspberry pi 5B Gruppe.jpg|125px|mini|links|Bild 3: Raspberry pi 5 ]]<ref name"RPI5"> Raspberry Pi 5 Gruppe., [kein Datum]. [online]. [Zugriff am: 11 Oktober 2024]. Verfügbar unter:https://www.reichelt.de/das-raspberry-pi-5-b-4gb-black-bundle-rpi5-bbdl-4gb-p362101.html?&nbc=1&trstct=lp_1358_155298</ref><br> | |[[Datei:Raspberry pi 5B Gruppe.jpg|125px|mini|links|Bild 3: Raspberry pi 5 ]]<ref name"RPI5"> Raspberry Pi 5 Gruppe., [kein Datum]. [online]. [Zugriff am: 11 Oktober 2024]. Verfügbar unter:https://www.reichelt.de/das-raspberry-pi-5-b-4gb-black-bundle-rpi5-bbdl-4gb-p362101.html?&nbc=1&trstct=lp_1358_155298</ref><br> | ||
|- | |- |
Version vom 23. November 2024, 16:44 Uhr
Autor: Benedikt Lipinski und Weiran Wang
Einleitung
Unter Flaggenwinken versteht man in der Nautik nicht das wilde Gestikulieren mit einer Fahne, sondern vielmehr ein komplexes System rein optischer Kommunikation. Während sich an Land schon früh die Kommunikation mittels optischer Telegrafie durchsetzte[1], wurde auch in der Schifffahrt die Kommunikation mittels Flaggenzeichen, den so genannten Semaphoren, immer populärer. Heute wird aufgrund der leistungsfähigen Funktechnik in der Regel nicht mehr mit Flaggen kommuniziert. Dennoch soll die Kommunikation via flaggen auch im Zeitalter der Elektronischen kommunikation zum Einsatz kommen, z.B. von der US Navy bei der Betankung von Schiff zu Schiff.[2]
Der Spieler soll nun selbst die Rolle eines Kommunikationspartners übernehmen und seinem Gegenüber (dem Spiel) eine geheime und verschlüsselte Nachricht zukommen lassen.
Theoretische Grundlagen
Flaggen Semaphore
Eine Kommunikation über Flaggen ist, anders als man auf den ersten Blick vermuten könnte, gar nicht so weit von der Kommunikation entfernt, die uns Studierenden der 2020er Jahren in den Informatikmodulen gelehrt wird[3]. Denn die in dem "Video 1" zusehende und für Menschen lesbare Codierung einzelner Flaggenpositionen ist nichts anderes als die Codierung von Zeichen in eine Bitfolge, nur dass sich an dieser Stelle die Codierung der Nachricht und das Transportprotokoll unterscheiden[4]. Die Kommunikation mit den Flaggen beginnt mit der Aufforderung zum Verbindungsaufbau (Attention #Anker:AttentionMessage).
# | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1 | A | 2 | B | 3 | C | 4 | D | ||||
5 | E | 6 | F | 7 | G | 8 | H | ||||
9 | I | 10 | J | 11 | K | 12 | L | ||||
13 | M | 14 | N | 15 | O | 16 | P | ||||
17 | Q | 18 | R | 19 | S | 20 | T | ||||
21 | U | 22 | V | 23 | W | 24 | X | ||||
25 | Y | 26 | Z |
Bestehende Arbeiten
Die Eingabe von Flaggensignalen in ein Computersystem ist nicht nur als Rätsel für ein Escape-Game interessant, sondern auch in anderen Projekten ein nicht zu vernachlässigender Faktor. Beispielsweise kann die Abbildung des Flaggenalphabets auf die Arme eines Benutzers dazu verwendet werden, Tastenanschläge auf der Tastatur zu simulieren. Ein Beispiel dafür ist das GitHub-Projekt des Entwicklers everythingishacked, der eine vollständige Tastatursimulation mit Hilfe von Handsemaphoren in Python umgesetzt hat[5]. Auch in der Mathematiksoftware Matlab gibt es bereits Beispiele für Vorstufen einer Armpositionserkennung[6] In beiden Fällen führt der Weg zur Buchstabenerkennung über den Schritt einer Schätzung der Körperhaltung. Konkret ist in diesem Fall die Ermittlung mittels Deep Learning Algorithmen gemeint.
Anforderungen
ID | Inhalt | Erstellt von: | Erstellt am: | Geprüft von: | Geprüft am: | |
---|---|---|---|---|---|---|
1 | System Anforderungen | |||||
1.1 | Das System muss eine Person durch bildbasierte Verfahren identifizieren. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
1.2 | Das System muss die Armhaltung erkennen. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
1.3 | Das System muss die Position der Arme in Winkel umwandeln. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
1.4 | Das System muss die Winkel in Buchstaben einteilen. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
1.5 | Das System muss eine Rückmeldung über den eingegebenen Buchstaben geben. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
1.6 | Das System muss eine Rückmeldung über die richtige Eingabe signalisieren, wenn der Buchstabe richtig angezeigt wird. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
1.7 | Das System muss bei korrekter Eingabe eine korrekte Stelle des Lösungswortes ausgeben. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
1.8 | Zur Erkennung der menschlichen Körperhaltung ist die Open-CV-Bibliothek zu verwenden. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
1.9 | Die verwendete Kamera muss eine Auflösung haben, bei der eine Person vollständig in das Bild passt. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
1.10 | Das Spiel soll per Knopfdruck oder über eine angeschlossene Tastatur gestartet werden. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
1.11 | Der Schwierigkeitsgrad muss über eine Taste oder eine angeschlossene Tastatur einstellbar sein. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
1.12 | Im Profi-Spielmodus sollen nicht nur Buchstaben, sondern auch kurze Wörter oder Zahlen eingegeben werden. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
1.13 | Im Profi-Spielmodus soll die bisherige Eingabe auf dem Bildschirm angezeigt werden. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
1.14 | Im Spielmodus Profi muss das Löschen der letzten Ziffer durch ein Flaggensignal möglich sein. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
1.15 | Das System soll nach Möglichkeit in Matlab realisiert werden; sollten gute Gründe gegen die Verwendung von Matlab sprechen, wird alternativ die Sprache Python verwendet. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
1.16 | Im Anfängermodus soll die spielende Person eine Hilfestellung erhalten | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
2 | Oganisatorische Anforderungen | |||||
2.1 | Das Rätsel soll nach Erklärung innerhalb von 5 Minuten lösbar sein. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
2.2 | Das Puzzle soll verschiedene Schwierigkeitsgrade haben. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
2.3 | Das Material zum Verständnis des Puzzles sollte in nicht-elektrischer Hardware vorhanden sein. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 | |
2.4 | Das System muss zur Aufbewahrung und zum Transport in einen Schuhkarton passen. | Benedikt Lipinski | 10.10.2024 | Weiran Wang | 10.10.2024 |
Funktionaler Systementwurf/Technischer Systementwurf
Funktionaler Systementwurf
Als Vorbereitung für das Winkerrätsel, zunächst durch die spielende Person, der Schwierigkeitsgrad gewählt werden. Das Spiel beginnt bei dem Winkerrätsel nicht mit dem drücken eines Startbuttons oder ähnlichem, sondern in Escape-Room Manier mit dem erkennen des Problems selbst. Hierzu bekommt die Spielende Person nach einstellen des Schwierigkeitsgrades, lediglich die 2 Flaggen und Literatur über Signale ausgehändigt. Somit ergibt sich als erste Aufgabe für die Spielenden, unter zu Hilfenahme der Flaggen zu erkenne, dass es sich bei der geforderten Aufgabe um das Winkeralphabet handelt. Mit der Erkenntnis aus der Literatur und der Tatsache, dass die spielende Person bereits unweigerlich Feedback zur erkannten Position bekommen wird, sollte durch die spielende Person kombiniert werden, nun mittels Körperposition
den erhaltenen Rätselcode einzugeben.
Die spielende Person wird aufgrund des grafischen Feedbacks schnell verstehen, dass bei korrekter Eingabe eines Buchstabens, dieser umcodiert wird.
Für den Spielmodus Profi, bei dem die spielende Person kleine Wörter aus der gängigen Sprache oder dem Internationalen Signal Kommunikation verwendet werden, bekommt die nutzende Person die bereits korrekt eingegebenen Buchstaben aufgelistet. Zudem wird der nutzenden Person aufgezeigt ob die eingegebene stelle korrekt oder falsch ist. Ziel ist es an dieser stelle, das Korrektur Signal zu benutzen.
Mit der erfolgreichen Entschlüsselung der letzten Stelle, hat die spielende Person das Rätsel beendet und sich innerhalb des gesamten Spiels Schritt für schritt das Lösungswort erspielt. An dieser stelle ist nun auch das Winkerrätsel beendet. Grundsätzlich stehen der spielenden Person 3 Spielmodi zur Verfügung. Leicht: hier soll eine visuelle Hilfestellung für die spielende Person gegeben werden, diese muss durch die spielende Person nur noch Nach gemacht werden.
Im fortgeschrittenen Modus muss die Spielende Person, sich nun selbst an die Einzunehmende Position erinnern oder im Buch nachschlagen. Eingegeben werden müssen in diesem Modus auch nur einzelne Buchstaben.
Der schwierigste Spielmodus, nur geeignet für Profis, fordert von der nutzenden Person die Eingabe kurzer Wörter, was gegebenen falls das Korrigieren der Eingabe nötig macht.
Der Ablauf des Winkerrätsels, wie er aus der Sicht des Anwenders dargestellt werden soll, kann dem Ablaufschema in Bild 2 entnommen werden.
Technischer Systementwurf
Da der im Arduino Uno R3 verwendete Atmega328-Mikrocontroller hinsichtlich Datenverarbeitung, RAM und Flash-Speicher begrenzt ist und somit für Bildverarbeitungsaufgaben ungeeignet, wird der Raspberry Pi 5B als Ersatz eingesetzt, um die Kernaufgaben der maschinellen Bildverarbeitung zu übernehmen. Das System wird über ein 5V 5A Netzteil mit Strom versorgt, um den stabilen Betrieb aller Geräte zu gewährleisten.
In diesem Flaggen-Signal-Interaktionssystem fungiert eine Kamera als Sensor, die über das USB-Protokoll Bilddaten an den Raspberry Pi 5B überträgt. Der Raspberry Pi 5B verwendet vordefinierte Algorithmen, um die von den Spielern eingegebenen Flaggen-Signale zu erkennen, und gibt Rückmeldungen über ein 128x64 Pixel Display aus. Das Display ist über das SPI-Protokoll mit dem Raspberry Pi 5B verbunden, um eine effiziente Datenübertragung sicherzustellen.
Darüber hinaus ist das System mit einem Moduswahlknopf ausgestattet, der an die GPIO-Pins des Raspberry Pi 5B angeschlossen ist. Durch Überwachung der Spannungsänderungen an den Pins kann das System die Benutzereingaben erkennen und verarbeiten.
Das gesamte System wird auf einer speziell angefertigten Leiterplatte integriert, um eine saubere und zuverlässige Verbindung der Leitungen sicherzustellen und das Gerät erfolgreich in ein Gehäuse von der Größe einer Schuhschachtel einzubauen.
Eine Gesamtübersicht über die beschriebenen Komponenten und ihre Verknüpfung ist in "Bild 3" dargestellt.
Material und Stückliste
ID | Anzahl | Kosten pro Stück € | Summe | Bezeichnung / Komponente | technische Bezeichnung | Beschreibung | Abbildung |
---|---|---|---|---|---|---|---|
1 | 1x | 104,50€ | 104,50€ | RASP PI 5B 4GB mit Ladegerät und Gehäuse | RPI5 BBDL 4GB Das Raspberry PI 5 B 4GB Black Bundle | ||
[7] | |||||||
2 | 1x | 0,2€ | 0,2€ | Kurzhubtaster | JTP-1130 Kurzhubtaster 6x6 mm, Höhe: 13 mm, 12 V, vert | Ein Kurzhubtaster 6x6 mm ist ein kleiner, mechanischer Taster mit einem standardisierten Gehäuse von 6x6 mm Größe und kurzem Hubweg | [8] |
3 | 1x | 9,9€ | 9,9€ | LCD128X64 | DEBO LCD128X64 Entwicklerboards - Display Grafik-LCD, 128x64 Pixel | Das LCD-Display 128x64 Pixel aus dem verlinkten Angebot ist ein grafisches Displaymodul, das eine Auflösung von 128x64 Pixeln bietet. Es eignet sich ideal für Entwicklerprojekte, bei denen eine einfache Anzeige von Grafiken, Symbolen oder Texten erforderlich ist | [9] |
4 | 1x | 14,95€ | 14,95€ | Webcam | AMDIS03B Webcam, 720p, HDready | 720p HD Webcam (Modell: AMDIS03B) bietet eine Auflösung von 1280x720 Pixeln und ist ideal für einfache Videoanwendungen | [10] |
5 | 2x | 0 € | 0 € | Signalflaggen | Kleine Fahne 20 x 14 cm | Die Fahnen können selbst hergestellt werden | [11] |
6 | 1x | 0€ | 0€ | Map mit Flaggensignalen | Flaggensprache oder Winkeralphabet | Das Map kann selbst hergestellt werden |
[12] |
Komponentenspezifikation
Technische Informationen der Hardware
Die Abbildung?? [13]zeigt hauptsächlich das Hardware-Design des Raspberry Pi 5 sowie die Anordnung seiner zahlreichen Schnittstellen und Funktionsmodule. Diese Hardware-Komponenten arbeiten zusammen und bilden das leistungsstarke Funktionssystem des Raspberry Pi. Für dieses Projekt ist der BCM2712-Prozessor des Raspberry Pi 5 von entscheidender Bedeutung. Dieser hochleistungsfähige Quad-Core-ARM-Cortex-A76-Prozessor ist verantwortlich für das Ausführen des Betriebssystems und die effiziente Verarbeitung komplexer Berechnungsaufgaben, insbesondere im Zusammenhang mit der Schlüsselanwendung von Bildverarbeitungsalgorithmen.
Darüber hinaus bietet der Raspberry Pi 5 eine Vielzahl an Schnittstellen. Raspberry Pi 5 ist mit 40 Pins ausgestattet und eine Vielzahl von Schnittstellen bietet, darunter GPIO, I2C, SPI und UART. Darüber hinaus unterstützt der Raspberry Pi die Erzeugung von Hardware-PWM-Signalen, die eine präzise Steuerung von Peripheriegeräten ermöglichen. Aus der Abbildung?? [14].geht außerdem hervor, dass der Raspberry Pi 5 über die USB-Schnittstelle mit verschiedenen Kommunikationsgeräten verbunden werden kann, was seine Anwendungsbereiche erheblich erweitert.
Der Raspberry Pi 5 kann sowohl über den USB-C-Anschluss als auch über die VCC- und GND-Pins mit Strom versorgt werden. Die empfohlene Versorgungsspannung beträgt 5,1 V bei einem Strom von 5 A.
Bei der ersten Nutzung des Raspberry Pi muss ein Betriebssystem installiert werden. Benutzer können das offizielle Tool Raspberry Pi Imager herunterladen und das offiziell empfohlene und gewartete Betriebssystem Raspberry Pi OS auswählen. Mit dem Imager wird das Betriebssystem auf eine MicroSD-Karte geschrieben, die anschließend in den Raspberry Pi eingesetzt wird, um die Installation des Betriebssystems abzuschließen. Abbildung?? zeigt die Benutzeroberfläche des Betriebssystems nach dem Start des Raspberry Pi
-
Abb.??: Zusammensetzung der Hardware Raspberry Pi 5
-
Abb.??: Pin Belegung Raspberry Pi 5
-
Abb.??: Raspberry Pi 5 Start
Ansatz
Da die Position der Arme beim Flaggenwinken in feste Bereiche mit einer festen Ausrichtung eingeteilt werden kann, ist die Idee, die Position der Arme mit grafischen oder geometrischen Verfahren zu bestimmen. Die Idee ist, die Ausrichtung des Armes zur Körpermitte mit graphischen beziehungsweise geometrischen Methoden zu bestimmen.
Umsetzung (HW/SW)
Komponententest
Ergebnis
Fehler
Zusammenfassung
Lessons Learned
Projektunterlagen
Projektplan
Projektdurchführung
YouTube Video
Quellen
→ zurück zur Übersicht: WS 24/25: Escape Game
- ↑ SELLERI, Stefano, 2017. Claude Chappe and the first telecommunication network (without electricity). URSI Radio Science Bulletin [online]. März 2017. Bd. 2017, Nr. 360, S. 96–101. [Zugriff am: 1 Oktober 2024]. DOI 10.23919/URSIRSB.2017.8113174. Verfügbar unter: https://ieeexplore.ieee.org/document/8113174/?arnumber=8113174
- ↑ Navy Seaman Ryan Ruona uses semaphore flags to signal another ship., [kein Datum]. [online]. [Zugriff am: 1 Oktober 2024]. Verfügbar unter: https://www.defense.gov/Multimedia/Photos/igphoto/2001244016/
- ↑ Codierung von Texten - Fakultät für Elektrotechnik, Informatik und Mathematik - Fakultäten - Kategorien - Videoportal der Uni Paderborn, [kein Datum]. [online]. [Zugriff am: 1 Oktober 2024]. Verfügbar unter: https://videos.uni-paderborn.de/category/video/codierung-von-texten/3a9cfca393633045f308a88c20e8ad82/7
- ↑ Education Codes and Communication, [kein Datum]. National Museum of the Marine Corps [online]. [Zugriff am: 1 Oktober 2024]. Verfügbar unter: https://www.usmcmuseum.com/uploads/6/0/3/6/60364049/nmmc_semaphore_flag_booklet_final_1.pdf
- ↑ EVERYTHINGISHACKED, [kein Datum]. Semaphore [online]. Verfügbar unter: https://github.com/everythingishacked/Semaphore
- ↑ Estimate Body Pose Using Deep Learning - MATLAB & Simulink - MathWorks Deutschland, [kein Datum]. [online]. [Zugriff am: 2 Oktober 2024]. Verfügbar unter: https://de.mathworks.com/help/deeplearning/ug/estimate-body-pose-using-deep-learning.html
- ↑ Raspberry Pi 5 Gruppe., [kein Datum]. [online]. [Zugriff am: 11 Oktober 2024]. Verfügbar unter:https://www.reichelt.de/das-raspberry-pi-5-b-4gb-black-bundle-rpi5-bbdl-4gb-p362101.html?&nbc=1&trstct=lp_1358_155298
- ↑ Kurzhubtaster 6x6 mm, [kein Datum]. [online]. [Zugriff am: 11 Oktober 2024]. Verfügbar unter:https://www.reichelt.de/kurzhubtaster-6x6-mm-hoehe-13-mm-12-v-vert--jtp-1130-p27894.html?&trstct=pos_0&nbc=1
- ↑ LCD128X64, [kein Datum]. [online]. [Zugriff am: 11 Oktober 2024]. Verfügbar unter:https://www.reichelt.de/entwicklerboards-display-grafik-lcd-128x64-pixel-debo-lcd128x64-p335007.html?&trstct=pos_0&nbc=1
- ↑ CON AMDIS03B Webcam, [kein Datum]. [online]. [Zugriff am: 11 Oktober 2024]. Verfügbar unter:https://www.reichelt.de/webcam-720p-hdready-con-amdis03b-p292005.html?&trstct=pos_7&nbc=1CON
- ↑ Deutschland Flagge, [kein Datum]. [online]. [Zugriff am: 11 Oktober 2024]. Verfügbar unter:https://www.amazon.de/molinoRC-Deutschland-Fahne-Stockfahne-Kinder-Fahne-Deutschland-Flagge/dp/B079SL8MRD
- ↑ Flaggensignale, [kein Datum]. [online]. [Zugriff am: 11 Oktober 2024]. Verfügbar unter:https://www.irisluckhaus.de/2016/infografik-flaggensprache/
- ↑ Technische Daten des Raspberry PI 5, [kein Datum]. [online]. [Zugriff am: 23 November 2024]. Verfügbar unter: https://www.nerdsheaven.de/raspberry-pi-5/
- ↑ Raspberry Pi hardware - Raspberry Pi Documentation, [kein Datum]. [online]. [Zugriff am: 23 November 2024]. Verfügbar unter: https://www.raspberrypi.com/documentation/computers/raspberry-pi.html