Управление компьютером с дистанционного пульта

09.05.2019

К настоящему времени разработано достаточно много самых разных решений для ДУ персональным компьютером. Все они имеют разную сложность и функциональность. Для радиолюбительских устройств можно условно провести разделение:

1. Приемный модуль не совмещен с декодирующей частью. Декодирование ИК посылок осуществляется на ПК специальной программой. Как правило, схема приемника предельно проста. Подключение может быть реализовано через COM или LPT порты.
2. Прием и декодирование сигнала происходит в устройстве аппаратно. На ПК отправляется уже распознанная посылка. Распознавание может быть выполнено в виде реального кода, либо некого условного кода, который хоть и не является реальным для данного пульта, но обеспечивает однозначную идентификацию нажатой кнопки.

Обеим способам присущи достоинства и недостатки. Например, недостатки для первого типа: такие порты как COM и LPT встречаются в компьютерах все реже и реже, а в ноутбуках уже практически перевелись. Декодирование на ПК требует реалтаймового доступа к портам, что не гарантируется, в результате чего не всегда верно принимается посылка. Достоинства: простота, отсутствие необходимости программировать железо, существование программ способных распознать большинство протоколов. К плюсам второго подхода следует отнести возможность использовать интерфейс USB, не обязателен реалтайм. Недостатки – более сложная аппаратная часть, необходимость ее программирования.

Вашему вниманию предлагается приемник-декодер, подключаемый по интерфейсу USB, позволяющий управлять приложениями на ПК по инфракрасному каналу. В устройстве происходит распознавание реальных кодов, таких протоколов как: NEC, SAMSUNG, JVC, RC5, SONY SIRC (15 bit). Этого достаточно для подавляющего большинства используемых пультов. В компьютер отправляется последовательность вида:
(toogle,device_low,device_high,command:system). Например, в случае посылки по протоколу NEC, где младшая часть адреса устройства 134, старшая –107, код команды -18: в ПК будет отправлена строка (0,134,107,18:NEC_CODE).
Значение toogle будет либо 0, либо 1 – чередование от нажатия к нажатию. При удержании кнопки значение данного параметра не будет меняться. В стандарте RC5 это штатная функция. В других форматах этого нет, поэтому приемник программно определяет удержание для протоколов, отличных от RC5.
Приемник может работать используя один из классов USB устройств – CDC или HID, в зависимости от прошивки. Это сделано из-за того, что имеются определенные преимущества и недостатки в работе этих классов друг перед другом.

Преимущества CDC:
Поскольку CDC это виртуальный COM порт, то принципы работы с ним простые и ничем не отличаются от работы с обычным COM портом. Не требуются специальные драйвера со стороны ПК (используются inf-файлы для разных ОС). Работает в XP, Vista, Win7. Можно увидеть посылки устройства обычным терминалом, в случае необходимости. Не загружает процессор – посылки отрабатываются только во время приема.

Недостатки CDC:
Как и с реальным портом, требуется постоянное соединение устройства. Отсоединенное устройство придется вручную присоединять в приложении на ПК (переоткрывать порт) – в некоторых случаях это может быть неудобно.

Преимущества HID:
Можно отсоединять и присоединять устройство "на горячую", программа на ПК будет автоматически его отслеживать и по цвету значка в трее, возможно определять состояние подключения.

Недостатки HID:
Для работы приложения требуется специальный драйвер. Был использован драйвер libusb-win32-filter-bin-0.1.12.1, который работает пока только на WinXP 32 bit. Если у вас другая операционная система, то остается CDC. Программа периодически опрашивает устройство, поэтому мизерная загрузка процессора в простое все же есть.

Схема устройства:

Контроллер – Atmega8 16AI (без индекса V, это важно). Светодиод D1 применен для снижения напряжения питания контроллера (5В), чтобы улучшить согласование уровней напряжения от МК с интерфейсными линиями USB (3.3В). Его переход обладает также стабилизирующими свойствами. Я применил яркий смд светодиод, выпаянный из ленты. Падение напряжения на диоде должно быть около 1.5В. В тоже время ИК приемник IR1 питается от 5В, поэтому диод D2 (лучше взять германиевый или Шоттки – с малым падением напряжения на переходе) защищает вход контроллера от перенапряжения. Переключатель SW1 применяется для переключения в режим программирования устройства. Об этом ниже.

