Ich versuche hier das Ambilight Thema aus dem easyVDR-Wiki zu retten, daher pflege ich nach und nach alles hier ein.
Dieser Beitrag gilt für easyVDR3.x & easyVDR5 ( bitte bei #3 die 2 Punkte für easyVDR5 beachten )
Variante Arduino mit WS2801 oder APA102C LED-Stripe:
Hardware:
-Arduino Nano ATmega328 mit FTDI Chip
-WS2801 5050 RGB LED strip 32 LEDs/m
oder
-APA102C 5050 RGB LED strip 60 LEDs/m
5V 7-16A Netzteil
Hier variiert die Ampere an der Anzahl der LEDs.
Bei einer Anzahl von über 100LEDs empfiehlt es sich ein Netzteil mit mehr als 10A zu nehmen.
Hinweis: Jeder ist selbst für seine Sicherheit verantwortlich. Den Strom bitte messen und das Netzteil passend zur maximalen Helligkeit+10% Sicherheitszuschlag auswählen.
Auch und gerade bei der niederen Spannung können durch Fehler Brände ausgelöst werden.
Aufbau
Beim Strips verlegen unbedingt darauf achten, neben dem WS2801 Chip ist ein kleiner weißer Pfeil für die Verlege-Richtung aufgedruckt.
Wird einer der Strips falschen rum eingebunden, passiert ab dem Anschluss nichts.
Ab einer Länge von 2m, sollte unbedingt eine weitere Einspeisung durch das Netzteil erfolgen.
Der Arduino benötigt nur einen gemeinsamen GND vom Netzteil, eine 5V Einspeisung ist nicht nötig, da durch USB versorgt.
In diesem Beispiel (Sketch weiter unten), werden die Stripes mit CK > D13, SI > D6 an den Arduino angeschlossen.
Unterschiedliche Beispiele/Varianten der Rahmen:
Ambilight Rahmen Winkel variable einstellbar
Hier wäre es möglich, den Abstrahlwinkel der LEDs individuell einzustellen.
( Beispiel: Sollte der TV mal aus Zufall wachsen, muss nicht gleich ein größerer Rahmen her )
Dazu benötigt man lediglich noch ein Kunststoffrohr, oder Alurohr auf dem Rahmengerüst.
Minimal knifflig, da an den jeweiligen stellen der Verbindungen das Rohr ausgeklinkt werden muss.
Zusätzlich sollte man die Aluleisten mit Isolierband an 3 Stellen pro Schiene umkleben, damit das Rohr nicht zu lose auf dem Rahmen steckt.
Ambilight Rahmen fest
In diesem Beispiel wurden hier die LEDs direkt auf Rahmen platziert
Software
Hier empfiehlt es sich zuerst den x Desktop auf LXDE zu wechseln. Bei openbox ist die USB Unterstützung nicht vollständig ausgebaut, daher kann unter Umständen der Arduino nicht gefunden werden.
-Arduino IDE ( <- Die kostenlose Programmiersoftware )
Getestet wurde bisher mit Arduino IDE Version 1.8.1. & 1.8.5 auf Linux & Windows 10
In der Menüleiste, sollte unter "Werkzeuge > Board" als erstes unser Arduino ausgewählt werden. In unserem Fall "Arduino Nano"
Dann bei "Werkzeuge > Prozessor" ATmega328 und zum Schluss "Werkzeuge > Port" /etc/ttyUSBx ( wahlweise, wo der Arduino am USB hängt )
Sollte die Software folgende Meldung anzeigen:
Empfiehlt es sich, diese Aktualisierung durchzuführen, andernfalls könnten wichtige Bibliotheken für die Programmierung fehlen.
Über den Bibliotheksmanger (Sketch/Bibiliothek einbinden/ Bibliotheken verwalten) die Bibliotheken aus den "Includes" einbinden.
In unserem Fall also die FastLED Bibliothek damit die zum Kompilieren geforderte FastLED.h verfügbar ist.
Ist der Sketch geladen und passend zur Hardware angepasst, muss dieser nun nur noch unter Menüleiste "Sketch > Hochladen" aufgespielt werden.
Hinweis: Sollten wir Hyperion, oder einen anderen Dienst welcher auf die USB Schnittstelle zugreift im Vorfeld installiert haben, muss dieser Dienst vor dem aufspielen gestoppt werden. Bei Hyperion
-Arduino Sketch ( Software, die mit Arduino IDE auf den Arduino gespielt wird )
Wahlweise kann hier auch der LED-Typ bei Verwendung von Beispielsweise APA102 individuell angepasst werden, in diesem Fall #define LED_TYPE WS2801 ändern in #define LED_TYPE APA102
Es sollte unbedingt die Anzahl der LED's #define MAX_LEDS 410 angepasst werden. Hier bitte darauf achten, Anzahl der LED's + 1. Haben wir also 128 LED's, sieht der Eintrag wie flogt aus #define MAX_LEDS 129
Die Baudrate ist hier schon auf den maximalen Wert eingestellt ( 500000 )#define serialRate 500000 und muß später in Hyperion eingetragen werden.
Programmcode(Adalight) hier drunter einfach in das geöffnete Arduino IDE Programm einfügen.