Spielstandsanzeige
In diesem Blog möchte ich näher auf die Hardware eingehen, die den Spielstand anzeigen soll. Zunächst möchte ich nochmal auf die Anforderungen eingehen.
Die Spielstandsanzeige soll, genauso wie das analoge Vorbild, auf jeder Stirnseite des Kickers 10 Anzeigefelder haben. Da nun aber LED’s zum Einsatz kommen, können über die Farbe noch weitere Informationen zur Verfügung gestellt werden. Zeigt z.B. die analoge Anzeige ein Spielstand von 4:5 an, kann bei der digitalen Variante über die Farbe zwischen normalen und Eigentoren unterschieden werden.
Zusätzlich soll die Anzeige optisch an das Original angelehnt sein.
Komponenten
Eine Spielstandsanzeige besteht aus folgenden Komponenten:
- Ein LED-Band mit 10 RGB LEDs (bereits in Blog-Post 2 erklärt). An das Band wird an dem einen Ende ein dreipoliges Kabel (5V, GND, DIN) gelötet. Am anderen Ende wird eine Schnur geklebt, um das LED-Band in das Gehäuse einziehen zu können.
- Das Gehäuse ist in vier Teile unterteilt, da es mit einer Gesamtlänge von über 30 cm nicht auf die Druckplatte meines 3D-Druckers passt.
- Rechtes Ende
- Mittelteil
- Linkes Ende (Unterteilt in 2 Teile, damit das LED-Band eingezogen werden kann. Die Teile werden über Schrauben verbunden.)
- Ein Aluminium L-Profil um die Gehäuseteile miteinander zu verbinden.
- 10 auf die passende Größe zurechtgeschnittenen Diffusor-Elemente
Das Diffusor-Material wurde, ähnlich wie beim Input-Device, in einzelne Teile geschnitten. Hier druch sind die Farben später deutlich besser zu unterscheiden. Damit die Diffusor-Elemente alle möglichst exakte Maße haben, wurde auch hierfür eine Schneidehilfe 3D-gedruckt.
Das CAD-Modell wurde in Fusion360 und anschließend eine erste Version gedruckt:
Finale Gehäuse-Version
Die in blau gedruckten Bauteile sind die erste Version. In der finalen Version sind nur Kleinigkeiten geändert worden, die die Druckqualität verbessern und den Zusammenbau erleichtern. Am Design und der Funktionalität hat sich aber nichts geändert.
Leider hatte ich zu dieser Zeit große Probleme mit der Haftung der Bauteile auf der Druckfläche des 3D-Druckers. Deshalb kam es beim ersten Versuch, die finale Version der Spielstandsanzeige zu drucken, zu starkem Warping:
Nachdem die Probleme mit dem 3D-Drucker beseitigt waren, konnten die fehlerfrei gedruckt werden. Im folgenden Bild ist der Zusammenbau zu sehen. Man beachte die Schnur, mit dem das LED-Band in das Gehäuse und die Diffusor-Elemente eingezogen werden kann:
Kommunikation
Das LED-Band kann, wie auch die LED’s der Input-Devices, über die serielle Schnittstelle gesteuert werden. Hierzu wird folgender Befehl im JSON-Format an den Arduino gesendet:
{"mode":"setled","msg":{"pos":"bs","R":[255,0,255,0,255,0,255,0,255,0],"G":[255,0,255,0,255,0,255,0,255,0],"B":[255,0,255,0,255,0,255,0,255,0]}}
In diesem Beispiel wird jede zweite LED der Spielstandsanzeige auf der schwarzen Seite ( bs
für black score) weiß leuchten.
Im Arduino-Code musste hierfür nur wenig angepasst werden:
-
Deklaration eines neuen LED-Objekts:
// LED WhiteScore const int WS_LED_PIN = 8; Adafruit_NeoPixel ws_led(ARRAYLEN, WS_LED_PIN, NEO_GRB + NEO_KHZ800);
-
Initialisierung im
void setup()
ws_led.begin(); ws_led.clear(); ws_led.show();
-
Ergänzung in einigen If-Abfragen
Das gilt natürlich analog zu der Spielstandsanzeige auf der weißen Seite. Der Arduino-Code ist hier auf GitHub zu finden.
Fertige Spielstandsanzeige
Das folgende Bild enthält noch einige Elemente, die erst im kommenden Blogbeitrag beschrieben werden (Arduino Mega anstatt Uno, Power-Distribution und die fertigen Input-Devices). Wie aber gut zu sehen ist, “verlaufen” die Farben der Spielstandsanzeigen nicht. Auch sind sie sehr hell, was natürlich sehr gut ist (Hier nur auf 10% Helligkeit!).