KODI Fanklub Polska



Ambilight dla Raspberry + Openelec lub OSMC + LED WS2801 + hyperion

Jako posiadacz kilku “Malinek” zastanawiałem się jak jeszcze mógłbym rozszerzyć ich możliwości. Zainteresowałem się możliwościami jakie daje system AMBILIGHT podłączony do XBMC/KODI/OSMC na platformie Radebergery.

W niniejszym artykule opiszę w jaki sposób, niskim nakładem środków i przy odrobinie zacięcia można samodzielnie stworzyć taki system. Przestawię również konfigurację systemu.

Aby system pozostał jak najprostszy, bez dodatkowych zewnętrznych sterowników, zasilaczy i innych niepotrzebnych kabli wybór padł na paski LED z układami WS2801. Dzięki tym układom jesteśmy w stanie sterować każdą diodą osobno. Dodatkowym atutem tych LED’ów jest zasilanie 5V, co umożliwia zasilanie RPi jaki i diod z jednego zasilacza (mniejsza plątanina kabli).

 

Ponieważ w sklepach elektronicznych przeważają wyłącznie paski RGB, bez układów lub zwykłe i sprzedawcy rozkładali ręce gdy pytałem o WS2801 (a zależało mi na czasie i nie czekać na zamówienie z AMAZONA lub dostawie z Chin) znalazłem pewien sklep w Polsce, gdzie można zakupić odpowiednie paski LED 

 

Opisany w artykule zestaw kosztował w sumie 176 zł.

 


Montaż

 

Zestawienie części potrzebnych do montażu urządzenia:

 

1 x 5V pasek LED 5m (WS2801) (lub wodoodporny)

1 x Zasilacz 5V /3-10A (w zależności od ilości diod i innych urządzeń które mamy podłączone do Raspberry)

4 x łączniki do pasków LED (jeśli nie chcemy sami lutować, ja połączyłem je samodzielnie)

1-2 m kabla 4 żyłowego na 3-5 A

4 x konektory do portów GPIO

1 x gniazdo 5.5x2.1mm (do zasilacza)

2 x włącznik (możemy go wykorzystać do wyłączania RPi i drugi do wyłączania LED)

1 x Raspberry (dowolny model: Rpi 1 , Rpi B , Rpi 2)

Oczywiście podstawowe narzędzia do lutowania i termokurczki.

 

 

Pobór prądu paska LED

 

