Atmo-plugin

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Allgemeine Funktionsbeschreibung

Maintainer: Eike Edener, Daniel König
Autor(en): Eike Edener, Daniel König, Simon Canins, Peter Ippy

Das Atmolight-Plugin dient zum Ansteuern einer farbigen Hintergrundbeleuchtung für Fernsehgeräte. Die angezeigte Farbe hängt dabei vom Bildschirminhalt ab. Als Vorlage diente das Ambilight von Philips. Die Ansteuerung der Beleuchtung erfolgt über einen Mikrocontroller. Dieser wird über eine serielle Schnittstelle (oder über einen USB<->Seriell-Wandler) mit dem VDR verbunden. Als Lichtquellen kommen RGB Anordnungen aus CCFL Kaltlichtkathodenröhren oder Leuchtdioden (LEDs) zum Einsatz. Das Plugin ist in der Lage für jede der vier Kanten des Fernsehgerätes (also links/rechts/oben/unten) eine individuell berechnete Farbe auszugeben. Die Beleuchtung wird dann quasi als "Verlängerung" des Bildes über die Grenzen des Fernsehers hinaus genutzt. Zusätlich wird eine "Summenfarbe" ausgegeben, die verwendung findet, wenn nur eine RGB-Leuchte zentral hinter dem Fernsehgerät plaziert werden soll.

Es werden also laufend fünf verschiedene RGB Farbkanäle ausgegeben.

Status

Es ist eine neue Release erschienen: atmo-0.0.2.tgz Diskussion in: VDR-Portal

