Back
Featured image of post Projekt Log 02 | Erste Bestellrunde

Projekt Log 02 | Erste Bestellrunde

In diesem Post möchte ich erläutern, für welche Hardware und warum ich mich dafür entschieden habe.

Micro-Controller

Wie im vorherigen Post genauer erläutert, soll meine Website von einem Raspberry gehostet werden. Ein Arduino soll sich um die LED’s, Knöpfe, Anzeigen oder sonstige Hardware kümmern. Zwischen den beiden soll über ein USB-Kabel seriell kommuniziert werden.

Raspberry

Da die Website nur im lokalen Netzwerk erreichbar sein soll und zu keinem Zeitpunkt wirklich viele Zugriffe auf die Website zu erwarten sind, reicht die Rechenkapazität von einem normalen Raspberry Pi völlig aus. Jedoch sind diese nicht ganz billig (Pi 3 ab 35€, Pi 4 ab 65€) und würden eine ziemliche Kerbe ins Budget schlagen. Im Sweet-Spot zwischen Kosten und Rechenleistung für dieses Projekt liegen die Raspberrys der Zero Serie:

  • Raspberry Pi Zero (ohne WLAN)
  • Raspberry Pi Zero W (mit WLAN)
  • Raspberry Pi Zero WH (mit WLAN und bestücktem Header)

Da für eine Verbindung mit dem lokalen Netzwerk offensichtlich WLAN nötig ist und ich ebenso die Möglichkeit haben möchte die Header-Pins zu nutzen, wird ein Raspberry Pi Zero WH zum Einsatz kommen. Außerdem liegt hier einer ungenutzt in einer Schublade, ich muss diesen also nicht mal bestellen.

https://images-na.ssl-images-amazon.com/images/I/51fzONF74wL.<em>AC</em>.jpg

Arduino

Für den Arduino kommen die Varianten Uno oder Mega infrage. Diese sind in der Community stark verbreitet, gut unterstützt und sehr günstig. Der limitierende Faktor beim Uno ist die Anzahl der Pins. Pro Knopf brauche ich einen Pin, d.h. mindestens acht (4 Slots á 2 Knöpfe) Pins sind bereits belegt. Für die Score-Displays (7-Segment-Anzeige) bräuchte ich insgesamt 16 Pins und der Uno wäre bereits überlastet. Für den Score-Display werden jedoch, anders als geplant, auch LEDs zum Einsatz kommen; dazu später mehr. Für diese beiden LED-Strips und für die vier LED-Strips der Input-Devices werden 6 Pins benötigt. Allerdings bin ich mir hier noch unsicher, ob diese PWM-Pin’s sein müssen.

Um es kurz zu halten: Es wird knapp… Fürs erste werde ich aber einen Uno nutzen. Falls mir die Pins ausgehen, kann ich sehr leicht auf einen Mega umsteigen. Das Programm muss, bis auf eine Anpassung der Pin-Nummern, nicht umgeschrieben werden. Außerdem besitze ich mehrere Unos und Megas, ich muss diese also nicht extra bestellen.

https://upload.wikimedia.org/wikipedia/commons/3/38/Arduino_Uno_-_R3.jpg

Adapter

Die Kommunikation zwischen Raspberry und Arduino soll über das USB-Kabel laufen. Das legendäre blaue USB-Kabel (Stecker: USB Type A zu USB Type B) für den Arduino kann jedoch nicht direkt an den Raspberry Pi Zero angeschlossen werden, da hier nur Micro-USB Buchsen zur Verfügung stehen. Es braucht also noch einen Adapter. Amazon bietet Hunderte solcher an, ich habe mich für diesen hier (gekauft für 2,01€) entschieden, da er sehr günstig ist und um 90° abgewinkelt ist. Das wird später für eine kompakte Bauform wichtig.

https://images-na.ssl-images-amazon.com/images/I/51fGBqQdaML.<em>AC_SL1000</em>.jpg

Score-Display

