Hier werden verschiedene Alternativen vorgestellt, wie ihr das von Philips bekannte Ambilight nachbauen könnt. Der erste Artikel mit dem SEDU-Board war unser Anfang mit dem Thema. Er beschreibt sehr detailliert, wo die Hardware zu beziehen ist und wie sie aufgebaut wird. Die Variante mit Hyperion verlinkt auf eine sehr gute Anleitung aus dem Internet, wo ebenfalls Bezugmöglichkeiten aufgezeigt werden, die zum Teil sogar noch günstiger sind. Die Entwicklung geht weiter. Mit dem Hyperion.ng steht ein komfortables Webinterface zur Verfügung. [[https://www.minidvblinux.de/wiki/mld/addons_und_plugins/dfatmo#hardware1]]
Auf was ihr euch einlasst
Externer Link und Externer Link
Dieser Artikel ist gültig ab MLD-Version 3.0.1.1. Für den RPI wurde es noch nicht getestet.
Im Wesentlichen werden ein SEDU-Bord und die entsprechenden digitalen RGB-LED-Stripes benötigt. Das SEDU-Bord nimmt die Daten über den USB-Anschluß im miniDMX-Format entgegen und gibt diese in den Formaten WS2801 bzw. TM1804 aus.Es handelt sich dabei um gängige, digitale Stripes, die direkt angeschlossen werden können. Das SEDU-Lights Version 2 kann bis zu 256 Kanäle bedienen (Firmware 3.0 oder höher).
Bezugsqulle für das fertige Bord bzw. wer Löten möchte auch dem Bausatz:Externer Link
sedu-ambilight.pdf
Um die Kosten im Rahmen zu halten, habe ich bei mir Stripes mit dem WS2801 Chip verwendet.ws2801.pdf Pro LED Typ 5050 ist auf dem Stripe ein Chip vorhanden. Somit gibt es PWM-Dimming Regelung für jeden Kanal und jede Farbe ist möglich. Die Stripes sind individuell nach jeder LED kürzbar und können so der jeweiligen TV-Größe angepasst werden.Der Abstand der LEDs beträgt ca. 32mm. Bei mir ergeben sich so 33 Leds horizontal und 21 LED vertikal. Die Stripes können über folgende Quelle bezogen werden.Externer Link Die Stripes sind auf Rolle und in einer ESD-Tüte eingeschweißt.Bedenken hatte ich bei den Stripes aus Übersee, die ich auch noch mit meiner Kreditkarte bezahlt habe, weil ich keine andere Möglichkeit gesehen habe. Aber auch hier hat die Lieferung problemlos geklappt und die Unterrichtung über den jeweiligen Status der Lieferung war vorbildlich. Gedauert hat es bei mir ca. 2 Wochen, bis ich die LED-Stripes in Empfang nehmen konnte.
Die Stripes sind mit einer Silikonhülle überzogen und damit staubgeschützt. Betriebsspannung 5 VDC
Die Stromaufnahme liegt theoretisch bei 3x18mA je LED - bei komplett weiß. D.h bei mir sollten 5,8A fließen. Realistisch ist ein etwas geringerer Strom, Der Strombedarf bei 5VDC ist bei meinen 108 LEDs noch unter 5A, so dass ich mich für ein Netzteil 5VDC/5A von Reichelt entschieden hab. Externer Link\\
Mein LG-TV hat rundum einen durchscheinenden Rand. Das ist für das Vorhaben ungünstig. Deßhalb wird dieser Rand mit Hilfe selbstklebender Alufolie (Baumarkt) als Reflektor umfunktioniert. Die Befestigung der Stripes erfolgt mit doppelseitigem Schaumstoffklebeband.
Die Stripes werden mit Hilfe einer Haushaltsschere abgelängt und an den Ecken mit kurzen Drahtstücken verbunden. Um den Staubschutz aufrecht zu erhalten, habe ich die Ecken mit Schrumpfschlauch überzogen.
Der Abstand der LEDs zur Wand beträgt etwa 200 mm. Der Winkel ist leicht schräg zur Wand. Das ist nicht so kritisch , da die verwendeten 5050 LEDs einen Öffnungswinkel von ca. 120 Grad haben.
Die Sripes sind beidsetig mit einem 4-poligem Stecker versehen. Dieser passt zum SEDU-Bord. Ich habe die 5V nur einseitig eingespeißt, ohne sichtbaren Helligkeitsverlust in der LED-Kette. Der WS2801 hat ja pro LED eine KSQ. Bei größeren TVs kann es nötig sein,nochmals zwischendurch einzuspeißen. Beim SEDU-Bord lag noch ein 4-poliger Stecker bei, den ich für die 5V Einspeißung verwendet habe. Achtung: Bei mir waren die Data und Clock-Anschlüsse am Stripe vertauscht. Von hinten sieht das dann so aus.
Mein erstes Problem war der Fernseher. Ich besitze einen Sony, der so gebaut ist, dass ich die LEDs nicht einfach an die Geräterückseite kleben kann. Einerseits würde der Winkel der LEDs zum Hintergrund nicht passen und anderseits würden die Anschlüsse an den Fernseher (2x HDMI, 2x Scart und Antenne) teilweise die LEDs verdecken. Gelöst habe ich das Problem, in dem ich mir einen Rahmen aus Rohren gebaut habe, den ich mit Klettverschlüssen an der Rückseite des TV angebracht habe. Da die Rohre schwarz sein sollten, habe ich lange gesucht und bin bei einem Internethändler für Aquaristik fündig geworden. Leider sind die Rohre und Winkel nicht schwarz, sondern dunkelgrau. Die auf dem Foto gezeigten Hölzer zum Befestigen des Rahmens an den Fernseher haben sich nicht bewährt. Sie waren zu schmal und hielten nicht zuverlässig. Ich habe dann ein paar Spielsteine von Jenga verwendet und diese mit schwarzem Gewebeband ummantelt. Zum Verbinden der LEDs habe ich Klingeldraht 4 x 0,8 mm2 verwendet, das funktioniert, ist allerdings sehr starr. Jetzt würde ich wohl doch eher zu Schaltlitze 0,75 mm2 tendieren. Nach dem ich das Netzteil und das SEDU-Board mit dem zusammen gelöteten LED-Stripe verbunden hatte, sah ich ein blaues Lauflicht (Standardeinstellung im SEDU-Board). Immerhin schien das Löten erfolgreich gewesen zu sein. Nun habe ich zur Sicherheit auf die Lötstellen an den Stripe-Enden Heißkleber aufgebracht und die Enden dann mit Schrumpfschlauf verschlossen. Dann habe ich den LED-Stripe mit Tesafilm auf den Rohrrahmen so aufgeklebt, dass die LEDs etwas seitlich bzw. nach oben und unten abstrahlen. Etwas schwierig war es an den Ecken, da wie bereits geschrieben, der Klingeldraht etwas sperrig ist. Beim Aufkleben habe ich die LEDs leuchten lassen, damit ich sofort einen Kabelbruch bemerkt hätte. War aber alles ok.
Erst mal vielen Dank an p3f und Christian, ohne die ich das Plugin nie zum Laufen gebracht hätte. Natürlich haben wir diese Spielerei Durchflieger zu verdanken !
Getestet habe ich das Plugin mit MLDHD 3.0.1.1 und 3.0.3 mit xineliboutput und softhddevice und XBMC 12.2
Es gibt im OSD die Möglichkeit, eine Menge Parameter einzustellen.
Bei mir läuft es mit den Einstellungen ganz gut:
setup.conf dfatmo.analyze_rate = 40 dfatmo.analyze_size = 1 dfatmo.bottom = 33 dfatmo.bottom_left = 0 dfatmo.bottom_right = 0 dfatmo.brightness = 225 dfatmo.center = 0 dfatmo.darkness_limit = 1 dfatmo.driver = serial dfatmo.driver_param =/dev/ttyUSB0&speed:500000proto:x5A|xA2|Rb33|Gb33|Bb33|-32|Rl21|Gl21|Bl21|-20|Rt1|Gt1|Bt1|+32|Rr1|Gr1|Br1|+21|xA5 dfatmo.driver_path = /usr/lib/dfatmo/drivers dfatmo.edge_weighting = 60 dfatmo.enabled = 1 dfatmo.filter = 1 dfatmo.filter_delay = 25 dfatmo.filter_length = 500 dfatmo.filter_smoothness = 50 dfatmo.filter_threshold = 40 dfatmo.gamma = 30 dfatmo.hide_main_menu_entry = 0 dfatmo.hue_threshold = 100 dfatmo.hue_win_size = 5 dfatmo.left = 21 dfatmo.output_rate = 20 dfatmo.overscan = 10 dfatmo.right = 21 dfatmo.sat_win_size = 5 dfatmo.start_delay = 267 dfatmo.top = 33 dfatmo.top_left = 0 dfatmo.top_right = 0 dfatmo.uniform_brightness = 1 dfatmo.wc_blue = 255 dfatmo.wc_green = 255 dfatmo.wc_red = 255 dfatmo.weight_limit 12
speed:500000 :Controller Baudrate muss 500000 betragen! Beim Anschluss des SEDU-Boards muss der Baudraten Jumper gesetzt werden um die Baudrate von 250000 auf 500000 zu setzen ansonsten klappt die Kommunikation PC<>Controller nicht!
proto:Dieser Parameter lässt sich entsprechend des Einspeisepunktes und der Anzahl der Sektionen zusammenstellen.
x5A = Steuerzeichen: Max. mögliche Anzahl der Kanäle - 5A A2 … mit max.170 Kanälen (512 Byte Daten)
xA2 = Steuerzeichen s.o.
R = rot
G = grün
B = blau
l = links
r = rechts
t = top ⇒ oben
b = bottem ⇒ unten
Darin spiegelt sich die Reihenfolge der Datenbytes wieder, die an den SEDU-Controller gesendet werden. Es hängt dann von der konkreten Verdrahtung der LED-Stripes mit dem SEDU-Controller ab, welche Datenbytes welchen LED's zugeordnet sind.
In der Konfiguration werden die Farbwerte in der Reihenfolge RGB für eine Sektion ausgegeben. An unseren 2 Beispielen soll das verdeutlicht werden.
Von hinten sieht das so aus:
Die Einspeisung ist links unten. Die Reihenfolge ist entgegen des Uhrzeigersinnes:
zuerst 33 Sektionen am unteren Bildschirmrand in absteigender Reichenfolge (33 … 1),–>|Rb33|Gb33|Bb33|-32|
dann 21 Sektionen am rechten Bildschirmrand in absteigender Reichenfolge (21 … 1), –> |Rl21|Gl21|Bl21|-20|
dann 33 Sektionen am oberen Bildschirmrand in aufsteigender Reichenfolge (1 … 33), –> |Rt1|Gt1|Bt1|+32|
dann 21 Sektionen am linken Bildschirmrand in aufsteigender Reichenfolge (1 … 21). –> |Rr1|Gr1|Br1|+21|
Daraus ergibt sich folgender String:
dfatmo.driver_param =/dev/ttyUSB0&speed:500000proto:x5A|xA2|Rb33|Gb33|Bb33|-32|Rl21|Gl21|Bl21|-20|Rt1|Gt1|Bt1|+32|Rr1|Gr1|Br1|+21|xA5
In unserem 2. Beispiel erfolgt die Einspeisung zwar auch in der linken unteren Ecke (von hinten gesehen) geht dann aber nach zunächst nach oben. Ich habe also right, top, left, bottem verdrahtet und nicht wie im 1.Beispiel bottem, left, top, right. Das kann jedoch alles über den Parameter-String konfiguriert werden.
zuerst 17 Sektionen am rechten Bildschirmrand in absteigender Reichenfolge (17 … 1),–>|Rr17|Gr17|Br17|-16|
dann 23 Sektionen am oberen Bildschirmrand in absteigender Reichenfolge (23 … 1), –> |Rt23|Gt23|Bt23|-22|
dann 17 Sektionen am linken Bildschirmrand in aufsteigender Reichenfolge (1 … 17), –> |Rl1|Gl1|Bl1|+17|
dann 23 Sektionen am unteren Bildschirmrand in aufsteigender Reichenfolge (1 … 23). –> |Rb1|Gb1|Bb1|+22|
Der Parameterstring sieht dann so aus:
dfatmo.driver_param = /dev/ttyUSB0&speed:500000&proto:x5A|xA2|Rr17|Gr17|Br17|-16|Rt23|Gt23|Bt23|-22|Rl1|Gl1|Bl1|+17|Rb1|Gb1|Bb1|+22|xA5
Etwas störend war bei mir noch, dass die Rottöne auf meiner Tapete, die einen rosa Ton hat, etwas übertrieben wirken. Das habe ich in den Plugin-Einstellungen zum dfatmo über Calibration/Red white calibration angepasst. Statt 255 habe ich den Wert auf 150 gesetzt.
Zunächst musste ich das Sedu-Board unter Windows anschließen und das SEDU Setup Tool installieren (der FTDI-Treiber wurde unter Windows 8 automatisch installiert). Dort zunächst die COM-Schnittstelle vom Sedu-Board (siehe Systemsteuerung – Geräte Manager), Geschwindigkeit 500000 auswählen und „Open Port“ drücken. Dann musste ich den Parameter “Color-Order” von RGB auf BGR setzen. Zusätzlich habe ich “Program” auf “none”, “Brightness” und “Effect speed” auf “0” gesetzt. Vorher hatte ich das Problem, dass bei dunklen Szenen das Standardlicht angezeigt wurde. Das war bei mir ein dezentes dunkelrot und wirkte störend. Nun sind die LEDs bei dunklen Szenen aus. Dann alles auf dem EEprom speichern und das USB-Kabel wieder in den MLD-PC stecken.
Bei Youtube gibt es sehr gute Videos, um die Einstellungen zu testen. Ich habe dieses Video verwendet. Es muss allerdings erst in das TS-Format konvertiert werden, damit es über den VDR abgespielt werden kann. Das geht prima mit dem VLC-Player unter Medien/Konvertieren-Speichern. Dort das heruntergeladene Video hinzufügen, den Button Konvertieren/Speichern und dort konvertieren wählen. Als Profil “MPEG-2 + MPGA (TS)” wählen. Die erzeugte TS-Datei muss noch um die typischen VDR-Verzeichnisse erweitert werden. Dazu einfach eine VDR-Aufnahme kopieren und darin die TS-Datei austauschen.
Das Plugin und der Treiber sollten sofort verfügbar sein.
Die Parameter und vor allem der String dfatmo.driver_param müssen natürlich eingetragen werden in die Parameter oder unter:
/root/xbmc/userdata/addon_data/cript.dfatmo/settings.xml
Ich habe noch eine interessante Anleitung gefunden, wo ein Ambilight ohne VDR (es wird kein VDR-Plugin benötigt) aufgebaut wird. Statt des SEDU-Bord wird hier ein RPi2 zur Ansteuerung verwendet. Die Anleitung nutzt als Betriebssystem Openelec und als Anwendung Kodi. Das ganze funktioniert aber auch mit der MLD. Dazu ist das Paket Hyperion aus der MLD-Paketverwaltung erforderlich. Somit kann man sich mit dieser Anleitung eine MLD-Installation mit Ambilight auf einem Raspberry 2 oder Raspberry 3 aufbauen.
Die Anleitung ist in 3 Teile unterteilt:
Dieser Teil beschreibt die Komponenten, die erforderlich sind, und wo sie bezogen werden können. Weiterhin wird darin der Aufbau der Hardware beschrieben. Für den Aufbau der Hardware kann aber analog auch die Beschreibung vom SEDU-Board herangezogen werden. Link zur Tutorial - Teil 1 ]
Dieser Teil beschreibt die Installation von Hyperion und die Konfiguration. Punkt 1 + 2, der sich mit der Installation beschäftigt, ist für euch nicht notwendig. Dafür müsst ihr bei der MLD lediglich das Paket Hyperion installieren. Bei der Konfiguration müsst ihr unter dem Reiter “External” den Eintrag “Effect Engine Directory:” das Verzeichnis ”/etc/hyperion/effects” eintragen. Die durch die Konfigration erzeugte Datei “hyperion.config.json” müsst ihr auf euerer MLD-Installation z.B. mit winscp nach /etc/hyperion kopieren. Link zur Tutorial - Teil 2
zur Konfiguration ist auch das Wiki von Hyperion (englisch) sehr hilfreich.
Diese Anleitung benötigt ihr nur, wenn ihr nicht nur die Ausgabe von der MLD über das Ambilight verschönern wollt, sondern auch andere HDMI-Quellen wie z.B. die Spielekonsole oder den DVD-/Blu-Ray Player mit Lichteffekten bereichern wollt. Dazu ist aber weitere Hardware und das MLD-Paket “Videobuffer” notwendig. Link zur Tutorial - Teil 3
Welches Bild vom Grabber, das an den Raspberry gesendet wird, kann mit dem Befehl
hyperion-v4l2 --screenshot
im aktuellem Verzeichnis erstellt werden. Zuvor ist jedoch der Prozess hyperion zu stoppen.
stop hyperion
hyperion-v4l2 hat noch viele weitere Parameter, die mit
hyperion-v4l2 -h oder hyperion-v4l2 --help
angezeigt werden.
Es kommt vor, dass kurz nach dem Start von Hyperion das Fernsehbild flackert oder gar der Fernseher meldet, dass die Auflösung nicht passt, obwohl diese beim Raspberry in der Datei /boot/config.txt und im WebIf unter System/Konfiguration/View korrekt eingestellt ist. Abhilfe schafft hier im Startskript von Hyperion nochmals das Startskipt rpi aufzurufen. Damit wird die im WebIf eingestellte Auflösung erneut gesetzt. Sie geht - warum auch immer - beim beim Start von Hyperion verloren. Zuvor ist ggf. eine Verzögerung mit dem Befehl sleep notwendig.
... case "$1" in start|resume) echo "Starting $NAME:" start-stop-daemon -S -q -p $PID_FILE -m -b -x $DAEMON -- $ARGS check_status sleep 2 start rpi ;; ...
Die tatsächliche Auflösung des Raspberry kann mit dem Befehl
tvservice --status
angezeigt werden.
Hyperion.NG stellt eine Weiterentwicklung des Hyperion dar. Die Hypercon-Software ist nicht mehr nötig.Änderungen in der Konfiguration können sofort überprüft werden.
Der Vorteil dieser Lösung mit externem Grabber ist, das alle AV-Quellen genutzt werden können.
Getestet auf X86:
Name: MLD Version: 5.5 Systemarchitektur: amd64 Paket Kategorie: unstable
Zwischen AV-Receiver und TV wird ein Splitter eingefügt. Dieser stellt das Signal für den HDMi-AV-Converter zur Verfügung. Der HDMI-AV-Converter versorgt dann analog den Grabber.
CSL - 4k UHD HDMI Splitter Verteiler - 4k Ultra HD 2160p Full HD 1080p von hier: Externer Link Mein Onkyo-AV-Receiver hat 2 HDMI-Ausgänge. Auf den Splitter kann ich hier verzichten.
Musou HDMI auf 3RCA Composite 1080P von hier: Externer Link Bei mir muß ich den Converter auf NTSC stellen,um ein farbiges Bild zu erhalten !
EasyCAP USB 2.0 Audio und Video Grabber mit Syntek STK1160 Chipsatz von hier (z.Z. nicht lieferbar):
Externer Link
Es gibt im Web reichlich Diskussionen bezüglich der funktionierenden Chipsätze bei den Grabbern. Bei mir funktioniert der STK1160-Chipsatz. Dieser wird von der MLD unterstützt.
Die Hardware-Komponenten Splitter,Converter und Grabber werden nur für die ext. Verarbeitung eines HDMI-Signales benötigt.
wurde hier schon beschrieben:SEDU-Board
Als Hardware kann z.B. ein Arduino Nano verwendet werden. Eine Anleitung/Diskussion zum Thema findet man hier: Externer Link
Prinzipiell benötigt man die Arduino IDE Software Externer Link und einen sogenannten Sketch (Programm, das auf den Arduino geladen wird). Diesen Sketch gibt es mittlerweile in verschiedenen Varianten, z.B. Adalight WS2812 Externer Link Zusätzlich wird auch die FastLED-Library benötigt, damit die Arduino IDE Software den Sketch kompilieren kann Externer Link In dem Sketch muss dann noch die Anzahl der LEDs und auch die Baudrate eingestellt werden.
Da es mittlerweile die Variante mit der WLED-Software und einem günstigen WEMOS D1 Mini gibt, ist Adalight eher etwas für Leute, die sowieso schon Arduino-Mikrocontroller programmieren. Einfacher, schneller und günstiger ist die WLED-WEMOS-Lösung, die anschließend erwähnt wird.
Den WeMos habe ich nach dieser sehr guten Anleitung mit WLED geflasht und angeschlossen Externer Link
Leider hab ich den WeMos nicht dazu gebracht, die 5V über den PIN einzuspeißen.Auch ein 2. WeMos zeigte dieses Verhalten.
Deßhalb ist dieser Würgaround mit USB-Stecker entstanden.
Mechanik am LG OLED65BX9LB
Die LED-StripesExternal Link (5m, IP65 Silikonüberzug,60 LED/m) sind im Winkel von 60 Grad auf LED-Profilen Externer Link mit dem Selbsklebeband befestigt.
Doppelseitiges Schaum-Klebeband hält die Profile sicher am TV.
Im Detail sieht das dann am TV so aus.
Der Wemos ist in einer Schraubenverpackung untergebracht.
Die komplette Installation enthält noch eine 2. 5V-Einspeißung um Spannungsabfälle zu vermeiden.
In der Weboberfläche vom MLD ist bei Services der Punkt Hyperion zu finden. Dieser öffnet die Weboberfläche von Hyperion.NG.
Über Konfiguration / LED-Hardware / LED-Steuerung wird der Steuerungstyp wled eingestellt (beim Unterpunkt Netzwerk zu finden).
Bei Ziel-IP-Adresse/Rechnername eintragen (also die IP-Adresse/Namen, die der WLED-Controller hat) und Einstellungen speichern.
Bei den allgemeinen Einstellungen wird üblicherweise RGB eingestellt.Sollten Falschfarben dargestellt werden, kann es hilfreich sein, diese Einstellung zu prüfen bzw. zu ändern. Dies ist meist abhängig vom eingesetzten LED-Stripe-Typen.
Das LED-Layout entsprechend der LED Anzahl anpassen und ebenfalls speichern.
Beim Punkt Aufnahme-Hardware muss Aktiviere Plattform Aufnahme angewählt werden.
Die Detaileinstellungen von Plattform Aufnahme bleiben auf dem Typ Framebuffer bzw. beim RPi auf DispmanX umgestellt.
Die restlichen Einstellungen können fürs erste so bleiben.
Beispielsweise kann für Breite/Höhe die Anzahl der jeweiligen LEDs verwendet werden, ggfls. auch ein vielfaches davon.
Als Aufnahmefrequenz reicht 10Hz normalerweise aus.
Der Bildverkleinerungsfaktor kann auf beispielsweise 8 eingestellt werden.
Detaileinstellungen können noch bei Bildverarbeitung angepasst werden.
Für Fragen rund um Hyperion.NG kann dieses Forum hilfreich sein: Hyperion.NG Forum
Da die MLD mit fertigen Paketen arbeitet, ist es recht einfach das hyperion.ng zu installieren.
Installation vom Paket “hyperion” Hyperion-Daemon Next Generation (NG)
Das Webinterface vom Hyperion.ng kann dann unter dem Punkt <MLD>:8052 aufgerufen werden.
Im Web gibt es mehrere Anleitungen zur Konfiguration.
Das LED-Layout entsprechend der LED Anzahl anpassen und den LED-Typ/Steuerungstyp/Ansteuer-Hardware einstellen
Der Grabber wird erkannt und als Gerät für USB-Aufnahme ausgewählt…………………………………………………………………….Das gegrappte Livebild incl. der LED (TV-Symbol rechts neben Mond)