FHEM Forum

FHEM - Anwendungen => Beleuchtung => Thema gestartet von: harway2007 am 26 Mai 2016, 22:23:54

Titel: DIGI-DOT-Booster zur Ansteuerung von WS2812 LED per Raspberry
Beitrag von: harway2007 am 26 Mai 2016, 22:23:54
Bereits vor einger Zeit habe ich eine WS2812 Kette mit 200 LEDs am Raspberry
mit Fhem betrieben .. als Statusanzeige für Ereignisse ..
diese Lösung steigt aber immer aus - da der Raspberry
die benötigte Steuerleitung nicht sauber versorgen kann (800MHZ)...
(auch nicht mit gutem starken Netzteil)

heute habe ich mir das Modul DIGI-DOT-Booster bestellt:
es soll:
wenn ich es richtig verstehe entlastet dieses kleine preiswerte Modul
den Raspberry von der Berechnung und der Daten da nur der Steuercode
über SPI ausgegeben werden muss.
Die Ansteuerung würde damit funktionssicher.
Die Last sinkt dadurch wohl  von 94% Prozessorlast auf 0,04%.
Angesprochen wird das über Phyton.
Als Beispiel Dateien fand ich eine demo.ino für den UNO.

Meine Fragen:
hat das jemand schon auf dem Raspberry 2 oder 3 umgesetzt ?
sind diese ino Dateien auch auf dem Raspberry funktionsfähig ?

MFG Harway
Titel: Antw:DIGI-DOT-Booster zur Ansteuerung von WS2812 LED per Raspberry
Beitrag von: harway2007 am 30 Mai 2016, 22:37:10
Das Modul ist da und klappt ....
Habe 184 LEDs dran am Raspberry 2

Befehl zum Auslösen in Python aufgerufen per Dummy aus Fhem:
spi.writebytes([0xA7, i & 0xFF, i >> 8, 254, 15, 0, LED_COUNT - 1, 30, 0xB2]) 
dies macht ne rechte Ligtshow !!

Habe den spi Befehle noch nicht verstanden - nur die 15 - die steht für Helligkeit.
löschen aller LEDs geht mit clear()

Quelle für spi Protokoll: http://www.led-genial.de/mediafiles//Sonstiges/digi-dot-booster_DE.pdf


Frage:
a. wie spricht man einzelne LEDs an - wie lautet dann der Befehl
Titel: Antw:DIGI-DOT-Booster zur Ansteuerung von WS2812 LED per Raspberry
Beitrag von: harway2007 am 30 Mai 2016, 23:22:39
Nachtrag:
einzelne LEDs mit beliebiger Farbe nach RGB geht so:

spi.writebytes([0xA2, 190, 25, 180, 254])
time.sleep(DELAY)
spi.writebytes([0xA4, 10]) 
time.sleep(DELAY)
spi.writebytes([0xB2]) 
time.sleep(DELAY)
spi.close()
Titel: Antw:DIGI-DOT-Booster zur Ansteuerung von WS2812 LED per Raspberry
Beitrag von: n0bbi am 31 Mai 2016, 09:51:16
Coole Sache und danke fürs Teilen... Was ist denn genau dein Anwendungsgebiet?
Titel: Antw:DIGI-DOT-Booster zur Ansteuerung von WS2812 LED per Raspberry
Beitrag von: harway2007 am 31 Mai 2016, 23:59:57
Als Statusdisplay je nach Sensor unterschiedliche Farben je Zustand.
Auch für Temperatur Anzeige oder Luftdruck in Farbverläufen..

Das kann man sicher auch alles mit Tablett machen .. aber Versuch mal
aus 7 Metern ein Tablett Eintrag zu lesen ...

hier ein Beispiel in dem die achte LED (LED_RolloLinks)
unterschiedlich aufleuchtet.

if RolloLinksl == 'off':
    spi.writebytes([0xA2, 0, 0, 255, 254])
    spi.writebytes([0xA4, LED_RolloLinks]) 
else:
    spi.writebytes([0xA2, 255, 0, 0, 254])
    spi.writebytes([0xA4, LED_RolloLinks])

und für Leute die schlecht sehen oder wenn das Display
weit weg ist - einfach 4 LEDS gleichzeitig mit dem Zustand
für offen oder zu darstellen ..

ich kann also jede einzelne LED direkt und gezielt ansprechen ..
nachdem das so gut funktioniert hab ich mir heute gleich noch ein Modul
fürs Wohnzimmer nachgeordert...
MFG Harway
Titel: Antw:DIGI-DOT-Booster zur Ansteuerung von WS2812 LED per Raspberry
Beitrag von: RS_Tobi am 21 November 2016, 06:11:21
Hallo Harway.

Ich hatte den gleichen Gedanken die rgb LEDs zur Visualisierung zu nutzen.
Jedoch wollte ich die einzelnen Schichten meines 3000 Liter Pufferspeicher anzeigen lassen.

Somit lese ich ds18s20 Sensoren aus  und lasse die Temperaturen dann in verschiedenen Farben anzeigen.

Jedoch habe ich noch ein kleines Problem und ich stehe sozusagen am Schlauch.

Wie sieht das Ganze bei dir denn aus? Wie sendest du die SPI Protokolle zum Booster?

Mein Python läuft so ab dass er den ersten Sensor mit der ersten LED berechnet danach zweiter Sensor mit der zweiten LED und so weiter...

Jedoch ist hier das Ergebnis dass meine erste LED erst kurz aufleuchtet dann die zweite LED kurz aufleuchtet dann die dritte und so weiter bis zur letzten die dann dauerhaft brennt.

Ich mache hier irgendetwas falsch da ich ja alle LEDs zur gleichen Zeit an haben möchte. Jedoch komme ich nicht auf meinem Fehler. Hast du ein Beispiel wie es bei dir abläuft? Mich würden der Anfang und das Ende deines Python Protokolls interessieren.

Danke
Tobi

Gesendet von meinem D5803 mit Tapatalk
Titel: Antw:DIGI-DOT-Booster zur Ansteuerung von WS2812 LED per Raspberry
Beitrag von: RS_Tobi am 10 Dezember 2016, 21:40:05
Hallo...

Keiner eine Idee?
Bzw hat niemand das Teil in Gebrauch?

Gesendet von meinem D5803 mit Tapatalk