Wielu z nas znajduje się w posiadaniu starego pilota od TV lub magnetowidu. Teoretycznie taki pilot nie przyda się do niczego. Teoretycznie, bo możemy go wykorzystac np. z naszym Raspberry Pi do uruchamiania poleceń.
Oprócz Raspberry Pi będziemy potrzebowali oczywiście pilota, do tego przydadzą się kabelki i płyka stykowa.
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.
Jak wspomnieliśmy wcześniej w naszym projekcie został użyty TSOP4838, którego opis znajdziecie poniżej.
Należy 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.
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
Uruchomienie odbiornika IR
Żeby móc uruchomić odbiornik podczerwieni potrzebujemy w pliku /boot/config.txt dodać linijkę:
dtoverlay=lirc-rpi
i uruchomić ponownie Raspberry (reboot).
Nasz plik /etc/lirc/hardware.conf powinien wyglądać następująco:
Możemy go wyedytować poleceniem: nano /etc/lirc/hardware.conf
Teraz możemy zrestartować LIRCa…
sudo /etc/init.d/lirc restart
Testowanie odbiornika podczerwieni:
sudo /etc/init.d/lirc stop
mode2 -d /dev/lirc0
Po naciśnięciu przycisków na pilocie program powinien wypisywać kody odczytane z odbiornika. Brak odpowiedzi programu sugeruje, że nasze połączenie nie jest w porządku, spradź jeszcze raz kable.
Nadawanie nazw przyciskom
Zatrzymujemy LIRCa (jeżeli nie zrobiliśmy tego wcześniej):
sudo /etc/init.d/lirc stop
I w kolejnym punkcie przechodzimy do przypisania przyciskom nazw. Zostaną one zapisane w pliku lircd.conf w katalogu domowym.
irrecord -d /dev/lirc0 ~/lircd.conf --disable-namespace
Program najpier poinformuje nas, że powinnismy przez pewien czas naciskac rózne przyciski na pilocie. Ma to na celu wykrycie sposobu, w jakim dany pilot nadaje.
Następnie zostaniemy poproszeni o wpisanie nazwy przycisku i naciśnięcie odpowiadającego mu przycisku na pilocie. Powtarzamy ten krok aż nadamy wszystkim intersujących nas przyciskom funkcje.
Teraz zrobimy kopię starej konfiguracji i utworzoną krok wcześniej konfigurację skopiujemy we właściwe miejsce:
sudo cp /etc/lirc/lircd.conf /etc/lirc/lircd.conf.bak
sudo cp ~/lircd.conf /etc/lirc/lircd.conf
Uruchamiamy LIRCa, który odczytuje dane z odbiornika IR:
sudo /etc/init.d/lirc start
…i sprawdzamy czy wszystko działa jak należy. Uruchamiamy program irw
Wciskamy przypisane przyciski i sprawdzamy czy pokazują się ich nazwy.
Skojarzenie przycisków z poleceniami
Za pomocą np. nano tworzymy plik lircrc:
nano ~/lircrc
I tworzymy konfigurację w sposób pokazany na zdjęciu:
Takie same sekcje tworzymy dla każdego przycisku, który chemy przypisać.
"prog = irexec" zostawiamy, za "button = " dopisujemy nazwę przycisku którą ustawiliśmy. za "config = " wpisujemy nazwę programu który chcemy uruchomić.
Przykład na powyższym zdjęciu dla przycisku, któremu wcześniej nadaliśmy nazwę power przypisaliśmy komendę sudo poweroff. Czyli, jak naciśniemy power na pilocie na Raspberry zostanie wywołane sudo poweroff.
Pozostało nam tylko przenieć konfigurację:
sudo mv ~/lircrc /etc/lirc/lircrc
I na końcu pliku /etc/rc.local dopisać:
irexec &
Po następnym restarcie, nasze Raspberry będzie reagowało na polecenia wydane pilotem, zgodnie z tym co przygotowaliśmy.