Według specyfikacji 1m LED WS2801 pobiera około 7.36-7.68 Watów w zależności od ilości diod na 1 m. (paski maja 30 lub 32 diody na 1m w zależności od producenta.

Jest to maksymalny pobór mocy przy białym kolorze diod.

 

 

Wymagane zasilanie

 

Obliczyłem następująco:

3m LED * 1.5A+1 A Rpi B = 5.5 A

Na szczęście wybraliśmy paski LED które są zasilane 5V więc zasilacz zasili jednocześnie RPi i LED.

 

 

Łączenie pasków

 

Musimy pamiętać o zachowaniu kierunku który jest zaznaczony na paskach LED.

Paski LED maja 4 konektory:

5V - +5V zasilanie

CI - clock interface

DI - data interface

GND - masa

 

 

Przy lutowaniu należy pamiętać o poprawnym połączeniu pasków LED CI do CI, DI do DI 5V do 5V i GND do GND.


Montaż diod

 

Najpierw musimy zmierzyć TV z tyłu. Diody montujemy nie na samej krawędzi lecz lekko odsunięte od krawędzi TV.

Montaż pasków na TV jest prosty bo paski maja taśmę dwustronną.

W zależności od tego gdzie umieszczone jest nasze RPi względemTV - od tego rogu telewizora zaczynamy montaż pierwszego paska.

 

W moim przypadku Malina stoi przy prawym dolnym rogu TV więc po odwróceniu TV montaż zaczynam od lewego dolnego rogu i tak dookoła TV zgodnie z kierunkiem LED.

Na zdjęciu widoczny pierwszy i ostatni z moich 5 pasków zamontowanych na TV.

Widoczny jest również przewód zasilania - w moim przypadku to niebieski +5V, czerwony CI, zielony DI, czarny GND.

Połączenia

TV z tyłu po zamontowaniu.

Umieszczenie pasków LED na TV i zaznaczenia kierunku pasków.

 

Po wykonaniu połączeń i montażu pasków LED możemy podłączyć je do Raspberry.

Poniżej diagram połączenia MOSI pin 19 (DI) i SCLK pin 23 (CI) (RPi2 w moim wypadku)  

 

Wykaz pinów dla wszystkich wersji Raspberry znajdziemy tutaj.

 

 

Do tego schematu możemy dodać nasze wyłączniki jeśli chcemy mieć dodatkowo możliwość sprzętowego wyłączenia zasilania dla pasków LED i RPi .

 

Włączniki musimy zamontować na przewodach +5V na schemacie jeden do LED i drugi (opcjonalnie) dla Raspberry. Jednakże nie jest to konieczne i pozostawiam Wam ewentualną decyzje. (Wiecej informacji można znaleźć w filmie podanym na końcu tego artykułu)

 

 

Do sterowania możemy użyć dwóch programów BOBLIGHT (stary i zasobożerny) oraz Hyperion lżejszy i szybszy. Mój wybór padł na HYPERION.


Instalacja oprogramowania

 

Openelec

 

Pierwsze co musimy włączyć w Openelec :

 

System -> OpenElec -> Usługi:

Aktywuj SSH

Aktywuj SAMBA

Jednocześnie musimy sprawdzić czy nie mamy zainstalowanego i aktywnego serwera BOBLIGHT . Jeśli jest należy go odinstalować!

 

Teraz logujemy się do OpenElec (Login root, Hasło openelec)

Następnie musimy przygotować OpenElec'a do obsługi pasków LED, czyli dodamy mu obsługę SPI devices której niestety domyślnie nie ma...

Wydajemy zatem polecenie :

mount -o remount,rw /flash

cd /flash/overlays

wget https://dl.dropboxusercontent.com/u/3669512/temp/enable-spi-overlay.dtb

lub

wget http://img.lightberry.eu/rah/enable-spi-overlay.dtb

następnie:

nano /flash/config.txt

 

I dodajemy taki wpis:

device_tree_overlay=overlays/enable-spi-overlay.dtb

dalej wykonujemy:

mount -o remount,ro /flash,

reboot

 

 

OSMC

 

W przypadku OSMC wydajemy poniższe komendy:

 

sudo apt-get update

sudo apt-get upgrade (można ale nie trzeba jeśli robimy updaty często)

sudo apt-get install libqtcore4 libqtgui4 libqt4-network libusb-1.0-0 libprotobuf9 ca-certificates --no-install-recommends

 

Należy także pamiętaćże hyperion w OSMC jest instalowany w katalogu /opt dlatego trzeba to uwzględnić w plikach konfiguracyjnych w dalszej części.

 

 

Instalacja Hyperiona

 

Po ponownym uruchomieniu przystępujemy do instalacji hyperiona, wydając poniższe komendy

curl -L --output install_hyperion.sh –get https://raw.githubusercontent.com/tvdzwan/hyperion/master/bin/install_hyperion.sh

sh ./install_hyperion.sh

 

Hyperion jest zatem już zainstalowany i musimy mu stworzyć plik konfiguracyjny. Polecam i odwołuje do strony projektu 

Następnie potrzebujemy pobrać prosty programik który stworzy nam config

W zakładce External należy podać katalog: /storage/hyperion/effects (gdzie jest zainstalowany Openelec )

 

Dalej musimy policzyć ile diod mamy na bokach, górze i ewentualnie dole telewizora oraz uwzględnić lukę na nóżkę TV czyli „bottom GAP” u mnie 2 diody tak by w hyperionie wpisać odpowiednią ilość diód. W moim przypadku lewy i prawy bok po 19 diód , góra 30, Dół 2x 14=28.

Ponieważ patrząc na TV z przodu moje diody są montowane od prawego dolnego rogu w górę wybieram opcje counter_clockwise.
Należy także pamiętać o kolejności kolorów na pasku w moim przypadku jest to BRG.

 

 

W celu sprawdzenia poprawności polecam dodanie sobie do youtube.com tego filmuktóry możemy uruchomić by sprawdzić poprawność wyświetlanych kolorów (wtyczka youtube w kodi)

 

TV który posiadam to LG 42LD650 i zużyłem niecałe 3m pasków LED

Pomijając GAP na nóżkę TV wyszło dokladnie 96 diod.

 

Polecam również pomocne filmy:

Część 1 https://www.youtube.com/watch?v=kf2WNVrerck

Część 2 https://www.youtube.com/watch?v=-T-BHX3sFqA

Część 3 https://www.youtube.com/watch?v=U8FI1pRfekw

 

Pod tym linkiem zamieszczam mój config (możecie wpisać do swojego ustawienia kolorów prędkości reakcji itp. uwzględniając własną ilość diod.)

 

Program Hyperion (free):

 

Możemy także dokładnie sobie ustawić kolory I odcienie za pomocą zewnętrznego programu

Hyperion free lub Hyperion (4.15 PLN)

 

https://play.google.com/store/apps/details?id=nl.hyperion.hyperionfree

https://play.google.com/store/apps/details?id=nl.hyperion.hyperionpro

 

Dzięki temu programowi możemy dowolnie zmieniać wartości dla poszczególnych diod. Program niestety nie zapisuje ustawień do pliku hyperion.conf.json.

Po dobraniu odpowiednich ustawień należy zmiany wprowadzić w pliku konfiguracyjnym przez ssh lub uruchomić jeszcze raz program do konfiguracji hyperiona dodać zmiany lub nowy profil z naszymi ustawieniami w zakładce Process. Gdy mamy kilka profili możemy śmiało je przełączać za pomocą telefonu.

Po zmianach w configu wydajemy komendę :

 

killall hyperiond

/storage/.config/autostart.sh

 


Notyfikacja włączenia wyłączenia hyperiona w KODI

 

Skrypt do wizualnej informacji o włączeniu lub wyłączeniu HYPERIONA w menu KODI.

Możemy ten skrypt wykorzystać do podpięcia go pod dany przycisk na naszym pilocie.

/Opis przypisania do Pilota na razie w trakcie przygotowania/

 

Tworzymy skrypt zatem skrypt. Po zalogowaniu się wydajemy komendę

nano /storage/hyperion/hyperionswitch.sh

i wklejamy tą zawartość .

 

WAŻNE !

Pamiętaj o zmianie adresu IP w skrypcie http://TWOJKODI:8080.

Aby dodać użytkownika i hasło dostępu należy wpisać http://user:hasło@TWOJKODI:8080.

 

Należy jeszcze umieścić ikonę hyperiona w katalogu hyperion.

cd /storage/hyperion

wget http://pibob.nadnerb.co.uk/images/hyperion.png

 

I po wydaniu polecenia:

/storage/hyperion/hyperionswitch.sh

 

W KODI zobaczymy komunikat o włączeniu lub wyłączeniu hyperiona który domyślnie jest uruchamiany przy boocie systemu za pomocą pliku /storage/.config/autostart.sh

Co kończy całą naszą konfigurację


Włączanie i wyłączanie Hyperiona za pomocą pilota

 

Do tego celu potrzebujemy oczywiście pilota - mój wybór padł na Sumvision Air Mouse Wireless Media Remote

Pierwszą rzeczą którą należy zrobić jest utworzenie skryptu PERL’a - Kodi może uruchamiać tylko pliki binarne lub skrypty PERL.

Próbowałem kilku sposobów - niestety wpisanie /usr/bin/sh /storage/hyperion/hyperionswitch.sh nie dawało rezultatu, zatem w postaci uruchomienia włącznika hyperiona dla opcji System.exec użyłem RunScript.)

 

