Warning: Constant WP_PLUGIN_URL already defined in /home/.sites/338/site1783/web/blog/wp-content/plugins/ios-icons-for-wordpress/ios-icons.php on line 31 Raspberry Pi | blog.nitsch.me

Die Forderungs-Pyramide – Teil 1

darts : techik : hardware : techik : microcontroller
Dienstag, 25. Juni 2013

Nach längerer Abstinenz bedingt durch einigen Freizeitstress (Go-Live der Seite des Österreichischen Darts Verband, Nova Rock, Geburtstagsfeiern und Feste, etc…) hier nun wieder ein etwas längerer Eintrag über ein Thema, das mir in den letzten Wochen untergekommen ist.
Es geht um die elektronische Unterstützung einer Forderungs-Pyramide für den Darts Verein An Sporran, basierend auf einem Raspberry Pi und einem Eingabepanel mit Tastenfeld und RFID Reader, das über ein Arduino Micro gesteuert wird. Im ersten Teil möchte ich ein wenig über die Hintergründe und Überlegungen schreiben, die zum aktuellen Aufbau und der Komponentenauswahl geführt haben.

Prolog

Forderungs-PyramideIn dem Darts Verein in dem ich Mitglied bin und regelmäßig Zeit verbringe, gibt es eine Forderungs-Pyramide, die aufgrund des bisherigen Regelwerks und mangelndem Interesse der Mitglieder leider seit langer Zeit nicht mehr “bespielt” wurde.
Das Regelwerk sah vor, dass man jemanden über sich fordern kann, diese Forderung kann, muss aber nicht angenommen werden und wenn man das Spiel gewonnen hat, wurde einfach Platz getauscht. Dabei kam es nur zu punktuellen Veränderungen in der Reihung der Mitglieder und es war überhaupt keine Bewegung im Ranking vorhanden.
Nun hat sich der Vorstand dazu entschlossen das Regelwerk der Pyramide zu überarbeiten und hat dazu – Wer errät es? Genau! – eine Arbeitsgruppe bestehend aus 4 Vereinsmitglieder nominiert diese Aufgabe zu übernehmen. ;)
Da ich nun zu den eher Langsameren gehöre, die sich zu spät ducken wenn Arbeit verteilt wird, hatte ich das Vergnügen dieser Arbeitsgruppe anzugehören.
Das Regelwerk wurde radikal überarbeitet und soll für deutlich mehr Bewegung in der Pyramide sorgen. Bei gewonnen Forderungen wird nicht mehr einfach nur Platz getauscht, nein, man reiht sich, so wie es eigentlich gehört, vor dem geforderten Spieler ein und alle nachfolgenden Spieler rücken um einen Platz hinunter. Auch sollen inaktive Spieler nach einem Zeitraum von zwei Monaten automatisch hinter allen aktiven Spielern angereiht werden, etc…
Ein relativ aufwendiges Regelwerk wenn es darum geht die Foto-Steine, die die Spieler auf der Pyramide repräsentieren, umzuhängen. Relativ schnell kam mir die Idee, den Prozess elektronisch zu unterstützen. Nur dies hat so seine Tücken, sollte das System doch robust sein und auch von weniger technikaffinen Spielern benutzt werden können.

 

Versuch und Irrtum

Am Anfang stand die Idee einen Raspberry Pi einzusetzen, diesen mit einem entsprechend großen Bildschirm versehen und in geschützter Lage gut einsehbar zu positionieren. Unser Klublokal ist ein Pub, das auch von Nichtmitgliedern frequentiert wird, daher sollte es unmöglich gemacht werden das System ohne entsprechende Berechtigung zu bedienen.
Am besten sollte die Bedienung berührungslos geschehen, als mögliche Eingabeinstrumente kamen mir SMS oder eMail in den Sinn. Auch eine Smartphone App wäre eine Möglichkeit, nur müsste man hier sowohl Android als auch iOS unterstützen. Besitzer herkömmlicher Telefone hätten aber immernoch ein Problem.

Dieser erste gedankliche Entwurf gefiel mir nach längerer Überlegung immer weniger, wie sollen Bedien-Fehler via SMS verhindert werden, der Aufwand zur Administration der Telefonnummern welche Befehle an das System senden dürfen, etc…

Als nächstes kam mir der Gedanke einfach die Spielerfotos auf der bestehenden Pyramide (siehe Foto oben) durch touch-empfindliche LCD-Displays in der selben Größe zu ersetzten, welche die Bilder der Spieler auf den entsprechenden Positionen darstellen. Man tippt auf sein eigenes Foto, tippt auf den Gegner und die Forderung ist im System hinterlegt. Dazu bräuchte man dann noch ein numerisches Tastenfeld um das Ergebnis zu erfassen, und wie von Zauberhand würden die Spieler nach erfolgter Forderung entsprechend neu gereiht werden.  Was für eine geniale Idee… bis auf: Die Sicherheit des Systems wäre durch das Schloss vor der Vitrine gegeben, so wie es jetzt schon vorhanden ist. Die bestehende Regelung funktioniert zwar nicht perfekt aber meistens lässt sich der Schlüssel auffinden. Viel schwerer aber wiegen die Kosten. Selbst wenn man die Displays direkt beim Chinesen bestellt, wäre der Betrag doch zu hoch für den Verein. Aber das Konzept bleibt in der Schublade, vielleicht findet sich ja mal ein Sponsor dafür. ;)

