Raspberry Pi Zero W als LED-Streifen Steuerung

Bisher haben wir für unseren LED Streifen mit SK6812 Chip ein Raspberry Pi 3 zur Steuerung verwendet. Der LED Streifen war dabei einfach über eine Breadboard angeschlossen, um die Python Skripte zu entwickeln und um das ganze zu testen. Für das Haus soll das ganze aber robuster verdrahtet sein. Wir haben uns für einen einzelnen Raspberry Pi im Haus entschieden auf dem das LED Script laufen soll. Weitere Aufgaben sind für diesen nicht vorgesehen. Daher ist die Wahl auf einen kompakten und günstigen Rasperry Pi Zero W gefallen:

Raspberry-Pi-Zero-FL By Evan-Amos [Public domain], from Wikimedia Commons

Dieser ist im Gegensatz zum Raspberry Pi 3 zwar deutlich langsamer, hat aber die für unsere Zwecke benötigten Schnittstellen wie WLAN und die 40 GPIO Pins mit dabei.
Die CPU, der Broadcom BCM2835, hat im Vergleich zum Pi 3 nur ein Kern mit älterer Architektur (ARMv6) sowie mit 512MB nur halb so viel RAM. Außerdem gibt es keine “richtigen” USB Ports und keinen analogen Audioausgang.
Tastatur und Maus lässt sich leider nur mit einem speziellen “Micro USB B” zu “USB A” Adapter anschließen. Für die erste Inbetriebnahme ist dies also ein Problem wenn man keinen zur Hand hat. Für den späteren Betrieb brauchen wir dagegen keine Ein-/Ausgabegeräte. Der Zugriff auf den Raspberry soll ausschließlich über WLAN und SSH erfolgen. Aber wie dann die WLAN Konfiguration auf einen neu installierten Raspberry bringen?

Headless-Konfiguration

Zum Glück gibt es aber die Möglichkeit die WLAN Konfiguration (SSID und Passwort) auf die Raspbian SD-Karte im Voraus zu kopieren. Diese Daten werden dann beim ersten Starten des Raspberry übernommen. Dazu mit einem Imagetool das Raspbian Image auf eine SD-Karte kopieren und dann die angepasste WLAN Konfiguration in der Datei “wpa_supplicant.conf” auf die Bootpartion kopieren.

wpa_supplicant.conf:

country=DE 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
       ssid="Mokonas wlan"
       psk="mein sicheres Passwort"
       key_mgmt=WPA-PSK
}

Wichtig: Wenn die wpa_supplicant.conf unter Windows erstellt wird so muss das EOL Format der Textdatei auf “UNIX” gestellt sein (z.B. mit Notepad++).

Ansonsten kann der Raspberry Pi die Datei nicht verarbeiten. Dann dann noch eine Datei mit den Namen “ssh” anlegen und in die Bootpartion der SD-Karte kopieren damit auch der SSH Server nach dem ersten Neustart automatisch läuft. Genauer beschrieben ist das gesamte Vorgehen z.B. hier: Link

Somit kann der Raspberry Pi Zero W auch ohne Monitor + Tastatur und Maus eingerichtet werden.

LED Anschlussplatine

Um den LED Streifen anzuschließen haben wir uns entschieden, einen kleinen “HAT” (Hardware Attached on Top) zu basteln. Dieser enthält ein paar Printklemmen (Schraubklemmen) für die Spannungsversorgung des Raspberry Pi über GPIO Pins sowie des LED Streifes und zwei unabhängige Anschlüsse für das PWM Signal. Unser LED Streifen wird wie der Raspberry auch mit 5V versorgt. Somit können beide Geräte mit einen einzigen leistungsfähigen Netzteil (wir verwenden im Moment ein günstiges 5V 10A DIN Netzteil von Meanwell) versorgen.

Die Platine steckt dann auf der GPIO Leiste des Raspberry Pis. Das Steuersignal des LED Streifens “DO” wird an den GPIO 18 oder GPIO 13 angeschlossen. Dabei handelt es sich um spezielle Pins die via Hardware-PWM angesteuert werden können und im LED Script ausgewählt wurde.

Breadboard Konfiguration für den HAT

Auf einen Kondensator zwischen VCC und Ground, wie es manchmal u.a. in Schaltungen mit ws2812 Chip vorgeschlagen wird, verzichten wir da es bereits auf dem Streifen für jede LED einen eigenen Stützkondensator gibt und der SK6812 laut Datenblatt eine Schutzschaltung gegen Verpolung usw. enthält. Genauso verzichten wir auf einen Pegelwandler zwischen den 3.3V PWM Ausgang des Raspberry Pi und der LED Steuereingang. Der SK6812 benötigt laut Datenblatt zwar mindestens 3.4V für eine saubere High-Pegel Erkennung jedoch konnten wir auch nach längerem Betrieb keine Probleme mit 3.3V feststellen.

Das ganze haben wir auf die Schnelle mit einer Lochrasterplatine realisiert. Bekommt zwar keinen Schönheitspreis aber es funktioniert wunderbar und erfüllt seinen Zweck:

Fertiger HAT auf Rapsberry Pi Zero W
Der Port “PWM1” wird bisher nicht vom LED Script verwendet. Jedoch haben wir ihn schon verdrahtet. Wer weiß ob das nicht später nützlich sein könnte.

Performance des Pi W Zero

Unser SK6812 Script mit 300 LEDs läuft auf dem Pi Zero W soweit ganz akzeptabel. Die CPU-Auslastung durch den Script beträgt ca 35-40% im Modus “Flammen“. Die anderen Modis benötigen teilweise etwas weniger Rechenleistung. In der SSH Konsole wirkt das System bei laufenden LED Script in Gegensatz zum Raspberry Pi 3 etwas träge. Eventuell lässt sich unser Python Script aber noch etwas optimieren. Für mehr als 300 LEDs pro Streifen ist aber trotzdem noch Luft. Insgesamt werden wir den Zero W sicher noch öfter verbauen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.