Die Nachbauanleitung für die Ansteuerplatine ist fast vollständig. (Kann leider keine Bilder hochladen :-( )

Bilder

Hardware

Hardwareanforderungen

  • VDR mit full featured DVB-Karte mit freiem /dev/video0 Device (momentan die einzige Möglichkeit atmolight zu nutzen, more to come...)
  • mind. 1 Ansteuerplatine mit Mikrocontroller
  • LEDs als Leuchtmittel (CCFLs können auch verwendet werden, ihr Einsatz ist aber nicht zu empfehlen und wird im Moment nicht unterstützt)
  • evtl. Netzteil

LED-Variante

Was brauche ich an zusätzlicher Hardware?

Um atmolight zu benutzen sind in erster Linie externe "Lampen" erforderlich, mit denen die Wand ringsherum um den Fernseher beleuchtet wird. In der Stereo-Variante werden zwei solche benötigt, eine links und eine rechts vom Fernseher. Zusätzlich ist ein spezieller "Dimmer" (=Ansteuerplatine/Controller) erforderlich, der vom vdr Informationen darüber erhält, welche Farben dargestellt werden sollen. Das Ganze wird über ein Netzteil mit Strom versorgt.

Benötigt wird also:

  • 1-4 LED-Lichtquellen (je nach Anzahl gewünschter Kanäle und verfügbarer Controller)
  • 1 oder 2 Ansteuerplatinen (jede Ansteuerplatine bietet 2 Kanäle)
  • 1x Netzteil

Die LED-Lichtquellen bestehen in der Regel aus LED-Modulen und passenden Gehäusen.

Weiter unten wird auf die einzelnen Komponenten genauer eingegangen und Bezugsquellen werden genannt. Sollte sich jemand bereit erklären Ansteuerplatinen für andere VDR-Benutzer herzustellen möchte er es bitte kundtun.

LED-Module

Um an die passenden LED-Module zu kommen gibt es zwei Möglichkeiten:

  1. Selberbauen
  2. Kaufen
Selbstgebaute LED-Module
Für den Selbstbau existiert ein Platinenlayout. Der LED-Streifen (ca. 200x25mm) wird mit jeweils 12 roten, blauen und grünen
Datei:Superflux.jpg
Superflux-LEDs
bestückt, durch Hintereinanderschalten lassen sich fast beliebig lange LED-Streifen herstellen:
Datei:Streifen.jpg
"2-fach LED-Streifen"
Die Superflux-LEDs können preisgünstig über ebay bezogen werden, 150 Stück kosten ca. 35€ plus Versand, leider ist die Qualität sehr stark vom Anbieter anhängig. (TODO: link) Zusätzlich werden natürlich die Platinen benötigt, Kosten ca. 5€ pro Stück bei Herstellung durch einen Platinenhersteller. Passende Vorwiderstände werden auch benötigt, für den Selbstbaustreifen wurden 100 Ohm für Rot, 180 Ohm für Blau und 270 Ohm für Grün verwendet (Tip: bei manchen ebay-Anbietern werden Vorwiderstände gleich mit angeboten). Ein Aufbau auf Lochraster ist zwar möglich, aber bei größerer LED-Stückzahl nicht zu empfehlen.

Vor die LED-Streifen wird eine Streuscheibe montiert, sodaß eine möglichst homogene Farbmischung entsteht.


Gekaufte LED-Module

Momentan wurde atmolight mit spezielle RGB-LED-Streifen getestet, die über die über die Firma Alpha Tec zu einem Sonderpreis bezogen werden können. Der Vorteil dieser Module ist, daß optional passende Diffusorröhren erworben werden können. In diese Rohren mit 40mm Durchmesser werden die Module einfach eingeschoben; die Röhren können mit simplen Rohrschellen befestigt werden. So ist eine einfache und saubere Montage möglich und zusätzlich wird für eine optimale Streuung und Farbmischung gesorgt.

Die Röhren haben eine minimale Länge von 48cm und beinhalten jeweils ein 43cm LED-Modul.

Es können mehrere LED-Module in eine Röhre eingebaut werden, für einen 40" Fernseher kann zB. eine Röhre mit 2 LED-Modulen installiert werden. Diese hat dann eine Länge von ca. 92cm. Auch Zwichenmaße sind möglich, da jedes 43cm LED-Modul in 3 Teile geteilet werden kann zu je ca. 14,5cm.

Wie die LED-Module an die Ansteuerplatine angeschlossen werden können wird weiter unten erklärt. Für diese LED-Module ist eine Ansteuerplatine in der "common cathode" Variante notwendig. Die Betriebsspannung der Module beträgt 24V, es ist also ein zusätzliches Netzteil erforderlich.

Netzteil

Wenn LED-Module mit einer Betriebsspannug von 12V verwendet werden können diese grundsätzlich aus dem PC-Netzteil versorgt werden.

Für die bei Alpha Tec erhältlichen Module ist ein zusätzliches 24V Netzteil erforderlich.

Für je 4 solcher Streifen sollte das Netzteil ca. 1A liefern können. Passend Netzteile sind zB. bei Reichelt oder Conrad erhältlich.

Distributor BestNr Beschreibung Preis Bemerkungen
Reichelt SNT MW25-24M Mini Schaltnetzteil geschlossen 24V/1,1A 15,90 € getestet: pfeift bei kleiner Last aber sehr kompakt; offen Klemmen!
Conrad 510824 Steckernetzteil Conrad 24V/1A 12,90 € ungetestet; Netzspannung nicht berührbar
Reichelt HEBL21 Netzteilbuchse passen zu Steckernetzteil 0,48 € es sind auch einige stärkere Netzteile erhältlich die in diese Buchse passen


Ansteuerplatinen

Funktionsbeschreibung

Als Mikrocontroller kommt ein ATMega8 der Firma ATMEL zum Einsatz. Eine Ansteuerplatine mit Mikrocontroller und Leistungsteil kann jeweils 2 RGB-Kanäle ansteuern. Für eine Einkanal-Variante kann die Platine ebenfalls verwendet werden, eine vollständige Bestückung ist dann nicht erforderlich (halber Leistungsteil). Durch Kaskadierung von 2 Platinen kann eine 4-Kanal-Variante hergestellt werden; der serielle Datenstrom wird dann einfach von der ersten Platine an die zweite Platine durchgereicht. Beispiele für solche Aufbauten:

Die Helligkeitsregulierung der Leuchtmittel erfolgt dabei durch PWM (Pulsweitenmodulation). Für einen definierten Strom durch die LEDs wird mit Vorwiderständen und einer geregelten Versorgungsspannung gesorgt.

Das Layout der Ansteuerplatine wurde so universell gestaltet, dass durch Variation in der Bestückung sowohl LED-Module mit gemeinsamer Kathode(-), wie zB. die "Alpha Tec" Streifen, als auch gemeinsamer Anode(+) verwendet werden können. Es können LEDs mit Versorgungsspannungen zwischn 12V und 48V betrieben werden. Bei der Variante mit gemeinsamer Kathode müssen die verwendeten Z-Dioden an die Betriebsspannugn angepasst werden.

Nachbau der Ansteuerplatine

Um die Ansteuerplatine nachzubauen muss eine einseitige Platine hergestellt werden mit den Maßen 77mm x 90mm. Ein Aufbau auf Lochraster ist sicher möglich jedoch nicht empfehlenswert.

Alle zur Bestückung notwendigen Bauteile können bei der Firma Reichelt bezogen werden.

Bauteilliste
Bauteil BestNr EP Menge GP Bemerkung






Folgende Bauteile sind sowohl bei einem „common cathode“ als auch „common anode“ Aufbau notwendig:
Spule für Schaltregler 09P 2,2m 0,36 € 1 0,36 €
Widerstand 100Ohm 1/4W 100Ohm 0,03 € 6 0,20 €
Widerstand 10KOhm 1/4W 10K 0,03 € 1 0,03 €
Quarz 14,7456-HC18 0,16 € 1 0,16 €
Diode für Schaltregler 1N 5819 0,15 € 1 0,15 €
Klemme AKL 169-10 1,85 € 1 1,85 €
Wannenstecker für Klemme AKL 183-10 0,83 € 1 0,83 €
ATMega8 ATMega 8-16 DIP 1,65 € 1 1,65 €
Kondensator 22p Glimmer CY22-222P 0,49 € 2 0,98 €
DSUB Buchse D-SUBBU09EU 0,27 € 1 0,27 €
DSUB Stecker D-SUBST09EU 0,27 € 1 0,27 €
IC Sockel 16pol GS 16P 0,18 € 2 0,36 €
IC Sockel 28pol GS 28P-S 0,33 € 1 0,33 €
IC Sockel 8pol GS 8 P 0,09 € 1 0,09 €
Jumper mit Fahne Jumper 2,54GL RT 0,05 € 6 0,30 €
Schaltregler 500mA LM 2574 N5 0,97 € 1 0,97 € Ab einer Versorgungsspannung von 40V bis max. 60V muss der Typ LM2574 HVN5 verwendet werden!
RS232 Treiber MAX 232 EPE 1,85 € 1 1,85 €
Sicherung MINITRÄGE 0,315 0,34 € 2 0,68 €
Kondensator 100n folie MKS-2100N 0,07 € 4 0,28 €
Sicherungshalter PL 166600 0,28 € 1 0,28 €
Elko 2,2µ/100V RAD 105 2,2/100 0,04 € 6 0,24 €
Elko 220µ/100V RAD 105 220/63 0,10 € 3 0,30 €
Stiftleiste SL 2X10G 2,54 0,13 € 1 0,13 €
Stecker 10pol WSL 10G 0,07 € 1 0,07 €
Summe


12,63 €












Für den „common anode“ Aufbau sind zusätzlich folgende Bauteile notwendig:
MOSFET IRF 540N 0,52 € 6 3,12 €
Summe


3,12 €


















Für den „common cathode“ Aufbau sind zusätzlich folgende Bauteile notwendig:
Treiber IC ULN2003A 0,17 € 1 0,17 €
Z-Diode ZD12 0,06 € 6 0,36 € ZD12 = 12V Z-Diode, für 48V Versorgungsspannung bitte stattdessen ZD36 verwenden!
Widerstand 1K5 1/4W 1K5 0,03 € 6 0,20 €
MOSFET IRF 9540N 0,66 € 6 3,96 €
Summe


4,69 €












Gesamtsumme „common anode“

15,75 €
Gesamtsumme „common cathode“

17,32 €
Schaltplan
Datei:Schaltplan V2.25.jpg
Schaltplan der Ansteuerplatine
Layout
Datei:Layout V2.25.jpg
Layout der Ansteuerplatine
Bestückung
Datei:Bestückung V2.25.jpg
Bestückungsdruck der Ansteuerplatine

Je nachdem, ob die Variante für gemeinsame Kathode (common cathode) oder die für gemeinsame Anode (common anode) aufgebaut werden soll, müssen die Bauteile gemäß der folgenden beiden Listen bestückt werden.

Stückliste für die "common cathode" Version:

Name Wert
C1 100nF
C2 100nF
C3 22pF
C4 22pF
C5 2,2uF
C6 2,2uF
C7 2,2uF
C8 2,2uF
C9 100nF
C10 2,2uF
C11 220uF
C12 220uF
C13 100nF
C14 2,2uF
C15 220uF
D1-D6 Z-Diode 12V (36V)
D8 1N5822
F1 SICHERUNG 0,315A
IC1 ATMEGA8
IC2 MAX232E
IC3 ULN2003
IC4 LM2574 (HV)N5
L1 2.2mH
Q1 14,7456MHz
R1 100R
R2 1K5
R3 100R
R4 1K5
R5 100R
R6 1K5
R7 100R
R8 1K5
R9 100R
R10 1K5
R11 100R
R12 1K5
R13 10K
T1-T6 IRF9540N




Stückliste für die "common anode" Version:

Name Wert
C1 100nF
C2 100nF
C3 22pF
C4 22pF
C5 2,2uF
C6 2,2uF
C7 2,2uF
C8 2,2uF
C9 100nF
C10 2,2uF
C11 220uF
C12 220uF
C13 100nF
C14 2,2uF
C15 220uF
D1-D6 Brücke
D8 1N5822
F1 SICHERUNG 0,315A
IC1 ATMEGA8
IC2 MAX232E
IC3 6 Brücken, zwischen:

1-16, 2-15, 3-14, 4-13,

5-12, 6-11
IC4 LM2574 (HV)N5
L1 2.2mH
Q1 14,7456MHz
R1 100R
R2 entfällt
R3 100R
R4 entfällt
R5 100R
R6 entfällt
R7 100R
R8 entfällt
R9 100R
R10 entfällt
R11 100R
R12 entfällt
R13 10K
T1-T6 IRF540N


ACHTUNG: Zusätzlich müssen in Abhängigkeit von der Variante die Brücken bei J1/J2 so eingelötet werden:

Datei:J1J2kathode.jpg
Brücken bei "common cathode"
Datei:J1J2anode.jpg
Brücken bei "common anode"
Test des Aufbaus

Ist die Platine fertig bestückt, sollte das auf der Platine befindliche Schaltnetzteil getestet werden. Dazu ist es notwendig, IC1, IC2 und IC3 nicht zu bestücken. Da IC4 der Schaltregler ist muss dieser natüclich bestückt werden.

Anschließend muss die Platine mit Gleichspannung versorgt werden. Nun sollte zB zwischen den Pins 15 und 16 von IC2 eine Spannung von 5V anliegen.

Ist das der Fall, kann die Platine wieder von der Versorgungsspannung getrennt werden und die restlichen ICs können eingesteckt werden.

Aufspielen der Firmware

Das Aufspielen der Firmware auf den Mikrocontroller erfolgt über einen PC. Dazu wird ein Programmieradapter benötigt, der im einfachsten Falle nur aus einer handvoll Bauteilen besteht.

Es empfiehlt sich die frei verfügbare Programmiersoftware PonyProg zu verwenden.

Einstellung in Ponyprog:

"Setup->Interface Setup":
Datei:InterfaceSetup.jpg
"Setup->Calibration"
"Device->AVR micro->ATmega8"

Danach den Programmieradapter zwischen Platine und PC anschließen. Jetzt sollten die sogenannten "Fuse Bits" eingestellt werden:

"Commands->Security and Configuration Bits"
Dann unbedingt erst auf "Read" klicken!
Anschließend alle Häkchen so setzen:
Datei:PonyProg.jpg
und mittels "Write" in dem Prozessor übertragen.

Nun die Datei "softpwm.hex" über "File->Open Program(FLASH) file" laden und mit "Command->Write All" in den Mikroprozessor schreiben.

Inbetriebnahme der Ansteuerplatine

Mittels Jumpern muss eingestellt werden, wo sich die LED-Leuchten befinden, die an die jeweilige Ansteuerplatine angeschlossen werden sollen.

Die beiden Kanäle der Platine sind mit CH1 und CH2 bezeichnet. Für jeden dieser beiden Kanäle kann unabhängig eingestellt werden, welche Farbe sie anzeigen sollen.

Es sind folgende Einstellungen möglich, hier exemplarisch für CH1 aufgezeigt:

Einstellung Beschreibung
Datei:CH 0.jpg Summenkanal
Datei:CH 1.jpg rechts
Datei:CH 2.jpg links
Datei:CH 3.jpg oben
Datei:CH 4.jpg unten

Jetzt können die LED-Module und das Netzteil an die Ansteuerplatine angeschlossen werden. Das atmolight sollte nun betriebsbereit sein und kann über den linken RS232 Anschluß mittels einer SUBD 9pol Verlängerung an den vdr angeschlossen werden.

CCFL-Variante

CCFL-Röhren

Bei den CCFLs gibt es aufgrund der temperaturabhängigen Lichtausbeute und des vorgeschalteten Inverters keinen direkten Zusammenhang zwischen Pulsbreite und Helligkeit, so daß eine Helligkeitsregelung erforderlich ist. Diese wird mit Hilfe von Fotodioden realisiert, die direkt an den CCFLs befestigt werden und so die die aktuelle Helligkeit an den Controller zurückliefern. Als CCFLs bieten sich die Modelle aus der Case-Modding-Szene an. Zur Montage der Fotodioden ist ein Zerlegen der Röhren erforderlich.

Zum jetzigen Zeitpunkt ist leider kein Prototyp vorhanden, der mit der aktuellen Version von atmolight funktioniert.

Software

Installation

Softwareanforderungen

Parameter

Folgende Kommandozeilenparameter gibt es:

Parameter (kurz) Parameter (lang) Beschreibung
-s <DEV> --serial=<DEV> Gibt an, an welcher Schnittstelle die Ansteuerplatine(n) angeschlossen ist/sind (z.B. /dev/ttyS1)
-o <MODE> --output=<MODE> Legt fest, welche Art Ansteuerplatine(n) angeschlossen ist/sind, mögliche Optionen sind:
LED für eine der beiden Varianten der LED-Ansteuerplatine
CCFL für die Ausgabe an die ursprüngliche CCFL-Platine (wird im Moment nicht unterstützt)

Das Plugin kann auch über SVDRP gesteuert werden:

Befehl Beschreibung
ON schaltet das Atmolight an
OFF schaltet das Atmolight aus
LIVE_HSV schaltet in den Live-Mode
<color> schaltet auf die angegebe Farbe um, möglich sind:
BLACK, WHITE, RED, GREEN, BLUE, YELLOW, CYAN, MAGENTA

Bedienung

Interne Funktionsweise

Farberkennung

  1. Erzeuge Histogramm des Hue Kanals unter Berücksichtigung von Gewichtungsfaktoren und Gewichtungsfunktionen:
    • Position des Pixels im Bild.
    • Value des Pixels.
  2. Wende Fensterung mit Dreiecks-Fenster auf Hue-Histogramm an.
  3. Finde Maximum im gefensterten Hue-Histogramm.
  4. Damit ist der Farbton bestimmt.
  1. Erzeuge Histogramm verwendeten Saturation in der Umgebung der gefundenen Hue nter Berücksichtigung von Gewichtungsfaktoren und Gewichtungsfunktionen:
    • Position des Pixels im Bild.
    • Value des Pixels.
  2. Wende Fensterung mit Dreiecks-Fenster auf Saturation-Histogramm an.
  3. Finde Maximum im gefensterten Saturation-Histogramm.
  4. Damit ist die "Sättigung" bestimmt.
  • 2 Modi
  1. Value Peak
    • Bestimme Maximum von Value im Bild, sprich die höchste vorkommende "Helligkeit"
  2. Value Average
    • Bestimme Mittelwert von Value im Bild, sprich die durchschnittliche "Helligkeit"
  • Helligkeitsanpassung

Filter

Serielles Protokoll

Kanalnummer Kanalbeschreibung
0
Mitte
1
Links
2
Rechts
3
Oben
4
Unten

Sonstiges

Probleme

Links

  1. Homepage des Plugins
  2. atmolight für LED Development-Thread
In anderen Sprachen