Ambilight mit AtmoWin

  • Hallo LEDstyler,


    nachdem ich nun Rechte für die Lobby bekommen habe, verschiebe ich mein Projekt auch hierher: mein "Ambilight". Inspiriert von einigen Youtube -Videos stand damals fest: sowas brauch ich auch; allerdings nicht mit nur einem Kanal pro Seite, das wäre zu mickrig. Am Ende sind es dann, begrenzt durch die Steuerungssoftware AtmoWin, 64 Kanäle verteilt auf 32 Platinenstreifen geworden. Das Signal bekommt das "Ambilight" der Einfachheit halber per Bluetooth, damit ich kein Kabel verlegen musste.


    Die Software
    AtmoWin analysiert im Live-Bild-Modus 24-mal in der Sekunde 64 Zonen des Bildschirms und sendet die gewonnenen Daten in Blöcken zu je 256 Byte an das Atmolight. Wie sich herausgestellt hat, handelt es sich bei der von mir gewählten Übertragung nicht um echtes DMX, wie hier nachzulesen ist. Danke Pesi!


    [Blockierte Grafik: http://www.abload.de/thumb/unbenannty4u9.png][Blockierte Grafik: http://www.abload.de/thumb/unbenannt-151oy.png]


    Bluetooth
    Die Übertragung erfolgt per Bluetooth-Stick, der die Daten über die "Seriell-über-Bluetooth Verbindung" an ein BTM-222 Modul sendet. Dazu werden die Bluetoothgeräte einmalig gekoppelt; sobald man AtmoWin startet, wird die Verbindung wiederhergestellt.


    Die Hardware hinter dem Fernseher
    ...besteht aus 32 Platinenstreifen mit je einem Atmega48 mit externem 16MHz Quarz und zwei Samsung SLSRGBW815TS. Die Platinenstreifen sind mit 1mm² H05VK-Brücken zu einem geschlossenen Kreis rund um den Fernseher verbunden, um dem auftretenden Spannungsabfall und der damit verbundenen Farbverschiebung nach rot entgegen zu wirken. Gerade deshalb speise ich mit zwei Step-Down-Wandlern, die ihre Spannung von einem Steckerschaltnetzteil beziehen links und rechts in den Kreis ein. Auch die Bluetooth-Empfängerplatine befindet sich hinter dem an der Wand befestigten Fernseher.


    [Blockierte Grafik: http://www.abload.de/thumb/img_0635belb.jpg][Blockierte Grafik: http://www.abload.de/thumb/img_0636ghuy.jpg][Blockierte Grafik: http://www.abload.de/thumb/img_0643ugp5.jpg][Blockierte Grafik: http://www.abload.de/thumb/img_3435t07k.jpg]


    Der Aufbau mag auf den ersten Blick etwas unkonventionell erscheinen, doch durch die Räumliche Anordnung rund um den Fernseher kam nur eine dezentrale Steuerung der LEDs in Frage, wodurch eine Matrix weggefallen ist. Da ich bisher noch nicht mit Chips à la TLC5940 o.Ä. gearbeitet habe und diese auch keinen preislichen Vorteil gegenüber dem Mikrocontroller bieten, habe ich mich für den Mega48 entschieden, da konnte am wenigsten schief gehen.


    Ergebnis
    gleiches Video, einmal im "combined"


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    und einmal im "percent" Modus.


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.



    Kosten
    42 Euro für 64 LEDs
    09 Euro für 02 Fotoplatinen
    40 Euro für 32 Mega48
    07 Euro für 32 Quarze
    02 Euro für 64 SMD-Kondensatoren
    13 Euro für 01 BTM-222
    02 Euro für 64 SMD-Widerstände
    07 Euro für 01 Schaltnetzteil
    08 Euro für 02 Step-Down-Wandler


    macht 130 Euro reine Materialkosten; mit Versandkosten und sonstigen Kleinteilen sind es schon 150.



    Erfahrungen/sonstige Einfälle


    • Funktioniert nur, wenn auch der Rechner an ist
    • Farbverschiebung wegen Spannungsabfall durch geringen Querschnitt (bei Einspeisung auf nur einer Seite)
    • Nero Showtime hat sich bei der HD-Videowiedergabe bewährt, da AtmoWin bei PowerDVD nur ein schwarzes Bild erfasst (Overlay)
    • Softwareweissabgleich steht auf R105 G222 B255 -> rot dominant (auf leicht Terrakottafarbener Wand)
    • 15cm zur Wand sind ok (eher weniger), damit Schritte von LED zu LED nicht stören ->Konfigurationssache
    • wenn man bei dunklen Szenen auf den Hintergrund achtet, sind die Stufen bedingt durch 8 Bit Auflösung sichtbar
    • Prozessorauslastung ~15% (Core 2 Duo E6700 (2,66 GHz))
    • LEDs mit royalblauem Chip wären für eine farbtreuere Wiedergabe besser geeignet
  • Die nachfolgende Beschreibung gilt für den Nachbau für einen 52" Fernseher und muss anderen Größen entsprechend angepasst werden. Wer nicht weiß, was eine Reihen oder Parallelschaltung ist und mit dem Begriff Entlötlitze nichts anfangen kann, sollte sich einfacheren Projekten zuwenden. Außerdem sind eine Programmierplatine mit ISP-Anschluss sowie grundlegende Kenntnisse diese zu bedienen vonnöten.


    Einkaufsliste
    Reichelt -> durch die Preisstaffelung loht es sich, manche Bauteile mit den LEDs bei tme zu bestellen (Atmegas) Edit: bei tme sind die Controller nur noch auf Anfrage lieferbar. Man teilte mir mit, keine Informationen von Atmel über die Lieferzeit zu erhalten.


    LEDs
    tme.pl, hier oder hier im Forum (Sammelbestellung läuft gerade) oder bei LED-Tech


    Step-Down
    Pollin


    BTM222
    bei csd-electronics nach BTM-222 suchen.



    Für den geübten Löter reichen die Bauteile dann einmal rund um nen 52" Fernseher. Wer seine Bauteile ab und zu durch brät, sollte ein paar mehr bestellen.


    Zuschneiden
    Ist die Bestellung angekommen, fängt man damit an die Platinen zurecht zu sägen. Mir stand dafür eine Fliesensäge mit Diamantscheibe zur Verfügung. Man halbiert die Platine einmal der Breite nach -> aus 160x100 werden also 2 mal 79x100. Als nächstes werden 11 mm breite Streifen mit der Länge 79 mm gesägt. So erhält man aus einer Eurokarte 16 Streifen die belichtet, geätzt und gebohrt werden können, worauf ich nicht näher eingehen möchte.


    Bestücken
    joa, Bestücken eben. Dabei sollten einem die Bilder aus Beitrag 1 oder die Platinenansicht in Target helfen.
    Pins des Mega48, die in Target die Ebene 99 (DunkelCyan) haben, werden nicht angelötet sondern leicht nach oben gebogen. Etwas "unschön" aber ich wusste mir nicht anders zu helfen. Damit das Quarz beim Ankleben der Platinen an den Fernseher nicht stört, wird es von oben bestückt. Da die Leiterbahnen dafür auch oben verlaufen und ich noch bedrahtete Quarze übrig hatte, kam die unübliche Bestückung mit Elektrotape drunter zustande. In dem Angehängten Layout und im Einkaufskorb habe ich bereits ein Quarz in SMD-Bauform eingeplant.
    Durchkontaktierungen nicht vergessen!


    Programmierung (setzt ein Board mit ISP-Schnittstelle voraus)
    Programmieradapter: Platz für eine ISP-Schnittstelle war nicht, deshalb diese Lösung:


    [Blockierte Grafik: http://www.abload.de/thumb/img_3432vumn.jpg][Blockierte Grafik: http://www.abload.de/thumb/img_3434061m.jpg]


    Die Platinen sind für eine Betriebsspannung von 3,1V ausgelegt, weshalb Sie auch mit dieser Spannung programmiert werden sollten (das betone ich, weil die rote Diode beim Programmieren mit angesteuert wird). Also entweder die LEDs nach dem Programmieren bestücken, oder die Spannung der Programmierplatine auf 3,1V absenken. Um die LEDs einzeln ansteuern zu können, muss das Programm für jede Platine verändert werden. Die LEDs werden links oben mit eins beginnend im Uhrzeigersinn um den Fernseher gezählt und die erste LED der Platine hinter Sollkanal eingetragen. Ist man einmal rum, heißt das dann für die Letzte: Sollkanal = 63 (bei 64 LEDs)


    Damit das Quarz auch verwendet wird, sind die Fusebits entsprechend zu setzen:


    [Blockierte Grafik: http://www.abload.de/thumb/fusebitg5w1.png]


    Achtung! Dieses Bild gilt für PonyProg. Bei anderen Programmern müssen eventuell alle Haken gesetzt werden.


    Damit sind alle LED-Platinen bestückt und programmiert. Den Step-Down-Wandlern ist eine Aufbauanleitung beigelegt, nach der auch diese verlötet werden.



    Bluetooth


    Hardware
    Platine zuschneiden, belichten, ätzen und bohren sollte klar sein. Das BTM-222 hat eine Betriebsspannung von 3-3,6V, auf die der Spannungsregler einzustellen ist, bevor man das BTM verlötet. Dazu legt man an der Eingangsklemme eine Spannung von ~6V an (die spätere Versorgungsspannung) und dreht so lange am Poti, bis sich zwischen Masse und Pin 2 oder Pin 17 des Bluetoothmoduls eine Spannung von ~3,3V eingestellt hat. Zur Bestückung weiß ich nur folgendes zu sagen: unter das BTM gehört ein Streifen Elektrotape, um einen Schluss auszuschließen. Auch hier gilt: Pads der Ebene 99 (DunkelCyan) werden nicht verlötet. Desweiteren bekommt Pin 37 eine Antenne, die in etwa der der Länge des Moduls entspricht. Bilder sagen mehr als 1000 Worte:


    [Blockierte Grafik: http://www.abload.de/thumb/img_3438o2ae.jpg][Blockierte Grafik: http://www.abload.de/thumb/img_3449x1v5.jpg][Blockierte Grafik: http://www.abload.de/thumb/img_3451h0rd.jpg]


    Wenn eure Platine aussieht wie meine, dann ist das schlecht. Die hab ich in einer paar Tage alten Brühe geätzt. Also schaut die Bilder nicht so genau an, sonst muss ich unscharfe hochladen.


    Software
    Durch den Spannungsregler lässt sich die Platine an jedes Board mit TTL-Pegel (5V) anschließen ohne dass das Modul Schaden nimmt; dazu verbindet man Masse, Plus, RX und TX entsprechend mit seinem Programmierboard. Würde man die Platine auf den Sockel des Mega8 verbinden, würde das so aussehen: + an Pin 7; - an Pin 8; TX an Pin 3 und RX an Pin 2 des Mega8-Sockels. Gibt man Spannung auf das Board sollte die grüne LED der Bluetoothplatine anfangen zu blinken, sonst stimmt was nicht. Mit einem Terminalprogramm lässt sich nun das BTM konfigurieren. Dazu wird das Terminalprogramm wie auf den folgenden Bildern 1-3 dokumentiert, konfiguriert.


    [Blockierte Grafik: http://www.abload.de/thumb/hyperterminal1g02i.png][Blockierte Grafik: http://www.abload.de/thumb/hyperterminal2g2ih.png][Blockierte Grafik: http://www.abload.de/thumb/hyperterminal3w0c3.png][Blockierte Grafik: http://www.abload.de/thumb/hyperterminal433cx.png][Blockierte Grafik: http://www.abload.de/thumb/hyperterminal503b7.png]


    Die gesendeten Zeichen sollte das Modul nun erwidern und auf at [Enter] mit OK antworten (Bild 4). Die aktuelle Modulkonfiguration kann mit ati1 [Enter] ausgelesen werden (Bild 5). Damit das Atmolight überhaupt funktioniert, muss eigentlich nur die Baudrate verändert werden. Wer möchte, kann sein Modul vorher aber noch mit atn=egal umbenennen oder mit atp=4321 einen anderen Pin Code zuweisen. Zum Schluss wird dann die Baudrate mit atl5 auf 115200 Bit pro Sekunde gesetzt. Wer jetzt noch etwas verändern möchte, muss das Terminalprogramm mit 115200bps neu konfigurieren, damit sich Rechner und Modul wieder verstehen.


    Um zu testen ob die Bluetoothverbindung nun funktioniert, koppelt man das Bluetoothmodul mit dem Rechner. Win7 erfordert folgende Schritte: Gerät hinzufügen (Bild 1 und2) und Kopplungscode des Geräts eingeben (habt ihr selbst konfiguriert, sonst 1234) (Bild 3). Daraufhin sollte Windows eine serielle Schnittstelle installieren (COM3 bei mir) (Bild 4).
    [Blockierte Grafik: http://www.abload.de/thumb/koppeln1u3ep.png][Blockierte Grafik: http://www.abload.de/thumb/koppeln2o44v.png][Blockierte Grafik: http://www.abload.de/thumb/koppeln310ln.png][Blockierte Grafik: http://www.abload.de/thumb/koppeln5o0la.png][Blockierte Grafik: http://www.abload.de/thumb/koppeln484c5.png]


    Öffnet man nun zwei Terminalfenster mit den Einstellungen für COM1 aus Bild 1 unten und den Einstellungen für die neue Schnittstelle (Bild 2), so sollte sich Bild 3 ergeben.
    [Blockierte Grafik: http://www.abload.de/thumb/testcom1c6ck.png][Blockierte Grafik: http://www.abload.de/thumb/testcom3r6ph.png][Blockierte Grafik: http://www.abload.de/thumb/testbeidex5vx.png]


    Schreibt man ins rechte Feld, erscheint der Text im linken. Schreibt man ins Linke erscheint Er im Rechten. Damit ist die Verbindungseinstellung abgeschlossen.

  • Die Hardware miteinander verbinden
    Kommen wir zum letzten handwerklichen Schritt, dem Verbinden der einzelnen Module. Zuerst werden die LED-Platinen zu einem Kreis verbunden. Masse, Plus und das Steuersignal werden einfach von Einer zu Anderen gebrückt, sodass alle LEDs denselben Abstand zueinander haben. An zwei gegenüberliegenden Stellen lötet man an alle drei Signale ein Stück Leitung, das mindestens bis zur Mitte des Fernsehers reicht und markiert diese Enden gleich mit +, - und RX (dabei hilft Bild 2 aus der zweiten Bilderreihe im ersten Beitrag). Nun wird der Kreis hinter den Fernseher geklebt. Dazu habe ich ein Stück Pappe von beiden Seiten mit doppelseitigem Klebeband beklebt und Streifen in Platinenbreite daraus geschnitten. In der zweiten Bilderreihe im ersten Beitrag lässt sich das erkennen.
    Das Schaltnetzteil wird auf eine Ausgangsspannung von 6V eingestellt und mit den Eingängen der beiden Step-Down-Wandler und der Bluetoothplatine verbunden. Wie genau ihr das macht ist euch überlassen (die Polarität ist dennoch zu beachten), ich hab noch einen Steckverbinder dazwischen, um das Licht Spannungsfrei zu machen ohne dazu hinter den Schrank kriechen zu müssen.
    Die Ausgänge der 2 Wandler müssen auf 3,1V eingestellt werden, bevor sie die gegenüberliegenden Seiten mit Spannung (z.B. einer für links und einer für rechts) versorgen. Damit bleiben nur die zwei Signalleitungen (mit RX beschriftet), die mit dem Ausgang (TX) der Bluetoothplatine verbunden werden.


    Der erste Kontakt
    Ladet euch AtmoWin hier herunter, startet und beendet es wieder. Damit wurde eine Konfiguration in der Registry angelegt, die ihr einfach mit meiner überschreiben könnt, sofern sie bei euch auch in HKEY_LOCAL_MACHINE\SOFTWARE\AtmoWinX erstellt wurde (einfach im Registrierungseditor nach atmowin suchen). Ist dies der Fall, so macht einfach einen Doppelklick auf meine Konfig und übernehmt diese somit. Findet ihr das Konfigurationsverzeichnis in einem anderen Pfad, so editiert in meiner Konfig die dritte Zeile entsprechend eurem Konfigurationsverzeichnis und fügt sie dann hinzu. Nach dem Starten von AtmoWin ist unter "Gerät konfigurieren" noch die vorher im Abschnitt Software von Windows erstellte Schnittstelle auszuwählen, dann sollte der Hintergrund bereits leuchten. Die Konfiguration lässt sich mit etwas Aufwand auch selbst erstellen, anpassen ist aber einfacher.


    Sollte ich irgendeinen Mist verzapft haben oder Informationen fehlen, dann sagt mir das bitte unbedingt.


    >>Hier gehts zum Diskussionsthread<< >>Download aller Anhänge und Bilder<<



    viel Spaß beim Nachbau!
    mfG, Elite




    Frequently Asked Questions & additional information


    Funktionsweise von AtmoWin
    Die Software (AtmoWin) macht 24 mal in der Sekunde einen Screenshot vom Bildschirm, analysiert diesen und schickt die gewonnenen Daten an das Licht. AtmoWin kann nur den Bildschirminhalt analysieren, von dem es auch einen Screenshot machen kann, deshalb muss man die Medien per PC wiedergeben. Um Fernsehinhalte nach hinten zu projizieren benötigt man demnach eine TV-Karte. Der Fernseher ist also mein PC-Monitor, wenn man so will. Was AtmoWin erfassen kann, lässt sich ganz einfach ausprobieren: einfach einen Screenshot machen. Was man selbst auf diesem sieht, kann auch AtmoWin verarbeiten.


    ohne Bluetooth
    Man braucht in jedem Fall eine serielle Schnittstelle. Möchte man das per USB realisieren, dann schafft man sich einfach ein USB zu seriell Adapterkabel an. Wenn man allerdings am Rechner schon eine serielle Schnittstelle hat, wäre es Blödsinn, diese nicht auch zu nutzen. In jedem Fall müssen die 15V, die der Rechner oder das Adapterkabel bereitstellen auf ~3,1V gebracht werden. Da man hier nur von 15V auf ~3,1V runter muss, dürfte auch ein Spannungsteiler genügen. (ansonsten Stichwort: Pegelumsetzer)


    Programm auf Platine anpassen
    vorausgesetzt man baut mit 64 LEDs nach, bleibt Platine1.bas wie es ist. (Ein Schönheitfehler, denn so übernimmt LED1 die Daten von LED64; siehe dazu auch hier). In alleAnderen.bas wird ausschließlich die fette Ziffer verändert. (Beispiel für Platine 3) Die erste LED auf der dritten Platine ist die 5te vom ganzen Kreis und deshalb wird eine 5 hinter Sollkanal eingetragen:
    Sollkanal = 5
    Sollkanal = Sollkanal * 3
    Sollkanal = Sollkanal - 2


    mehrere "Quellrechner"
    Da der Code fürs Pairing im Modul festgelegt wird und nicht vom Rechner vorgegeben wird, ist es problemlos möglich sich von verschiedenen Bluetoothgeräten auf das Atmolite zu verbinden. Aber nicht alle gleichzeitig, versteht sich.


    "Fehler im Bluetoothlayout"
    Das Layout unterscheidet sich soweit ich mich erinnere nur in dem 1k Widerstand, welcher nun direkt auf der Platine platziert ist und bei mir noch extern angeschossen ist. Bei dem ursprünglichen Layout hat es mir ein Bluetoothmodul zerschossen, weshalb ich diesen Widerstand nachträglich hinzugefügt habe. Das Layout wurde dann nachträglich verbessert.


    Strom
    Mein AtmoLight zieht im worst-case (alle drei Farben auf 100%) vor den Step-Down-Wandlern einen Strom von ~1,2A, da ich nicht mit 20mA pro Diode bestrome; was auch die Verwendung von zwei Wandlern begründet.