menu
Werkzeugkasten DIY und Making

OpenWall – Spiel-Entwicklung mit Smartphone und Raspberry Pi

Eckdaten
Ziel des Projekts: Entwicklung eines interaktiven Geschicklichkeitsspiels per Smartphone mit einem Raspberry Pi
verwendete Technologien
und Werkzeuge:
Raspberry Pi
Arduino
Altersgruppe der Teilnehmenden: Zielgruppe des Spiels: ab 10 Jahre
Entwickler: ab 16 Jahre
Kontext der Umsetzung: Das Spiel wurde in einem Projekt für den Niedersächsischen Landesjugendring (LJR) zum Einsatz auf der IdeenExpo 2015 entwickelt. Seitdem kann das fertige Spiel beim LJR von Vereinen und Verbänden z. B. für den Einsatz auf Stadt- oder Familienfesten ausgeliehen werden. Die Baupläne und Quellcodes stehen unter einer OpenSource-Lizenz zur Verfügung, damit das Spiel nachgebaut und weiterentwickelt werden kann.
Zeitrahmen: ca. 6 Monate

Projektbeschreibung

Am Beginn des Projekts stand die Idee, ein Spiel für einen Messe-Stand zu entwickeln, das Kinder und Jugendliche mit ihrem eigenen Smartphone steuern und spielen können. Dabei stand von Anfang an der Spielspaß im Vordergrund, jedoch sollte das Spielprinzip den Spieler*innen auch verdeutlichen, welche unmittelbaren Auswirkungen die Nutzung des Smartphones (etwa in sozialen Netzwerken) auf die ganz reale Welt haben kann. Das physische Spiel sollte, um Interesse zu wecken, so groß und so zugänglich wie möglich sein: sich nicht nur auf das Smartphone beschränken, unabhängig von Größe oder Typ des Smartphones nutzbar sein und nicht die Installation einer App voraussetzen.

Während eines Brainstormings mit allen Projektbeteiligten entschlossen wir uns dazu, eine ca. 2,5 m hohe, frei stehende Wand zu bauen, an deren oberen Ecken über zwei Motoren Fäden aufgewickelt werden, an denen eine Holzscheibe – der Puck – befestigt ist. So kann die Position der Holzscheibe auf der Wand über das Auf- bzw. Abwickeln der Spulen verändert und auf diese Weise ein Parcours abgefahren werden. Auf dem Weg werden 3 Sterne eingesammelt, was jeweils durch ein Licht bestätigt wird. Da die Spieler*innen je einen Motor steuern, kann das Ziel nur erreichen, wer sich im Team abspricht, geschickt im Umgang mit dem Touchscreen ist und die Drehung des Motors kognitiv auf die 2-dimensionale Position des Pucks übertragen kann.

Die Umsetzung erfolgte in drei Schritten: der Programmierung, dem Bau der OpenWall-Box und der OpenWall-Wand. Das Herzstück der Software bildet ein MeteorJS-Server, der die Benutzeroberflächen zum Spielen und die Administration des Spiels ausgibt. MeteorJS ist eine Open-Source-Plattform, die es ermöglicht, komplette Web-Apps in reinem JavaScript zu entwickeln.

Aufgabe des Servers ist es, den Besuchern der Seite eine zufällige Wartenummer zuzuweisen und diese in einer Datenbank zu hinterlegen. Die Spielleitung kann über eine passwortgeschützte Administrationsseite je zwei Wartenummern freischalten und miteinander spielen lassen. Ist ein*e Spieler*in freigeschaltet, kann er/sie auf dem Smartphone den zugeteilten Motor bedienen. Ist das Ziel erreicht, wird der Puck von der Spielleitung über einen Button auf den Startpunkt zurückgefahren.

Bei der OpenWall-Box handelt es sich um eine etwa schuhkartongroße Holzkiste, die die gesamte Technik beinhaltet. Die MeteorJS-Software läuft auf einem Raspberry Pi, der per USB mit einem Arduino verbunden ist und per Asteroid-Schnittstelle die Steuerbefehle vom Raspberry Pi empfängt. Der Arduino steuert die beiden Motoren und die drei LED-Lämpchen zur Anzeige der Checkpoints. Außerdem werden hier alle Bewegungen der Schrittmotoren gezählt, damit jederzeit die Position des Pucks auf der Wand bestimmt werden kann.

Damit die Spieler*innen die Web-App abrufen können, spannt eine FritzBox ein offenes WLAN-Netzwerk auf, das nicht mit dem Internet verbunden ist, sondern stattdessen Anfragen auf den lokalen Webserver des Raspberrys umleitet. So kann das Spiel einfach über den Browser auf dem Smartphone gespielt werden. Die OpenWall-Wand ist mit einem Parcours (bestehend aus Start, 3 Checkpoints und Ziel) bedruckt. Über die oberen Ecken werden die Fäden des Pucks zur mittig auf der Wand platzierten OpenWall-Box umgeleitet.

Das fertige Spiel kam vom 04. bis 12. Juli 2015 erstmals auf der IdeenExpo in Hannover am Stand des Niedersächsischen Landesjugendrings (LJR) zum Einsatz. An den 9 Tagen Messetagen wurde es über tausend Mal gespielt – mitunter bildeten sich lange Warteschlangen aus Kindern und Jugendlichen am Stand des LJRs, die geduldig warteten, bis sie das Spiel ausprobieren konnten. Betreut wurde der Stand von Jugendleiter*innen der niedersächsischen Jugendverbände. Wer das Parcours-Ziel erreichte, durfte sich eine Belohnung aus der Süßigkeitenkiste aussuchen. In einer Bestenliste wurden die schnellsten Teams des Tages festgehalten.

