Pull to refresh

LiRC & WinLiRC: Собираем приёмное устройство

Reading time 5 min
Views 5.3K
Если вы смотрите любимые фильмы лежа на диване, или слушаете WinAmp, и вам лень дотягиваться до клавы чтобы перемотать композицию или притушить звук или еще что, то эта девайсина именно для вас. Это нечто иное как обычный COM ИК-порт управляемый любым пультом ДУ, и специальная программа которая собственно и управляет работой того или иного приложения. Итак, по порядку.

Шаг 1. Аппаратный


Нам потребуются:


  • ДУ пульт (за исключением «Горизонтовских» пультов и некоторых моделей Panasonic — их несущая частота сигнала составляет 400 кГц, а частота работы COM-порта — до 115 кГц. В основном у пультов частота сигнала 30-40 кГц.)
  • Радиодетали:
  • фотоприемник — простейший вариант это отечественный ТК-19 или TK1833. Подойдут и импортные аналоги TSOP 1738, TSOP1836. В общем любой 5ти вольтовой.

    Распиновка показана на рис.2,
  • конденсатор 20мкФ 25В
  • резисторы – 5.1, 10кОм 0,125 либо 0,5Вт
  • светодиод — любой. Ножка катода короче
  • 9 иголочный COM разъем типа «мама» с корпусом.

Собираем «сложнейшую» схему приведенную на рис.1,
image
Рис.1
Обозначение Назначение Сигнал
1 DCD Input Data Carrier Detect
2 RXD Input Recieved Data
3 TxD Output Transmitted Data
4 DTR Output Data Terminal Ready
5 GND - Signal Ground
6 DsR Input Data set Ready
7 RtS Output Request To Send
8 CtS Output Clear To Send
9 RI Input Ring Indicator


Если нет желания- переключатель не ставим. Цепляем все к ноге 1 или 2. вот распиновка разъема СОМ которую можно найти в Интернете:
Но учитываем, что при сигнале на ноге 2 работает лучше. Вот распиновка контактов приемника:
image
Дважды или трижды убеждаемся что все спаяли правильно с соблюдением всех полярностей, и подключаем к COM порту компьютера.
-Где же сообщение ВИНДОВС о новом девайсе ???
-А нет!!! И не будет! :)

Шаг 2.Программный.|


WinLirc и Device controller — простые программы, требуют наличия плагина для приложений (для WinAmp- ставится отдельно плагин, для Light Alloy-не требуется).

-ДРАЙВЕР WinLirc



