Перейти к содержанию

Навигация

Consumer IR: различия между версиями

Отметить эту версию для перевода
(Отметить эту версию для перевода)
 
(не показана 1 промежуточная версия этого же участника)
Строка 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 и старше ИК-порт для подключения приемопередатчика отсутствует!'''
'''Внимание! В ревизиях контроллера 5.8 и старше ИК-порт для подключения приемопередатчика отсутствует!'''


<!--T:4-->
На [[Wiren Board 5]] ([[Wiren Board 5: Аппаратные ревизии|до ревизии 5.6.1]] включительно) необходимые сигналы выведены на разъем mini-jack 3.5mm с со следующей распиновкой:
На [[Wiren Board 5]] ([[Wiren Board 5: Аппаратные ревизии|до ревизии 5.6.1]] включительно) необходимые сигналы выведены на разъем mini-jack 3.5mm с со следующей распиновкой:
* Tip (левый аудиоканал) - питание 5В/передача IR.
* Tip (левый аудиоканал) - питание 5В/передача IR.
Строка 13: Строка 18:
Распиновка разъёма позволяет подключать распространённые ИК-приёмники и передатчики от бытовой техники.
Распиновка разъёма позволяет подключать распространённые ИК-приёмники и передатчики от бытовой техники.


<!--T:5-->
Для приема ИК-сигналов необходимо подключить приемник (совмещённый приёмопередатчик WB-CIR-TR). Номинальная частота несущей приемника должна примерно соответствовать частоте несущей используемого пульта, в противном случае возможно ухудшение или полная невозможность приема сигнала от пульта.
Для приема ИК-сигналов необходимо подключить приемник (совмещённый приёмопередатчик WB-CIR-TR). Номинальная частота несущей приемника должна примерно соответствовать частоте несущей используемого пульта, в противном случае возможно ухудшение или полная невозможность приема сигнала от пульта.


Для передачи ИК-сигналов рекомендуется использовать готовый совмещённый ИК-приёмопередатчик [[WB-CIR-TR]], Samsung IR Blaster bn96/26652a или подобный.
<!--T:6-->
Для передачи ИК-сигналов рекомендуется использовать готовый совмещённый ИК-приёмопередатчик WB-CIR-TR , Samsung IR Blaster bn96/26652a или подобный.


=== Технические детали ===
=== Технические детали === <!--T:7-->
Распиновка разъёма mini-jack 3.5mm  на [[Wiren Board 5]] :
Распиновка разъёма mini-jack 3.5mm  на [[Wiren Board 5]] :
* Tip (левый аудиоканал) - питание 5В/передача IR.
* Tip (левый аудиоканал) - питание 5В/передача IR.
* Ring (правый аудиоканал) - прием IR
* Ring (правый аудиоканал) - прием IR
* Sleeve (земля) - земля
* Sleeve (земля) - земля
Для приема ИК-сигналов испольются  приемники типа TSOP1738, AX-1838HS или аналогичных. Для передачи ИК-сигналов используется ИК-светодиод, токоограничивающий резистор не обязателен (встроен в контроллер) При передаче напряжение питания будет промодулировано передаваемым сигналом и несущей. Приёмопередатчик [[WB-CIR-TR]] содержит приёмник типа TSOP и ИК-светодиод. Для питания приёмника используется паразитное питание.
Для приема ИК-сигналов испольются  приемники типа TSOP1738, AX-1838HS или аналогичных. Для передачи ИК-сигналов используется ИК-светодиод, токоограничивающий резистор не обязателен (встроен в контроллер) При передаче напряжение питания будет промодулировано передаваемым сигналом и несущей. Приёмопередатчик WB-CIR-TR содержит приёмник типа TSOP и ИК-светодиод. Для питания приёмника используется паразитное питание.


''TODO: нарисовать картинку''


== Программная часть ==


== Программная часть == <!--T:8-->
<!--T:9-->
На уровне ядра за работу с ИК на [[Wiren Board 5]] отвечает драйвер '''lirc-pwm'''. Он предоставляет устройство /dev/lirc1.
На уровне ядра за работу с ИК на [[Wiren Board 5]] отвечает драйвер '''lirc-pwm'''. Он предоставляет устройство /dev/lirc1.


<!--T:10-->
С этим устройством взаимодействует демон '''lircd''' из состава пакета [http://www.lirc.org/ LIRC], осуществляющий декодирование последовательностей импульсов в события нажатых на пульте кнопок согласно файлам конфигурации пультов. Также этот демон способен осуществлять обратное преобразование для передачи сигналов нажатия кнопок управляемым устройствам.  
С этим устройством взаимодействует демон '''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.
Необходимые пакеты ( 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
Строка 48: Строка 58:
</pre>
</pre>


==== Создание нового конфига пульта ====
==== Создание нового конфига пульта ==== <!--T:14-->
''TODO: описать как пользоваться irrecord''
''TODO: описать как пользоваться irrecord''


<!--T:15-->
После завершения конфигурации, следует перезапустить службы '''lirc''' и '''wb-mqtt-lirc'''
После завершения конфигурации, следует перезапустить службы '''lirc''' и '''wb-mqtt-lirc'''
<pre>
<pre>
Строка 56: Строка 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>
Строка 73: Строка 86:
</pre>
</pre>


<!--T:19-->
Для отправки нажатия кнопки следует опубликовать сообщение в формате '''<название_пульта>:<название_кнопки>''' в топике ''/devices/wb-lirc/controls/Key/on''
Для отправки нажатия кнопки следует опубликовать сообщение в формате '''<название_пульта>:<название_кнопки>''' в топике ''/devices/wb-lirc/controls/Key/on''


== Устранение неисправностей ==
== Устранение неисправностей == <!--T:20-->
=== Не работает прием ===
=== Не работает прием ===
* Убедиться что драйвер "видит" импульсы от приемника.
* Убедиться что драйвер "видит" импульсы от приемника.
Строка 86: Строка 100:
**: Должные бежать строчки при нажатии кнопок на пульте. Если '''mode2''' работает, а '''irw''' - нет, то проблема с конфигом пульта. Стоит попробовать использовать другой конфиг, либо создать новый.
**: Должные бежать строчки при нажатии кнопок на пульте. Если '''mode2''' работает, а '''irw''' - нет, то проблема с конфигом пульта. Стоит попробовать использовать другой конфиг, либо создать новый.


=== Не работает передача ===
=== Не работает передача === <!--T:21-->
* Попробовать передавать обращаясь к LIRC напрямую:
* Попробовать передавать обращаясь к LIRC напрямую:
<pre>
<pre>
Строка 95: Строка 109:
(названия пульта и кнопки должны соответствовать используемому конфигу).
(названия пульта и кнопки должны соответствовать используемому конфигу).
* Убедиться что аппаратная часть работает - например, можно посмотреть на ИК-светодиод через камеру смартфона (светодиод должен мигать при передаче)
* Убедиться что аппаратная часть работает - например, можно посмотреть на ИК-светодиод через камеру смартфона (светодиод должен мигать при передаче)
</translate>
12 063

правки