UX Audit

Wir trainieren dein Team? Buch unsere Workshops, Trainings und Coachings.

Zeigt her!
Close

Ein kleiner Ausflug in die Welt der Elektronik – Ein Spiel mit dem Raspberry Pi

22. Juli 2014, von stephan

rpi
Im Zuge des Werbeplanung.at Summits 2014 konnte ich mir einen lang gehegten Wunsch erfüllen: Neben rein digitalen Projekten wie Websites und Apps konnte ich im Zuge unseres Lab-Days auch einmal mit etwas Elektronik basteln. Die Idee: Senso als „angreifbares“ Spiel zu bauen, das nicht nur mit Tastatur oder Maus am Computer zu spielen ist, sondern wirklichen, haptischen Input der Spieler erfordert.

Die Vorbereitung

Nachdem ich erst Ende letzten Jahres in die Welt der Elektronik ‚gekippt‘ bin, stellte mich schon die Auswahl der benötigten Bauteile vor eine kleine Herausforderung. Nach einem kurzen Brainstorming der gewünschten Features des Spiels (Input durch Berührung, audiovisuelles Feedback an den Benutzer & die Möglichkeit, das Spiel auch auf einem Display zu visualisieren) fiel die Entscheidung schnell auf einen Raspberry Pi. Anders als z.B. bei einem Arduino konnten hier ohne Erweiterungen (Shields) direkt Netzwerk & Display angeschlossen werden, was die Kommunikation natürlich deutlich vereinfachte.
Auch die Suche nach ‚Input-Devices‘ gestaltete sich zum Glück sehr einfach. Unser Kunde Bene hat Hocker im Sortiment, die durch die verschiedenen Farben ideal für das Spiel geeignet sind: Die PARCS Popup-Stools.

Der technische Aufbau

Nachdem die Grundkomponenten abgesteckt waren, ging es an den technischen Aufbau. Um dem Benutzer direktes Feedback zu geben, entschieden wir uns LED-Streifen am Korpus unter dem Stoffbezug einzusetzen. Die Verkabelung mit dem Raspberry Pi gestaltete sich dabei relativ simpel: Ein Laststromkreis versorgte die LEDs mit Strom und 4 Pins am Raspberry Pi konnten je nach Bedarf die einzelnen LED-Streifen ein- und ausschalten.
Schwieriger gestaltete sich die Erkennung von ‚Schlägen‘ auf die Hocker. Nachdem wir zunächst mit Vibrations-Sensoren experimentierten – diese aber zu Fehleranfällig waren – viel unsere Entscheidung schließlich auf Druck-Sensoren, die einen Unterschied im Druck (bei einem Schlag) auf die Hocker messen konnten. Da wir die Hocker nicht zerstören wollten (Bezug abziehen und neu aufziehen) mussten wir die Drucksensoren unter einem der vier Standbeine der Hocker anbringen, was zu einem weiteren Problem führte: Anders als z.B. ein Arduino hat der Raspberry Pi nur Digitaleingänge. Da die Hocker aber natürlich ein Eigengewicht haben, sendet der Drucksensor immer ein „1“.
popup_2
Die Lösung für dieses Problem fand sich schließlich in einem Analog-Digital-Wandler, der die analogen Spannungsänderungen im Druck-Sensor in digitale Werte von 0 bis 1 wandeln konnte.
Nach anfänglichen Tests stellte sich diese Methode schnell als beste Wahl heraus. Die Komponenten wurden alle zusammen auf eine Lochraster-Platine gelötet.
popup_1

Die Software

Auch für das Basissystem zeigte sich schnell, dass der Raspberry Pi die ideale Wahl war. Um die Digital Ein-/Ausgänge ansteuern zu können, viel die Entscheidung schnell auf WebIOPi. Damit konnten die benötigten Befehle per REST-API direkt an den Raspberry Pi gesendet werden. Das kam uns als Web-Developer natürlich enorm zu Gute, weil wir sonst Python-Skripte hätten schreiben müssen, um die selbe Funktionalität wie durch WebIOPi zu erhalten.
Nachdem das Basissystem eingerichtet war begannen wir damit, die Benutzeroberfläche für das Spiel zu gestalten und die App dazu zu schreiben. Da es sich beim digitalen Teil des Spieles anbot, haben wir AngularJS verwendet, um die Logik zu implementieren.
popup_3
Der schwierigste Teil der Software-Seite war definitiv der Algorithmus, um Schläge sicher zu detektieren, ohne dabei ‚Blindauslösungen‘ (z.B. durch Bewegung des Bodens durch vorbeigehende Personen) als Input zu werten.
Um dem Spieler auch hörbares Feedback zu geben, wurde jedem Hocker ein Ton der Tonleiter zugeordnet. Bei einem Schlag darauf wurde der Ton am Fernseher abgespielt.

