Software für WS281x

  • Ich suche für WS281x ein passendes Python Modul wie z.b. neopixel in -wenn es geht- in deutscher Anleitung. Hab zwar schon viel gelesen aber so richtig schlau bin ich nicht geworden.

    Ich möchte es am Pi am PWM Pin betreiben, hab mehrere RGB LED und möchte sie unterschiedlich und einzeln ansteuern wie blinken, an/aus, langsam hell werden u.s.w.

    Was könnt ihr mir empfehlen? Wie gesagt suche nur ein gutes Tutorial darüber wo ich mich einlesen kann.

  • Ich hab mich ein wenig mit "neopixel" beschäftigt.

    Aber so richtig hab ich nicht herausgefunden wie man LED einzeln steuern kann (Helligkeit, Farbe u.s.w.)

    Nehmen wir mal an, ich hab ein LED ws281x Band mit 10 RGB LED.

    Jetzt möchte ich die 2. und 6. mit blau leuchten lassen. Da bekomme ich schon Schwierigkeiten.

    Einzig das hier ist mir einleuchtend:


    Code
    # LED strip configuration:
    LED_COUNT = 10 # Number of LED pixels.
    LED_BRIGHTNESS = 255 # Set to 0 for darkest and 255 for brightest
    LED_INVERT = False # True to invert the signal (when using NPN transistor level shift)
    LED_CHANNEL = 0 # set to '1' for GPIOs 13, 19, 41, 45 or 53
    -LED_STRIP = ws.WS2811_STRIP_GRB # Strip type and colour ordering
  • Schau dir doch eins die Beispiele an. Auf dem Arduino geht es so:

    strip.setPixelColor(n, red, green, blue); Wobei n dann die LED-Nummer ist.


    In der Python Lib sieht es gleich aus.

    wenn es geht- in deutscher Anleitung

    Das kannst du (fast) vergessen. Programmierdoku wird in Englisch gemacht.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Nein ist es nicht. Ich hab dir doch einen Link zu nem Python Modul geschickt. einen Klick weiter findest du die zugrunde liegende Software. Das zusammen mit neopixel modul aus dem python Ordner sollte reichen. Erst rpi_ws281x installieren, dann das zeug aus dem python Ordner

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • So hab mir mal paar einzelne SMD RGB's mit PWM bestellt, bekommen und kurzer Hand zusammengelötet, funktioniert beim Test soweit auch alles gut.

    Nur die LED's gehen nicht wieder aus. Hab schon mit "cleanup()", _cleanup(), strip.cleanup() u.s.w. versucht. Auch in der Doku finde ich nichts brauchbares.

    Muss jedes mal den Pi komplett vom Strom trennen. Nicht einmal reboot löst das Problem.:denker:

  • Das hat geklappt, hab es leider übersehen.

    Mit jeglicher Funktion klappt das alles gut, aber wenn ich versuche eine LED einfach zum leuchten zu bringen, dann klappt das nicht.

    Entweder sagt er mir "SyntaxError: invalid syntax" oder "segmentation fault".

    In Neopixel kann man wohl keine einfachen Befehle machen?

    Hier mal der einfache Code:


  • Solltest du nicht zuerst den den Befehl setzen und dann anzeigen? Erst anzeigen und dann setzen wird nicht klappen. Fehlermeldungen bitte immer komplett posten. Das er gleichzeitig SyntaxError: invalid syntax" oder "segmentation fault". anzeigt kann nicht passieren, also müssen auch am script änderungen gewesen sein.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Ja hatte da was geändert.

    Jetzt sieht der Code so aus:

    Fehlermeldung:

    Code
    File "/home/pi/probe1.py", line 18
    strip.show()
    ^
  • Kann es sein, das dir hier strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS) ein Argument fehlt? In den Beispielen sieht es so aus

    strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL, LED_STRIP)

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Das ist es auch nicht, hab es gerade probiert. Kann es sein, dass das etwas mit dem kopieren zu tun hat?

    Ich kopiere das nämlich immer nur.

    Da hatte ich vor längerer Zeit mal so ein Fall...

  • wie kopieren? Zeile für Zeile? Oder hast du ein Script was du aufrufst?

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.