12 063
правки
Fizikdaos (обсуждение | вклад) |
(Отметить эту версию для перевода) |
||
(не показано 10 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
<languages/> | |||
<translate> | |||
<!--T:1--> | |||
В этой статье описывается прием и передача сигналов пультов управления бытовой техникой, работающих в инфракрасном диапазоне (то есть большинство пультов от телевизоров, кондиционеров, и т. д.). | В этой статье описывается прием и передача сигналов пультов управления бытовой техникой, работающих в инфракрасном диапазоне (то есть большинство пультов от телевизоров, кондиционеров, и т. д.). | ||
== Аппаратная часть == | == Аппаратная часть == <!--T:2--> | ||
<!--T:3--> | |||
[[Файл:ИК-приемник.jpg|300px|thumb|right|ИК-приемник]] | [[Файл:ИК-приемник.jpg|300px|thumb|right|ИК-приемник]] | ||
[[Файл:Бластер.JPG|300px|thumb|right|ИК-передатчик]] | [[Файл:Бластер.JPG|300px|thumb|right|ИК-передатчик]] | ||
'''Внимание! В ревизиях контроллера 5.8 и старше ИК-порт для подключения приемопередатчика отсутствует!''' | |||
На [[Wiren Board 5]] необходимые сигналы выведены на разъем mini-jack 3.5mm с со следующей распиновкой: | <!--T:4--> | ||
На [[Wiren Board 5]] ([[Wiren Board 5: Аппаратные ревизии|до ревизии 5.6.1]] включительно) необходимые сигналы выведены на разъем mini-jack 3.5mm с со следующей распиновкой: | |||
* Tip (левый аудиоканал) - питание 5В/передача IR. | * Tip (левый аудиоканал) - питание 5В/передача IR. | ||
* Ring (правый аудиоканал) - прием IR | * Ring (правый аудиоканал) - прием IR | ||
* Sleeve (земля) - земля | * Sleeve (земля) - земля | ||
Распиновка разъёма позволяет подключать распространённые ИК-приёмники и передатчики от бытовой техники. | |||
Для приема ИК-сигналов необходимо подключить приемник ( | <!--T:5--> | ||
Для приема ИК-сигналов необходимо подключить приемник (совмещённый приёмопередатчик WB-CIR-TR). Номинальная частота несущей приемника должна примерно соответствовать частоте несущей используемого пульта, в противном случае возможно ухудшение или полная невозможность приема сигнала от пульта. | |||
Для передачи ИК-сигналов | <!--T:6--> | ||
Для передачи ИК-сигналов рекомендуется использовать готовый совмещённый ИК-приёмопередатчик WB-CIR-TR , Samsung IR Blaster bn96/26652a или подобный. | |||
=== Технические детали === <!--T:7--> | |||
Распиновка разъёма mini-jack 3.5mm на [[Wiren Board 5]] : | |||
* Tip (левый аудиоканал) - питание 5В/передача IR. | |||
* Ring (правый аудиоканал) - прием IR | |||
* Sleeve (земля) - земля | |||
Для приема ИК-сигналов испольются приемники типа TSOP1738, AX-1838HS или аналогичных. Для передачи ИК-сигналов используется ИК-светодиод, токоограничивающий резистор не обязателен (встроен в контроллер) При передаче напряжение питания будет промодулировано передаваемым сигналом и несущей. Приёмопередатчик WB-CIR-TR содержит приёмник типа TSOP и ИК-светодиод. Для питания приёмника используется паразитное питание. | |||
== Программная часть == | == Программная часть == <!--T:8--> | ||
На уровне ядра за работу с ИК на [[Wiren Board 5]] отвечает драйвер '''lirc-pwm'''. Он предоставляет устройство /dev/ | <!--T:9--> | ||
На уровне ядра за работу с ИК на [[Wiren Board 5]] отвечает драйвер '''lirc-pwm'''. Он предоставляет устройство /dev/lirc1. | |||
С этим устройством взаимодействует демон '''lircd''' из состава пакета [http://www.lirc.org/ LIRC], осуществляющий декодирование последовательностей импульсов в события нажатых на пульте кнопок согласно файлам конфигурации пультов. Также этот демон способен осуществлять обратное преобразование для передачи сигналов нажатия кнопок управляемым устройствам. | <!--T:10--> | ||
С этим устройством взаимодействует демон '''lircd''' из состава пакета [http://www.lirc.org/ LIRC], осуществляющий декодирование последовательностей импульсов в события нажатых на пульте кнопок согласно файлам конфигурации пультов. Также этот демон способен осуществлять обратное преобразование для передачи сигналов нажатия кнопок управляемым устройствам. | |||
<!--T:11--> | |||
Наконец, трансляцию событий от '''lircd''' в сообщения [[MQTT]] и обратно осуществляет демон '''wb-mqtt-lirc''' | Наконец, трансляцию событий от '''lircd''' в сообщения [[MQTT]] и обратно осуществляет демон '''wb-mqtt-lirc''' | ||
=== Установка и настройка === | === Установка и настройка === <!--T:12--> | ||
Необходимые пакеты ( wb-mqtt-lirc, lirc-scripts, wb-mqtt-lirc), а так же правильный конфиг-файл /etc/lirc/hardware.conf установлены в стандартном образе, начиная с версии 201512070633. | |||
< | |||
* Скачать или сгенерировать файл конфигурации пульта и положить его в '''/etc/lirc/lircd.conf.d/'''. | * Скачать или сгенерировать файл конфигурации пульта и положить его в '''/etc/lirc/lircd.conf.d/'''. | ||
==== Скачивание существующего конфига пульта ==== | ==== Скачивание существующего конфига пульта ==== <!--T:13--> | ||
<pre> | <pre> | ||
root@wirenboard:~# irdb-get update | root@wirenboard:~# irdb-get update | ||
Строка 51: | Строка 58: | ||
</pre> | </pre> | ||
==== Создание нового конфига пульта ==== | ==== Создание нового конфига пульта ==== <!--T:14--> | ||
''TODO: описать как пользоваться irrecord'' | ''TODO: описать как пользоваться irrecord'' | ||
<!--T:15--> | |||
После завершения конфигурации, следует перезапустить службы '''lirc''' и '''wb-mqtt-lirc''' | После завершения конфигурации, следует перезапустить службы '''lirc''' и '''wb-mqtt-lirc''' | ||
<pre> | <pre> | ||
Строка 59: | Строка 67: | ||
</pre> | </pre> | ||
=== MQTT-интерфейс === | === MQTT-интерфейс === <!--T:16--> | ||
<!--T:17--> | |||
'''wb-mqtt-lirc''' создает устройство ''/devices/wb-lirc/'', принятые нажатия публикуются в топике ''/devices/wb-lirc/controls/Key'' в формате '''<название_пульта>:<название_кнопки>:<повтор>'''. После отпускания кнопки в этом топике публикуется сообщение с пустым телом. | '''wb-mqtt-lirc''' создает устройство ''/devices/wb-lirc/'', принятые нажатия публикуются в топике ''/devices/wb-lirc/controls/Key'' в формате '''<название_пульта>:<название_кнопки>:<повтор>'''. После отпускания кнопки в этом топике публикуется сообщение с пустым телом. | ||
<!--T:18--> | |||
Пример: | Пример: | ||
<pre> | <pre> | ||
Строка 76: | Строка 86: | ||
</pre> | </pre> | ||
<!--T:19--> | |||
Для отправки нажатия кнопки следует опубликовать сообщение в формате '''<название_пульта>:<название_кнопки>''' в топике ''/devices/wb-lirc/controls/Key/on'' | Для отправки нажатия кнопки следует опубликовать сообщение в формате '''<название_пульта>:<название_кнопки>''' в топике ''/devices/wb-lirc/controls/Key/on'' | ||
== Устранение неисправностей == | == Устранение неисправностей == <!--T:20--> | ||
=== Не работает прием === | === Не работает прием === | ||
* Убедиться что драйвер "видит" импульсы от приемника. | * Убедиться что драйвер "видит" импульсы от приемника. | ||
** Остановить сервис '''lirc''' (командой ''service lirc stop'') | ** Остановить сервис '''lirc''' (командой ''service lirc stop'') | ||
** <pre>root@wirenboard:~# mode2 -d /dev/ | ** <pre>root@wirenboard:~# mode2 -d /dev/lirc1</pre> | ||
**: Должны бежать цифры при нажатии кнопок на пульте, если нет - проблема в "железе" или в несоответствии несущей пульта и приемника. Следует попробовать использовать другой приемник. | **: Должны бежать цифры при нажатии кнопок на пульте, если нет - проблема в "железе" или в несоответствии несущей пульта и приемника. Следует попробовать использовать другой приемник. | ||
* Убедиться что '''lirc''' может декодировать последовательности импульсов согласно конфигу пульта: | * Убедиться что '''lirc''' может декодировать последовательности импульсов согласно конфигу пульта: | ||
Строка 89: | Строка 100: | ||
**: Должные бежать строчки при нажатии кнопок на пульте. Если '''mode2''' работает, а '''irw''' - нет, то проблема с конфигом пульта. Стоит попробовать использовать другой конфиг, либо создать новый. | **: Должные бежать строчки при нажатии кнопок на пульте. Если '''mode2''' работает, а '''irw''' - нет, то проблема с конфигом пульта. Стоит попробовать использовать другой конфиг, либо создать новый. | ||
=== Не работает передача === | === Не работает передача === <!--T:21--> | ||
* Попробовать передавать обращаясь к LIRC напрямую: | * Попробовать передавать обращаясь к LIRC напрямую: | ||
<pre> | <pre> | ||
Строка 98: | Строка 109: | ||
(названия пульта и кнопки должны соответствовать используемому конфигу). | (названия пульта и кнопки должны соответствовать используемому конфигу). | ||
* Убедиться что аппаратная часть работает - например, можно посмотреть на ИК-светодиод через камеру смартфона (светодиод должен мигать при передаче) | * Убедиться что аппаратная часть работает - например, можно посмотреть на ИК-светодиод через камеру смартфона (светодиод должен мигать при передаче) | ||
</translate> |
правки