Die ursprüngliche Idee war es, eine 7-Segment-Anzeige zu nutzen. Im Laufe der Recherche ist mir aber bewusst geworden, dass ich damit nicht wirklich glücklich bin:

  • Diese Anzeigen benötigen sehr viele Pins am Arduino um direkt angesteuert werden zu können. Alternativ kann man ein Treiber-Chip nutzen, da muss man aber den richtigen erwischen und die Suche nach einem passenden Chip als Laie ist ziemlich grob.
  • Die Anzeige ist relativ klein.
  • Sie ist außerdem nur von vorne sichtbar. Publikum, das an der Stirnseite vom Kicker steht, kann die Anzeige nicht sehen.
  • Das letzte Gegenargument ist nicht groß, aber mir relativ wichtig: Eine 7-Segment-Anzeige ist nicht im klassischen “Kicker-Zählwerk” Style.

Aus diesen Gründen werde ich auf ein LED-Strip zurückgreifen. Diese lassen sich über einen Pin ansteuern und sind gut sichtbar. Ein nackter Strip ist allerdings ziemlich hässlich, deshalb habe ich nun ein Gehäuse im “Kicker-Zählwerk” Style mit LED-Diffusor geplant. Letztendlich habe ich folgendes bestellt:

  • LED Strip (Von AliExpress, Type: Black PCB 30 IP30, Länge: 1m, Kosten: 1,92$ also 1,57€)
  • LED Strip Diffusor (Von AliExpress, Type: T1018 Edge, Länge: 1m, Kosten: 9,49$ also 7,78€)

https://ae01.alicdn.com/kf/Hc19302a48c0b4029aa228b2667575bbe9/WS2811-WS2812B-WS2813-WS2815-RGB-LED-Streifen-Einzeln-Adressierbare-Band-Licht-DC5V-DC12V-IP30-IP65-IP67.jpg_q50.jpg

Input-Devices

Pro Slot wird es ein Input-Device geben. Ein Input-Device besteht aus zwei Knöpfen (Tor und Eigentor) sowie LEDs für die persönliche Anzeige.

Slot-LED

Ein Spieler soll direkt erkennen, wie viele Tor und Eigentore er/sie persönlich geschossen hat. Um die Anzahl der nötigen LEDs zu bestimmen, spielen wir eine Runde Kicker mit Spieler A,B, C und D in Gedanken: Ein normales Spiel wird nur bis sechs und nicht bis zehn gespielt. Angenommen, Spieler A,B und C stehen einfach nur still da, dann kann Spieler D fünf Eigentore und sechs reguläre Tore schießen. Um das anzeigen zu können, braucht es im Worst-Case 11 LEDs. Für die tatsächliche Umsetzung kommen nun folgende Optionen in Frage:

  • Einzelne RGB-LEDs:
    • Pro:
      • Sehr günstig
    • Contra:
      • Großer Verkabelungs- und Lötaufwand, da jede RGB-LED vier Anschlüsse hat und drei Vorwiderstände benötigt.
      • Pro RGB-LED werden 3 Pins am Arduino belegt (4 Slots * 11 LEDs/Slot * 3Pin’s/LED = 132 benötigte Pins).
      • Großer Programmieraufwand
  • LED-Strip:
    • Pro:
      • Nur ein belegter Pin am Arduino, da die LEDs adressierbar sind.
      • Vergleichsweise niedriger Programmieraufwand, da es eine Bibliothek gibt.
    • Contra:
      • Großer Abstand zwischen den LEDs. Damit würde das Input-Device sehr breit werden.
  • Einzelne adressierbare LEDs:
    • Pro:
      • Schmale Bauform des Input-Devices möglich.
      • Nur ein belegter Pin am Arduino, da die LEDs adressierbar sind.
      • Vergleichsweise niedriger Programmieraufwand, da es eine Bibliothek gibt.
    • Contra:
      • Großer Verkabelungs- und Lötaufwand
      • Relativ teuer einzeln zu kaufen
  • Fertig bestückte Platine mit adressierbaren LEDs:
    • Pro:
      • Relativ günstig
      • Schmale Bauform des Input-Devices möglich.
      • Nur ein belegter Pin am Arduino, da die LEDs adressierbar sind.
      • Vergleichsweise niedriger Programmieraufwand, da es eine Bibliothek gibt.
    • Contra:
      • To be found… ;-)