Монтаж выполнен преимущественно смд элементами, вариант конструкции:

Для того, чтобы в последующем было удобно перепрограммировать устройство, в первый раз следует прошить бутлоадер (см. архив проекта, папка tools) по интерфейсу ISP любым удобным программатором. Прошивка рабочей программой далее выполняется по USB. Для этого следует замкнуть переключателем SW1 пин PB1 микроконтроллера на землю и присоединить устройство к порту USB. После этого запустить программу Upload.exe (оболочка для BootloadHID.exe) из папки default (или папки в которой находится hex-файл) соответствующего проекта. Откроется окно:

В строчку Firmware необходимо внести имя файла прошивки (без расширения). После этого нажать CMD Flash и подтвердить выбор. В окне:

Нажать кнопку CONFIRM и начнется процесс загрузки прошивки в контроллер. Остается только извлечь устройство, отключить PB1 от земли выключателем SW1и подключить снова к USB порту. Если был выбран класс устройства HID, то запроса на установку драйверов не последует. В диспетчере устройств можно увидеть новое оборудование. Для CDC класса в запросе на установку драйвера, необходимо указать нужный inf файл из папки inf (см. проект), в зависимости от ОС. После этого в системе появится виртуальный COM порт, в который будут приходить распознанные посылки.

Приложение для ПК находится в папке IRServer_WinLircCompatible. Выходные данные этой программы идентичны данным известной программы WinLirc. Поскольку являются, де-факто, стандартом для управляемых посредством сокетов приложений. Это означает, что с помощью данной программы можно управлять всеми приложениями, которыми позволяет управлять WinLirc. Многие из мультимедийных программ имеют встроенные средства или плагины для работы – LightAlloy, Aimp, KMPlayer, WinAmp и др. Остальными приложениями или функциями ПК можно управлять с помощью программ, которые также являются клиентами WinLirc, но реализуют отсылку управляемым приложениям WM-сообщений или посылку горячих клавиш (Girder, Device Control, MKey и многие другие).

Рассмотрим настройку программы, которая, в отличие от других приложений, достаточно проста. Главное окно программы:

Номер COM порта выбирается в зависимости от того, какой номер был присвоен устройству CDC. TCP порт установлен по умолчанию стандартным для WinLirc. Его можно изменять. Соответствующими кнопками можно управлять портами и сервером. Чекбокс "Use HID…" предназначен для устройства класса HID. В этом случае параметр Time HID Rq задает время опроса устройства в миллисекундах. В группе Info будут видны пришедшие и отправленные посылки, последнюю из которых (либо введенную вручную) можно отправить кнопкой Send. Также видно количество присоединенных к серверу клиентов (не более 16). Строки отправляются клиентам в виде Hash Counter Command Name. Где Hash составлен, для уникальности из кодов адреса и команды данного пульта и его вид нельзя изменить. Counter – переменная отражающая порядковый номер посылки при удержании. После прихода следующей посылки счетчик сбрасывается. Остальные два параметра задают команду (не обязательно в числовой форме) и имя пульта.

Для того чтобы в клиенте было удобней задавать соответствие команд управляющим воздействиям, предусматривается задание командам и имени пульта информативных имен.

Для этого устанавливаем переключатель в положение Naming (Именование) и нажимаем любую кнопку на пульте. Если для этого пульта (его адреса) нет соответствующего файла настроек, то появится запрос на введение имени пульта:

Вводим имя (например, MSI) и жмем ОК. После вторичного нажатия на кнопку, программа определит, что имя данного пульта уже ассоциировано и предложит поименовать команду:

Вводим имя команды и жмем ОК (или Enter). Таким образом, можно ассоциировать все нужные кнопки пульта. Настройки сохраняются в папку с исполняемым файлом сервера. Имя файла состоит из частей адреса устройства, расширение irs. При необходимости файл ассоциаций можно редактировать блокнотом. В итоге, получается следующее:

В данном случае видно, как отличается принятая и отправленная строки, а также реакцию управляемого клиента (Mkey), настроенного на команду right от пульта MSI (регулировка громкости).

