LIRC: Linux Infrared Remote Control

Wygodne sterowanie odtwarzaczem muzyki, filmu czy jakimkolwiek innym programem/funkcją komputera, przy użyciu praktycznie dowolnego pilota podczerwieni, jest sprawą zaskakująco łatwą – a to dzięki systemowi Linux Infrared Remote Control.

Wykonane przeze mnie urządzenie oparte jest na gotowym schemacie dongla portu szeregowego , do budowy którego użyłem tani i popularny układ TFM5360.

Po zbudowaniu odbiornika należy skompilować lub zainstalować pakiet lircd i odpowiednio go skonfigurować:

  • załadować modul lirc_dev i lirc_serial (w przypadku dongla rs232)
  • jeśli sterownik portu szeregowego jest wkompilowany w jądro, przed załadowaniem modułów trzeba zwolnić urządzenie poleceniem setserial /dev/ttySn uart none (n=N-1 to numer portu szeregowego COM N)
  • wygenerować lub skopiować z katalogu /usr/share/lirc/remotes odpowiedni pliku konfiguracyjny w miejsce /etc/lircd.conf . Plik konfiguracyjny odpowiada za odpowiednią interpretację danych z pilota i jest charakterystyczna dla danego typu urządzenia.
  • uruchomić daemona lircd
  • sprawdzić czy urządzenie które zbudowaliśmy odbiera sygnał z pilota programem smode2
  • nowy plik konfiguracyjny dla danego pilota można wygenerować programem irrecord.

Oto przykładowa konfogiracja dla mojego pilota który jest pozostałością po tunerze TV na czipsecie BT878:

begin remote 
 name  PixelView PlayTV PAK Pilot
 bits           16
 flags SPACE_ENC|CONST_LENGTH
 eps            30
 aeps          100
 header       9110  4420
 one           641  1610
 zero          641   481
 ptrail        642
 repeat       9111  2168
 pre_data_bits   16
 pre_data       0x61D6
 gap          108022
 toggle_bit
 begin codes
 power                    0x7887
 zoom                     0x38C7
 scan                     0xE01F
 tv/fm                    0xC03F
 1                        0x807F
 2                        0xD02F
 3                        0xD827
 4                        0xA05F
 5                        0x906F
 6                        0xA857
 7                        0x609F
 8                        0x50AF
 9                        0x48B7
 0                        0x40BF
 volume+                  0xF807
 volume-                  0xE817
 channel+                 0x6897
 channel-                 0x28D7
 +100                     0x08F7
 loop                     0xC837
 source                   0x00FF
 mute                     0x18E7
 function                 0x708F
 function+                0x30CF
 function-                0x20DF
 reset                    0xB04F
 freeze                   0xF00F
 end codes
 end remote

Powodzenia i pamiętaj aby jednak czasami troche sie poruszać jak już zbudujesz to zdalne sterowanie! ;-)