Ambilight
Ambilight ist ein Feature was von Philips entwickelt. Es ist ein Verfahren bei dem LED’s am Rand des Bildschirms angebracht werden um die dahinterliegende Wand und danebenstehende Objekte in zum Bild passenden Farben zu beleuchten.
Dies steigert die Immersion und gibt ein stärkeres Gefühl der Immersion.
Heutzutage haben viele Fernseher sowas bereits eingebaut.
Produkte
Mitlerweile verkauft Philips auch Nachrüstgeräte für andere Bildschirme, jedoch sind diese oft sehr teuer und natürlich nicht open source.
Außerdem viel es mir schwer Lösungen zu finden die auch für einen PC benutzt werden können, da die meisten Geräte für einen Fernseher entwickelt sind. Sie Splitten das HDMI Signal und verarbeiten es intern. Dies war für mich ein klares Ausschlusskriterium, da ich zwar meine Monitore Per HDMI anschließen könnte, jedoch dann immer noch das Problem habe, dass ich Pro Monitor ein eigenes Ambilight Gerät brauche.
Hier war ich mir unsicher ob diese Lösung auch mit 144hz Bilddaten funktionieren würde und ob ich Probleme bekomme, falls ich in Zukunft auf 1440p oder 4k upgraden möchte.
Lösungen von anderen Anbietern nutzen eine Kamera, die oberhalb des Bildschirms angebracht wird und live verfolgt was auf dem Bildschirm passiert, dies löst zwar das Problem mit den Anschlüssen, hier bräuchte ich aber immer noch ein Gerät pro Monitor und außerdem ist der Ansatz mit Kamera schon ziemlich „sketchy“….
Mein Ansatz

Ich habe herkömmliche Adressierbare RGB Led streifen benutzt.
Da ich klare Kanten haben möchte habe ich beschlossen die Streifen jeweils zuzuschneiden und mit kleinen Kabeln für einen perfekten 90grad Knick zu verbinden.
Dies stellte sich aber als extrem mühselig und kniffelig heraus, da die Lötstellen sehr dicht bei einander sind und die Lötstellen offen liegen. Meine Idee war ein Gehäuse 3D zu drucken, jedoch kahm mir dann direkt die weitere Idee warum ich nicht direkt den ganzen 90grad Knick in dem 3D-Druck verbaue. Ähnliche Produkte gibt es auch zu kaufen um genau das zu machen, jedoch war es für mich leichter und schneller eben was zu Designen und zu drucken.
Oben sieht man den ersten Versuch und unten den 3D druck. Auf dem Bild habe ich den Deckel der aufgesteckt wird abgenommen.
Zur Steuerung nutze ich einen ESP32 und als Stromversorgung ein 5v 20A Netzteil, welches ich von meinem Weihnachtsbaum Projekt übrig hatte.

Der ESP ist per USB am pc angeschlossen, so kann ein auf dem PC laufendes Programm per UART mit dem ESP kommunizieren und angeben in welchem Bereich welches Licht leuchten soll.
Dieser Ansatz stellte sich, auf Hardware und Software Seite, im nachhinein als sehr umständlich heraus, weshalb ich später auf eine Netzwerkverbindung umgestiegen bin.
Erste Tests
Da ich beim bau nebenher einen Livestream geschaut habe, habe ich diesen dann direkt mal als ersten Test benutzt.
Hier habe ich eine selbst programmierte PC software probiert.
In diesem Fall werden die untersten 100 Pixel genommen, in Segmente unterteilt und daraus wird ein Durchschnitts Farbwert genommen, der dann die LED Farbe bestimmt.
Wie man sieht ist dieser Ansatz zwar funktionabel jedoch sehr rudimentär.
Natürlich war ich total begeistert, dass es Funktioniert und auch die schnellen hellen Dinge dargestellt werden. (Der Reinhard Charge. Gelber Feuerball zu Beginn des Videos)
Leider fällt auch sehr schnell auf, dass die Farben ziemlich versetzt sind, dies ist ein Artefakt der unterschiedlichen Colorspaces. Mein Monitor der die RGB werte anders verwertet als mein Programm. Außerdem führt das berechnen der Durchschnittsfarbe pro Quadrant dazu, dass die Farbe sehr oft einfach nur grau ist.
Finale Version
Die Finale Version meines Programmes nimmt nicht mehr den Durchschnitt sondern nutzt eine HSV statt RGB wodurch ich jeder einzelnen HSV Komponente eigene Skalare, offsets und im Falle der Saturation sogar eine Funktionskurve als Umrechnung geben konnte und so eine klarere Abbildung des Monitor Lichtes auf meiner Rückwand zu haben.
Was hier jedoch eindeutiger wird ist der Delay zwischen Monitor und Led Streifen.
Verbesserungen für die Zukunft
Aktuell nutze ich dieses Feature nur noch selten, habe die Farbe auf eine konstante angenehme Hintergrundfarbe gesetzt.
Als nächstes werde ich den ESP in Homeassistant einbinden, dass ich dort die Farbe einstellen kann.
Für den Softwarestack habe ich mitlerweile verschiedenste gute Open Source Lösungen gefunden, darunter sogar ein Programm welches von der Razer Software angesteuert werden kann um auch Effekte aus Spielen zu erkennen und weiter zu geben. https://www.project-aurora.com/
Außerdem würde ich auf das FastLED Protokoll umsteigen wollen https://github.com/fastled/fastled
Hierfür gibt es auch bereits vollständige Implementierungen https://github.com/dmadison/Adalight-FastLED