A więc tworzymy nasz skrypt skrypt komendą:

nano /storage/hyperion/switch.py

 

I po otwarciu edutora wklejamy poniższe linie:

import subprocess

try:

subprocess.Popen('/storage/hyperion/hyperionswitch.sh', shell=True)

except Exception, e:

pass

 

Następnie edytujemy plik \\naszkodi\Userdata\keymaps\keyboard.xml

 

Ponieważ chciałem mieć możliwość włączania i wyłączania Hyperiona zarówno podczas wyświetlania menu Kodi jak i podczas oglądania na pełnym ekranie dodałem poniższy wpis w dwóch miejscach w pliku konfiguracyjnym:

<f1>RunScript("/storage/hyperion/switch.py")</f1>

 

Na samym początku pliku w sekcji global i keyboard.

 

 

Oraz w sekcji FullscreenVideo:

 

 

Jeśli nie chcemy aby Hyperion automatycznie startował wraz ze startem Kodi możemy usunąć wpis w pliku autostart.sh w katalogu \\nasz_kodi\Configfiles

 

Na wszelkie pytania chętnie odpowiem w zlinkowanym wątku na tutejszym Forum.

 

_________________________

*) Nasz portal nie reklamuje i nie współpracuje z wymienionymi sklepami internetowymi. Adresy podane zostały czysto informacyjnie.

 
Informacje o Autorze:
Author: bogaskilop

Zaloguj się aby skomentować
Dodaj komentarz na Forum ( już dodano 28 ).

Aby kontynuować, pokaż nam kim jesteś