Dziś krótki opis jak przygotowałem domowej roboty ambilight do mojego TV. Jak wszyscy, poprzeglądałem co robią inni na Youtube’ach i internetach i mój koncept jest bardzo podobny, czyli:
- Raspberry Pi Zero W
- Karta przechwytująca obraz HDMI
- Adresowalna taśma LED WS2812B
- Hyperbian
Większość rzeczy pewnie można znaleźć w innych miejscach w związku z czym tutaj tylko rzeczy, które mnie zastanawiały lub zaskoczyły.
Ja się wzorowałem na poniższych projektach:
- https://www.youtube.com/watch?v=jrtbKhhW5tc
- https://peyanski.com/tv-ambient-light-with-raspberry-pi-and-hyperion/
- https://github.com/shrocky2/Hyperion
- https://www.youtube.com/watch?v=4jkwFsMkKwU
Raspberry Pi Zero W
Dużo ludzi się zastanawia, czy wersja Zero jest wystarczająca – w moim przypadku okazała się wystarczająca, oświetlenie działa płynnie, bez opóźnień. W razie czego można zmniejszyć rozdzielczość analizowanego obrazu. Jeśli nic innego na malince nie będzie uruchamiane, to wersja Zero powinna dać radę.
Karta przechwytująca obraz HDMI
W podlinkowanym wcześniej filmie zostało wspomniane, że aby oglądać filmy z Netflixa, HBO, itp. należy skorzystać z karty obsługującej HDCP 2.2. Nie testowałem na innych, ale chwilę mi zajęło znalezienie takiej karty (linki z Amazona już nie działały, lub na większości nie było informacji o wsparciu).
Podobno da się ew. zabezpieczenia usunąć przy pomocy taniego splittera HDMI, jednak jest to chyba loteria.
Ostatecznie znalazłem pasującą kartę na Allegro.
Można spróbować poszukać po angielskim odpowiedniku, tj. capture card albo video grabber
Adresowalna taśma LED WS2812B
Z tego co zauważyłem to wszyscy praktycznie kupują taśmę 60 diod/metr. Ja zaryzykowałem wersję 30 diod/metr. Nie mam porównania z wersją 60, ale ta mnie w pełni zadowoliła, a bałem się, że będę musiał wymieniać.
Jeszcze jedna rzecz – generalnie pierdoła, ale do czarnego TV polecam czarną taśmę. Zdecydowanie mniej się rzuca w oczy – szczególnie kiedy widać tył telewizora.
Hyperbian / Hyperion
Jako, że moje Raspberry będzie służyło tylko do sterowania ambilightem, to skorzystałem z gotowego projektu Hyperbian, który ma już zainstalowanego Hyperiona do sterowania taśmą LED.
Należy pamiętać o włączeniu WIFI oraz SSH. SSH wbrew pozorom jest tu bardzo ważne – jak się okazuje sterowanie moją taśmą LED (sterownik WS281x) jest możliwe tylko korzystając z konta root, a Hyperion chodzi domyślnie na uprawnieniach lokalnego użytkownika pi.
Uruchomienie jako root
Bez uruchomienia poniższej komendy taśma w ogóle nie działa i wygląda jakby było coś zepsute. Polecam ten punkt szczególnej uwadze.
Na szczęście twórcy Hyperiona umożliwiają stosunkowo łatwą zmianę konta dla Hyperiona. Aby to zrobić musimy się dostać na naszego Raspberry – ja skorzystałem tutaj z PuTTY aby połączyć sie po SSH…
…i uruchomić odpowiednie polecenie:
sudo chmod +x /usr/share/hyperion/scripts/updateHyperionUser.sh && sudo updateHyperionUser -u root
Aha, domyślne dane do logowania do Hyperbiana to pi/raspberry.
Zasilanie
Nie robiłem specjalnych wyliczeń – wziąłem jakąś starą ładowarkę do telefonu 5V/2A, z zamiarem aby ją wymienić w przyszłości na coś mocniejszego. Natomiast na teraz daje radę – taśmę przytwierdziłem tylko z boków i góry, stąd wyszło mi ok 3m.
Istotne jest aby zasilanie taśmy i RPi miało wspólną masę – w tym celu tak naprawdę od naszego zasilacza robimy rozgałęzienie do zasilania zarówno RPi jak i taśmy LED.
Schemat
Powiedzmy, że poniżej to takie 2 w 1: schemat i zdjęcie gotowego rozwiązania:
Testowanie
Już po konfiguracji Hyperiona trzeba sprawdzić czy wszystko działa, lub czy trzeba coś podostosowywać. U mnie dobrze się sprawdziły raczej proste filmy, które pozwoliły określić, że wszystko działa jak należy.
Ale po wpisaniu w Youtube’a frazy „ambilight test” pewnie coś znajdziemy.
Wynik
Wynik, jak wspominałem, jest nawet całkiem w porządku, mimo użycia tylko taśmy 30 diod/metr i pominięcia dołu TV: