XBMC Ambilight im Eigenbau – Teil 2: Die Software

Nachdem es im 1. Teil um die Konfiguration der Hardware ging, geht es nun an die Einrichtung von Ambilight in Windows bzw. XBMC.

Wurde, wie im ersten Teil beschrieben, der LED Stream Programmcode noch nicht auf den Arduino übertragen, so muss dies nun mit Hilfe des Arduine IDE nachgeholt werden. Das im Adafruit Artikel beschriebene Processing IDE nebst “Colorswirl” wird in diesem Fall nicht benötigt.

Es gibt verschiedene Optionen die LEDs aus Windows heraus anzusteuern, zwei möchte ich näher beschreiben. In beiden Fällen basiert das Prinzip darauf, dass entsprechend der Anzahl der LEDs (Kanäle), Prüfpunkte auf dem Bildschirm definiert werden um die Farbwerte auszulesen. In diesem Fall müssen also 75 Prüfpunkte definiert werden. Die erste Möglichkeit dies zu erreichen ist die etwas komplexere, da hier ohne eine grafischen Benutzeroberfläche für die Positionierung der Prüfpunkte gearbeitet wird. Dafür ist der Ressourcen bedarf gering und die Software läuft auch auf schwächerer Hardware. Andererseits werden Ambilight Effekte nur bei der Wiedergabe über das XBMC angezeigt.

Option 1: Boblight

BoblightLogoBoblight ist die Ressourcen schonende Variante um Adalight anzusteuern, wenn die Ambilight Funktion nur mit XBMC verwendet werden soll. Boblight besteht aus zwei Komponenten, auf der einen Seite der Deamon der die Ansteuerung der LEDs übernimmt sowie dem XBMC Add-On das den Deamon ansteuert. Auf der Entwicklerseite von Boblight kann nur der Quellcode heruntergeladen werden, daher habe ich die entsprechende Windows Exe hier bereit gestellt:

  Boblight Deamon (2.8 MiB, 120 hits)

Diese Version habe ich bei meinen Recherchen in den Weiten des Netzes gefunden und funktioniert bei uns problemlos. Die Konfiguration des Dienstes erfolgt über eine Konfigurationsdatei die beim Start des Dienstes als Parameter übergeben wird.

Konfiguration Boblight Deamon

Im Gegensatz zu AmbiBox besitzt der Boblight Deamon keine grafische Benutzeroberfläche besitzt, muss eine Konfigurationsdatei erzeugt werden. Die kann manuell gemäß der Dokumentation erstellt werden. Da dies aber etwas umständlich und aufwändig ist, haben verschieden Benutzer (Web-) Tools erstellt mit denen die Konfiguration leicht erstellt werden kann.

Die Konfiguration besteht aus vier verschiedenen Abschnitten, die ich im folgenden kurz beschreibe:

[global]

Der globale abschnitt beinhaltet nur die Einstellung der IP Adresse sowie des Ports über die der Dienst angesprochen werden kann:

[global]
interface 127.0.0.1
port      19333
[device]

Der device Abschnitt definiert die Art des angeschlossenen Controllers. Einige Parameter sind optional. Im folgenden die von mir verwendeten Parameter nebst Erklärung:

[device]
name            ambilight
type            momo
output          /dev/com3
channels        225
prefix          41 64 61 00 4A 1F
postfix         A5
interval        20000
rate            115200
delayafteropen  1000000

name: Eindeutiger Name des Controllers, kann frei vergeben werden

type: Art des angeschlossenen Controllers

output: Anschluss des Controllers (nicht von der “Linux” Schreibweise irritieren lassen)

channels: Anzahl der Kanäle (Farben), also Anzahl LEDs x 3 (75×3=225)

prefix: Signalfolge die gesendet werden muss bevor die LEDs angesteuert werden

postfix: Signal das nach jedem RGB Update gesendet wird.

interval: Updateintervall des Controllers in Mikrosekunden

rate: Baudrate mit der der Controller angesteuert wird.

