|
Магазин Arduino | WIKI | Регистрация | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
19.09.2012, 23:25 | #1 | ||
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Дистанционное управление IR пультом в OpenWrt
В OpenWrt за работу инфракрасного канала связи отвечает программа LIRC Устанавливаем пакеты: opkg install kmod-usb-hid opkg install udev opkg install lirc opkg install lircdaemonadd lirctools При нажатии кнопки на пульте, посылается команда по ИК каналу, соответствующая нажатой кнопке. Приёмник подключенный к usb-порту роутера принимает эту команду и посылает сигнал в LIRC с кодом этой команды. Демон LIRC сравнивает код команды с теми кодами, которые он знает, и выполняет действие, которое сопоставлено этому коду. Подключим приёмник к usb-порту и ищем его в папке ls /dev Проверим, передаются ли команды посылаемые с пульта систему. Для этого запустим следующую команду и нажимаем кнопки на пульте: cat /dev/input/event0 | hexdump С помощью программы irrecord можно для каждой кнопки пульта задать своё имя: irrecord -d /dev/input/event0 /etc/lircd.conf --disable-namespace Также для диагностики есть программа mode2. Запускаем демона lircd. Файл /etc/lircd.conf является конфигурационным файлом демона lircd. В этом файле сопоставляется название кнопки и ее код, который принимается по ИК каналу. Этот файл конфигурации можно создать самому, для этого нужно считывать значения кнопок и задавать им имена, или взять готовый lircd.conf Выглядит он следующим образом: Код:
begin remote name ChapletSystem bits 32 begin codes POWER 0x40004 0x80010074 RADIO 0x40004 0x8001001e TV 0x40004 0x80010014 DVD 0x40004 0x80010031 MUSIC 0x40004 0x80010032 PHOTO 0x40004 0x80010017 VIDEO 0x40004 0x80010012 DVD_MENU 0x40004 0x8001002f MUTE 0x40004 0x80010042 BACK 0x40004 0x8001000e GUIDE 0x40004 0x8001003b VOLUME_UP 0x40004 0x80010073 VOLUME_DOWN 0x40004 0x80010072 CHANNEL_UP 0x40004 0x80010068 CHANNEL_DOWN 0x40004 0x8001006d ARROW_UP 0x40004 0x80010067 ARROW_DOWN 0x40004 0x8001006c ARROW_LEFT 0x40004 0x80010069 ARROW_RIGHT 0x40004 0x8001006a ENTER 0x40004 0x8001001c RECORD 0x40004 0x8001001d 0x40004 0x80010013 REPEAT 0x40004 0x8001002a 0x40004 0x80010013 PLAY 0x40004 0x8001002a 0x40004 0x80010019 PAUSE 0x40004 0x8001001d 0x40004 0x80010019 STOP 0x40004 0x8001001f REWIND 0x40004 0x8001002a 0x40004 0x80010020 FORWARD 0x40004 0x8001002a 0x40004 0x80010021 PREV_TRACK 0x40004 0x8001001d 0x40004 0x80010030 NEXT_TRACK 0x40004 0x8001001d 0x40004 0x80010021 NUMPAD_1 0x40004 0x80010002 NUMPAD_2 0x40004 0x80010003 NUMPAD_3 0x40004 0x80010004 NUMPAD_4 0x40004 0x80010005 NUMPAD_5 0x40004 0x80010006 NUMPAD_6 0x40004 0x80010007 NUMPAD_7 0x40004 0x80010008 NUMPAD_8 0x40004 0x80010009 NUMPAD_9 0x40004 0x8001000a NUMPAD_0 0x40004 0x8001000b end codes end remote irrecord --list-namespace Запускаем демона lircd: mkdir /var/run/lirc lircd -n --driver=default --device=/dev/input/event0 --pidfile /var/run/lirc/lircd.pid В другом окне запускаем клиент irw. Клиент irw считывает данные lircd и выводит результат на экран. После запуска нажимаем кнопки на пульте. На экране должны видеть название кнопок и код: irw Цитата:
Его формат рассмотрим на примере: Цитата:
Что бы понять его работу , запустим демона lircd в фоновом режиме, а при запуске демона irexec укажем ему файл lircrc: lircd --driver=default --device=/dev/input/event0 —pidfile irexec /home/lircrc sh: /home/my_script.sh: not found It is button 'ENTER' It is button 'ENTER' sh: /home/my_script.sh: not found /var/run/lirc/lircd.pid |
||
20.09.2012, 00:22 | #2 |
Junior Member
Регистрация: 19.09.2012
Сообщений: 6
Вес репутации: 0 |
Очень интересно, спасибо.
|
20.09.2012, 23:05 | #3 | ||
Junior Member
Регистрация: 19.09.2012
Сообщений: 6
Вес репутации: 0 |
Что-то ругается. Не дадите ссылку на оригинальную статью?
Цитата:
Цитата:
|
||
21.09.2012, 00:16 | #4 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Можно в ручную привязать названия к кодам, в файле lircd.conf
Копируешь код кнопки и вставляешь его в lircd.conf рядом с названием |
22.09.2012, 03:43 | #5 |
Junior Member
Регистрация: 19.09.2012
Сообщений: 6
Вес репутации: 0 |
Похоже пульт не вполне адекватно видится софтом.
Вот эти блоки 0-50 и 60-1f0 это 2 нажатия кнопок. |
22.09.2012, 18:25 | #6 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Возможно что код нажатия первой кнопки 0004 0004 000c 018a
|
06.04.2013, 22:17 | #7 |
Junior Member
Регистрация: 21.01.2013
Возраст: 45
Сообщений: 17
Вес репутации: 0 |
У кого нибуть получилось запустить?
При разных варинатах запуска пишет одно и тоже Driver `dev/input' not supported. Supported drivers: default |
06.04.2013, 23:59 | #9 |
Junior Member
Регистрация: 21.01.2013
Возраст: 45
Сообщений: 17
Вес репутации: 0 |
|
31.03.2017, 01:44 | #10 |
Junior Member
Регистрация: 13.10.2013
Сообщений: 14
Вес репутации: 0 |
продублирую здесь вопрос
Помогите подключить устройство: #lsusb ID 07d0:4100 Dazzle Kingsun SF-620 Infrared Adapter Роутер TL-WR703, флеш 16Mb, OpenWRT CC 15.05.1 Но усстойство в /dev/input/_DazzleUSB-IRStick_ не появляется. И lirc его не видит. Похоже, драйвер нужен. |
Здесь присутствуют: 3 (пользователей: 0 , гостей: 3) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|