RPi, media center i pilot IR

Podłączenie i sterowanie pilotem IR w OpenElec

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:

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.

Podłączenie odbiornika IR na płytce stykowej

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.

Opis wyprowadzeń TSOP4838

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ą.

Plik config.txt gotowy do edycji

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

Program rejestrujący naciśnięcia klawiszy pilota

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

Działanie polecenia irw