delayafteropen: Wartezeit bevor Informationen an den Controller gesendet werden nachdem der Port geöffnet wurde. Erforderlich, da der Arduino “resetet” nachdem der Port Intialisiert wurde.

Der Prefix Wert ist abhängig von der Anzahl der verwendeten LEDs. Hier die Passenden Prefixe für andere LED Mengen:

25 LEDs:     41 64 61 00 18 4D 
50 LEDs:     41 64 61 00 31 64 
75 LEDs:     41 64 61 00 4A 1F 
100 LEDs:    41 64 61 00 63 36 
125 LEDs:    41 64 61 00 7C 29 
150 LEDs:    41 64 61 00 95 C0 
175 LEDs:    41 64 61 00 AE FB 
200 LEDs:    41 64 61 00 C7 92
[color]

Die [color] Parameter definieren die Farben für Boblight:

[color]
name        red
rgb         FF0000
gamma       0.91
adjust      1.0
blacklevel  0.0

[color]
name        green
rgb         00FF00
gamma       0.86
adjust      0.96
blacklevel  0.0

[color]
name        blue
rgb         0000FF
gamma       0.95
adjust      0.8
blacklevel  0.0

name: Eindeutiger Name der Farbe, kann frei vergeben werden.

rgb: Farbwert in hexadezimal Schreibweise.

gamma: Gamma Korrekturwert der Farbe.

adjust: Korrekturwert der Farbe, der entsprechende Kanal wird mit diesem Wert multipliziert.

blacklevel: Minmalwert (Schwarzwert) der Farbe.

[light]

Die [light] Parameter definieren die einzelnen LEDs. Da es sich in diesem Fall um 75 LEDs handelt bietet es spätestens hier an, ein Tool für die Erzeugung der Konfiguration zu verwenden. Beispielhaft hier die Definition der ersten LED:

[light]
name        BotLeft1
color       red     ambilight 1
color       green   ambilight 2
color       blue    ambilight 3
hscan       33 37
vscan       80 90

name: Eindeutiger Name der LED.

color: Farbe der LED. Alle möglichen Farben müssen angegeben werden

hscan: Horizontaler Bereich/Position der LED.

vscan: Vertikaler Bereich/Position der LED.

Da die manuelle Erstellung der Konfigurationsdatei etwas umständlich ist, hier zwei Möglichkeiten wie die Konfiguration mit Hilfe von Tools erstellt werden kann:

Boblight Config Generator (Webbased by Alex Parker)

Alex Parker stellt auf seiner Website einen Config Generator bereit mit dem sich leicht eine grundlegende Konfiguration erzeugen lässt. Leider kann hier kein Offset für den TV Standfuß

Boblight Config Generator by Alex Parker

