Ambilight czyli dyskoteka zza TV DIY
26.01.2015 | aktual.: 26.01.2015 11:26
Z Ambilight po raz pierwszy zetknąłem się 4 lata temu kiedy współlokator sprawił sobie telewizor Philipsa. Wyglądało to świetnie - obraz "wylewał" się z TV dodatkowo nie męcząc wzroku - fajny bajer. Niestety jako posiadacz sprzętu firmy Sony mogłem sobie o tym pomarzyć do czasu aż zacząłem robić porządki w szufladzie i znalazłem zakurzone Arduino. Chwila zastanowienia i w ruch poszło google.pl z zapytaniem "ardunio projects". Na stronie adafruit.com trafiłem na projekt Adalight który za pomocą diod WS2801 [img=ws2801]
Arduino UNO
i odpowiedniego softu pozwala na stworzenie uniwersalnego podświetlenia. Przeczesanie aliexpress i DXa zajęło chwilę - zamówienie zostało złożone 15 grudnia. Niestety ze względu na "christmas break" i wysyłkę LEDów przez Pekin (Ci którzy zamawiają w Chinach wiedzą, że w Bejingu paczki potrafią leżeć nawet miesiąc) zestaw elementów został skompletowany dopiero 19 stycznia.
Montujemy
Po rozpakowaniu pierwsza konsternacja - zamiast WS2801 zamówiłem diody WS2811
które nie posiadają osobnej linii CLOCK, przez co projekt z adafruit był bezużyteczny.
Kolejny kwadrans z ulubioną wyszukiwarką i rozwiązanie znalezione TUTAJ. Najpierw test (zamieszczony we wpisie) aby upewnić się że "majfrend" z dalekiego wschodniego kraju nie wysłał uszkodzonych światełek. Wszystko przebiegło pomyślnie, więc pora na konfigurację i montaż. Względem schematu
dokonałem pewnej zmiany - linii GND z Arduino nie doprowadzałem do do zasilacza - jeśli to źle niech mnie ktoś poprawi :)
Programowanie kontrolera to standardowe działania polegające na wklejaniu w edytorze kodu i skompilowanie go na Arduino Z niewiadomych przyczyn oryginalny sketch z opisu nie działał więc skorzystałem z tego który po kilku próbach zaczął działać.
W kodzie trzeba zwrócić uwagę na linijki:
[code=] #define NUM_LEDS 240 należy podać liczbę diod, #define PIN 13 PIN do którego podłączyliśmy linię danych #define serialRate 115200 prędkość danych portu COM (należy taką samą ustawić w programie [/code]
Aby sterować diodami należy do Arduino IDE dodać bibliotekę FastLED. Dodanie biblioteki to wskazanie ściągniętego pliku ZIP po wybraniu opcji Add Library.
Diody zostały zamontowane do kartonu za pomocą trytytek (albo ściągaczy jak kto woli ;)). Pamiętajcie aby odseparować luźne przewody +5V i GND będące po drugiej stronie diod - szkoda zwarcia i światełek. Ponadto należy pamiętać o odpowiednim zasilaczu - 1 dioda pobiera 60mA, czyli w przypadku 50 szt jakie zastosowałem w projekcie wystarczy 3A a najlepiej mocniejszy (posiadam 4A).
W przyszłości karton zostanie zamieniony na cienką płytę pilśniową lub drewniane obramowanie. Montaż do wyświetlacza był w miarę prosty - telewizor powieszony na ścianie, dodatkowo z tyłu mało wystających elementów oraz brak otworów wentylacyjnych, więc łatwo poszło.
Odpalamy
Do sterowania podświetlaniem użyłem programu boblightd (wersja dla Windows - pingwiniarze sobie znajdą ;) ), oraz konfiguratora z wspomnianego wpisu. Przy konfiguracji należy zwrócić uwagę na:
- rodzaj diod - moje okazały się GRB - czyli zamieniony czerwony z zielonyn - trzeba pozamieniać kody kolorów,
- kierunek rozmieszczenia lampek,
- prędkość transmisji (identyczna jak projekcie Arduino),
- port COM pod którym zameldował się kontroler,
- tzw Magic Word - ciąg służący do inicjalizacji taśmy LED
Przy poprawnej konfiguracji i uruchomieniu boblightd nasze oświetlenie powinno zaświecić po kolei kolorami czerwonym, niebieskim i zielonym. Jeśli tak się stało i konsola nie wskazuje błędów (nie zamykamy okienka z boblightd!) możemy przejść do konfiguracji Kodi (XBMC). Aby korzystać z podświetlenia musimy zainstalować plugin boblight z repozytoriów (znajduje się w domyślnym repo). Podczas inicjalizacji ujrzymy kolejną dyskotekę.
W tym momencie wszystko gotowe - można dokonfigurować prędkość działania i inne parametry podświetlenia bezpośrednio w ustawieniach wtyczki. Aby móc konfigurować/wyłączać, włączać podświetlenie w trakcie oglądania filmu wystarczy dodać w konfiguracji XBMC następujący wpis w sekcji FullscreenVideo w pliku keyboard.xml (znajdźcie sami - czasem jest w katalogu z programem, czasem z profilem)
<B>Addon.OpenSettings(script.xbmc.boblight)</B> <b>Addon.OpenSettings(script.xbmc.boblight)</b>
Na koniec skrypt który odpali boblightd, a potem XBMC (ścieżki dopasujcie sami):
start "boblightd" /MIN C:\boblightd\boblightd.exe -c c:\boblightd\boblight.conf -f TIMEOUT /T 1 "C:\Program Files (x86)\XBMC\xbmc.exe"
Aby używać podświetlenia w innych aplikacjach musimy skorzystać z innego programu - AmbiBox, lub Prismatik.
Na koniec prezentacja efektów
Koszt projektu 170 zł (wg obecnego kursu dolara):
- Diody LED WS2811 50 LED 65 zł
- złączki do zasilania 3,5 zł
- zasilacz 5V 4A 33 zł
- Arduino UNO 65 zł
- kabel USB 3 zł
Można zejść z ceny biorąc np klon Arduino NANO za 25‑30 zł, liczyć na przeceny w DX,Aliexpress etc :)
TODO
- kalibracja kolorów boblightd,
- wymiana kartonu na coś innego,
- podmiana arduino UNO na NANO,
- przestawienie diod w rogach - tej chwili kąty są słabo oświetlone