Остальные настройки:
-Use only named: Передаваться клиентам будут только именованные команды от именованного пульта. Сделано для исключения реакции на посторонние пульты или ненастроенные/ненужные команды.
-Unnamed enable: помимо именованных команд будут переданы и неименованные (если таковые примет приемник).
-Naming disable: будут передаваться посылки напрямую, без именования.
Как правило, наиболее комфортна работа с включенной опцией Use only named после задания соответствия имен.
Кнопка ОК сворачивает приложение в трей, Cancel – закрывает приложение.

Общие замечания:
-По умолчанию COM порт настроен на скорость 9600 бод. Изменить, в случае необходимости, можно в ветке реестра:
HKEY_CURRENT_USER\Software\IRServer\COM_PORT параметр Baud_Rate.
-В ветке HKEY_CURRENT_USER\Software\IRServer\Other можно изменить VID/PID для устройства (класс HID) с которым работает сервер. Данные идентификаторы предоставляются разработчиком драйвера V-USB (AVR-USB) OBJECTIVE DEVELOPMENT Software GmbH бесплатно для некоммерческих устройств. Подробнее читайте в лицензионном соглашении.
-При использовании класса HID, необходимо установить библиотеку libusb-win32-filter-bin-0.1.12.1 из папки tools.
-Фьюзы МК следует настроить для работы от внешнего кварцевого резонатора 12 МГц, с включенным BOD на 2.7В (иначе возможно периодическое повреждение бутлоадера), с включенным загрузчиком размером 1024 байта (конфигурация фьюзов приведена в архиве)
-Переключатель SW1 на линии PB0 может быть использован для дополнительной конфигурации устройства (при соответствующем изменении программы). Либо на вывод PB0 можно подключить светодиод, индицирующий прием посылку. Для этого в файле nec_ir_module.h нужно раскомментировать строку #define LED_USE и пересобрать проект. После этого, разумеется, не следует устанавливать на пин PB0 переключатель, с риском повреждения МК. Переключатель на PB1 при этом следует сохранить.
-Приемник ИК излучения TSOP1736 использован в малогабаритном исполнении. Обратите внимание, что цоколевка у него отличается от обычного.

В архиве проекта присутствуют все необходимые файлы и исходные коды

Проект предоставляется "как есть". Все работы по подключению данного устройства к ПК проводятся на ваш риск. Автор ответственности не несет.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
U1 МК AVR 8-бит

ATmega8

1 В блокнот
D1 Светодиод 1 В блокнот
D2 Диод Шоттки 1 В блокнот
С1 Конденсатор 104 пФ 1 В блокнот
С2, С3 Конденсатор 22 пФ 2 В блокнот
С4 Электролитический конденсатор 4.7 мкФ 1 В блокнот
R1, R2 Резистор

68 Ом

2 В блокнот
R3 Резистор

1.5 кОм

1

Что не говори, а человек существо ленивое. Иногда так не хочется вставать с кровати чтобы отрегулировать громкость во время просмотра фильма или еще чего. Сейчас конечно есть куча всяких девайсов вроде мышек и клавиатур соединенных с компом по радиоканалу, но меня дико душит жаба при виде негуманных цен. Да и зачем покупать все это если в доме есть не нужный ик пульт и в загашнике завалялся tiny2313. Итак, будем ваять usb ик приёмник.

Было решено не изобретать свой велосипед, а повторить довольно удачную разработку некого Игоря Чешко. Повторить решил главным образом из-за того, что этот приемник поддерживается несколькими удобными программами вроде IrLink. Схема в оригинальном варианте мне очень не понравилась и я ее немного допилил. Доработка заключается в добавлении стабилитронов в цепи D+ и D-. Это сделано для того чтоб не спалить USB порт. Логическая единица у usb порта около 3.6 вольт и превышение этого напряжения крайне не желательно.

Сигнал с пульта принимается ик приёмником демодулятором TSOP17xx или TSOP21хх. ХХ – это несущая частота пульта в килогерцах. Как правило это 36 или 38 кГц. У меня например дома пять пультов и все пять работают на частоте 36 кГц. У ик приёмника очень хорошая чувствительность. Уверенно принимается даже сигнал отраженный от стен комнаты. Хотя тут еще многое зависит от пульта. Например с моим самодельным пультом результаты чуть похуже (стоит крошечный 3мм светодиод). Сам приёмник после сборки в настройке не нуждается, а вот с софтом придётся немного повозиться. Из всех программ для работы с этим приёмником, самая прикольная на мой взгляд – IrLink. Прога умеет распознавать всевозможные кодировки, а следовательно можно заюзать почти любой пульт! Разумеется IrLink не знает всевозможных кодов кнопок, поэтому программу нужно обучать. Для начала работы с программой нам нужно установить драйвера на ик приёмник. Их можно скачать с сайта автора или у меня. Драйвер есть двух версий – платная и бесплатная. У бесплатной версии есть один маленький неприятный момент. Когда какая либо программа начинает работать с ик приёмником – выпрыгивает окно с кнопкой ок в котором написано что мы используем бесплатную версию. Это почти не мешает, однако если кого-то это сильно будет раздражать, то можно купить полную версию за семь баксов у автора. Кроме этого окна ни каких различий в функциональности нет. Драйвер успешно заработал как на WinXP так и на Windows 7. После установки драйверов нужно скачать самую новую версию программы с сайта www.irlink.ru . При первом запуске появится окно настроек в котором нужно указать что у нас используется самодельный приёмник IgorPlugUSB. Если всё работает как надо то на вкладке «Ик приёмник» должно быть написано что «приёмник сигналов обнаружен и запущен». Теперь можно обучать программу. Начинается обучение с создания нового пульта. Для этого переходим на вкладку «Пульт ДУ» и на пульте слева расставляем кнопки точно так же как они расположены на вашем пульте. Когда кнопки расставлены тыкаем по очереди на каждую и нажимаем на пульте соответствующие кнопки. После завершения обучения можно легко проверить результат, жмем кнопки пульта и видим как они подсвечиваются в окне программы. Присвоить кнопкам действия дело не хитрое, но на всякий случай покажу как настроить две кнопки на управление громкостью в проигрывателе Winamp.

1) Выбрать кнопку пульта
2) Выбрать программу и действие
3) Добавить действие

Вот и всё. Кстати, программа начнет откликаться на команды с пульта только после закрытия главного окна. Напоследок хочу сказать, что большие полигоны на плате очень хорошо лудятся с использованием флюса СКФ:

Рассказать в:
Эта разработка является продолжением темы ИК-приемник USB
Сайт команды разработчиков, работающих над проектом: http://mindrunway.ru

Вступление

После покупки DVB платы SkyStar2 автор с удивлением обнаружил, что она комплектуется не USB HID устройством управления, а морально устаревшей версией DCD адаптера на порт RS-232 (в народе COM порт), который в моей машине занят под программатор и модем...
Немного поискав в Интернете была найдена ссылка на интересное устройство IgorPlug , которое обрабатывало принятый с монолитного IR приёмника сигнал средствами встроенного микропроцессора, преобразовывало его и передавало отцифрованный результат измерений длительности фронтов сигнала по окончании принимаемой посылки в буфер своего драйвера по интерфейсу USB.
При попытке повторения выяснилось, что устройство
обладает набором существенных недостатков:

A) Нет возможности установить устройство без прав администратора.
Не работает на большинстве материнских платах от АТИ и Нвидеа.
C) Не работает на 50% дорогих USB хабов. И на 90% дешевых.
D) Из-за небольшой памяти микросхемы* устройство не воспринимает
кодировки с длинными посылками (кнопки определяются одинаково).

* - Имелось в виду малое количество ОЗУ микропроцессора.

Недолго думая, я открыл прошивку и начал её изучать. С первого взгляда выяснилось, что прошивка очень сырая, с многочисленными ляпами и багами.
После исправления багов, удалось привести исходник к нормальному виду, а в последствии исправить все найденные выше недостатки. В результате чего получилась самостоятельная конструкция - IgorPlug2.

Особенности схемотехники IgorPlug-2

В качестве замены был выбран более мощный процессор ATMega8, который на данный момент намного дешевле и доступнее раритетных AT90S2313 и AT90S2323.
Светодиоды были перенесены на порт "C", а два не поместившихся старших бита на порт "D".


Универсальный вариант - перевёртыш: IgorPlugU_A4.pdf
А для любителей всё упрощать - минимальная версия: IgorPlug_A4.pdf или
Вы спросите: "Почему перевёртыш"?

