Wer nach RGB LED Streifen sucht wird wohl oder übel auf den WS2812 oder den WS2801 stoßen. Diese beiden LED Strips sind sehr unterschiedlich, aber beide mit dem Raspberry Pi ansteuerbar. Nachdem wir in einem vorherigen Tutorial letzteren bereits verwendet haben und auch in unserem Ambilight genutzt haben, geht es in diesem Tutorial um die Ansteuerung des Raspberry Pi WS2812 RGB LED Strips.
Die Modelle WS2812B sowie WS2811 sind ebenfalls kompatibel und können mit dieser Anleitung angesprochen werden.
Dazu muss gesagt werden, dass man sich von der „geringeren“ Modellnummer des WS2801 nicht täuschen sollte. Dieser hat – abgesehen vom Preis – ein paar Vorteile, auf welche unten genauer eingegangen wird.
Zubehör
Wer schon einen RGB LED Streifen (z.B. als Ambilight) verwendet hat, kann das Zubehör daraus weiter verwenden. Dazu zählt neben einem Raspberry Pi folgendes:
- Für Einsteiger: Netzteil + Steckverbinder (siehe Bild rechts)
- Für Erfahrene: Schaltnetzteil 5V 10A + Netzkabel
- Jumper Kabel (ebay)
- ggf. Breadboard
Die maximale Stärke des Netzteils ist abhängig von der Anzahl der LEDs. Laut Datenblatt braucht eine LED unter Volllast (= maximale Helligkeit) ca. 60mA. Bei 5m und 30 LEDs/m sind dies 9 Ampere. Ein Netzteil, welches bis zu 10A ist also geeignet. Solltest du mehr LEDs im Einsatz haben, kann es sein, dass du mehr als ein Netzteil benötigst (dazu später mehr).
Darüber hinaus wird natürlich noch der eigentliche RGB LED Streifen vom Typ WS2812(B) bzw. WS2811 (auch NeoPixel genannt) benötigt. Diese gibt es in drei unterschiedlichen Varianten, welche sich in der Anzahl der LEDs pro Meter unterscheiden:
- WS2812 LED Streifen mit 30 LEDs pro Meter
- WS2812 LED Streifen mit 60 LEDs pro Meter
- WS2812 LED Streifen mit 144 LEDs pro Meter
Die Länge sollte dabei abhängig vom umzusetzenden Projekt gewählt werden. Meist sind aber 5m Rollen heruntergerechnet etwas günstiger. Meine Empfehlung ist die mittlere Version mit 60 LEDs/m. Diese haben eine höhere Dichte an Lichtern und somit höhere eine höhere Helligkeit. Vom Preis her sind diese jedoch noch unter einem vergleichbar langem WS2801 Band mit lediglich 32 LEDs
NeoPixel WS2812B / WS2811 vs. WS2801 am Raspberry Pi
In einem vorherigen Tutorial haben wir bereits gesehen, wie man einen WS2801 RGB LED Streifen ansteuert. Dieser unterscheidet sich vom WS2812B bzw. WS2811 und hat einige Vorteile, die ich hier zunächst auflisten möchte:
- Durch zwei Datenleitungen sind weniger Berechnungen nötig.
- Dadurch kann ebenfalls eine höhere Frequenz erreicht werden.
- Die Helligkeit des WS2801 ist höher.
- Es ist gleichzeitig möglich den WS2801 zu steuern und Musik abzuspielen, was mit dem WS2812 nicht möglich ist (mehr dazu weiter unten)
Nun stellt sich die Frage, warum man dennoch am Raspberry Pi einen WS2812 RGB LED Streifen nutzen sollte, wenn der WS2801 doch einige Vorteile bringt? Die Antwort ist recht einfach: Der günstigere Preis. Im Vergleich ist ein Meter des WS2801 recht teuer, weshalb man damit eher sparsam umgehen möchte. Bei den im verhältnismäßig günstigen Preisen für mehrere Meter WS2812 Kabel, kann auch ein großes Projekt ohne riesiges Budget realisiert werden.
Allerdings muss dazu gesagt werden, dass es leider nicht möglich ist, gleichzeitig Töne per Raspberry Pi Onboard Soundkarte wiederzugeben und den Streifen zu steuern. Dies liegt daran, dass der Raspberry Pi kein Echtzeitsystem wie der Arduino ist. Für die Tonwiedergabe wird PWM genutzt, welches ebenfalls zum Steuern des WS2812 am Raspberry Pi benötigt wird. Beides gleichzeitig ist nicht möglich, weshalb jemand der auf die Soundwiedergabe angewiesen ist, eben lieber den WS2801 nehmen sollte.
Anschluss der NeoPixel WS2812 am Raspberry Pi
Bevor wir den Raspberry Pi mit dem WS2812 LED Strip verbinden, machen wir das Netzteil fertig. Wenn dein Streifen weniger als 20-30 LEDs hat, ist eine externe Stromversorgung nicht zwingend nötig. Sollte er mehr LEDs haben, reicht der Strom des Pi’s allerdings nicht mehr und ein Netzteil ist erforderlich.
Beim Netzteil selbst kommt es auf die gewählte Art an. Bei einem Netzteil mit Adapter (Einsteiger) muss lediglich der DC Adapter angeschlossen werden, woran im nächsten Schritt die Spannungskabel des WS2812B kommen. Hast du diese Methode gewählt, kannst du zum nächsten Punkt springen. Ein Schaltnetzteil (für Erfahrene) muss allerdings etwas aufwändiger versorgt werden.
Vorher allerdings noch der Hinweis: Beim Arbeiten mit 230V ist Vorsicht geboten, da Lebensgefahr besteht! Lass dir von einem Elektriker helfen oder greife auf die sichere Version des normalen Netzteil zurück! Führe alle Arbeiten bei getrennter Netzverbindung durch. Solltest du keine / nicht genug Erfahrung haben, arbeite bitte mit dem normalen Netzteil!
Zunächst brauchen wir ein gewöhnliches Stromkabel, welches 10A verträgt. Meist ist auf der Unterseite des Steckers ein entsprechender Hinweis (230V, 10A). Dieses trennen wir vorsichtig mit einem Teppichmesser/Abisolierzange o.ä. auf. Darin sind zwei bzw. drei Kabel mit unterschiedlichen Farben enthalten. Auch diese Kabel müssen vorsichtig abisoliert werden.
Mein Kabel hat nur zwei innere Kabel. Zum Anschluss an das Schaltnetzteil, dienen die Farben der inneren Kabel als Orientierung. Das Schaltnetzteil hat die Anschlüsse „L“, „N“ und „PE“ bzw. ein Erdungssymbol. Noch einmal der Hinweis: Sei vorsichtig!
- Das schwarze bzw. braune innere Kabel kommt an den Außenleiter „L“.
- Das blaue innere Kabel kommt an den Neutralleiter „N“.
- Das grün-gelbe innere Kabel kommt an den Schutzleiter „PE“ bzw. Erdungssymbol.
Nachdem die Feststellschrauben angezogen sind, kann das Netzkabel in die Steckdose gesteckt werden und die Spannung am Netzteil testweise mit einem Multimeter gemessen werden. Dies ist zwar keine Pflicht, aber kann als Absicherung gemacht werden. Dabei wird VCC an V+ angeschlossen und GND an COM. Sollte die Spannung nicht exakt 5V betragen, ist dies kein Problem.
Theoretisch ist es auch möglich den Raspberry Pi aus diesem Netzteil mit Strom versorgen. Dies haben (laut Kommentaren im WS2801 Tutorial) auch einige User gemacht. Aus Platzgründen wird darauf hier aber nicht eingegangen.
Verbindung zwischen Raspberry Pi und WS2812 NeoPixel Streifen
Ist das Netzteil soweit eingerichtet, schließen wir den Raspberry Pi an den WS2812 RGB LED Streifen an. Das (Schalt-)Netzteil muss vorher vom Strom getrennt werden.
Da nur eine Datenleitung vorhanden ist, brauchen wir auch nur einen Pin (GPIO 18). Wichtig ist, dass die Masseanschlüsse des Raspberry Pi’s und des Schaltnetzteil verbunden werden, allerdings nicht die 5V Spannungen! Insgesamt führen nur zwei Kabel vom Raspberry Pi zum WS2812 LED Strip: GPIO 18 (an DIN) und GND an COM des Netzteils sowie GND des Streifens.
Je nach Länge des LED Streifen sollte die externe Stromverbindung an mehreren Orten angebracht werden. Im Idealfall wird ca. jeden Meter VCC und GND mit dem Schaltnetzteil parallel verbunden (sodass viele Kabel zum Netzteileingang führen).
Hinweis: Bei Längen unter 1m kann das Netzteil auch weggelassen werden und die Eingangsspannung vom 5V Pin des Raspberry Pi’s kommen.
Vorbereitung & Installation
Bevor wir dir Raspberry Pi Bibliothek für die WS2812 LEDs installieren, müssen einige Vorbereitungen getroffen werden:
- Die Paketquellen werden aktualisiert:
sudo apt-get update
- Wir installieren die benötigten Pakete (mit Y bestötigen):
sudo apt-get install gcc make
build-essential python-dev git scons swig
- Die Audioausgabe muss deaktiviert werden. Dazu bearbeiten wir die Datei
sudo nano /etc/modprobe.d/snd-blacklist.conf
Hier fügen wir folgende Zeile hinzu:
blacklist snd_bcm2835
Anschließend wird die Datei durch Drücken von STRG+O gespeichert und mit STRG+X wird der Editor geschlossen.
- Außerdem müssen wir die Konfigurationsdatei bearbeiten:
sudo nano /boot/config.txt
Unten befindet sich Zeilen mit folgendem Inhalt (mit STRG+W kannst du suchen):
# Enable audio (loads snd_bcm2835) dtparam=audio=on
Diese untere Zeile wird mit einer Raute/Hashtag # am Zeilenanfang auskommentiert:
#dtparam=audio=on
- Wir starten das System neu
sudo reboot
Nun können wir die Bibliothek laden.
git clone https://github.com/jgarff/rpi_ws281x
In diesem Verzeichnis sind nun einerseits einige C Dateien enthalten, welche einfach kompiliert werden können. Der Beispielcode dafür ist gut verständlich. Damit wir diese in Python verwenden können, müssen wir sie kompilieren:
cd rpi_ws281x/ sudo scons
Wir interessieren uns allerdings in diesem Tutorial vor allem für die Python Variante und wechseln daher in den Python Ordner:
cd python
Hier führen wir nun noch die Installation aus:
sudo python3 setup.py build sudo python3 setup.py install sudo pip3 install adafruit-circuitpython-neopixel
Damit können wir im nächsten Schritt bereits einen ersten Test ausführen.
Testen des Raspberry Pi WS2812 RGB LED Streifen
Im Example-Ordner sind einige Beispieldateien, womit die LED Streifen getestet werden können. Darüber hinaus können sogar zwei WS2801 LED Streifen unabhängig voneinander per Raspberry Pi gesteuert werden (multistrandtest.py
).
Wir interessieren uns aber zunächst für die einfache Version. Dafür müssen wir vor dem Test noch ein paar Angaben vervollständigen und bearbeiten daher die Beispieldatei.
sudo nano examples/strandtest.py
Die Datei sieht folgendermaßen aus, wobei wir in erster Linie LED_COUNT
(Anzahl der anzusprechenden LEDs) und LED_PIN
(bei uns 18) angeben müssen.
Ein Fehler ist aufgetreten. Bitte versuchen Sie es später erneut. |
Anschließend speichern wir (STRG+O) und kehren zurück ins Terminal (STRG+X). Nun lässt sich die Datei ausführen (die Übergabe des Pfads zu den kompilierten Dateien ist wichtig):
sudo python3 examples/strandtest.py
Die LEDs des WS2812 Streifen sollten wie im unteren Video aufleuchten. Im oberen Code sind nur einige Effekte (Regenbogen, etc.) definiert, allerdings können auch problemlos analog dazu weitere Effekte erstellt werden (wer möchte kann gerne seinen Code für Effekte als Kommentar posten).
Weiteres
Die WS2812 NeoPixel LEDs werden auch in vielen anderen (hauptsächlich für Arduino konstruierten) Projekten genutzt, weshalb man sicherlich einige davon auch portieren kann.
Darüber hinaus hat der Raspberry Pi Shop Pimoroni einen Aufsatz für das Model B (ab Version B+) und den Raspberry Pi Zero hergestellt und nennt diesen Unicorn pHAT. Dieses RGB LED Matrix nutzt allerdings eine eigene Software zur Bedienung.
Die von mir genutzte Bibliothek wird übrigens auch von einem anderen Entwickler als Serveranwendung angeboten.
183 Kommentare
Beim Testen der LEDs kommt folgender Fehler (nutzte einen Pi 1 Rev 2, falls relevant):
Traceback (most recent call last):
File „examples/strandtest.py“, line 8, in
from neopixel import *
File „/home/pi/rpi_ws281x/python/neopixel.py“, line 5, in
import _rpi_ws281x as ws
ImportError: No module named _rpi_ws281x
Bitte um Hilfe, such bereits vergeblich mit Google 🙁
Bist du im richtigen Verzeichnis und hast den Pythonpath genauso angegeben?
Sollte soweit im richtigem Verzeichnis sein, habe die Anleitung auf neu installiertem Raspbian nochmals genau so umgesetzt… selber Fehler.
ist dein nachname Kirchdorfer?!
Nein.
Hallo buttervolk,
ich habe genau das selbe Problem und wollte Fragen, ob du bereits eine Lösung gefunden hast.
Leider auch das gleiche Problem! :/
Hey,
nach dem Kommando „sudo python setup.py build“ habe ich noch das Kommando
„sudo python setup.py install“
ausgeführt. Danach war der Fehler verschwunden. Vielleicht hilft das ja?
Viele Grüße
Probier mal noch die setuptools zu installieren, hatte bei mir gefehlt:
sudo apt-get install -y python-setuptools
und dann aus dem Folder /rpi_ws281x/python
python setup.py build
sudo python setup.py install
Die scripte, die ohne Vorsatz sind laufen in python2, die anderen in Python3. Die libraries wurden aber nur für python3 installiert.
Super Tutorial, funzt auf Anhieb
habe das gleiche Problem auf einem Raspi 3 :“No module named neopixel“
Die Installation der benötigten Pakete (Punkt 2 des Tutorials) läuft auch nicht durch.
„Paket swi kann nicht gefunden werden“
Kann das der Grund sein?
ok -mein Fehler. Das letzte Paket hieß swig und nicht swi
Trotzdem bleibt bei Ausführung des Programms die Fehlermeldung wie bei Buttervolk:
Traceback (most recent call last):
File „examples/strandtest.py“, line 8, in
from neopixel import *
File „/home/pi/rpi_ws281x/python/neopixel.py“, line 5, in
import _rpi_ws281x as ws
ImportError: No module named _rpi_ws281x
Das Tutorial ist korrekt.
Habe alles nochmal Schritt für Schritt durchgeführt und es klappt.
Hat vorher wohl daran gelegen, dass nicht richtig kompiliert wurde (Schritt 5).
Sorry, wollte niemanden verwirren.
Ich habe das Tutorial auch schon zweimal gemacht… Aber funktioniert hat es trotzdem nicht. Ich probiere irgendwann nochmal…
Hi, was ist, wenn ich 2 Netzteile benötige, weil ich eine höhere Strom Versorgung benötige? Wie schließe ich das Netzteil an den raspery? Muss ich von beiden Netzteilen den grnd am raspi anschließen?
Gruß
Wieso braucht der Pi ein stärkeres Netzteil? Du solltest das externe Netzteil nur an den Streifen anschließen (optimal alle 2-3m eines).
Grnd vom Netzteil wird an den Pi angeschlossen. Nun habe ich aber 2 Netzteile.. Muss ich beide Netzteile am grnd vom pi anschließen?
Hier nochmal ein Auszug von oben
Wichtig ist, dass die Masseanschlüsse des Raspberry Pi’s und des Schaltnetzteil verbunden werden, allerdings nicht die 5V Spannungen!
Nun habe ich ja durch die 2 Stromkreise ,2 Netzteile. Wenn ich aber nun beide grnd an den Pi anschließe, dann schließe ich ja praktisch 2 Netzteile mit der Masse zusammen… Einige sagen es geht, andere meinen um gottes Willen…
Also die Sache ist die: Man kann den Pi auch über den 5V Pin mit Strom versorgen. Dort ist allerdings keine Sicherung vorhanden, sodass man ihn sehr einfach kaputt machen kann. Daher rate ich davon ab, eine externe Spannung an den Pi anzuschließen (außer man weiß genau was man tut). Dass die Masseanschlüsse verbunden sind, heißt nur, dass der Stromkreis geschlossen wird und ist nötig, da das Signal ja auch über elektrische Impulse gesendet wird (und die Elektronen zurückfließen müssen).
Du kannst alle 1-2m an die VCC und GND Bahn des Streifens je ein Kabel löten und ein weiteres Netzteil anschließen.
Hi,. Du meinst ich soll einfach ein weiteres Netzteil einfach an die stripes zu schalten??? Das ist das was ich eigentlich gar nicht machen sollte.. Ich will ja auch kein externes Netzteil an den pi anschließen. Laut Anleitung muss an den pi Masse vom Netzteil angeschlossen werden. Und wenn ich 2 Netzteile habe, müssen doch beide Netzteil Masse Anschlüsse an den Pi. Im übrigen Danke für die Mühe..
Ich muss jetzt doch nochmal nachfragen: Was für Netzteile meinst du?
Der Pi wird ganz normal über ein Micro USB Kabel mit Strom versogt. Da der Pi aber nicht genug Strom für eine größere Anzahl von LEDs liefern kann, versorgen wir die LEDs über ein externes Netzteil (siehe Video) an. Hier kann man eines oder mehrere nutzen.
Habe das Ganze jetzt verkabelt und ausprobiert. Vereinzelnd leuchten zwar einige LEDs, allerdings kann ich den Streifen nicht über die Beispiele ansteuern. Es passiert einfach nichts. Der Code läuft ohne Fehler. Die Verkabelung habe ich inzwischen öfters überprüft. Kann es sein, dass ich noch einen „Level Shifter“ benötige? Das wurde in anderen Foren häufig erwähnt. Hier allerdings nicht.
Welchen Pi nutzt du? Ich habe es mit einem Zero sowie Model 3B getestet und habe keinen Level Shifter benötigt.
RaspberryPi Zero W
Alles klar, sorry für die Verwirrung. Der Streifen hatte mehrere Wackelkontakte -.- Habe einen anderen angeschlossen mit dem alles wundervoll funktioniert hat. Da ich den erst heute bekommen habe, konnte ich es vorher leider nicht testen.
Bei mir läuft der Code soweit auch, lediglich beim beenden wird:
Press Ctrl-C to quit.
^CTraceback (most recent call last):
File „examples/strandtest.py“, line 98, in
theaterChaseRainbow(strip)
File „examples/strandtest.py“, line 73, in theaterChaseRainbow
time.sleep(wait_ms/1000.0)
KeyboardInterrupt
angezeigt.
Jedoch schaffe ich es nicht eine einzige LED leuchten zu lassen, Verkabelung des öfteren geprüft.
Welchen LED-Stripe hast du jetzt in Verwendung Snorzze?
Der KeyboardError könnte mit einem try-except abgefangen werden.
Hey Stefan,
Ich nutze die ws2812b stripes von BTF-LIGHTING. Habe mir diese auf Amazon bestellt.
Oben ist doch ein schaltplan. Da ist vom Netzteil +5V und -Masse am stripe angeschlossen. Außerdem geht Masse vom Netzteil an den Pi. Desweiteren geht Din vom stripe in den pi. Nun ist mein stripe 10 m lang und und da reicht ein 10 A Netzteil nicht aus. Also nehme ich ein 2. Netzteil. Wie schließe ich das an? Das kann ich nicht einfach an den 10 m Stripe anschließen. Da würden ja dann 2 Netzteile in einem stromkreis hängen. Also Teile ich den 10 m Stripe in 2 Teile und habe 2mal5 m. Jetzt schließe ich ein 5m stripe an einen Netzteil und das andere Netzteil an das andere 5m stripe. Die din und dout lass ich über die 10 m verbunden. Nun muss ja der Pi ja an die Masse vom Netzteil angeschlossen werden. Nun habe ich aber 2 Netzteile . Muss ich nun beide Masse von beiden Netzteilen mit dem Pi verbunden werden? Dann wären auf Masse beide Netzteile verbunden und weiß nicht, ob das überhaupt geht. Oder liege ich mit meiner Verkabelung völlig daneben?
GND ist eine Leitung durch den ganzen Streifen. Ob du es am Anfang oder nach 5m anschließt ist egal. Daher schließ das erste Netzteil z.B. am Anfang (oder nach 2m) an und das zweite nach 5m oder 7m. Das oben ist nur eine schematische Zeichnung.
Warum die Masseleitungen verbunden sind, habe ich ja vorher schon erklärt.
LG, Felix
Die Problematik, das bei der Verwendung des WS2812b kein Audio benutz werden kann, ist natürlich durch eine externe USB Soundkarte umgehbar. Ein anderer Weg ist ist die Verwendung des LED-Micro-Controllers „Digi Dot Booster„. Der LED-Strip wird an diesen angeschlossen und gibt somit den Audio Kanal wieder frei. Dieser kostet nur knapp 10 EUR und funktioniert sehr gut. Ich habe es mit dieser PythonLib https://github.com/nobreak/digi_dot_booster ausprobiert. Sie basiert auf oben genannter Python-Lib von jgarff.
Ich bin den Anweisungen eins zu eins gefolgt und bekomme beim start vom strandtest.py diesen Fehler:
Traceback (most recent call last):
File „examples/strandtest.py“, line 8, in
from neopixel import *
File „build/bdist.linux-armv7l/egg/neopixel.py“, line 52, in
class Adafruit_NeoPixel(object):
File „build/bdist.linux-armv7l/egg/neopixel.py“, line 54, in Adafruit_NeoPixel
brightness=255, channel=0, strip_type=ws.WS2811_STRIP_RGB):
AttributeError: ‚module‘ object has no attribute ‚WS2811_STRIP_RGB‘
Ich weiß nicht wie ich das problem beheben soll und mir gehen echt die Ideen aus ich hoffe ihr könnt mir helfen
THANKS !! It works! 🙂
Wow, now i can try my little/ big Project. Thanks for that tutorial.
I can´t donate you 😉
Best regards from Germany
Sehr gut 🙂
Habe das gleiche Problem wie Stefan Steinhauser. Hast du oder jmd anderes schon eine Lösung gefunden ?
Hallo Neopixel Gemeinde,
gibt es ein möglichkeit gezielt LED’s anzusteuern? Ich möchte z.B LED Nr. 5 die Farbe 200,150,0 und der Nr.8 0,100,200 zuweisen. Hat jemand ein Beispiel dafür?
Ja, aber du musst dennoch alle senden (alten Stand speichern, Pixel überschreiben, senden). Ansonsten kannst du die WS2801 LEDs nehmen.
Hallo,
ich benutze einen Raspberry pi 3 und versuche einen LED-Strip ws2812b anzusteuern.
Leider ist bei dem raspberry pi 3 einiges anders als beim ersten Modell und ich konnte die Audio-Einstellung nicht richtig vornhemen. Ich habe unter raspi-config den Audio-Output auf hdmi gelegt.
Wenn ich das Skript nun laufen lasse, dann werden bei meinem Streifen aber nur die ersten drei Lichter angesprochen. Diese leuchten genau so, wie das Muster es erwarten lässt.
Ich habe aber einen Streifen mit 300 Leds und das auch in dem Skript angegeben.
Was kann ich eventuell noch ändern damit er alle Leds ansteuert?
Ist die Stromversorgung ausreichend?
ja, ich habe ein 5v und 10A Netzteil.
Hallo,
erstmal vielen Dank für das excellent verfasste Tutorial. Ich habe die Programme einmal auf einem Raspberry pi 2 und einmal auf einem Raspberry pi 3 installiert. Mit dem Raspberry pi 2 läuft alles einwandfrei, mit dem Raspberry pi 3 tut sich gar nichts.
Was muss ich beim Raspberry pi 3 noch beachten?
Wer hat die WS2812-LED-Streifen mit dem Raspberry pi 3 zum Laufen gebracht?
Wie im Video zu sehen ist, habe ich es mit RPi3 und dem Zero Modell laufen. Hast du das gleiche Image an beiden benutzt?
Der RPi3 gehört einem Bekannten, deshalb weiß ich nicht so genau was außer Raspbian „Jessie“ alles installiert ist. Die Software aus dem Tutorial habe ich sowohl auf dem RPi2 wie auch auf dem RPi3 Schritt für Schritt, wie in der Anleitung angegeben, installiert und zwar auf genau die gleiche Art. Ich habe schon mal irgendwo gelesen, dass die Abschaltung des Audio-Ausgangs beim RPi3 das Problem sein könnte. Na ja, dann weiß ich jetzt wenigstens, dass es mit dem RPi3 prinzipiell möglich ist.
Probier mal die SD Karte des RPi2 in den RPi3 zu stecken. Wenn es damit funktioniert, bist du sicher, dass es etwas mit der Software auf der anderen SD Karte zu tun hat.
Danke für den Tipp, allerdings war es ein ganz banaler Fehler. Es klappt jetzt einwandfrei, wenn ich den GPIO 12 (also Pin 32) an die Datenleitung zum LED-Streifen anschließe, der ebenfalls PWM-fähig ist. Offensichtlich ist der GPIO 18 defekt.
Hallo !
Erstmal ganz herzlichen Dank für das tolle Turorial – funktionierte auf Anhieb ! Danke Danke !
Habe ein 3V3/5V levelshifter aus 2 R und einem BC547 eingefügt … sicher ist sicher.
Betreibe zum Test erstmal einen Ring mit 8 Stück WS2812B …. an einem PiZero.
NT 2A .. gemessen 0,3 A in Betrieb … mit WLAN-Stick.
… es ist mir aufgefallen, daß sich der Ablauf manchmal einfach aufhängt … weiß nicht, warum.
(Hab keinen Monitor am Zero, via ssh geht dann auch nichts mehr ???)
Das Tutorial hat ja die Überschrift, daß es für die WS2812B RGB ist ….
der Python-Bsp-Codebietet zeigt keine Alternative für
LED_STRIP = ws.WS2811_STRIP_GRB
… die WS2812 gehen ja, .. (warum) …
Aber der C-Code ist auch nur für den WS2811 ausgelegt …
Wieso ?
Und was muss ich für den WS2812B ändern ?
LG
stefan
Die nutzen beide den selben LED Treiber (Datenblatt: WS2811 und WS2812). Der WS2811 hat lediglich eine Datenleitung mehr und ist somit etwas „forgeschrittener“, aber der WS2812B kann damit problemlos auch gesteuert werden.
mich stört, daß alle LEDs (2812b)beim Anschließen an 5V weiß leuchten. Damit ist ein Test mit wenigen LEDs an einem schwächeren Netzteil nicht möglich.
trotzdem nochmals (mein erster Post ist verschwunden?) ein Dankeschön für diese Anleitung. Es hat alles auf Anhieb funktioniert, 150 LEDs 2812B, Netzteil 10A, Raspi Zero W. Bleibt das Problem, daß bei weniger gesetzten LEDs, der Rest dauerhaft weiß leuchtet. Die angesteuerten gehen ja auch aus.
Hier antwortet wohl keiner?
Wahrscheinlich sind das auf meinem Band andere LEDs. Auch ein abgeschnittenes kurzes Stück leuchtet sofort ohne Ansteuerung, während ein Ring mit 8 Stück dunkel bleibt.
Beim Anschließen werden ja noch keine Daten gesendet, daher sind diese oft „zufällig“ oder eben weiß. Wenn aber nachdem Daten gesendet wurden sich immer noch nichts verändert, ist ziemlich wahrscheinlich die Verbindung nicht korrekt oder es sind andere Modelle.
Bitte, bitte, bitte den Absatz über den Anschluss des Schaltnetzteils überarbeiten! Da rollen sich einem die Fußnägel auf. PE muss angeschlossen werden! Das Gehäuse ist aus Metall, die Anschlussklemmen sind nicht abgedeckt… weiterhin müssen flexible Adern mit Aderendhülsen versehen werden, sofern die Anschlussklemmen nicht dafür freigegeben sind. Das Netzkabel sollte zugentlastet werden und PE länger als L und N sein. Und zu guter Letzt ist das Kabel hundsmiserabel abisoliert, dafür sollte man, wenn man keine Übung hat eben kein Teppichmesser nehmen.
Der Umgang mit Netzspannung ist lebensgefährlich und der Hinweis, dass man einen Elektriker hinzuziehen sollte ist nett. Wenn man dann jedoch eine offensichtlich an absolute Laien gerichtete Anleitung (Aderfarben erläutert etc.) schreibt, muss man dies wenigstens 100%ig korrekt machen, danke.
ich hab gehört der raspberry pi könnte nicht hinterherkommen wenn ich 7* 3,2m verwenden möchte (64 „blöcke“) stimmt dass ich das Fadecandy board benötige?
und wenn ich zu meinen streifen jeweils 1-3m als kabelstrang verlegt habe gibt das störungen der signale?
Mfg Samuel
Habe ich nicht ausprobiert, aber sehe im Grunde kein Problem, solange das Signal nicht zu schwach wird und die Stromversorgung entsprechen sichergestellt ist.
Hallo! Ich habe mit meinem Ws2812b ein Problem. Sobald ich das Netzteil einstecke leuchten nur die 3. LED rot und eine andere grün. Die grüne LED geht nach ein paar Sekunden aus jedoch nicht so die rote. Ansteuern kann ich keine der LEDs weder mit Hyperion noch mit diesem Tutorial. Hat einer eine Idee was das sein könnte?
Mit diesem Tutorial läuft alles prima, aber mit Hyperion geht nichts. Habe Raspbain und OSMC ausprobiert mit RPi3+ und WS2812b. Was mache ich falsch?
Würde mich ach interessieren wie das mit Hyperion funktioniert
Kann man so etwas mit der Raspberry Pi auch realisieren was man mit der Lightberry (Habe das auf Youtube gesehen) auch realisieren kann, nämlich das man die LEDs alle einzeln ansteuern kann und geht das auch mit den WS2112B?
Einzeln ansteuern jein – Du musst alle Farben erneut senden, aber wenn du sie speicherst und nur die entsprechende Position änderst, ist das „quasi einzeln ansteuern“.
pi@raspberrypi:~ $ cd rpi_ws281x/
pi@raspberrypi:~/rpi_ws281x $ sudo scons
sudo: scons: command not found
pi@raspberrypi:~/rpi_ws281x $
hi why am I unable to compile this? it says command not found
Probably you haven’t installed scons.
Hallo,
habe mir einen kleinen Editor geschrieben, mit dem man die NeoPixel Scripts
recht einfach editieren und aufrufen kann.
Auf Registerkarte „Settings“ kann man die Vorlage für Scripts, den Library-Path
sowie Einträge für die Code-Vervollständigung (IntelliSense) bearbeiten.
Über den Color-Picker kann man RGB Werte ins Script übernehmen.
Wer möchte kann ihn gern ausprobieren und nutzen, Erweiterungsvorschläge sind willkommen …
Viele Grüße
C. Falkenstein
Download:
https://c.gmx.net/@334677901716756165/FSJd40_hQXqGcnLSnCxXKQ
P.S: Bei Scripts, die sich automatisch beenden (z.B. For-Schleife) geht der Start-Button
nach Beendigung automatisch wieder heraus.
Die Ausführung von Scripts mit Endlos-Schleife (while True) können durch Klick auf
„Stop“ beendet werden.
Beim Starten der Anwendung nicht die Option „Im Terminal“ wählen!
MfG
Hallo
Ich möchte auch gerne mir sowas anschaffen. Jedoch weiß ich nicht genau welche LED Strips ich nehmen soll da sich alle preislich usw. stark unterscheiden. Ich möchte LED’s haben, die steuern sowie schneiden kann. Wäre klasse wenn jemand mir einen Link schicken würde welche das können.
Wie viel Meter möchtest du? Wasserfest ja/nein? Normale 5m (kann man abschneiden), sowie 5m wasserfest.
Wasserfest brauchen sie nicht sein
Am besten 5m
Dann nimm am besten diese: http://amzn.to/2yXajyF (WS2812 sind günstiger als WS2801)
Danke für deine Hilfe und deine schnelle Antwort! 😀
Ich erhalte leider folgenden Fehler beim build. Was ist zu tun?
python ./setup.py build
running build
running build_py
creating build
creating build/lib.linux-armv7l-2.7
copying neopixel.py -> build/lib.linux-armv7l-2.7
running build_ext
building ‚_rpi_ws281x‘ extension
swigging rpi_ws281x.i to rpi_ws281x_wrap.c
swig -python -o rpi_ws281x_wrap.c rpi_ws281x.i
creating build/temp.linux-armv7l-2.7
arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c rpi_ws281x_wrap.c -o build/temp.linux-armv7l-2.7/rpi_ws281x_wrap.o
arm-linux-gnueabihf-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-armv7l-2.7/rpi_ws281x_wrap.o -L../. -lws2811 -lrt -o build/lib.linux-armv7l-2.7/_rpi_ws281x.so
/usr/bin/ld: cannot find -lws2811
collect2: error: ld returned 1 exit status
error: command ‚arm-linux-gnueabihf-gcc‘ failed with exit status 1
Ich habe das gleiche Problem. Hast du eine lösung gefunden?
Ich hätte noch eine weitere Frage: Welches Netzteil bräuchte ich dann für die LED Strips die du mir geschickt hast?
Das oben im Artikel verlinkte Netzteil mit 10A.
Okay Danke!
Hallo,
ich habe ein Problem mit dem Programm bzw. mit den LED’s. Und zwar wenn ich das Programm starte läuft alles durch aber es läuchtet nur die Farbe rot. Vlt. kann mir einer helfen.
CripeHD
WTF! Ich hab exakt das selbe Problem, selbst als ich SPI genutzt habe.
Tolles Tutorial, vielen Dank!
Ich möchte gerne eine Treppenbeleuchtung realisieren, und zwar so, dass ein in der Wand im Aluprofil installierter LED-Strip beim Betreten der Treppe (oben oder unten, bspw. durch PIR erfasst) von dort langsam hochdimmend mit einem Lauflicht-Effekt hoch- oder runterläuft und beim Auslösen des PIR am anderen Ende der Treppe wieder runterdimmend ebenfalls als Lauflicht ausgeht.
Welche Software kann ich dafür verwenden?
Und eignet sich dieser RGBW-LED-Strip auch dafür?
Viele Grüße und Danke
Mischa
Dafür brauchst du keine Software – es reicht das Python Skript anzupassen (z.B. mit dem Python Code aus dem PIR Tutorial). Und ja, ist mit den verlinkten LED Strips möglich.
Irgendwie erscheint der Link hier nicht?! Der angesprochene LED-Strip ist ein SK6812 RGBW und die Frage ist, ob dieser auch so wie hier im Tutorial beschrieben angesteuert werden kann.
Wurde wahrscheinlich von WordPress als Spam eingestuft. Frag am besten den Verkäufer, ob der Strip den WS2812 Treiber IC verwendet. Falls ja, kann er angesteuert werden. Da ich den SK6812 aber nicht da habe, kann ich dir das nicht mit Sicherheit sagen.
Hi habe ne Frage und zwar:
Ist dein Programm in Python geschrieben. Da ich jedoch kein Python programmieren kann ist die Frage kann ich die LEDs auch mit Java steuern?
Und wenn ja hast du ein Beispiel?
Ich habe ein Anfänger Tutorial für Python. Für Java müsstest du den Code übersetzen, habe leider keine Java Files erstellt.
Was ich mir nicht erschließen kann ist, warum muß AUDIO ausgeschaltet werden?
Nutzen beide den selben Bus. Falls du unbedingt Audio brauchst, so nimm entweder eine externe Soundkarte oder einen WS2801B Streifen.
Vielen Dank für die sehr gute Anleitung! Hat alles mit dem ersten Versuch funktioniert! Ich werde jetzt einmal ein paar Programme testen und mich dann an die Programmierung wagen!
Aber die Elektroinstallation des Netzteils solltest Du wirklich überarbeiten oder löschen! Wer sowas noch nie gemacht, sollte es nicht nach deiner Anleitung machen, sondern unbedingt ein fertiges Netzteil (wie oben verlinkt) nehmen!
Die abisolierten Kabelenden sehen schon sehr abenteuerlich aus, und 😉
Hallo erstmal,
was den Raspberry angeht bin ich ein blutiger Anfänger, aber diesen Tutorial finde ich echt super. Ich habe alles schön der Reihe nach durchgeführt und es war gleich von Erfolg gekrönt.
Jetzt aber meine Frage: Ich besitze 3 Vitrinen die ich jeweils mit ca 1 m LED WS2812 Streifen versehen möchte. Soweit so gut. Jetzt aber zum wichtigsten: Ich würde gern diese dann zusammen via Homebridge (und der Home-Kit IOS-App) ansteuern und eventuell über verschiedene GPOI´s ansteuern und verschiedene Farben leuchten lassen.
Wo ist die Frage? 🙂
Funktioniert Ambilight auch mit dem WS2812 oder benötige ich einen WS2801?
Das Tutorial, das ich erstellt habe ich nur für den WS2801.
Ich hätte eine Frage:
Wie viele LED streifen könnte man an einen raspi anschließen
LED Streifen oder LEDs pro Streifen?
Ich meine LED streifen
Abhängig von der Anzahl der freien GPIOs.
Ich hab ein raspi 3b und alle GPIO’s sind frei
Lieber Felix, vielen vielen Dank für das Tutorial! Es macht echt Spaß, mit so einfachen Mitteln eine kleine Lightshow zu erstellen :)! Ich habe es erfolgreich umgesetzt und ein 24×4 Panel aus einem WS2811 Streifen erstellt (testweise so klein – später soll es 24×12 sein). Funktioniert wunderbar – sogar mit Saft direkt vom Pi.
Was mich nur irritiert, ist dass ich über die von dir gelieferten Scripts hinaus nichts auf dem Panel darstellen kann. Dafür fehlt mir die Kenntnis in Python. Kannst du oder jemand anderes, der das liest, ein paar Zeilen liefern, die z.B. beliebigen Text anzeigen, bzw. scrollen können?
Ein noch größeres Geschenk wäre es für mich, wenn sich mit dem Setup ein audio spectrum analyzer realisieren ließe!! Geht das wohl…?
Hast du einen Link zu dem „Panel“? Oder hast du quasi selbst 4 Reihen untereinander gelegt?
Hey – super, du bist da! 🙂
Ich habe selbst vier Reihen untereinander gelegt.
x x…x x x x…x x ->
<- x x…x x x x…x x ->
je 12 LEDs pro Reihe
Ah Mist – ich hatte die 4 Reihen per Absatz untereinander getippt, in meinem Post sieht man das nicht.
Mangels edit-Funktion hier nur nochmal die Darstellung als Screenshot.
http://owncld.afldt.de/index.php/s/BCYblqGtRigPnjO
Werden dir gar keine Farben angezeigt? Oder was genau funktioniert dabei nicht?
Wie gesagt – dein Tutorial habe ich erfolgreich umgesetzt!
Das Panel funktioniert genauso, wie du es oben beschrieben hast.
Ich habe einfach nur den Wunsch, den Code für andere Anwendungen anzupassen:
A) Beliebigen Text scrollen
B) Audio Spectrum Analyzer
Da ich nach vielen Recherchen es selbst nicht hinbekomme, würde ich mich einfach riesig über ein paar Zeilen passenden Code freuen! 🙂
Text wirst du mit 4 Zeilen/Pixeln Höhe nicht darstellen können. Du kannst dich aber hieran orientieren: Raspberry Pi Bibliothek für mehrzeilige m x n MAX7219 LED Matrizen
Hallo Felix,
ich habe das Problem das beim installieren des folgenden links
git clone https://github.com/jgarff/rpi_ws281x
nach einem Benutzernamen und einem Passwort gefragt wird.
Jetzt weiß ich nicht wie ich da weiter komme
Du kannst das Archiv auch als Zip laden und entpacken.
Hi
Ich find dein tutorial super
habe es selbst auch schon ausprobiert hat prima funktioniert
habe jetzt aber eine frage und zwar der Pi kann ja nur ein 1 GPIO Ausgang der PWM kann
ich möchte aber gerne mehrere Felder bzw 2 Felder und 2 Streifen ansteuern
habe mir aus diesem Grund ein 16-Kanal PCA9685 board gekauft dieses wird über einen I2C bus angesteuert das habe ich auch soweit am laufen
da allerdings meine Kenntnisse von Python noch nicht ausreichen ist meine frage wie muss ich das Programm umschreiben um die Ausgabe des Signals auf das PCA board zu bekommen
habe hierzu leider noch nicht im WWW gefunden würde mich über Hilfe freuen
Der Pi kann auch über mehrere Ausgänge PWM.
Bzgl PCA9685: Mehrere Servo Motoren gleichzeitig per Raspberry Pi steuern (PCA9685)
danke für die schnelle Antwort ich hatte mir das tutoriell auch schon angeschaut muss leider sagen das ich die Funktionsweise noch nicht so ganz verstehe und daher auch nicht verstehe wo bzw wie ich den Ausgang für die LED umschreiben kann
Hi,
ich habe mir den LED-Streifen BFT-Lightning WS2812B gekauft.
Der hat fünf Kabel in zwei Bündeln ohne Beschriftung.
Erstes Bündel mit zwei Kabeln rot und weiß.
Zweites Bündel mit drei Kabeln (und Stecker) weiß, grün und rot.
Wie schließe ich diese an den Pi an?
Welche Farbe kommt auf gnd und welche auf GPIO 18???
Das andere Bündel ist m.E. für das Netzteil.
Rot = plus und weiß = minus?!
Fünf Kabel sind soweit in Ordnung. Wahrscheinlich sind zwei davon einfach doppelt verlötet (ergo nur noch drei). Entferne mal die Isolierung/Klebeband am Anfang des Streifens, dann weißt du wahrscheinlich genaueres.
Ist es möglich irgenwie ne datei zu schreiben damit man nur eine bestimmte led ansteuern kann so hat alles geklappt hab halt so nichts im internet gefunden deswegen frag ich
Auch bei mir leuchten immer nur die ersten drei LED’s, wie sie es tun sollen, der Rest dagegen leuchtet gar nicht.
Woran kann das liegen?
Zu geringe Stromversorgung? Vlt ist auch eine Leitung durchgebrannt oder nur 3 LEDs wurden definiert. Könnte leider an vielem liegen…
hallo, bei mir sind es die ersten 5 die funktionieren. der rest bleibt dunkel.
hast du schon eine lösung für das problem?
Na toll…
Trotzdem danke für die Hilfe und schnelle Antwort.
Hallo Habe alles aufgebaut, und nach dem Tutorial nachexerziert. Leider habe ich beim starten des Scripts den Fehler unten .
Traceback (most recent call last):
File „strandtest.py“, line 10, in
from rpi_ws281x.rpi_ws281x import ws
ImportError: No module named rpi_ws281x.rpi_ws281x
Ich habe sogar ein 2. mal den Pi neu aufgesetzt und das gleiche durchexerziert, gleicher Fehler, weiß wer Rat ?
Die Bibliothek wurde nicht richtig installiert und ist daher nicht verfügbar. Versuche es alternativ über git/pip (und immer die richtige Python Version für das installieren als auch ausführen nehmen).
Hallo Felix,
zunächst mal vielen dank für das Tut, welches auch für Anfänger sehr einfach nachzuvollziehen ist. Ich hätte da sehr viele Fragen und/oder Anregungen zu dem Thema, weiß aber nicht ob das ein Thema für dich sein könnte.
Also nachdem ich deinem Tut gefolgt war habe ich mir die Datei „strandtest.py“ zerpflückt und die einzelnen Effekte jeweils separat gespeichert. Auf einer englischsprachigen Seite habe ich auch noch den Tipp von dir gefunden, wie man die LED Streifen beim Beenden CTRL C abschaltet.
Ich habe auf meinem Raspi ein kleines 3,5″ Display und jetzt nach einem GUI gesucht, über das ich den LED Streifen mit verschiedenen Buttons bedienen kann. Ich habe hierzu ein Tut gefunden
„https://github.com/penguintutor/neopixel-gui/blob/master/INSTALL.md“ doch leider funktioniert das hinten und vorne nicht.
Wenn das nicht dein Thema ist, schade. Wenn es zu deinem Thema werden könnte, wäre es toll.
Du kannst einfach selbst eine GUI mit Python schreiben und dort die entsprechenden Befehle einfügen 🙂
Danke für die schnelle Antwort. Naja du bist lustig, einfach ne Gui selber schreiben 😉 Ich bin gerade mal seit 10 Tagen mit dem Thema Raspberry befasst. Wir wollen’s mal nicht übertreiben, sooo schnell schießen die Preußen dann doch nicht 😉 Kennst du dieses fertige neopixel-gui ?
Schau dir das GUI Tutorial mal an (und die beiden vorherigen). Habe diese extra für absolute Neulinge geschrieben und sind auch wirklich nicht schwer 🙂
Ich habe mir das Tut angesehen, es bringt mich aber nicht wirklich weiter. Es ist alles soweit nachvollziehbar. Ich habe habe ein paar Dateien mit Effekten für LED Streifen. Wie bekomme ich den Pfad bei einem Button hinterlegt, bzw. den Button dazu eine fertige Datei starten ? Dazu habe ich bislang nirgends eine Info gefunden.
Entweder importierst du die Datei in Python oder führst bspw
os.systen()
mit dem Pfad zur Datei aus.Hallo, ich habe die Anleitung mehrfach durchgelesen und möchte gerne so mein Aquarium beleuchten.
Ich bräuchte aber eine pwm Erweiterung. Aber ich hab keine Ahnung welche. Ich hab an die gedacht:
Adafruit 16-Channel 12-bit PWM/Servo Shield – I2C interface [ADA1411]
Ich würde auch gerne eine Sonnenauf-/untergang Steuerung einbauen. Evtl. auch mit Livewetterdaten aus dem Herkunftsland der Fische.
Ich finde aber irgendwie nur Anleitungen für andurino.
Gibts evtl. Alternativen für die teuren LEDs, die aber genauso angeschlossen und geregelt werden können?
Wäre sehr dankbar für alle Tips und Anleitungen.
Ich bin auch noch ziemlich neu beim raspberry. Hab bisher nur die dosierpumpen zum laufen gebracht.
Gruß Philipp
Zum PWM Modul habe ich hier ein Tutorial erstellt.
Die WS2812 LEDs sind schon günstig, ebenso wie die APA102.
Wie sehe den der Code für die Funktion aus, das LED 1 Blau ist und Led 2 Viollet und Led 3 dann wieder blau und LED 4 wieder Viollet? Vielen dank für die Hilfe? Nur ein Codebeispiel wäre super
Naja du hast ein Array/Liste, das die Farbwerte für alle LEDs beinhaltet. Da schreibst du als ersten den Wert für Blau rein, als zweites violett usw.
Verstehe ich das jetzt richtig das Maße vom Netzteil einmal an die stripes muss und einmal an den PI, nur nicht über den 5V Pin. Hab ich das soweit richtig verstanden?
ich mußte das System neu aufsetzen und nun kommen Fehler beim setup.py build:
Downloading https://pypi.python.org/packages/source/s/setuptools/setuptools-5.7.zip
Extracting in /tmp/tmpmgT8b3
Traceback (most recent call last):
File „setup.py“, line 4, in
use_setuptools()
File „/home/pi/rpi_ws281x/python/ez_setup.py“, line 140, in use_setuptools
return _do_download(version, download_base, to_dir, download_delay)
…..
habe das neueste Raspbian Stretch auf einem Zero W
kann jemand helfen?
Fehler gefunden, es mußte noch das python-pip installiert werden. Jetzt läuft es wieder!
hallo
ich brauche ganz dringend eure hilfe!
ich habe den PI 3 mit meinen ws2812b und dem netzteil wie in der anleitung beschrieben verbunden und auf mereren systemen versucht zum laufen zu bekommen aber mit keinem bekomme ich die LED´s zum laufen.
ich habe alles durchgemessen und kann einen kurzschluss ausschliessen.
am ende der stripes kommen noch etwas über 5V an.
wenn ich den PI einrichte bekomme ich folgende fehlermeldung:
pi@raspberrypi:~/rpi_ws281x/python $ sudo python setup.py build
Extracting in /tmp/tmp7cTU7e
Traceback (most recent call last):
File „setup.py“, line 4, in
use_setuptools()
File „/home/pi/rpi_ws281x/python/ez_setup.py“, line 161, in use_setuptools
return _do_download(version, download_base, to_dir, download_delay)
File „/home/pi/rpi_ws281x/python/ez_setup.py“, line 120, in _do_download
_build_egg(egg, archive, to_dir)
File „/home/pi/rpi_ws281x/python/ez_setup.py“, line 62, in _build_egg
with archive_context(archive_filename):
File „/usr/lib/python2.7/contextlib.py“, line 17, in __enter__
return self.gen.next()
File „/home/pi/rpi_ws281x/python/ez_setup.py“, line 100, in archive_context
with ContextualZipFile(filename) as archive:
File „/home/pi/rpi_ws281x/python/ez_setup.py“, line 88, in __new__
return zipfile.ZipFile(*args, **kwargs)
File „/usr/lib/python2.7/zipfile.py“, line 770, in __init__
self._RealGetContents()
File „/usr/lib/python2.7/zipfile.py“, line 811, in _RealGetContents
raise BadZipfile, „File is not a zip file“
zipfile.BadZipfile: File is not a zip file
ich hoffe das es an dem fehler liegt das die Stripes nicht leuchten, denn ansonsten hab ich echt keine ahnung woran es liegen könnte.
ich würde mich echt sehr freuen wenn mir jemand kurz bei der fehlermeldung helfen könnte.
Hi, ich hatte auch das Problem, bei mir hat der Tipp von „hnoesekabel“ auf der GitHub-Seite geholfen: https://github.com/jgarff/rpi_ws281x/issues/290
sudo apt install python-pip
Ist es möglich die Leds (WS2812) zu steuern und Musik gleichzeitig abzuspielen mit einer USB soundkarte?
Bekomme diesen Error wenn ich das Test File in der Python IDLE 3.5 ausführe?
RuntimeError: ws2811_init failed with code -5 (mmap() failed)
Kennt jemand eine Lösung?
Das Test file muss mit root-Rechten ausgeführt werden.
z.B.
chmod +x ./strandtest.py
sudo ./strandtest.py
Hallo
Ich benötige 6 Meter Ws2811, welche ich aber weiterhin ansteuern möchte wie es mit den oben beschriebenden Beispiel auf dieser Seite mit dem 1 Meter ausgeführt wurde. Kann ich einfach ein 3 Meter LED Band an ein 3 Meter LED Band löten und somit, vorausgesetzt genügend Strom , 6 Meter ansteuern?
Danke
Hallo,
erst einmal vielen Dank für deine Mühe!!!
Ich habe meine WS2812B mit deiner Anleitung und dem Test zum laufen bekommen,
konnte den Testlauf auch mit STRG+C stoppen, nur bleiben die LEDs in der getoppten Positionan.
Wie kann ich diese ausschalten??
Danke Gruß Sven
Zuallererst super Anleitung !
Ich möchte das ganze nachbauen und bevor ich mir einen Pi und Strips etc hole hätte ich da noch ein paar fragen.
Wie viele Leds kann der PI maximal steuern ? (Der Arduino kann glaub ich maximal 150)
Hast du ein fertiges Rainbow Script ? ab 00:57 in deinem Video.
Gibt es eigl eine Software die schon effekte drin hat und die man nur noch auswählen muss ? (Wie von Mainboard: Asus Aura Sync etc)
Ich würde mich über eine Antwort sehr freuen Mfg
Bitte um Autostart Anleitung:
Bspw…. Strandtest.py bei PI Start direkt ausführen
Vielen Dank, verzweifle mit RC.local etc.
Edith zu meinem vorigen post:
Im LX terminal funktioniert folgender Code:
CD rpi_ws281x/python
sudo PYTHONPATH=“.:build/Lob.linux-armv7l-2.7″ python examples/strandtest.py
Bitte um Unterstützung, möchte nach dem PI Start direkt dieses Programm starten…
Du könntest das Python-Script ausführbahr machen und in rc.local vor dem „exit 0“ den Pfad zu dem Skript einfügen
Aber sicherheitshalber mit dem &-Zeichen in den Hintergrund schicken …
nicht dass der Raspberry PI sich aufhängt 😉
cd /home/pi/rpi_ws281x/python
sudo PYTHONPATH=“.:build/lib.linux-armv7l-2.7″ python examples/clockb.py
Wissen Sie ob es auch WS2801 LED´s gibt mit mehr als 32 LED/m da ich keine finde oder werden diese dann anders bezeichnet?
Hallo und guten Tag, ich möchte gerne mein Gartenhäuschen (Inselbetrieb) rundherum mit Neopixel (WS2812B) spielerisch illuminieren. Zur Steuerung möchte ich gerne einen Raspberry Pi 3B+ verwenden. Ich benötige ca. 20m Neopixel,IP67 (4x5m Stücke) mit jeweils 150 Dioden (Modell 5050) auf 5 Metern Länge (max. Stromaufnahme ca. 7,5 Ampere pro Stück). Jetzt besitze ich allerdings auf dem Gartenhäuschen eine 12 Volt-Solaranlage mit 2 AGM-Batterien (insgesamt 200 Ah). Wie schaffe ich es nun die 4 Neopixelstripes (5 Volt) mit der 12 Volt-Solaranlage zusammen zuschalten bzw. wie kann der Raspberry Pi 3B+ diese 4 Stripes managen ? Für Antworten wäre ich sehr dankbar. MfG Fabian K.
Hallo Fabian, das einfachste dürfte sein, du besorgst dir einen handelsüblichen Wechselrichter, wie man ihn zB auch im Kfz- und Campingbedarf verwendet. Der macht aus deinen 12 V Gleichspannung die übliche 230 V Wechselspannung. Und dann kannst du genauso so vorgehen wie hier beschrieben. Einfache Spannungswandler verbraten nur unnötig Leistung. Selbstbauten sind in diesem Leistungsbereich schon ein sehr fortgeschrittenes Thema (Stichwort EM-Konformität, ein schlecht hingepfuschter Selbstbau-Wandler liefert wenig elektrische Leistung, viel Wärme und jede Menge lustiger HF-Signale, die gerne WLAN und Handy-Empfang stören).
Hallo.
Da ich blutiger Anfänger bin habe ich nun folgende Frage. Kann man den rasperry pi3+ starten und er startet mit den leuchteten Lampen und beendet dies nach vorgegebener Zeit wieder?
Währe eine Idee für meine aussen Beleuchtung bzw Weihnachtsbeleuchtung? Ist sowas umsetzbar? Den pi wie eine Zeitschaltuhr benutzen?
Hallo zusammen,
das Tutorial hat bei mir zunächst auch super funktioniert. Jedoch funktioniert der LED-Ring nach dem Neustart der Raspberry Pi nicht mehr. An was könnte das liegen, bzw. wie kann ich dieses Problem beheben? Das Programm läuft normal ab, aber der Ring bleibt leider dunkel.
Danke im Voraus.
Hallo zusammen,
ich bin vollkommen ratlos. Bei mir leuchtet von zwei zusammenhängenden (ohne Lötstelle dazwischen) LEDs nur die erste auf! Die Stromversorgung funktioniert also anscheinend, es kommt auch irgend etwas an Daten durch (sonst würde ja keins aufleuchten…?), aber wieso leuchtet nur eine? Hat jemand schonmal das gleiche Problem gehabt und es gelöst?
Ich wäre für eure Hilfe sehr dankbar!
Also bei mir funktioniert das irgendwie nicht. Schon beim installieren der Pakete sagt er er findet das Paket swig nicht. Kann da irgendwer helfen?
bei mir Klappt es super! vielen danke dafür.
eine Frage hätte ich aber:
wie bekomme ich das Python Programm in den Autostart bzw als Zeitschaltuhr immer abends um 18 Uhr Starten?
Ich habe es mit crontab versucht aber ich weis nicht wie ich es eintragen muss.
Kann mir da jemand helfen?
DANKE
Philipp
Hallo Felix,
vielen dank für deine super Anleitung. Vielleicht kannst du mir bei meinem Projekt helfen.
Ich bin totaler Anfänger mit Python und benötige dabei hilfe.
Mein Plan ist es den LED Streifen in Grün „Aufladen“ zu lassen. Also eigentlich nichts schweres, sprich: Zuerst soll Pixel 1 Grün aufleuchten dann Pixel 2 dann 3 usw. dabei sollen die Pixel immer an bleiben.
Würde mich sehr über eure Hilfe Freuen!
MfG
Andi
Hi, guck dir mal die erste Funktion des Beispielskirpts an.
Hallo Felix,
erstmal danke für die Anleitung. Ich habe noch ein Anliegen. Das Portieren auf Python3 ist mir auf die Schnelle nicht gelungen, daher werde ich auf das Adafruit Repository zugreifen.
Wäre es möglich, die Anleitung vom 2019 auslaufenden Python2 auf Python3 zu portieren?
Ist geschehen 🙂
Hallo,
ich habe dieses Tutorial soweit erfolgreich umgesetzt. Ich habe nur folgendes Problem:
Immer wieder (ich würde tippen im Schnitt alle 10 Änderungen) habe die LEDs ca. die hälfte an Helligkeit. Die LEDs werden einfach dunkler als sie sein sollten und dazu kommt, dass z.B. beim „Aufladen“ der grünen LEDs passiert es dann manchmal, dass auf einmal die LEDs blau statt grün sind – bis die nächste LED an geht. Dabei spielt es auch keine Rolle wie schnell die Änderungen kommen. Dies habe ich im Beispielskript bereits an Geschwindigkeit reduziert . Ähnlich ist es auch beim „aufladen“ von rot oder blau. LEDs die aus sind, bleiben aber auch aus.
Es ist kein Power-Problem, da auch alle LEDs an sein können ohne dass es dunkel oder Falschfarbe ist.
Hat jemand eine Idee?
Ich befasse mich komplett neu mit dem thema Raspberry und Led Streifen 😉
ich versuche mit dem Raspberry 3 folgende Led Leiste zu steuern
https://www.amazon.de/gp/product/B079ZWY8JT/ref=ox_sc_act_title_2?smid=A29559WHI6ZTR8&psc=1
meine frage im späteren verlauf wäre ist es möglich mit FHEM oder ähnlichen dann auch eine steuerung über HTTP oder gar android app zu realisieren ?
Hallo, bei mir läuft die kompilierte „test“ Datei. Das Skript „strandtest.py“ sowie andere in dem Ordner starten sich aber nicht. Bekomme ständig die Meldung ohne sudo:
python strandtest.py
Can’t open /dev/mem: Permission denied
Traceback (most recent call last):
File „strandtest.py“, line 91, in
strip.begin()
File „/home/pi/.local/lib/python3.7/site-packages/rpi_ws281x/rpi_ws281x.py“, line 131, in begin
raise RuntimeError(‚ws2811_init failed with code {0} ({1})‘.format(resp, str_resp))
RuntimeError: ws2811_init failed with code -5 (mmap() failed)
Speicherzugriffsfehler
und MIT sudo:
sudo python strandtest.py
Traceback (most recent call last):
File „strandtest.py“, line 9, in
from rpi_ws281x import *
ModuleNotFoundError: No module named ‚rpi_ws281x‘
Python 2 und 3 sowie die „rpi_ws281x“ ist installiert:
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: rpi_ws281x in /usr/local/lib/python3.7/dist-packages/rpi_ws281x-1.0.0-py3.7-linux-armv7l.egg (1.0.0)
Du musst den Pfad zu den kompilierten Dateien angeben.
sudo PYTHONPATH=“.:build/lib.linux-armv7l-2.7″ python examples/strandtest.py
Du musst den Pfad zu den kompilierten Dateien angeben.
sudo PYTHONPATH=“.:build/lib.linux-armv7l-2.7″ python examples/strandtest.py
Ich bin irgendwie zu blöd, dass Tutorial zu befolgen.
Am Ende bekomme ich die folgende Fehlermeldung. Was mache ich falsch bzw. wo sollte ich genauer hinsehen?
File „examples/strandtest.py“, line 89, in
strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL)
NameError: name ‚Adafruit_NeoPixel‘ is not defined
Habe eine Lösung gefunden: Mit Python 3 ausführen!
Moin!
Wie genau hast du das den gelöst?^^
Ich habe leider das gleiche Problem. Wie genau hast du das angestellt?
Bei Fehler
„Traceback (most recent call last):
File „examples/strandtest.py“, line 89, in
strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL)
NameError: name ‚Adafruit_NeoPixel‘ is not defined“
einfach die Zeile „from neopixel import *“ ergänzen.
Kann man auch 2 LED-Streifen getrennt voneinander steuern?
1x am GPIO 18
1x am GPIO 12
oder gibt es noch mehr Pins wo man den WS2812B LED-Streifen betreiben kann?
Hallo zusammen,
ist es möglich die den Pi mit dem Handy zu verbinden und so die Led zu steuern?
Ich kenne mich leider nicht genug damit aus.
Danke schonmal im voraus!!!
Ich habe meinen Pi 3B+ nach der Anleitung installiert, es gab keine Fehlermeldungen.
Dann habe ich einen Teststreifen mit 13 WS2812 LEDs angeschlossen.
Beim ausführen des Testprogramms fangen jedoch nur die beiden ersten LEDs dauerhaft an grün zu leuchten.
Was könnte das sein?
Es wurde keine externe Stromversorgung angeschlossen.
Hallo zusammen,
die strandtest läuft, allerdings nur einmal. Sobald ich sie schließe und wieder starten möchte, kann er das Verzeichnis nicht mehr finden:
python3: can’t open file ‚examples/strandtest.py‘: [Errno 2] No such file or directory
Über Python zu starten geht überhaupt nicht:
Can’t open /dev/mem: Permission denied
Traceback (most recent call last):
File „/home/pi/rpi_ws281x/python/examples/strandtest.py“, line 91, in
strip.begin()
File „/usr/local/lib/python3.7/dist-packages/rpi_ws281x/rpi_ws281x.py“, line 131, in begin
raise RuntimeError(‚ws2811_init failed with code {0} ({1})‘.format(resp, str_resp))
RuntimeError: ws2811_init failed with code -5 (mmap() failed)
Ich habe das jetzt ein paar mal durchgespielt, also alles neu installiert und es lässt sich dann nur einmal ausführen. Es handelt sich um einen ZeroPiW
Was läuft da falsch 🙁 ? Danke schonmal
Bist du nach Neustart im gleichen Verzeichnis? Hast du dein Skript als Root (sudo) ausgeführt?
Hallo. ich habe folgendes Problem.
Wenn ich versuche den Befehl (sudo pip3 install adafruit-circuitpython-neopixel) auszuführen kommt nur ein Fehler (sudo: pip3: command not found)
Bedanke mich schonmal.
Mfg
Lars
Hi Lars …
… Du hast ‚pip‘ (‚pip3‘) gar nicht installiert.
Mach ein …
$ sudo update
$ sudo apt install python-pip #für Version python 2
$ sudo apt install python3-pip #für Version python 3
# installiere beide Versionen
Dann mach ein:
$ pip3 –version && pip –version
Die Ausgabe sollte ähnlich dieser hier sein:
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
bzw.:
pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)
Dann startest Du den ursprünglichen Befehl noch einmal:
$ sudo pip3 install adafruit-circuitpython-neopixel
Greetz
Stefan
Wonderful tutorial, works flawless.
Did use a 1m 60 LEd strip and after adjusting the number of LEDs they all worked.
Thank you for it
Greetings
Oliver
Hallo,
mittlerweile scheint diese Anleitung n icht mehr zu funktionieren.
Eine angegebene setup.py Datei gibt es nicht mehr. Ebenso fehlen die Beispiel-Dateien im „examples“-Ordner.
Auch wird beim Ausführen des Befehls …
sudo apt-get install gcc make build-essential python-dev git scons swig
… mindestens ein vorhandenes Paket entfernt.
Nachtrag:
Die examples Dateien können hier heruntergeladen werden: https://github.com/rpi-ws281x/rpi-ws281x-python
Funktioniert 1A, vielen Dank für das TuT.
Bringt mich bei der Umsetzung meiner teilweise „kranken“ Spielereien extrem weiter 🙂
Das github Verzeichnis wurde inzwischen geändert:
nach dem Aufruf von „git clone https://github.com/jgarff/rpi_ws281x“ gibt es zwar ein Verzeichnis rpi_ws281x aber kein Unterverzeichnis python. Dafür gibt es laut Readme.md etliche neue Gitlab Reposiories.
Kann jemand die Anleitung auf den aktuellen Stand bringen?
Hi,
so funktioniert es mit den „neuen“ Git-Repositories. Im Grunde werden beide Repos heruntergeladen und das „original“-Repo in den lib-ordner des pthony-repositories kopiert. Dort wird das dann kompiliert und installiert.
Hier die Befehle:
sudo apt install python3-dev
mkdir ~/lib
cd ~/lib
git clone https://github.com/jgarff/rpi_ws281x
mkdir ~/py
cd ~/py
git clone https://github.com/rpi-ws281x/rpi-ws281x-python
cd ~/py/rpi-ws281x-python/library
mkdir lib
cp -r ~/lib/rpi_ws281x/* ~/py/rpi-ws281x-python/library/lib
sudo scons
sudo python3 setup.py build
sudo python3 setup.py install
sudo pip3 install adafruit-circuitpython-neopixel
sudo python3 examples/strandtest.py
Korrektur des Beitrags zuvor:
sudo apt install python3-dev git scons pip
mkdir ~/lib
cd ~/lib
git clone https://github.com/jgarff/rpi_ws281x
mkdir ~/py
cd ~/py
git clone https://github.com/rpi-ws281x/rpi-ws281x-python
cd ~/py/rpi-ws281x-python/library
cp -r ~/lib/rpi_ws281x/* ~/py/rpi-ws281x-python/library/lib
cd ~/py/rpi-ws281x-python/library/lib
sudo scons
cd ..
sudo python3 setup.py build
sudo python3 setup.py install
sudo pip3 install adafruit-circuitpython-neopixel
sudo python3 examples/strandtest.py