Ankündigung

Einklappen
Keine Ankündigung bisher.

ALEDD1 - Addressable LED Driver (WS2811, WS2812, SK6812, ...)

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    ALEDD1 - Addressable LED Driver (WS2811, WS2812, SK6812, ...)

    Wie der Name schon sagt, geht es um die Ansteuerung der adressierbaren LEDs (auch als Neopixel bekannt)
    Beispielen wären WS2811, WS2812, WS2812B, SK6812 und ähnliche mit einem Data-In-Pin.

    ALEDD1_1.jpg ALEDD1_2.jpg
    ALEDD1_3.jpg ALEDD1_4.jpg

    Eckdaten:
    - SAMD21G18A MCU (wie beim Arduino Zero)
    - NCN5120/NCN5121/NCN5130 KNX Tranceiver
    - ADUM1201 für die galvanische Trennung zwischen LEDs und KNX
    - Länge 4,5cm, Breite 2cm

    Stand der Software:
    LED Einstellungen:
    - Auswahl zwischen RGB / RGBW Typ
    - Auswahl von Farbreihenfolge in dem Chip (RGB, GRB, RGBW, GRBW)
    - Anzahl der LEDs 1..600
    - Maximale Helligkeit pro Farbe
    Dimmer Einstellungen
    - Dimmgeschwinidgkeit
    - Helligkeit bei Tag/Nacht
    5 benutzerspezifische Farben
    Szennen Zuordnung
    - Zu einer Szene kann entweder eine feste Farbe, eine benutzerspezifische Farbe oder eine der (aktuell) 8 Animation zugeordnet werden.
    Netzteil Steuerung
    - Aktivieren/Deativieren
    - Verzögerung vor dem Ausschalten
    Farbauswahl
    - Über Kombiobjekte RGB DPT 232.600 / RGBW DPT 251.600
    - Einzelne Farbenkomponenten R,G,B,W DPT 5.004 [0..255]

    Firmware:
    https://github.com/KONNEKTING/ALEDD1


    FAQ:
    Q: Warum Neopixel?
    A: Weil man jede einzelne LED mit eigener Farbe/Helligkeit ansteuern kann und so schöne Lichteffekte darstellen kann

    Q: Was macht ALEDD1 so besonders?
    A: Größe, galvanische Trennung und KNX Anbindung

    Q: Wofür steht 1 in dem Namen?
    A: 1 Steht für 1 Kanal. Je nach Bedarf wird es ALLED8 geben.

    Q: Warum (nur) 600 LEDs?
    A: Standard 5m LED Strips die verkauft werden, haben 150 oder 300 LEDs. So kommt man auf 2-4x 5m Strips.
    Theoretisch gehen bis zu 1000 LEDs, aber Refresh-Rate fällt auf unter 30fps und die Animationen sehen ruckelig aus.

    Q: Wie wird es angeschlossen?
    A:
    connection-diagram.png

    Q: Wie wird das Netzteil gesteuert?
    A: Über ein Kommunikationsobjekt und externen Aktor. Wenn alle LEDs x-Minuten aus sind (Zeit ist einstellbar) wird eine "0" gesendet.
    Wenn LEDs eingeschaltet werden, schickt ALEDD zuerst eine "1" um das Netzteil einzuschalten. Dann Wartet bis das Netzteil sich einschaltet und dann wird die gewünsche Farbe eingestellt.

    Q: Welches Netzteil braucht man dafür?
    A: Spannung: 5V. Stromstärke hängt von der LED Anzahl ab. Eine LED kann bei voller RGB-Helligkeit 60mA vebrauchen. RGBW sogar 80mA.
    D.h. 5m Strip mit 150 RGBW LEDs erfordert 12A@5V. Es wird empfohlen längere Strips alle 2-3m mit zuzätlichen Kabeln anzuschließen, da sonst Spannungsabfall groß wird und die Helligkeit sich verändernd kann.

    Q: Sind mehrere Netzteile möglich?
    A: Ja! Bei über 5m wird es sogar dringend empfohlen. Dafür muss GND von allen Netzteilen verbunden werden.
    connection-diagram-multiple-ps.png

    Q: Was kann ALEDD1 sonst?
    A: Dank dem ADUM1201 hat man galvanisch getrennten UART.
    Wenn man ADUM1250 bestückt, dann hat man galvanisch getrennten I²C.

    Q: Wie erkenne ich ob ich RGB(W) oder GRB(W) LEDs habe?
    A: Wenn ALEDD nocht programmiert wurde oder mit einem langen (>0,5s) Klick auf die Programmier-Taste auf dem Board leuchten die ersten 4-6 LEDs in bestimmten Farben.
    Aus der Farbkombination kann man den Typ ableiten: (x = aus)
    R G B W x x -> RGBW
    G R B W x x -> GRBW
    R B x G x R -> RGB
    G B x R x G -> GRB

    Q: Ich weiß die genaue Anzahl der LEDs nicht, wie muss ich vorgehen?
    A: Über einen kurzen Klick auf die Programmier-Taste erreicht man das Test-Modus.
    In dem Test-Modus leuchten die ersten 3-4 LEDs rot, grün, blau und evtl. weis. Wenn die Farben abweichen, dann ist die Farbeinstellung falsch. Wenn die Einstellung richtig ist: jede 10. (10,20,30...) LED leuchtet grün. Jede 50. (50,100,150...) LED leuchtet blau. Letzte LED leuchtet rot. Wenn die letzte LED nicht rot ist, dann ist die Länge falsch gesetzt.
    Die grünen und blauen LEDs dienen zur Orientierung, damit man die LEDs einfacher nachzählen kann.
    Angehängte Dateien
    Zuletzt geändert von Eugenius; 23.09.2018, 17:38.

    #2
    Sogar mit Verhüterli!
    Genau richtig für Weihnachten zur Beleuchtung von Bäumchen oder Balkon.
    Sehr fein!

    Kommentar


      #3
      Super Sache! Wollte ich schon lange mal angehen. Wird ALEDD1 als Bausatz verfügbar sein?

      Kommentar


        #4
        Ja, wird

        Kommentar


          #5
          Kleines UPDATE: Der erster Pilot-User hat gestern ALEDD1 in Betrieb genommen. Wir haben gleich ein paar Kleinigkeit in der Software identifiziert.

          Kommentar


            #6
            Ein paar Hintergrund Informationen: Bei dem ALEDD Board nutze ich DMA für die LED-Ansteuerung.
            Ok, das sagt wahrscheinlich keinem etwas.
            Ich versuche mal zu erklären: Die Neopixel werden über einen Data-Pin angesteuert. Je nach Model (RGB oder RGBW) hat man 3 oder 4 Byte für die Farben.
            z.B. wir haben 3x RGB LEDs. d.h. wir müssen 9 Byte übertragen. das wären dann R1G1B1R2G2B2R3G3B3. D.h. die Bytes werden als Stream übergeben und mit 50us Pause als "Übertragung fertig" markiert. Über die erste LED gehen alle 9 bytes, über die 2. LED gehen 6 bytes durch, über die 3. LED gehen 3 bytes durch und dann kommt 50us Pause. Dann werden die Bytes die gerade in den LEDs "hängen" geblieben sind als Farben akzeptiert. So bleiben für die 1. LED: R1G1B1, für die 2. LED: R2G2B2 usw. Und wie man merkt, 50us ist verdammt wenig. Es kommt noch dazu, dass der Takt ziemlich genau sein soll.

            Die Standard Neopixel Bibliothek macht es so:
            Es werden die Interrupts abgeschaltet damit nichts dazwischen kommt und den Takt nicht gestört wird. Dann werden die Daten übergeben und erst dann werden die Interrupts wieder eingeschaltet. In dem Moment, wo die Interrupts abgeschaltet sind, funktioniert die millis() Funktion nicht mehr richtig, UART-Kommunikation ist gestoppt usw. D.h. wir können die KNX-Telegramme nicht empfangen. Nicht mal in einen Puffer.

            Jetzt kommt die Zauberlösung: DMA = Direct Memory Access. Ich werde jetzt nicht genau erklären was das ist, aber DMA kümmert sich selbst um die Datenübertagung (Pin auf HIGH/LOW schalten) und zwar ohne die Interrupts abzuschalten. Man könnte es als primitives Multi-Tasking bezeichnen.

            DMA funktioniert leider nicht an jedem Pin. So hat Adafruit nur 4(!) Pins für Neopixel freigegeben und in eine spezielle Bibliothek verpackt. Durch "Hexerei" kann man auch mehr Pins nutzen, wenn man weiß welche und wie. Nur müsste man jedes Mal dafür die Bibliothek erweitern, was nicht Userfreundlich ist.
            Somit habe ich einen PullRequest gemacht. Und er wurde sogar akzeptiert

            Der Grund für den PR: ich nutze einen Pin, der nicht unter diesen 4 vordefinierten PINs war...

            Kommentar


              #7
              Wie werden eigentlich die Animationen erstellt und draufgepackt?
              Ich denke/bastele auch an sowas herum, eher auf Arduino Basis für RC Modellbau, hat mich dann aber auch schon in Richtung KNX oder zumindest HTTP Schnittstelle denken lassen ;-)

              Kommentar


                #8
                ALEDD ist wie ein Arduino Zero, nur anders verpackt
                Animationen sind im code hardcoded. FW kann später über KNX übertragen werden. Somit muss man später nicht mal ans PC anschließen um neue Features/Animationen zu bekommen.

                Kommentar


                  #9
                  ich habe FAQs aktualisiert.
                  Neu sind die Punkte, womit man die eingesetzte LEDs feststellen kann: RGB/GRB oder RGBW/GRBW und auch noch die Anzahl der LEDs.
                  Ich habe auch noch die erste Firmware auf github hochgeladen. Bitte aber nur de Releases nutzen. Sonst kann es passieren, dass der Code gar nicht läuft.

                  Kommentar


                    #10
                    Hallo,
                    ich finde das Projekt ziemlich interessant.
                    Ist es geplant, das man den ALEDD kaufen kann? Was ist ein angestrebter Verkaufspreis?

                    Danke

                    Kommentar


                      #11
                      Ja, geplant, 35 Euro.

                      Kommentar


                        #12
                        Setzt Du auf der FastLED Library auf, so dass sich die Basis-Effekte einbauen/nutzen lassen?

                        Nachtrag: Hab's grad gesehen- Du setzt auf der Adafruit Neopixel Library auf.
                        Zuletzt geändert von Dragonos2000; 23.09.2018, 19:13.

                        Kommentar


                          #13
                          Zitat von Dragonos2000 Beitrag anzeigen
                          Setzt Du auf der FastLED Library auf, so dass sich die Basis-Effekte einbauen/nutzen lassen?

                          Nachtrag: Hab's grad gesehen- Du setzt auf der Adafruit Neopixel Library auf.
                          Ich setze auf Adafruit Neopixel wegen DMA Unterstützung.
                          FastLED wollte ich in Zukunft noch dazu nehmen, weil die ein paar coole Funktionen hat.
                          Welche Basis-Effekte meinst du?
                          Zuletzt geändert von Eugenius; 10.12.2018, 21:33.

                          Kommentar


                            #14
                            Mal ein paar Fragen:

                            - Welche Effekte/ Animationen sind bis jetzt eingebaut? Vielleicht können wir ja hier auch eine art Ideen-Sammlung für Animationen starten.

                            - Bzgl. Hardware, hat jemand Tipps für gute Neopixel-Stripes (RGB/RGBW).

                            Kommentar


                              #15
                              Die Animationen aus dem NeoPixelPainter Example.
                              LEDs kaufe ich bei aliexpress: RGBW SK6812 (ich empfehle neutral weis, aber das ist Geschmacksache) und WS2812B wenn es RGB sein soll. Für Weihnachtsbaum (JA, muss unbedingt smart sein!!!11elf) nehme ich WS2811 (mit Kabel verbunden)
                              Zuletzt geändert von Eugenius; 24.09.2018, 09:10.

                              Kommentar

                              Lädt...
                              X