Der Spielablauf

Zu Beginn des Spiels erzeugt der Computer drei zufällige Farben, die der Spieler nachspielen muss. Schafft er das, erzeugt der Computer jeweils eine weiter Farbe und der Spieler muss die gesamte bisherige Farbfolge und die neue Farbe nachspielen. Was grundsätzlich einfach klingt, wird in der Praxis schon ab 8 Farben zur Herausforderung. Der Highscore liegt bei 14 gespielten Farbkombinationen.

Aus- & Rückblick

Auch wenn wir das Spiel mit Sicherheit nicht für den Massenmarkt weiterentwickeln werden, möchten wir es für den zukünftigen Einsatz um einige Features erweitern. Die Entwicklung des Spiels hat uns die Chance geboten, abseits unserer Kernkompetenzen wichtige Erfahrung bei der Softwareentwicklung zu sammeln – und Spaß hat die Arbeit vor allem auch gemacht.
Läuft alles nach Plan, kann das Spiel in einer „Version 2“ auf unserer eigenen Konferenz, der Digitalvisions 2014 gespielt werden!

Du willst mit jemanden über das Thema plaudern?

Einen kostenlosen Termin mit CEO Susanne vereinbaren!

Stephan

Meine Rolle bei Liechtenecker: langgedienter Frontend-Veteran Wenn es weder IT noch Digitalisierung gäbe, wäre mein Beruf: Förster ohne Kontakt zu Menschen! Mein Herz schlägt für: die Arterien.
2 Kommentare.
Kommentar verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
3. August 2014 um 22:30

Sehr schöner Artikel.
Wir planen mit einem Raspberry Pi eine Wetterstation zu bauen.
Sind da derzeit auf der Suche nach Anleitungen und bereits vorhandenen Projekten.
Hoffe wir können das heuer noch im Herbst umsetzen.
🙂

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
22. Juli 2014 um 16:14

Hört sich lustig an, bzw sieht auch sehr nett aus im Video. Haptisches Feedback wäre sicher auch noch eine nette Spielerei und würde die User Experience sicher noch einmal verbessern 😉
Ich habe mich bis jetzt ja nur über den Arduino getraut, aber ich denke jetzt wird es Zeit sich auch mal Raspberry anzuschauen.

Jetzt antworten
Antwort verfassen
Name
Mail
Web
Captcha
Erfolgreich!
Fehler!
Technologie – Blogbeitrag

Die Macht von PHPStan: Fehlererkennung und Codequalität in der PHP-Entwicklung

21. März 2024, von Daniel

In der Welt der Webentwicklung ist die Qualität des Codes von entscheidender Bedeutung. Schlecht geschriebener Code kann zu Bugs, Sicherheitslücken und ineffizienter Leistung führen. PHPStan ist ein leistungsstarkes statisches Analysetool, das dazu beitragen kann, die Codequalität zu erhöhen und Bugs frühzeitig zu erkennen. In diesem Beitrag werden wir uns genauer ansehen, welche Arten von Fehlern PHPStan erkennen kann und welche Aufgaben möglicherweise andere Tools übernehmen müssen.

Jetzt lesen
Liechtenecker Leseliste #62 mit Susanne Liechtenecker
Inspiration – Podcasts

Folge #62 mit Susanne Liechtenecker

27. November 2020

In Folge 62 besinnt sich Susanne auf die Anfänge dieses Podcasts und begrüßt keinen Gast, sondern erzählt über das Buch "Jäger, Hirten, Kritiker" von Richard David Precht und warum es sie inspiriert hat.

Jetzt anhören
Close