Просто плата разрабатывалась с учётом практически всех возможных реализации, т.е. в зависимости от конкретной прошивки, а так же количества и типа установленных деталей устройство приобретает разный набор функций (можно подключать: ИР передатчик, одно или несколько реле, задействовать периферию и многое другое)... Если искать аналогию, то можно сравнить с материнской платой компьютера т.е. в зависимости от текущей задачи - выбирается конфигурация...

Прошивки для переработанного варианта USB_Infrored под ATMega8/88.

Прошивка на базе 6 версии IR блока с USB модулем v0.3A.
Оставлена для частичной совместимости со старыми системами и имеет старую систему анализа. То есть, первые 7 байт (с 4 по 10, т.к. 1-3 служебные) имеют в 8 РАЗ МЕНЬШИЙ масштаб, а все последующие имеют в 4 РАЗА МЕНЬШИЙ масштаб по сравнению с постоянным масштабом последующих версий (от 8 выше).
Для исправления найденных недостатков USB части и повышения стабильности системы в целом проводилось несколько пересборок прошивки с применением последних USB модулей для ATMega8 и ATMega88 процессоров.

Прошивка на базе 9min версии для Mega8
Прошивка на базе 9min версии для Mega88 для IR блока с USB модулем v0.3A.
Это не обучаемая, урезанная 9 версия. Создана для создания файлов обучения полных 9 и как замена 8 версии. (полная, обученная 9 заменяет в режиме совместимости версию 6).
По сравнению с 6 версией IR блока 8 версия имеет в 4 раза более крупный масштаб, псевдо 2х байтовую посылку с интеллектуальным сжатием данных, что позволило отказаться от переменного масштаба.
В добавление к масштабу. В оригинальной конструкции время отмерялось 12 MHz / 1024, а в IgorPlug2 отмеряется 12 MHz / 256. Соответственно цена деления для оригинала будет 85,3(3) микросекунды (причём первые 7 бит по 170,6(6) микросекунды) и 21,3(3) микросекунды для IgorPlug2.

Данное устройство может управлять внешними нагрузками с помощью реле. Базовая конфигурация поддерживает одно реле (причём есть возможность работы с реле автономно от компьютера). Расширенная конфигурация ШТАТНО поддерживает четыре реле. А теоретический максимум - 128 реле (при подключении до 16 дешовых и доступных сдвиговых регистров с защёлкой - 74HC595 на встроенный SPI интерфейс).

Р/л технология

Приемник команд ИК ПДУ с интерфейсом USB

Радиолюбители, повторившие конструкцию А. Зотова , убедились, насколько удобно, не подходя к компьютеру, выполнять на нем простейшие, но порой очень необходимые операции. Взаимодействие приемника команд с компьютером происходило через СОМ-порт, что накладывало некоторые ограничения на другие устройства, подключаемые к тому же порту. Ведь в современных компьютерах производители оставляют всего один разъем СОМ-порта, а в будущем, вероятнее всего, его уберут совсем. На смену пришел более универсальный и быстрый интерфейс USB. Найти свободный разъем USB несложно, на современном компьютере их достаточно много. Кроме того, устройства, снабженные этим интерфейсом, могут работать, не создавая взаимных помех.

На рис. 1 изображена схема приемника команд ИК ПДУ, взаимодействующего с компьютером по USB. Его основной элемент - микроконтроллер AT90S2313 (DD1) - выполняет преобразование принятых от модуля ИК приемника В1 команд к виду, пригодному для передачи по интерфейсу USB в компьютер. К выходу модуля В1 подключен и светодиод HL1, который мигает во время приема команды. Резистор R3 необходим для того, чтобы при соединении вилки Х1 с розеткой USB компьютера последний автоматически опознал подключенное устройство.

Чертеж печатной платы приемника и расположение на ней деталей изображены на рис. 2. Для микроконтроллера DD1 на плате установлена 20-контактная панель, все остальные детали впаяны непосредственно в плату. ИК приемник TSOP1736 можно заменить также широко распространенным SFH506-36. Тип остальных деталей значения не имеет.

