OpenElec jest dystrybucją umożliwiającą zrobienie z Raspberry Pi centrum multimedialnego, które po podłączeniu do telewizora da nam możliwość odtwarzania filmów, muzyki, zdjęć z dysku sieciowego lub dysku podłączonego przez USB.
Po zainstalowaniu oprogramowania musimy się zastanowić jak sterować naszym centrum multimedialnym. Do wyboru mamy kilka opcji:
pierwsza to sterowanie pilotem od telewizora, który posiada interfejs HDMI-CEC (jeżeli nasz telewizor posiada taki interfejs niekiedy należy go włączyć w opcjach)
druga opcja to sterowanie dedykowanym oprogramowaniem na systemy iOS, Android lub Windows Phone
trzecia opcja to sterowanie najzwyklejszym pilotem IR (zaletą takiego rozwiązania jak i pierwszego rozwiązania jest późniejsza możliwość wkodowania takiego pilota do pilotów uniwersalnych np. Logitech Harmony)
Każde z powyższych rozwiązań ma jednak jakieś wady. Jeśli zdecydujecie się na korzystanie z pilota, a przykładowo chcecie posłuchać muzyki, musicie włączyć telewizor żeby móc wybrać wasz ulubiony utwór/album. Z kolei wykorzystanie dedykowanej aplikacji np. Yatse daje nam pełną możliwość sterowania naszą biblioteką bez konieczności uruchamiania telewizora. Wadą w tym przypadku (jeśli można uznać to za wadę) jest konieczność posiadania urządzenia działającego pod kontrolą Androida, iOS’a lub Windows Phone’a.
W tym wpisie zakładamy, że jednak chcemy sterować OpenElec za pomocą klasycznego pilota IR. Poniżej znajdziecie informacje jak podłączyć odbiornik IR oraz jak przypisać poszczególne klawisze pilota funkcjom w XBMC.
Podłączenie odbiornika IR
Do odbierania sygnałów posłuży nam układ TSOP4838, sterowany jednym pinem GPIO. Do Raspberry podłączamy go według poniższego rysunku.
Mała uwaga do powyższego schematu. Na zdjęciu użyty został TSOP31XX, który również można użyć w projekcie, należy jednak zwrócić szczególną uwagę na numery pinów, aby przez pomyłkę nie podłączyć odwrotnie np. zasilania, w takim przypadku istnieje duże ryzyko uszkodzenia odbiornika.
Jak wspomnieliśmy wcześniej w naszym projekcie został użyty TSOP4838, którego opis znajdziecie poniżej.
Po podłączeniu odbiornika uruchamiamy Raspberry i czekamy aż system się załaduje.
Nożkę 1 (OUT) podłączamy do pinu 12 (GPIO18), pin 2 podłączamy do GND, a pin 3 do pinu 3.3V
Programowanie pilota
W celu korzystania z pilota musimy edytować “config.txt”, w którym dopisujemy linijkę:
dtoverlay=lirc-rpi
Są dwie możliwości edycji pliku, jedna to przez SSH, a druga to włożenie karty do komputera działającego pod Linuxem, Windowsem, czy OSX.
W tym przypadku skupimy się na pierwszej metodzie, bo uważamy, że jest ona chyba najłatwiejsza.
Po pierwsze musimy użyć polecenia:
mount -o remount,rw /flash
które pozwoli nam na edycje pliku config.
nano /flash/config.txt
Wprowadzamy zmiany jakie nas interesują, wychodzimy używając kombinacji klawiszy ctrl+x i zapisujemy plik z taką samą nazwą.
Ostatnią czynnością jest ponowne uruchomienie naszego Raspberry poleceniem:
reboot
Jeśli planujecie edycje na innym komputerze wystarczy włożyć kartę i bezpośrednio na niej edytować plik config.txt.
Dodawanie nowego pilota
Mając podłączony i skonfigurowany odbiornik podczerwieni możemy skonfigurować obsługę naszego pilota.Dokonujemy tego w pliku lircd.conf (znajduje się on w /storage/.config/lircd.conf) używając komendy irrecord. Zanim jednak do tego dojdzie, musimy zatrzymać proces lircd używając polecenia:
killall lircd
Teraz możemy zacząć rejestrowanie przycisków na pilocie używając komendy irrecord:
irrecord /storage/.config/lircd.conf
Dalsza część polega na przeczytaniu i wykonywaniu instrukcji, które są wyświetlane na ekranie. Należy pamiętać, aby każda nazwa przycisku miała przedrostek KEY_, np. KEY_POWER. W innym przypadku OpenElec nie rozpozna funkcji naszego przycisku poprawnie. Spis dostępnych komend można znaleźć na stronie kodi.wiki. Jeśli chcemy np. przypisać funckję SkipNext (odpowiedzialną za przeskoczenie do następnego pliku wideo w playliście, jeśli nie mieliście stworzonej playlisty to funkcja przeskakuje do następnego rozdziału w filmie) do przycisku pilota, to nazwa funkcji będzie wyglądać tak: KEY_SKIPNEXT. Jeżeli popełnicie błąd np. literówkę skrypt wam zwróci na to uwagę, że nie znaleziono wpisanej przez Was funckji.
Jeśli wykonaliśmy wszystko poprawnie można zrestartować nasze Raspberry. Po ponownym uruchomieniu nasz pilot będzie działał od razu.
Sprawdzanie działania
Jeżeli nie jesteśmy pewni czy nasz pilot jest widziany przez Raspberry możemy użyć
irw /var/run/lirc/lircd-lirc0
lub samego
irw
Naciskając kolejne przyciski na pilocie, na ekranie monitora/telewizora/konsoli powinniśmy zobaczyć czy prawidłowo nasz pilot się wkodował (odpowiedzią będzie wyświetlenie zaprogramowanego przycisku po jego naciśnięciu). Jeśli nic takiego nie widać istnieje ryzyko, że nasz pilot jest nie wspierany. Mimo tego możemy ręcznie stworzyć plik konfiguracyjny lub edytować wcześniej stworzony (.config/lircd.conf
), odczytując sygnał z przycisku naszego pilota i przypisując mu ręcznie zadaną funkcję np.:
KEY_POWER 0x00007bf3