Boblight Config Generator by Alex Parker (http://aeparker.com/)

angegeben werden. Auch die Detailanpassungen für Device und Color müssen manuell vorgenommen werden. Aber man spart sich schon mal das Anlegen aller Konfig Abschnitte für die LEDs was eine große Erleichterung ist!

Der Parameter “Depth” legt fest wieviel % des Bildschirms, vom Rand aus gemessen, berücksichtigt werden soll um die Farbe auszuwerten.

Dieser wert darf nicht zu klein gewählt werden da sonst bei Schwarzen Balken keine Farbe ausgewertet wird. Zu groß darf der Wert aber auch nicht gewählt werden da sonst über den Bereich “gemittelt” wird und die Farben verwaschen bis Weiß erscheinen.

 

 

 

Boblight Config Creator (Java Anwendung by TeKo)

Boblight Config Creator by TeKo

Boblight Config Creator by TeKo

Der Boblight Config Creator wurde vom XBMC Forum User TeKo entwickelt und ermöglicht es eine etwas detailliertere Konfigurationsdatei zu erzeugen. Die Einstellungen sind in 4 Abschnitte aufgegliedert:

Lights

Hier können die LEDs pro Seite angegeben werden, sowie der Startpunkt der LED Kette (Radiobutton). Außerdem muss die Orientierung des LEDs angegeben werden, hier clockwise. Die Aufteilung der LEDs ermöglicht hier eine Lücke, an der Stelle an der sich der Standfuß des TV befindet. Ist der Fernseher mit einer VESA Halterung an der Wand montiert muss die Anzahl der unteren LEDs durch drei geteilt werden.

Device Settings

Im Abschnitt Device Settings werden die Grundeinstellungen für den Controller vorgenommen. Es können Name, Typ, Anschluss, Intervall und Delay konfiguriert werden. Der passende prefix und postfix (siehe oben) müssen manuell in die Konfigurationsdatei eingetragen werden.

Capture Settings

Über die Capture Settings wird konfiguriert wo die Farbwerte auf dem Bildschirm ausgewertet werden. Vertical und Horizontal Depth definieren die prozentuale Größe des vertikalen bzw. horizontalen Bereichs der ausgewertet werden soll. Die Parameter Vertical und Horizontal Depth geben an wie groß der Bereich für jede LED sein soll. Wird hier ein Wert angegeben überlappen sich die Auswertungsbereich für die einzelnen LEDs. Wird kein Wert angegeben ergibt sich die Größe des Bereichs aus der Anzahl LEDs der entsprechenden Seite. Über die Border Parameter kann konfiguriert werden wie breit der Rand rechts und Links sein soll, also wie weit der Auswertungsbereich nach innen verschoben werden soll um die möglichen schwarzen Balken zu “überspringen”.

Color Settings

Der Abschnitt Color Settings ermöglicht es die Farbkorrekturen der LEDs vorzunehmen.

Sind alle Parameter gefüllt kann die Konfiguration über das File Menü gespeichert werden.Wie oben erwähnt muss nun noch pre- und postfix entsprechend der Anzahl der LEDs im Abschnitt [Device] eingetragen werden.

Starten des Boblight Deamons

Da es sich beim Boblight Deamon um ein Kommandozeilen Tool handelt kann dieser nicht einfach per “Doppelklick” gestartet werden. Grundsätzlich kann der Deamon per Kommandozeile mit dem Parameter

boblightd.exe -c <Pfad zur Konfigurationsdatei>

gestartet werden. Um den Deamon automatisch mit Windows zu starten bietet sich eine Batch Datei an. Im folgenden Script gehe ich davon aus, das der Deamon und die Konfiguration im Pfad C:\boblightd liegen:

REM Script um Boblight Deamon per autostart zu starten
@echo off
REM COM Port initialisieren
MODE COM3:9600,N,8,1 >NUL

REM Pruefen ob Prozess schon ausgefuehrt wird
tasklist /FI "IMAGENAME eq boblightd.exe" 2>NUL | find /I /N "boblightd.exe">NUL
if "%ERRORLEVEL%"=="0" goto running

REM Boblight Deamon starten
"C:\boblightd\boblightd.exe" -c "C:\boblightd\boblight.conf" -f

REM Boblight Deamon wird schon ausgefuehrt
:running
color 2F
echo running..

Das Script initialisiert zunächst den COM Port (muss ggf. angepasst werden) da es schon mal zu Problemen kommen kann wenn dies nicht geschieht. Dann wird geprüft ob der Boblight Prozess bereits ausgeführt wird. Falls dem so ist wird direkt ans Ende des Scriptes gesprungen und die Meldung “running” ausgegeben. Wird der Prozess noch nicht ausgeführt wird er gestartet und dann erst die Meldung ausgegeben. Ohne das “@echo off” in Zeile zwei sieht die Ausgabe dann wie folgt aus:

Boblight Deamon Batch Start

Boblight Deamon Batch Start

Hat alles geklappt werden einmal alle Grundfarben ausgegeben. Das Kommandozeilenfenster muss geöffnet bleiben, sonst wird der Deamon beendet.

Damit ist die Konfiguration des Dienstes abgeschlossen und es geht an die Konfiguration des XBMC Add-Ons.

Konfiguration Boblight XBMC Add-On

Damit Boblight zusammen mit XBMC genutzt werden kann, muss das entsprechende Add-On installiert werden. Die Installation des Add-Ons ist auf der folgenden XBMC Wiki Seite Beschrieben: XBMC Wiki Boblight

Wurde das Add-On installiert muss es noch aktiviert werden und ist dann unter Add-Ons-> Aktivierte Add-Ons -> Dienste zu finden:

Boblight Add-On unter Addons

Boblight Add-On unter Addons

Nach Auswahl des Add-Ons kommt man zu den Add-On Informationen und kann hier den Option “Einstellungen” auswählen:

Boblight Add-On Informationen

Boblight Add-On Informationen

Über diese Option erreicht man die allgemeinen Einstellungen des Add-Ons. Hier wird die IP Adresse des Deamons sowie der Port eingetragen. Im Normalfall können die Standardwerte verwendete werden (Der Boblight Deamon wird lokal ausgeführt). Außerdem lässt sich noch eine Kategorie (Profil) erzwingen, dann wird immer die hier ausgewählte Kategorie angewendet. Außerdem lässt sich Boblight hier Add-On seitig deaktivieren.

Boblight Add-On Allgemeine Einstellungen

Boblight Add-On Allgemeine Einstellungen

In der Einstellungsseite “Film” kann die Ambilight Darstellung für die Filmwiedergabe angepasst werden. Es stehen zwei Voreinstellungen (Presets) zur Auswahl: “Schnell” und “Langsam”. Außerdem kann man noch “Eigene” wählen und die Darstellung individuell konfigurieren was ich hier vorgenommen habe:

Boblight Add-On benutzerdefinierte Film Einstellungen

Boblight Add-On benutzerdefinierte Film Einstellungen

Die Übersetzung der einzelnen Parameter ist teilweise etwas unglücklich, daher hier eine kurze Erklärung wie ich sie verstanden habe:

Geschwindigkeit: Allgemeine Geschwindigkeit der Farbwechsel

Autom. Geschwindigkeit: Dieser Parameter greift wenn es schnelle Übergänge (Beispielsweise Blitze) in der Filmwiedergabe gibt und die erste Geschwindigkeitseinstellung zu langsam wäre um darauf zu reagieren.

Interporlation: Soll die Farbe zwischen den LEDs interpoliert werden.

Farbe: Meint hier die Farbsättigung.

Wert: Helligkeit der LEDs.

Schwellwert: Ab welcher Helligkeit des Bildes werden die LEDs angesteuert.

Die im Screenshot eingestellten Werte haben sich für mich als gut bewährt, aber ich denke das ist ein gute Stück Geschmackssache. Analog zur “Film” Kategorie lassen sich auch noch separate Einstellungen für Musikvideos konfigurieren.

In der Einstellungsseite “Sonstige” lässt sich zunächst das konstante Hintergrundlicht konfigurieren. Es wird, wenn die Option aktiv ist, in den Menüs angezeigt. Die Farbe lässt sich über Rot, Grün und Blau im Webformat angeben. Die Hintergrundbeleuchtung lässt sich auch automatisch deaktivieren wenn der Bildschirmschoner aktiviert ist. Der vorletzte Parameter aktiviert einen initialen Test wenn XBMC startet und die Verbindung zum Boblight Deamon hergestellt wurde. Der letzte Parameter aktiviert Status Meldungen die angezeigt werden, beispielsweise wenn die Verbindung zum Deamon hergestellt wurde:

Boblight Add-On Sonstige Einstellungen

Boblight Add-On Sonstige Einstellungen

Um die Konfiguration zu speichern müssen die Einstellungen über den OK Button gespeichert werden. Erst dann wird auch die Farbe der konstanten Hintergrundbeleuchtung übernommen. Das Ergebnis sieht dann so aus:

Boblight Demo

 

Updated: 31 December, 2013 — 16:27
europott.org © 2016