После запуска программа скажет, что ее необходимо сконфигурировать.
image
Жмем ОК и попадаем в меню конфигурации. Для собранной схемы выставляем параметры, как показано на рисунке ниже, кроме параметра port. В этом параметре Вы указываете свой номер COM порта, к которому был подключен собранный ИК приемник
image
(Всё зависит от того, на какую ногу Вы приделали приемник, или в каком положении переключатель.)
Для проверки собранной схемы, необходимо в строке Config выбрать временно файл sample.cf, который лежит в папке winlirc-0.6.5 путем нажатия на кнопку Browse… Далее нажать кнопку Raw Codes, откроется окно проверки приема сигнала. Нажимая кнопки на любом ПДУ в окне должны приниматься пакеты типа «Pulse:300, space:4000», если ничего не происходит, нужно проверить правильность собранной схемы ИК приемника, правильно ли выбраны параметры и верно ли указан номер COM порта. Если пакеты принимаются, то собранную схему можно считать верной. Закрываем окно и возвращаемся в окно настройки программы.
image
После этого необходимо указать драйверу Winlirc, с какой моделью ПДУ он будет работать, для этого нужно в строке config выбрать файл ПДУ, нажав на кнопку Browser… и нажать кнопку ОК в окне настройки. Файл на свой ПДУ вы можете получить, скачав его с сайта разработчика драйвера Winlirc
(http://lirc.sourceforge.net/remotes/) или направив запрос на бесплатное получение по адресу DeviceCTRL@Mail.ru с пометкой «файл пульта» (укажите модель ПДУ). Все, winlirc настроен! Нажмите Hide Winlirc и программа свернется в трей. Нажмите кнопку ПДУ и Winlirc начнет реагировать на нажатие только выбранного ПДУ, о чем будет сигнализировать миганием в трее круглого значка. Если файла ПДУ Вы не нашли на свою модель, либо Вы не знаете модель или по другим причинам не можете выбрать файл ПДУ, то можно создать его (обучить Winlirc любому ПДУ). Для обучения Winlirc в строке config укажите вручную путь и имя нового файла, в который будет записываться результат обучения, например так:
Image
Нажмите Learn (обучение) — появится окно, для обучения Winlirc.
Image
Для начала программа попросит ввести имя ПДУ — Please enter a name for this remote. Введите произвольное имя ПДУ и не используйте при вводе ПРОБЕЛЫ!

Далее Winlirc попросит ввести процент распознования (от 1% до 99%)
Desired margin of error for this remote? (1-99, enter=25).
Чем больше процент, тем более суровее Winlirc будет распозновать в будущем принятый сигнал (если выбрать 99%, то Winlirc скорее всего не будет реагировать на сигнал от ПДУ, так как сигналы у ПДУ не стабильные и не идеально одинаковые), чем меньше будет параметр, тем Winlirc будет относиться более лояльно к принятым сигналам (если выбрать 1%, то Winlirc будет реагировать на ПДУ, но может путать кнопки и реагировать на помехи). Экспериментальные исследования показали, что оптимально вводить 40%. Вводим и нажимаем enter, потом Winlirc напишет
Gap and length?
ничего не пишем в строке и нажимаем enter. Далее программа попросит нажать одну и ту же любую кнопку необходимое количество раз, для того, чтобы провести анализ типа передаваемого сигнала от ПДУ. Нажимайте и отпускайте до тех пор пока Winlirc не напишет:

To finish recording buttons, enter a blank button name
Button 1 name?
Winlirc готов к вводу имени кнопки.
Далее необходимо внести все данные кнопок ПДУ. Для этого Вы вводите имя кнопки (НЕ ИСПОЛЬЗУЙТЕ ПРОБЕЛЫ!), нажимаете enter после этого Winlirc потребует нажать и не отпускать кнопку, имя которой вы ввели
Please press and hold down the 'ВВЕДЕНОЕ_ВАМИ_ИМЯ_КНОПКИ' button until told to stop.
Во время нажатия на ПДУ кнопки Winlirc будет принимать данные от ПДУ, о чем будет свидетельствовать увеличение значения «matches= „
Держите кнопку нажатой до тех пор, пока Winlirc не предложит сохранить кнопку. (Совет: не держите кнопку, а очень быстро тыкайте её. )Вы можете отказаться от этого в случае, если очень много ошибок (количество ошибок отображено в значении “faults=»), при этом имя кнопки и нажатие нужно повторить, а также можете согласиться, тогда Winlirc запишет результат и предложит ввести имя следующей кнопки.

Image
Введя все необходимые кнопки друг за другом, программа запишет все в файл. Если вы хотите закончить ввод кнопок, то введите не имя кнопки, а оставьте поле пустым и нажмите enter, при этом Winlirc сообщит о том, что конфигурация сохранена. Жмем везде ок. Все, winlirc настроен! Нажмите Hide Winlirc и программа свернется в трей. Нажмите кнопку ПДУ и Winlirc начнет реагировать на нажатие обученного ПДУ, о чем будет сигнализировать миганием в трее круглого значка.

После этого перезапускаете программу Device controller, который можно скачать тут. Она автоматически найдет внешний драйвер Winlirc. Теперь, при нажатии на кнопку ПДУ, Winlirc передаст данные Device controller о нажатии по протоколу TCP/API и имя ПДУ и имя кнопки будет показано в программе.

Image
Если у Вас стоит брандмауэр и просит о разрешении соединения Winlirc и Device controller, то нужно разрешить, в противном случае он заблокирует передачу данных.

После этого Вам необходимо назначить кнопкам команду, для чего необходимо ознакомиться с
интерфейсом программы и научиться работать в ней

На сим заканчиваю свое скромное повествование о неукрожаемом звере Виндовсе и его подчиненной Лирке
Tags:
Hubs:
+5
Comments 12
Comments Comments 12

Articles