Дистанционное управление с помощью Lirc Ubuntu 12.04

Дата: 01/08/2016
Тема: Linux

Запуск программ с помощью любого дистанционного пульта

LIRC (Linux Infrared Remote Control — «инфракрасный ПДУ для Linux») — открытый программный пакет, позволяющий принимать и передавать инфракрасные сигналы пользователям операционной системы Linux.

Простейший ИК приемник

Подключается к последовательному порту компьютера.

Сигналы принимаются ИК датчиком IC1 и поступают на вход DCD последовательного порта. Питание через стабилизатор 5В берется с выхода RTS порта, на некоторых компьютерах и usb2com переходниках, где на выходах порта меньшее напряжение, схема работать не будет.

Полный список ИК датчиков можно найти на странице http://www.lirc.org/receivers.html.

Установка

#apt-get install lirc

чтобы система не перехватывала управление портом, поставим setserial

#apt-get install setserial

и выполнить команду

#setserial /dev/ttyS0 uart none

чтобы каждый раз не запускать команду можно прописать в /etc/rc.local

Загружаем модуль ядра lirc_serial:

#modprobe lirc_serial
#lsmod | grep lirc
lirc_serial            18662  0
lirc_dev               19354  1 lirc_serial

Проверяем ик приемник:

сначала останавливаем сервер

#service lirc stop
#mode2 -d /dev/lirc0
space 2708220
pulse 9037
space 4436
pulse 626
space 504
pulse 610
space 1644
pulse 610
space 1640
pulse 589
space 530

Настройка

#nano /etc/lirc/hardware.conf
# название пульта
REMOTE="IR"
# загружаемый модуль
REMOTE_MODULES="lirc_serial"
# драйвер
REMOTE_DRIVER="default"
# Устройство с которого будет считан сигнал
REMOTE_DEVICE="/dev/lirc0"
REMOTE_SOCKET=""
REMOTE_LIRCD_CONF=""
REMOTE_LIRCD_ARGS=""
# запуск lircd
START_LIRCD="true"
# загружать модули
LOAD_MODULES="true"

Теперь создадим файл профиля для пульта с помощью команды irrecord:

Программа предложит понажимать все клавиши на ПДУ, и задать название каждой клавиши.  На выходе получится файл, имя которого мы задали, останется  лишь скопировать его в /etc/lirc/lircd.conf.

список имен кнопок

#irrecord --list-namespace

или отключаем с помощью параметра --disable-namespace

#irrecord -d /dev/lirc0 ~/lircd.conf
irrecord -  application for recording IR-codes for usage with lirc
...
Press RETURN to continue.
Now start pressing buttons on your remote control.

It is very important that you press many different buttons and hold them
down for approximately one second. Each button should generate at least one
dot but in no case more than ten dots of output.
Don't stop pressing buttons until two lines of dots (2x80) have been
generated.

Press RETURN now to start recording.
................................................................................
Found const length: 107875
Please keep on pressing buttons like described above.
................................................................................
Space/pulse encoded remote control found.
Signal length is 67.
Found possible header: 9024 4457
Found trail pulse: 603
Found repeat code: 9026 2206
Signals are space encoded.
Signal length is 32
Now enter the names for the buttons.

Please enter the name for the next button (press <ENTER> to finish recording)
POWER
Now hold down button "KEY_POWER".
...

в результате должен получится файл lircd.conf с приблизительно таким содержимым

begin remote

  name  NONAME
  bits           16
  flags SPACE_ENC
  eps            25
  aeps          100

  header       9030  4447
  one           616   503
  zero          616  1628
  ptrail        616
  repeat       9035  2198
  pre_data_bits   16
  pre_data       0x9E29
  gap          39858
  toggle_bit      0


      begin codes
          POWER                    0x000000000000B748
          PC                       0x0000000000007788
          SOURCES                  0x0000000000000FF0
          MTS                      0x00000000000037C8
          MUTE                     0x000000000000F708
          VOL_UP                   0x00000000000027D8
          VOL_DOWN                 0x00000000000007F8
          CH_UP                    0x000000000000A758
          CH_DOWN                  0x0000000000008778
          FUNC                     0x0000000000006798
          PG-                      0x00000000000047B8
          PG+                      0x0000000000008F70
          TTX                      0x0000000000004FB0
          1                        0x0000000000007F80
          2                        0x000000000000BF40
          3                        0x0000000000003FC0
          4                        0x000000000000DF20
          5                        0x0000000000005FA0
          6                        0x0000000000009F60
          7                        0x0000000000001FE0
          8                        0x000000000000EF10
          9                        0x0000000000006F90
          0                        0x000000000000FF00
          CH_RTN                   0x00000000000017E8
          CC                       0x0000000000009768
          SYNC                     0x000000000000D728
          CH_CH                    0x000000000000E718
          AUTOSCAN                 0x000000000000CF30
          +100                     0x000000000000AF50
      end codes

end remote

Копирем файл настроек

#cp ~/lircd.conf /etc/lirc/lircd.conf

Запускаем сервер

#service lirc start

и проверяем работу, будет выводится код и название кнопки

#irw
000000009e29bf40 00 2 NONAME
000000009e293fc0 05 3 NONAME
000000009e29a758 00 CH_UP NONAME
000000009e298778 00 CH_DOWN NONAME
000000009e2927d8 06 VOL_UP NONAME

Использование

Файл lircrc должен быть помещен в домашний каталог ~/.config/lircrc. При желании вы можете создать общесистемный конфигурационный файл, расположенный в "/etc/lirc/lircrc" который будет использоваться при отсутствии lircrc. Идея заключается в том, чтобы иметь информацию о конфигурации всех клиентов в одном месте.

............. продолжение

 



Это статья "Домашняя страничка Andy"
https://andy.od.ua

URL этой статьи: https://andy.od.ua/news_56.html

Яндекс.Метрика