Bei einem so umfangreichen Projekt wie OpenWall ist die Nachhaltigkeit von besonderer Bedeutung. Seit der „Premiere“ auf der IdeenExpo kann das Spiel regulär beim LJR von Vereinen und Verbänden etwa für den Einsatz auf Stadt- und Familienfesten ausgeliehen werden. Für den Betrieb wird lediglich eine einfache Stromversorgung benötigt. Darüber hinaus freuen wir uns, wenn das Spiel nachgebaut und weiterentwickelt wird. Hierfür wurden die Baupläne und der Quellcode unter einer Open-Source-Lizenz auf GitHub veröffentlicht. Auf einer Projektseite finden sich Anleitungen zur Installation des MeteorJS-Servers sowie Materiallisten und Videos zum besseren Verständnis.

Reflexion

Das Besondere beim OpenWall-Projekt waren die unterschiedlichen Fähigkeiten, die für die Umsetzung erforderlich waren. Neben der Programmierung wurde viel gelötet, gezimmert und am Computer modelliert. Dieses Zusammenspiel funktionierte erstaunlich gut, obwohl sich alle Projektbeteiligten lediglich neben dem Studium in ihrer Freizeit einbringen konnten. Für die Holzarbeiten konnten wir einen Lasercutter des Oldenburger Vereins „Kreativität trifft Technik e.V.“ nutzen, der hochpräzises Schneiden und Gravieren ermöglicht.

Einige Elemente der Planung mussten während der Umsetzung geändert werden. So war es ursprünglich geplant, die Steuerung über einem Webserver im Internet laufen zu lassen. Dies erwies sich jedoch als schwierig, da bei diesem Aufbau ein Steuerungsbefehl vom Smartphone übers Mobilfunknetz bis zum Auslösen der Motorendrehung bis zu 2 Sekunden unterwegs war – zu lang für ein Geschicklichkeitsspiel. Durch den Einsatz des WLAN-Routers in Verbindung mit dem lokalen Server auf dem Raspberry Pi konnte diese Latenz auf wenige Millisekunden verkürzt werden. Ein weiterer Vorteil dieser Variante ist, dass für den Betrieb keine Internetverbindung erforderlich ist. Eine einfache Stromversorgung genügt.

Auch der Raspberry Pi erwies sich zunächst als „Nadelöhr“: Sobald zwei Spieler*innen spielten, wurde die Reaktionszeit deutlich langsamer, wenn weitere Spieler*innen in der Warteschlange auf die Freischaltung warteten. Abhilfe brachte die Verwendung eines Raspberry Pi der 2. Generation. Dieser kann nicht nur mehr gleichzeitige Verbindungen bedienen, sondern startet den Webserver auch spürbar schneller.

Damit auf der IdeenExpo auch Kinder das Spiel spielen konnten, die kein eigenes Smartphone dabei hatten, wurden am Messestand zwei Tablets bei Bedarf verliehen. Für jüngere Kinder mit kleineren Händen erwies sich dies manchmal als problematisch, da sie die Geräte nicht gleichzeitig allein halten und bedienen konnten. Für den weiteren Einsatz wäre die Verwendung von zwei iPod touch denkbar.

Empfehlungen

Die Idee hinter der OpenWall, zwei (oder mehr) Motoren über Open-Source-Hardware mit Smartphones zu steuern, bietet vielfaltigste Möglichkeiten. Denkbar wäre z.B. die Steuerung eines Modellkrans oder die Verbindung mit einem Wissensquiz. Bei jeder richtigen Antwort könnte ein Männchen eine Leiter hochklettern und gewonnen hat, wessen Männchen zuerst das Ziel erreicht hat.

Wir verstehen unsere bei GitHub veröffentlichte Software v.a. als Plattform, um solche oder andere Ideen selbst leichter umzusetzen. Dabei sind die Ideen nicht auf die von uns verwendeten Schrittmotoren und LEDs begrenzt – einsetzbar sind alle Geräte, die an einen Arduino und/oder Raspberry angeschlossen werden können, wie  z.B. Temperatur- und Lagesensoren, Schalter, Servomotoren, Displays, Tastaturen oder Makey Makeys.

Unser Projekt baut auf einer Vielzahl leicht zu lernender Open-Source-Frameworks auf, die die Software-Entwicklung vereinfachen und angenehmer gestalten: MeteorJS, AngularJS, Johnny-Five, Asteroid, NodeJS, less, um nur einige zu nennen. Man muss das Rad also nicht neu erfinden, wenn man die ersten Schritte mit Raspberry, Arduino und Co. gehen möchte. Für Unterstützung bei der Umsetzung gibt es inzwischen eine Vielzahl von Maker-Vereinen, vom Chaos Computer Club bis zum lokalen Hackspace, die mit Technik und Know-how helfen können.

Autor

Adrian Jagusch (21) studiert Wirtschaftsinformatik an der Uni Oldenburg. In seiner Freizeit entwickelt er Internetseiten und Apps und ist als ehrenamtlicher Scout bei der Online-Beratung juuuport aktiv.
www.adrian-jagusch.de