Для загрузки в микроконтроллер программы я воспользовался простейшим программатором, собранным по схеме, показанной на рис. 3. Конструктивно он состоит из вилки DB25M (Х1), подключаемой к розетке порта LPT компьютера, и панели для программируемого микроконтроллера. Резисторы R1-R3 и перемычки припаяны непосредственно к соответствующим контактам вилки и панели. Программатором управляет программа IC-Prog, работа с которой подробно описана в . В списке программаторов, обслуживаемых этой программой, необходимо выбрать Fun-Card Programmer.
Порядок использования изготовленного приемника совместно с программой Girder для управления компьютером аналогичен описанному в , за исключением того, что вместо плагина для СОМ-порта Igor SFH-56 device следует использовать его обновленную версию IgorPlug-USB с поддержкой USB устройств. Для этого, выполняя п. 7 предложенной А. Зотовым процедуры настройки, следует "щелкнуть" по строке "IgorPlug-UDP/IP and IgorPlug-USB and IgorPlug-COM for WinXP" списка плагинов, нажать на экранную кнопку "Настройки" и выбрать порт USB.
В заключение стоит сказать, что такое устройство можно использовать для ввода в компьютер не только команд, но и другой цифровой информации. Если, например, вместо модуля ИК приемника установить датчик температуры (например, DS18B20) и соответствующим образом изменить программу микроконтроллера, то можно вводить по интерфейсу USB в компьютер показания этого датчика.

Программа микроконтоллера и необходимый для работы:устройства плагин можно скачать

Литература:

1. Зотов А. Управляем программами с помощью ПДУ. - Радио, 2004, № 8, с. 22, 23.
2. ATtiny2313 Product Card. - http:// atmel.com/dyn/products/product_card. asp?part_id=3229.
3. Долгий А. Модули приемников ИК сигналов. - Радио, 2005, № 1, с. 47-50.
4. Долгий А. Программаторы и программирование микроконтроллеров. - Радио, 2004, № 1- 12;


Дата публикации: 30.11.2009

Мнения читателей
  • Kennedy / 16.06.2012 - 01:12
    I"m iprmseesd you should think of something like that
  • Максим / 06.04.2012 - 12:10
    Не нужно дополнять прграмму. Нужно перепрограмировать фьюз бит CKDIV = 1 или снять с него галочку если шить понипрогом. Ну и переключить на внешний кварц.
  • waley / 05.02.2011 - 07:04
    Нужно ли дополнять программу при применении ATtiny2313-10 и каковы будут Конфигурации?

Можно запихнуть его вот так красиво в разъем - хотя я не понимаю, чего фотоприемнику делать сзади компа? Или вот интересный вариант - встроить в мышь. Только весь фокус в том, что в большинстве случаев не удастся использовать стандартный шнур от мышки (поэтому разъем у меня самодельным оказался) - в мышке не используется одна из линий, необходимых ИК приемнику в этой схеме. Т.е. придется брать шнур от модема - там линии все на месте и уже его пристраивать для мышки. Неплохое решение, но просверлить небольшое отверстие в передней стенке корпуса и спрятать все провода внутрь - еще лучше. Я так и поступлю:)
Все, с железом и пайкой закончили. Теперь вернемся к WinLIRC, причем, его освоение - это еще полпути. Не самого сложного, но очень ответственного.
После того, как подключите ИК приемник к любому COM порту (1-му или 2-му), необходимо проверить работоспособность схемы и деталей вообще. Для этого-то и лезем в пункт меню RAW data в LIRC. Давите кнопки на пульте - смотрите пакеты. Если все ок, в окошке чего-то там бегает, схему можно считать рабочей. Теперь необходимо научить программу LIRC распознавать все кнопки вашего пульта. В строчке config прописываем новое имя файла (где будет описан ваш пульт) и идет в пункт Learn. Далее - читаем, что пишут и следуем инструкциям. У меня практически на всех кнопках было 100% распознавание пакетов. После обучения необходимо проанализировать получившийся файл с RAW данными от пульта. Жмем кнопку Analyze. Программа перестроит CFG файл, где будут хранится значения всех кнопок, которые вы нажимали. Больше в программе LIRC делать нечего, сверните ее - пусть висит в трее. Потыкайте пульт - WinLIRC в трее должен отзываться зеленым светом на известные кнопки. Далее, для ходовых испытаний программы установите плагин для Winamp, который позволяет управлять плейером. Плагин необходимо сконфигурировать. Вообще, придется лазить постоянно в файлик.CF, который WinLIRC создал для вашего пульта - там находятся названия кнопок (которые вы же и давали) - вот их необходимо и прописать в свойствах плагина. Прописать надо ручками. Впрочем, разобраться несложно. Я для пробы сконфигурировал громкость (туда/сюда) и передвижение prev-next по песенкам в плейлисте. Все заработало сразу. Проблем не было.
Теперь хорошо бы подобрать программу, которая могла бы управлять виндузой, программами, кнопки всякие нажимать и пр. В общем, чтобы моща перла:)