Einzig der Einsatz eines Tastenfeldes aus der vorangegangenen Idee erschien brauchbar, es kostet nicht viel, ist halbwegs robust und jeder kann damit umgehen. Man könnte sich mittels eines Pin anmelden um danach einzugeben wen man gerne fordern möchte (Nummer des Gegners im aktuellen Ranking). Allerdings widersprach der Pin einer weiteren Forderung, die ich mir für das System gestellt habe, nämlich einen möglichst geringen administrativen Aufwand. Bei ca. 50 Mitglieder werden so einige regelmäßig ihren Pin vergessen. Keine gute Idee. Auch könnte so ein Pin ausgespäht werden und dann damit Schindluder betrieben werden. Und nein, ich bin nicht übermäßig paranoid.

Und nur den Zugang zum Tastenfeld physisch einzuschränken, indem man es in der Glasvitrine anbringt, in der jetzt die Fotos in Pyramiden-Form hängen, bedeutet wieder, dass der Schlüssel zu der Vitrine zugänglich sein muss, ein Problem dass auch bei dem Konzept mit der LCD-Display Pyramide bestanden hätte.

RFID Karte und Schlüsselanhänger

RFID Karte und Schlüsselanhänger

Die Lösung für das Authentifizierungs-dilemma bot sich im Einsatz von RFID Karten bzw. Schlüsselanhängern. Diese sind relativ günstig zu bekommen, robust, einfach zu handhaben und können jederzeit mitgeführt werden. Einfach die Karte oder den Schlüsselanhänger an das Lesefeld halten und über das Tastenfeld die Forderung oder das Ergebnis einer Forderung eingeben. Einfacher ginge es nur noch mit implantierten RFID Chips. ;)
Die Entscheidung ob Karten oder Schlüsselanhänger benutzt werden muss noch getroffen werden. Karten könnte man bedrucken, Schlüsselanhänger könnten mit dem Vereins Logo versehen werden und wären sicher auch nicht schlecht.

 

Ein brauchbarer Kompromiss

Aus allen vorangegangenen Überlegungen ist ein, so wie ich denke, brauchbarer Kompromiss herausgekommen, der in Sachen Robustheit und Einfachheit den Anforderungen an so ein System im “öffentlichen Raum” gewachsen sein sollte.

Das Herz des Systems bildet ein Raspberry Pi. Dieser kann einfach via HDMI an einen beliebigen Monitor/Fernseher angeschlossen werden und bietet Full HD Auflösung zur Darstellung der Pyramide bzw. Rangliste. Die Software dafür wird in Python entwickelt, für die einfache Funktionalität ist das vollkommen ausreichend. Weiters können neben der Rangliste auch noch Termine und Ankündigungen des Vereins darüber angezeigt werden.

Verbunden wird der Raspberry Pi via WLAN USB Dongle mit dem Internet und ist so in der Lage, die aktuelle Rangliste auch mit der Homepage des Darts Vereins abzugleichen. Ebenso sollen neue Spieler über die Benutzerverwaltung der Homepage erstellt werden und automatisch auf das Ranglistensystem übertragen werden können.

Breadboard Aufbau

Breadboard Aufbau

Das Tastaturfeld und der RFID Reader werden in einem extra Gehäuse zusammen mit einem Arduino Micro und einem einfachen LCD-Display verbaut und mittels USB mit dem Raspberry Pi verbunden. Im Moment existiert nur ein auf einem Breadboard aufgebauter Prototyp der als Entwicklungsplattform herhalten muss.
Wird ein autorisierter RFID Chip erkannt wird das Tastenfeld freigeschaltet und am LCD-Display erscheint ein Menü mit möglichen Aktionen, wie zum Beispiel eine Forderung eingeben oder das Ergebnis der Forderung bekannt machen. Die Eingaben werden an den Raspberry Pi übertragen und dieser aktualisiert die Pyramiden-Rangliste entsprechend.
Nachdem bei einer Forderung auch ein Euro an die Vereinskasse zu entrichten ist, welcher als Guthaben auf das Nenngeld des jährlich stattfindenden großen Turniers der Vereins wieder rückerstattet wird, wäre es eventuell auch eine Überlegung wert, diese Transaktionen ebenfalls über RFID abzuhandeln. Zum Beispiel könnte ich mir beim Kassier 10 € Guthaben auf mein “Vereinskonto” buchen lassen, und davon gleich beim Eingeben der Forderung den notwendigen Euro wieder abziehen lassen. Dies wäre aber erst in einer späteren Phase sinnvoll, wenn sich das Forderungssystem bewährt hat und auch häufig genutzt wird.

Als RFID Reader nutze ich das PN532 NFC/RFID controller breakout board von Adafruit, eine brauchbare, fertige Lösung mit Libraries für Arduino und eingebauter Antenne. Das Board kann über SPI, I2C oder UART angesprochen werden.
Das Tastaturfeld und das 4×20 LCD Display stammen von Conrad, wobei ich das LCD Display eventuell noch gegen eines mit LED Beleuchtung austauschen möchte.

In meinem nächsten Blogeintrag werde ich ein wenig mehr über Aufbau und Ansteuerung der Hardware erzählen.

Warning: Attempt to read property "comment_content" on null in /home/.sites/338/site1783/web/blog/wp-includes/comment-template.php on line 1024