Offensichtlich habe ich mich für die letzte Variante entschieden. Auf Ebay habe ich diese Platine gefunden und davon vier bestellt. Auch der Preis ist mit 1,22€ pro Platine absolut in Ordnung. Auch hier wird der bereits oben aufgeführte LED-Diffusor zum Einsatz kommen.

https://i.ebayimg.com/images/g/1JoAAOSwEzxYZjev/s-l1600.jpg

Buttons

An die Knöpfe an den Input-Devices werden zwei Anforderungen gestellt. Zum Einen sollen die Knöpfe groß genug sein (min 1cm Durchmesser), damit man bei Action-reichen Spielen den Knopf auch gut trifft. Zum Anderen sollen alle Tor- bzw. Eigentor Knöpfe eine einheitliche Farbe haben.

Auf Amazon habe ich ein Knopf-Set mit 24 Knöpfen für 7€ gefunden, das den Anforderungen gerecht wird. Für die acht genutzten Knöpfe fallen so Kosten von 2,33€ an. Die restlichen Knöpfe im Set kann ich für andere Projekte nutzen.

https://images-na.ssl-images-amazon.com/images/I/71-ZiOWy0EL.<em>AC_SL1500</em>.jpg

Power-Supply

Um zu ermitteln, welche Leistung ein Netzteil haben soll, möchte ich hier eine Worst-Case-Analyse durchführen:

Beschreibung Beschreibung Zwischenrechnung Zwischenrechnung Stromverbrauch
4 Input-Devices
Einzelne WS2812B LEDs 60mA
8-fach WS2812B LED Platine 480mA
Summe Input-Devices 1920mA
2 Spielstandanzeigen
Pro Spielstandanzeige 200mA
Summe Spielstandanzeigen 400mA
Raspberry Pi Zero WH 200mA
Arduino Mega 100mA
Summe 2620mA

Das ist natürlich eine absolute Worst-Case-Abschätzung, bei der angenommen wird, dass alle LEDs mit 100% Helligkeit leuchten sowie dass der Arduino und er Raspberry voll ausgelastet sind. Ich bin aber lieber auf der sicheren Seite, weshalb ich nach Schaltnetzteilen mit 3A bei 5V suche. Letztlich war ein Schaltnetzteil mit 5A billiger als die 3A Variante. Dieses Netzteil hat 5,79€ gekostet.

https://images-na.ssl-images-amazon.com/images/I/61cDGTEnv2L.<em>AC_SL1001</em>.jpg

Verkabelung

Ich habe noch eine Rolle 10-aderiges-Flachbandkabel vom Typ 28AWG (Vor einer Weile bei Amazon gekauft). Dieses möchte ich für die Verkabelung nutzen. Ich möchte aber einen zu großen Spannungsabfall durch ein zu kleines Kabel vermeiden, weshalb ich auch hier eine Worst-Case-Analyse durchführen will:

  • Annahmen:

    • Länge PowerSup zu Input-Device: max 2 m
    • Leitungswiederstand für 28AWG Kabel: 232 Ohm/km
    • Worst-Case Leistung von einem Input-Device: 480mA
  • Widerstand:

    R = 2 m * 232/1000 Ohm/m = 0,464 Ohm

  • Spannungsabfall:

    U = 0,464 Ohm * 480mA = 222 mV

Ein Worst-Case Spannungsabfall von 0,2V ist mehr als in Ordnung. Ich kann also meine vorhandenen Kabel bedenkenlos nutzen.

https://images-na.ssl-images-amazon.com/images/I/611zQlo%2BexL.<em>SL1094</em>.jpg

Finanzen

Zu guter Letzt möchte ich meine Ausgaben auflisten. Ich unterscheide zur besseren Nachvollziehbarkeit noch, welche Sachen ich bereits besitze und welche ich kaufen musste:

Gegenstand Kosten Persönliche Kosten
Raspberry Pi Zero WH ~11€
Arduino Uno ~6€
Adapter 2,01€ 2,01€
LED-Strip 1,57€ 1,57€
LED-Diffusor 7,78€ 7,78€
4 mal 8-fach WS2812B LED Platine 4,88€ 4,88€
Buttons 2,33€ 2,33€
Power-Supply 5,79€ 5,79€
Summe 41,36€ 24,36€
Built with Hugo
Theme Stack designed by Jimmy