На сайте можете найти ссылки на "компатИбле" программы, которые совместимы с WinLIRC. Т.е. программы верхнего уровня. Что предлагается:
- IREX - Работает с WinLIRC, как клиентская часть. Слишком простенькая программка. Все настройки действий прописываются ручками в отдельном cfg файле. Как простая запускалка - может и пойдет...
- IRAssistant - отстой полный - толком заставить работать мне его так и не удалось. Настройки есть какие угодно (цвета, шрифты всякие - две менюшки целых), а для настройки интерфейса с LIRC - практически ничего. Не понял я ее. Короче, можете даже не качать.
- Odtwarzacz Filmow - какая-то прилада для отдельной задачи (я ее не скачивал).
- uICE - вот это самое то что надо. Клевая штука. Чуть-чуть мне функциональности в ней не хватило, но это я после 2 часов колупаний уже придираться начал к ней:)

Вот на uICE мы и остановимся. Полное название программы - universal Infrared Control Engine. Понимает тучу всяких устройств (как железных так и системных). В том числе и LIRC. Причем, есть как сам LIRC, так и железячка, которая называется Basic LIRC device - это как раз то, что паяется из 5-ти деталек:)

Так вот. Сам uICE может работать самостоятельно и без всякого LIRC - его надо только научить всем кнопкам. Там есть большой раздел для этого. Но. Ценность LIRC в том, что он очень умно анализирует пакеты и не дает ошибок. uICE я долго пытался обучить кнопкам пульта (да, кстати, пульт я использовал от старого телевизора SONY) - он вроде обучался, но нажимая на пульте на кнопку Volume+ я мог получить обратный результат ("Volume-") и еще что-то, и вообще, все что угодно. Просто у программы uICE плохой обучающий и анализирующий блок. Мне единственный раз удалось обучить распознавать две разных безошибочно. Все. Дальше я устал, запустил WinLIRC, прописал в uICE, что отныне он будет работать с демоном WinLICR, как источником сигналов. Прописывается это несложно - достаточно указать IP машины, порт оставляем по умолчанию. Как индикатор, что я законнектился правильно, мне AtGuard сразу сказал, что кто-то ломится по порту 8765 и обратно.
Все. После этого необходимо в разделе настроек прописать пульт, кнопки (имена опять придется смотреть в.CF от WinLIRC)


это уже созданные события-отклики на кнопки

и определить действия на них. Набор действий достаточно широк, чтобы можно было делать с виндузой и программами практически все (наборы layout позволяют выполнять последовательность действий над программами).

Для TV тюнера я прописывал действия в виде Keystroke "в окно" - просто у ATI TV в ее родной софтинке есть "шустрые кнопки", которыми можно переключать каналы, менять размер окна и пр. Вот их и пихал туда. Все работает отлично. А громкость меняю системную - в uICE в настройках есть специальный раздельчик для этого. Причем, можно разрешить специальную фичу, когда будет показываться типа "меню на экране" - как в обычном телевизоре - когда жмешь на пульте громкость - появляесть "прогресс-бар" и чего-то там двигает. Короче, все как надо:)

Таким образом, как нижний драйвер используеся WinLIRC, который умеет очень хорошо работать с распознаванием пакетов (обучением любому пульту), а в качестве программы верхнего уровня используется программа uICE. Это хороший копмлект для управления компьютером.
Впрочем, с помощью пульта можно не только плейера и телевизоры запускать. Например, можно организовать систему персонального доступа - т.е. к твоему компу никто не подойдет, а ты в любой момент нажал кнопку на пульте - и хранитель экрана прекратил работу, нажал - вошел в сетку и т.п.
Короче, нафантазировать можно все что хочешь. Есть ведь очень маленькие пульты - их можно с собой носить как брелок для ключей:)

Вроде все описал, что надо было.
Теперь, еще раз ссылки

Похожие статьи