Ambient Light im Eigenbau

4. Steuersoftware (PC)

Aufgaben eins bis drei kann unser Mediacenter-PC sehr gut übernehmen. Es existiert dafür bereits eine Software, genannt „boblight“ auf dieser Webseite. Sie läuft unter Windows (cygwin) und Linux und bietet die Möglichkeit, beliebige Bereiche zu definieren und diese an prinzipiell unbegrenzt viele Steuergeräte zu übertragen. Auch werden unterschiedliche Protokolle zur Übertragung der Farbwerte unterstützt und diverse Einstellungen zum Korrigieren der Farben geboten. Die Software ist sehr gut dokumentiert.

4.1 Protokoll MomoLight

Ich habe mich für das sehr einfache Protokoll des Kontrollerprototyps „MomoLight“ entschieden. Es läuft über die serielle Schnittstelle (oder USB2RS232-Konverter) und bietet pro Farbkanal 256 unterschiedliche Helligkeitswerte. Das Protokoll ist für drei RGB-Kanäle ausgelegt überträgt die Werte byte-weise für ein Frame wie folgt:

R1R2R3G1G2G3B1B2B3

Wie man sehen kann, gibt es keine festen Bytes für eine Synchronisation. Diese sollte deswegen auf der Hardware-Ebene mittels Timer gelöst werden. Ein guter Ansatz ist das Zurücksetzen des Kanalindexes nach einer bestimmten Zeit, möglichst nach dem Ende des ersten und vor dem Beginn des nachfolgenden Frames. Funktioniert in der Praxis übrigens sehr gut.

4.2 Komponenten von boblight

boblight besteht aus zwei Programmen. Zum einen ist das der Teil („boblightd.exe„, für Deamon), der die Werte an die Kontroller sendet, sich also um die Schnittstellen und Sende-Threads kümmert. Dieses Programm lauscht auf einem TCP-Port auf die Anweisungen der sogenannten Clients, die für die eigentliche Farbbestimmung zuständig sind.

Ein solches modulare Design hat Vorteile: zum einen können sich beide Programme auf unterschiedlichen Rechnern befinden und zum anderen können weitere Farbbestimmungsmethoden außer dem Bildinhalt (z.B. die Soundkarte) einfach implementiert werden. Das Programm zum Auslesen des Bildschirminhaltes heißt „boblight-getpixel.exe„.

4.3 boblight und Windows Vista?

Ein in diesem Zusammenhang sehr oft beschriebenes Problem gibt’s mit Windows Vista. Wenn man in Windows den Bildschirminhalt auslesen möchte, so konnte man das früher bequem über die GDI+ API Funktion „getPixel()“ machen. Man übergibt die Koordinaten des Pxels und erhält einen Farbwert zurück.

In Windows Vista ist das nicht mehr so einfach: Sollte der Benutzer die Desktop-Komposition eingeschaltet haben, was standardmäßig der Fall ist, so wird der Bildschirm nicht mehr über GDI+ gerendert, sondern in der Hardware der Grafikkarte. Ein Aufruf von „getPixel()“ löst dann ein umständliches und sehr zeitraubendes Zusammenfügen aller offenen Fenster aus, um eben den Farbwert bestimmen zu können. Auf meinem Mediacenter dauert das ~0.1 Sekunden pro Pixel (!), der einzige Ausweg unter Vista ist das Deaktivieren besagter Desktop-Komposition.

4.4 Installation

Die Installation gestaltet sich sehr leicht. Es ist einfach die ZIP/RAR Datei von der Homepage von boblight herunterzuladen und in einem beliebigen Ordner zu entpacken. Erstellen Sie z.B. unter „C:\Programme\“ einen neuen Ordner namens „Boblight“ und kopieren den Inhalt des Archivs dort hinein.

Eine Anmerkung an dieser Stelle zum Windows-Standby: die Treiber der von mir getesteten USB/RS232-Converter (FTDI, Prolific) kamen allesamt nicht damit zurecht, dass der COM-Port über den Standby hinweg geöffnet bleibt. Der Rechner friert dabei reproduzierbar ein. Ich habe dafür leider keine Lösung gefunden und deswegen den Controller über eine ganz normale Hardware-COM-Schnittstelle angeschlossen ohne USB-Betrieb. Nun funktioniert das Ambilight auch über den Standby-Betrieb hinaus.

4.5 Konfiguration

Die Konfiguration ist sehr einfach möglich in der boblight.conf-Datei; Sie finden bei den Boblight-Dateien auch zwei Beispiel-Konfigurationen. Hier einmal meine Version: Boblight Beispielkonfiguration. In jedem Falle aber sollten Sie die Farbwerte an Ihr System (Fernseher/Beamer, LEDs) anpassen.

Bislang keine Kommentare vorhanden.

Einen Kommentar hinterlassen