Alexander Wirnsberger
Project Manager
Gehäusedesign und Kostruktion, Elektrik, Eplan
Elektrische Planung: E-PLAN, Programmierung: ESP32 (C++)
Deutsch: Es soll ein Spiel wie „Pop-Up Pirat“ aufgebaut und mit einer zentralen Steuereinheit ausgestattet werden. Diese steuert Lichter, Motoren und andere Komponenten, die das Spiel interaktiver gestalten. Der festgelegte Auslösemechanismus fällt weg und wird durch ein Programm ersetzt, sodass Spieler taktische Entscheidungen treffen können. Der Spielfortschritt wird optisch durch einen LED-Streifen visualisiert.
English: A game similar to "Pop-Up Pirate" is to be developed and equipped with a central control unit. This unit manages lights, motors, and other components to make the game more interactive. The predefined triggering mechanism will be replaced by a program, allowing players to make tactical decisions. The game's progress will be visually represented by an LED strip. At the beginning, a random number is generated by the control unit. Each player has the option to press buttons worth 1, 2, or 3 points. Each button can only be pressed once during the game. Once a button is pressed, its light turns off, and it becomes inactive. The button's value is subtracted from the random number. Additionally, an LED strip displays the relative progress to the initial random number. For example, if half the number has been subtracted, only half of the LED strip remains lit. The game is played in turns, with each player allowed to press a button only once before the next player's turn. At the start of the game, a random number is set. The player who exceeds this number by pressing a button loses the game. The strategic challenge is about selecting buttons in a way that forces other players, rather than oneself, to exceed the limit. You can find an example of the games principle in german below.
Bild des Spiels
Am Beginn wird eine Zufallszahl von der Steuereinheit erstellt. Jeder Spieler hat die Möglichkeit, Tasten mit 1, 2 oder 3 Punkten zu betätigen. Dabei darf jede Taste nur einmal während des Spiels gedrückt werden. Sobald eine Taste betätigt wurde, erlischt ihr Licht und sie ist nicht mehr aktiv. Der Wert des Tasters wird von der Zufallszahl abgezogen. Weiters zeigt ein LED-Streifen den relativen Fortschritt zur Anfangs-Zufallszahl an. Ist also bereits die Hälfte der Zahl abgezogen worden, leuchtet nur noch der halbe Lichtstreifen. Das Spiel wird abwechselnd gespielt, wobei jeder Spieler nur einmal drücken darf, bevor der nächste Spieler an der Reihe ist. Zu Beginn des Spiels wird eine zufällige Zahl festgelegt. Der Spieler, der durch das Drücken einer Taste diese Zahl überschreitet, verliert das Spiel. Die strategische Herausforderung besteht darin, die Tasten so zu wählen, dass nicht man selbst, sondern einer der Mitspieler diese Obergrenze überschreitet.
Angenommen, zu Beginn des Spiels wird die zufällige Zahl 15 festgelegt.
Spieler A beginnt und drückt die Taste mit 2 Punkten. Die verbleibende Zahl beträgt nun 13.
Spieler B drückt die Taste mit 3 Punkten. Die verbleibende Zahl beträgt nun 10.
Spieler C drückt die Taste mit 1 Punkt. Die verbleibende Zahl beträgt nun 9.
Spieler A drückt erneut die Taste mit 1 Punkt. Die verbleibende Zahl beträgt nun 8.
Spieler B drückt die Taste mit 2 Punkten. Die verbleibende Zahl beträgt nun 6.
Spieler C drückt die Taste mit 2 Punkten. Die verbleibende Zahl beträgt nun 4.
Spieler A drückt die Taste mit 2 Punkten. Die verbleibende Zahl beträgt nun 2.
Spieler B drückt die Taste mit 3 Punkten und überschreitet die Zielzahl von 15, sodass Spieler B das Spiel verliert.
Der Raspberry Pi 5 stellt die zentrale Steuereinheit. Das Hauptprogramm läuft auf ihm. Ein ESP 32 wird vom Raspberry Pi gesteuert. Der ESP steuert LED-Streifen und 2 RC-Servos. Der Sound und die Taster bzw. die Lichter des Tasters werden mittels Raspberry Pi 5 kontrolliert. Am Raspberry wird in der Programmiersprache Python und am ESP32 DevKitC in C++ (cpp) programmiert.
Da der Raspberry Pi über nicht genügend GPIO-Ausgänge verfügt, um die 24 Lichttaster und die dazu gehörenden 24 LED (built in) des Tasters abzudecken, werden als Zwischenstück Expander benutzt, welche über das I²C-Kommunikationsprotokoll zum Datenaustausch benutzen können. Diese Expander steuern wiederum ein Relaismodul an, welches den Strom über eine externe Spannungsversorgung zu den Taster-LED's durchschaltet. Der ESP 32 und der Raspberry Pi kommunizieren via serieller Schnittstelle miteinander. Der LED-Streifen wird mithilfe der Neopixel-Bibliothek programmiert und die Servos über eine Arduino-Bibliothek für RC-Servos mittels PWM-Signalen bewegt.