Bemerkung
Das LED Strip Bricklet ist abgekündigt und wird nicht mehr verkauft. Als Ersatz wird das LED Strip Bricklet 2.0 empfohlen.
Das LED Strip Bricklet kann genutzt werden um LED Streifen und LED Pixel zu steuern, die mit einem WS2801, WS2811, WS2812/SK6812 (NeoPixel RGB), SK6812RGBW (NeoPixel RGBW), LPD8806 oder APA102 (DotStar) LED-Treiber ausgestattet sind. Es ist möglich 320 RGB oder 240 RGBW LEDs (960 einzelne LEDs) unabhängig voneinander über ein Brick zu steuern.
Mit Hilfe der API können alle LEDs gleichzeitig mit einer festen Aktualisierungsrate von bis zu 100Hz gesteuert werden. Ein Anwendungsbeispiel findet man im Starterkit: Blinkenlights: Video
Brick Daemon 2.0.10 oder neuer wird für diese Bricklet empfohlen.
Eigenschaft | Wert |
---|---|
Unterstütze LED-Treiber | WS2801, WS2811, WS2812/SK6812 (NeoPixel RGB),
SK6812RGBW (NeoPixel RGBW), LPD8806 und APA102 (DotStar)
|
Stromverbrauch | 1mA (inaktiv), 4mA (aktiv) |
Auflösung | 8Bit pro LED |
Maximale Anzahl LEDs | 960 (320 RGB oder 240 RGBW LEDs)* |
Maximale Aktualisierungsrate | 100 Aktualisierungen pro Sekunde |
Abmessungen (B x T x H) | 30 x 30 x 12mm (1,18 x 1,18 x 0,47") |
Gewicht | 10g |
* mit einem Master Brick, 480 mit anderen Bricks
Um ein LED Strip Bricklet testen zu können, müssen zuerst Brick Daemon und Brick Viewer installiert werden. Brick Daemon arbeitet als Proxy zwischen der USB Schnittstelle der Bricks und den API Bindings. Brick Viewer kann sich mit Brick Daemon verbinden, gibt Informationen über die angeschlossenen Bricks und Bricklets aus und ermöglicht es diese zu testen.
Als nächstes muss das LED Strip Bricklet mittels eines Bricklet Kabels mit einem Brick verbunden werden. Anschließend kann ein LED Streifen oder LED Pixel an das Bricklet, wie weiter unten beschrieben, angeschlossen werden.
Wenn der Brick per USB an den PC angeschlossen wird sollte einen Moment später im Brick Viewer ein neuer Tab namens "LED Strip Bricklet" auftauchen. Wähle diesen Tab aus. Wenn alles wie erwartet funktioniert, kann nun ein LED Steifen gesteuert werden.
Nun kann ein eigenes Programm geschrieben werden. Der Abschnitt Programmierschnittstelle listet die API des LED Strip Bricklet und Beispiele in verschiedenen Programmiersprachen auf.
Es werden LED Streifen und Pixel unterstützt, die mit dem WS2801, WS2811 oder WS2812 Treiber ausgestattet sind. Im Weiteren bezieht sich WS28xy auf alle diese drei Treiber.
Der verwendete Treiber muss über Brick Viewer oder die set_chip_type()
Funktion des LED Strip Bricklets eingestellt werden. Für WS2811 und WS2812
wird LED Bricklet Plugin Version 2.0.2 oder neuer benötigt.
Der WS28xy Treiber kann bis zu drei LEDs unabhängig voneinander steuern. Typischerweise werden RGB LEDs, die in einem Gehäuse zusammen untergebracht sind, gesteuert. Der WS28xy Treiber wird über einen 3- oder 2-Leiter Datenbus, bestehend aus einer Datenleitung, einer Taktleitung (nur WS2801) und Masse als Referenz, gesteuert. Jeder Treiber verfügt dazu über einen Bus-Eingang und einen Bus-Ausgang, so dass die Treiber in Serie hintereinander geschaltet werden (Daisy Chain). Jeder Bus-Eingang der WS28xy Treiber ist entweder mit einem steuernden Gerät (wie z.B. das LED Strip Bricklet) oder mit einem Bus-Ausgang von einem vorherigen WS28xy Treiber verbunden. Da die WS28xy Treiber in Serie geschaltet werden müssen, darf jeder Bus-Ausgang höchstens mit einem Bus-Eingang verbunden werden. Der Bus wird beginnend beim ersten WS28xy Treiber indiziert (API Index 0).
Das obige Foto zeigt einen typischen WS2801 LED Steifen. Jedes Modul des Streifens ist mit einem WS2801 Treiber und einer davon angesteuerten RGB LED ausgestattet. Die Signale sind jeweils auf der Eingangsseite (IN) und auf der Ausgangsseite (OUT) gekennzeichnet: 5V, CK (Clock), SD (Serial Data) und GND. Im Gegensatz zum WS2801 haben die WS2811 und WS2812 Treiber keine Taktleitung.
Das nachfolgende Bild stellt die Schnittstellen des LED Strip Bricklets dar:
Wie im WS28xy Abschnitt beschrieben, unterstützt das Bricklet LED Steifen und Pixel, die mit WS2801, WS2811 oder WS2812 Treiber-ICs ausgestattet sind. Die mit "Output" beschrifteten Klemmen müssen mit dem Eingang des ersten WS28xy Treiber-ICs verbunden werden.
Die Klemme ist mit folgenden Signalen belegt:
"DAT" ist die Datenleitung zum WS28xy Chip. Sie muss mit dem Dateneingang des ersten WS28xy Chips verbunden werden. Leider gibt es keine allgemeingültige Beschriftung für LED Steifen und Pixel. Manchmal ist das Signal mit SD (Serial Data) oder DI (Data Input) beschriftet. Es ist ebenfalls möglich, dass nur der Ausgang beschriftet ist (z.B. DO, Data Output). Bei der anderen Seite muss es sich also folglich um den Eingang handeln.
"CLK" ist die Taktleitung zum WS2801 Chip. Sie muss mit dem Takteingang des ersten WS2801 Chips verbunden werden. Dieser Eingang ist typischerweise mit CLK, CK oder CI (Clock Input) beschriftet. Falls nur der Ausgang beschriftet ist findet man Beschriftungen wie CO (Clock Output).
Die WS2811 und WS2812 Treiber-ICs haben keine Taktleitung, für diese muss die "CLK" Klemme offen gelassen werden.
"-" ist die Masseleitung. Masse ist notwendig um eine Spannungsreferenz zu den DAT und CLK Signalen zu besitzen.
"+" ist der Versorgungsspannungs-Ausgang. Es ist mit dem "+" Signal der "Input" Klemme verbunden und sollte nicht benutzt werden um LED Steifen oder Pixel zu versorgen. Die Streifen oder Pixel sollten direkt von der Stromquelle aus versorgt und dieses Signal nicht angeschlossen werden.
Die Eingangsklemme verfügt über zwei Signale:
Das LED Strip Bricklet benötigt viel RAM um die Farbinformationen für die LEDs zu speichern. Normalerweise könnte das LED Strip Bricklet, auf Grund des begrenzten RAMs pro Bricklet, nur bis zu 80 RGB oder 60 RGBW LEDs steuern.
Um diese Beschränkung zu umgehen kann das LED Strip Bricklet den ungenutzten RAM von nicht genutzten Bricklet Ports verwenden. Dies erlaubt es bis zu 320 RGB oder 240 RGBW LEDs mit einem Master Brick und einem LED Strip Bricklet zu steuern. Wie beschrieben können diese Bricklet Ports dann aber nicht von anderen Bricklets verwendet werden.
Die maximale Anzahl von LEDs ergibt sich wie folgt:
Freie Bricklet Ports | Maximale Anzahl an RGB LEDs | Maximale Anzahl an RGBW LEDs |
---|---|---|
0 | 80 | 60 |
1 | 160 | 120 |
2 | 240 | 180 |
3 | 320 | 240 |
Es existiert keine allgemeine farbliche Kennzeichnung für LED Streifen. Insbesondere verstoßen die Farben oftmals gegen Konventionen. In diesem WS2812B LED Streifen Beispiel ist der rote Draht 5V, grün die Datenleitungleitung und der weiße Draht ist Masse.
Als erstes wird die Datenleitung des ersten LED Streifens und Masse der Spannungsversorgung mit dem LED Strip Bricklet verbunden. Dabei muss darauf geachtet werden, dass der Dateneingang des ersten Streifen mit Datenausgang des LED Strip Bricklets verbunden wird.
Falls die Spannung der Versorgung gemessen werden soll, müssen die 5V der Stromversorgung mit dem LED Strip Bricklet verbunden werden. Es können weitere LED Streifen in Reihe (hintereinander) an den ersten LED Streifen angeschlossen werden (dabei müssen die RAM Beschränkungen beachtet werden).
Es ist nicht ausreichend die LED Streifen nur an deren Anfang zu versorgen. Wir empfehlen mindestens alle 2 Meter neu einzuspeisen. Dazu kann zum Beispiel pro Einspeisepunkt ein eigenes Kabel zur Stromversorgung geführt werden. Somit wird der elektrische Widerstand reduziert und Leitungsverluste minimiert. Das nachfolgende Bild zeigt ein Beispiel.
Es existiert keine allgemeine farbliche Kennzeichnung für LED Streifen. Insbesondere verstoßen die Farben oftmals gegen Konventionen. In diesem WS2801 LED Streifen Beispiel ist der schwarze Draht 5V, grün die Taktleitung, rot die Datenleitung und der blaue Draht ist Masse.
Als erstes werden die Takt- und Datenleitung des ersten LED Streifens und Masse der Spannungsversorgung mit dem LED Strip Bricklet verbunden. Dabei muss darauf geachtet werden, dass der Takt- und Dateneingang des ersten Streifen mit dem Takt- und Datenausgang des LED Strip Bricklets verbunden wird.
Falls die Spannung der Versorgung gemessen werden soll, müssen die 5V der Stromversorgung mit dem LED Strip Bricklet verbunden werden. Es können weitere LED Streifen in Reihe (hintereinander) an den ersten LED Streifen angeschlossen werden (dabei müssen die RAM Beschränkungen beachtet werden).
Es ist nicht ausreichend die LED Streifen nur an deren Anfang zu versorgen. Wir empfehlen mindestens alle 2 Meter neu einzuspeisen. Dazu kann zum Beispiel pro Einspeisepunkt ein eigenes Kabel zur Stromversorgung geführt werden. Somit wird der elektrische Widerstand reduziert und Leitungsverluste minimiert. Das nachfolgende Bild zeigt ein Beispiel.
Die Verbindung zu LED Pixeln ist sehr ähnlich zur Verbindung zu LED Streifen. Es existiert ebenfalls keine allgemeine farbliche Kennzeichnung. Im nachfolgenden Beispiel ist der rote Draht 5V, blau ist Masse, die Taktleitung (nur WS2801) ist grün und die Datenleitung ist weiß.
Die Takt- und Datenleitung vom ersten LED Pixel Bündel, sowie Masse von der Stromversorgung werden mit dem LED Strip Bricklet verbunden. Dabei muss darauf geachtet werden, dass der Takt- (nur WS2801) und Dateneingang des ersten Pixels mit dem Takt- (nur WS2801) und Datenausgang des LED Strip Bricklets verbunden wird. Soll die Versorgungsspannung gemessen werden, muss auch 5V von der Stromversorgung an das Bricklet angeschlossen werden. Sollen mehrere Bündel verwendet werden, so können diese in Reihe (hintereinander) an das erste Bündel angeschlossen werden (dabei müssen die RAM Beschränkungen beachtet werden).
Typischerweise besitzt jedes Pixel Bündel Drähte zur Stromversorgung am Anfang und Ende des Bündels. Diese sollten über zusätzliche Kabel mit der Stromversorgung verbunden werden. Benachbarte Drähte können auch zusammengefasst werden. Diese Maßnahme reduziert den elektrischen Widerstand und minimiert die Leitungsverluste der Stromversorgung.
Um eine flüssige Animation zu erreichen wird eine feste Aktualisierungsrate
benötigt. Eine feste Aktualisierungsrate kann einfach mit einer
korrekt konfigurierten Framelänge und dem FrameRendered
Callback erreicht
werden. Die Framelänge stellt die Zeit in ms dar, die zwischen zwei
Frames verstreicht. Der FrameRendered
Callback wird ausgelöst nachdem
ein neues Frame auf die LEDs übertragen wurde.
Wenn als Beispiel eine Aktualisierungsrate von 20 Frames pro Sekunde
erreicht werden soll, sollte die Framelänge auf 50ms gesetzt werden.
Nachdem die Framelänge gesetzt ist, muss das erste Frame übertragen werden
(d.h. es müssen alle RGB Werte gesetzt werden). Danach muss auf den
FrameRendered
Callback gewartet werden woraufhin das nächste Frame
übertragen werden muss usw.
Wenn ein FrameRendered
Callback empfangen wird bevor alle LEDs eines Frames
gesetzt wurden, ist die Aktualisierungsrate zu hoch.
Ein laser-geschnittenes Gehäuse für das LED Strip Bricklet ist verfügbar.
Der Aufbau ist am einfachsten wenn die folgenden Schritte befolgt werden:
Im Folgenden befindet sich eine Explosionszeichnung des LED Strip Bricklet Gehäuses:
Hinweis: Auf beiden Seiten der Platten ist eine Schutzfolie, diese muss vor dem Zusammenbau entfernt werden.
Siehe Programmierschnittstelle für eine detaillierte Beschreibung.
Sprache | API | Beispiele | Installation |
---|---|---|---|
C/C++ | API | Beispiele | Installation |
C# | API | Beispiele | Installation |
Delphi/Lazarus | API | Beispiele | Installation |
Go | API | Beispiele | Installation |
Java | API | Beispiele | Installation |
JavaScript | API | Beispiele | Installation |
LabVIEW | API | Beispiele | Installation |
Mathematica | API | Beispiele | Installation |
MATLAB/Octave | API | Beispiele | Installation |
MQTT | API | Beispiele | Installation |
openHAB | API | Beispiele | Installation |
Perl | API | Beispiele | Installation |
PHP | API | Beispiele | Installation |
Python | API | Beispiele | Installation |
Ruby | API | Beispiele | Installation |
Rust | API | Beispiele | Installation |
Shell | API | Beispiele | Installation |
Visual Basic .NET | API | Beispiele | Installation |
TCP/IP | API | ||
Modbus | API |