Персональный проект Александра Чижова, Иркутск 1998-2006Компьютерный журнал Cooler | скачать новые компьютерные игры | гаджеты | астрономия | обзоры программиста System's temperature
recent issueaboutarchiveLive TAMrubricatorlinksBooks digestComments
Компьютерный журнал "Cooler" Александра Чижова (Иркутск)
prev 2 апреля 2001

next

"Никто не сплетничает о тайных добродетелях других людей."
N246

Сегодня номер не такой большой будет по количеству статей. Просто решил посвятить выпуск целиком ИК управлению компьютером. И полностью разобраться с этой темой.

С предыдущей публикации о прикручивании IR управления к компьютеру пришло достаточно писем со всякими ссылками, схемами и программами. С помощью этих писем и ссылок надеюсь окончательно поставить точку в этой эпопее.
Итак, постановка задачи: необходимо научить комп "слушать" [любой] пульт ДУ. В принципе, ИК пакеты, генерируемые пультами имеют небольшую частоту - порядка 30-40кГц (исключение составляют лишь некоторые пульты Panasonic, где частоты посылок достигают 400кГц). Это первое. Второе - заставить его запускать программы, "нажимать" на кнопки и т.п. Это уже чисто софтовая часть.
Что имеем: посылки любого пульта последовательны по своему принципу и каким-то образом закодированы. Логичнее всего было бы и принимать их последовательно. Для этого есть последовательный порт. Подойдет, разумеется, практически любой [телевизионный] IR приемник.
Потом все пакеты должна выучить программа, которая будет узнавать нажатия разных клавиш пульта. Эта же программа может и управлять всем остальным (нажимать кнопки, регулировать громкость и т.п.).
А можно ее реализовать в виде драйвера (сервиса), а верхний уровень управления отдать другим разработкам.

Как раз для такаих задач существует проект для Linux"a LIRC (linux infrared control), который был успешно портирован для Windows. Так и называется - WinLIRC.
Программа цепляет на себя не только функции управления последовательным портом (чтобы читать оттуда ИК пакеты), но и работает в качестве демона по IP протоколу и отдает команды на определенный порт. Это очень удобно. Т.е. можно приемник поставить на одной тачке, а управлять программа будет другой (отдаленной) тачкой (или даже несколькими). Как это сделать - об этом позже.

Программу WinLIRC можно скачать на оригинальном сайте, но весь софт я выложу в отдельной директории у себя "для комплекту". Сылки в конце статьи.
WinLIRC является только демоном и ничем сама не управляет. Для управления необходимы надстройки. Есть на сайте еще плагин для Winamp, который разработан и заточен конкретно под WinLIRC, но он управляет только Winamp-ом.

WinLIRC

После запуска программа скажет, что ее необходимо сконфигурировать. В строчке config можно на первое время подставить родной файлик sample.cf, который идет с ней, потом выбрать COM порт и жать кнопку Raw Codes. Дальше вывалится окошко и программа будет ждать сигналов из последовательного порта. Дальше жмите кнопки на пульте - смотрите, что происходит в окошке. Там программа будет показывать сами пакеты. Ну, RAW-дата и есть raw-дата.

Ок. Теперь надо отвлечься на сборку ИК приемника. Одн из читателей прислал мне простую схемку... Впрочем, вот письмо:

From: Александр Маслов
Subj: IR remote control
WinLIRC, про которую я писал (http://winlirc.sourceforge.net/) есть в исходниках с плагином под WinAmp, довольно интелектуальна, она пытается разобрать поток, и если у нее не получается работает с RAW (из всех проверенных мной пультов разных фирм (около 7), только один работал с RAW, остальные красиво с кодом, просто у этого одного Panasonic несущая была около 400 кГц (очень короткие импульсы), а приемник IR расчитан на 38 кГц (в пределе 36-40 кГц)).
Схемку железки я использовал еще проще, отлично работает (использовать стабилизатор 7805 не вижу смысла т.к. ток потребления самой 7805 и IR модуля соизмеримы). Используемая ОС Windows NT 4.0/2000, хотя работаь будет под любой Windows (95/98/ME).

подключение ИК-приемника к COM порту

Это схема, которую и прислал Александр. Огромная ему благодарность. Проще, наверное, и не бывает. Вопрос в том, какой ИК приемник выбрать и где его купить?
Я решил просто пойти в ближайший магазин радиодеталей и купить все детали до единой. ИК приемников было всего два вида - я попросил первый попавшийся, удостоверившись, что он "от телевизора". Попался какой-то TK1833. Слышал я о нем первый раз в жизни. Решил посмотреть в интернете - что за зверь. Абсолютно ничего, кроме мелкого упоминания на каком-то складе не нашел.А нужна была хотя бы разводка ножек.

TK1833

IR-Receiver
TK1833

выпуклостью к себе, слева-направо:
DCD (сигнал), GND (общий), RTS (питание +)

Ладно, не буду углубляться в разные мелочи. Разводку я дал, схему тоже. Пора собирать. Хотя собирать-то особо нечего. Единственно, что может еще понадобится - female разъем для COM-порта. Диод я взял КД521 (можно и 522 и др. подобные кремниевые), конденсатор 10мкф,16v. Обошлись все детали по Иркутским ценам в 54 рубля ровно. Самым дорогим оказался ИК приемник (51 руб.)

Получилась у меня вот такая штука. Разводка по разъему female - в соответствии с цифрами, которые есть на схеме. Впрочем, на фотке я еще продублировал визуально (первый (1) - слева вверху, пятый (5) - справа, красный (7) - внизу). Сам фотоприемник, видимо, уже так сделан, что никаких красных стекол не надо, никаких экранов тоже - у меня помех не было никаких.

 

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

На сайте WinLIRC можете найти ссылки на "компатИбле" программы, которые совместимы с 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. Это хороший копмлект для управления компьютером.
Впрочем, с помощью пульта можно не только плейера и телевизоры запускать. Например, можно организовать систему персонального доступа - т.е. к твоему компу никто не подойдет, а ты в любой момент нажал кнопку на пульте - и хранитель экрана прекратил работу, нажал - вошел в сетку и т.п.
Короче, нафантазировать можно все что хочешь. Есть ведь очень маленькие пульты - их можно с собой носить как брелок для ключей :)

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

http://winlirc.sourceforge.net/ - виндузая версия LIRC (Linix IR control). Т.е. порт;
http://www.lirc.org/receivers.html - описание LIRC со схемами и списком IR приемников;
http://gware.virtualave.net/index.htm - сайт программы uICE (The universal Infrared Control Engine);
http://www.pcremotecontrol.com/info.html - еще один клиент для WinLIRC;

Файлы:
WinLIRC [90kb] - внутри еще есть и исходники, запускать WINLIRC.EXE ;
GEN_IR [80kb] - из всего пака (там исходники еще) необходим только GEN_IR.DLL;
uICE [1Mb], 1Mb - без runtime файлов. с ними - на оригинальном сайте. Для Win98 все идет и так;

Еще одна программа. Называется Girder (v3.0.21) - в принципе, похожа на uICE, но гораздо менее функциональна. Тоже работает с TCP/IP сервером (WinLIRC) и есть блок самообучения.

Для тех, кто будет качать с моего FTP - я повторюсь, что сущесвует ограничение на 20 одновременных соединений, поэтому смотрите info, которое вам отдает ftp сервер.

Особые благодарности Александру М.

Вместо "One MP3 file":

Специально для любителей германской группы Rammstein, новый альбом Mutter можно скачать отсюда.

стиль - Industrial (Metal)

RastedFaith - совершенно опупенный дизайн, изготовленный на Flash. Все делал Стивен Гарофало (Steven Garofalo). Несколько, конечно, завернутая на мистику (и на dark) у него фантазия, но надо сходить, хотя бы просто поглядеть, _как_ делаются всякие фишки. У человека фантазия работает на все 100.

ссылку прислал Bonez

Один из читателей прислал ссылочку на сайтик, который рекламирует вот такие приспособления для повышения прыгуческти. Там разные модели есть (для разного веса) - вроде как до 2 метров в высоту позволяют прыгать. И еще - очень быстро передвигаться.

Называются эти "коньки" - PowerStrip. Принцип, я думаю, и так понятен - очень упрукая пластина помогает подпрыгнуть.... Как они надеваются - подробнее глянете на сайте. Я вот так сразу и не понял сначала :)

прислал Marius P.

Тут подошло письмо насчет PowerSkip. Оказывается, на них очередь на 2,5 месяца вперед и стоят они, соответственно такому спросу - $1300. Это еще не учитывая доставку.
Обувной бизнес - это очень выгодно :)

цену прислал Павел

А вот здесь находится баннер, который явно просится в раздел для таких баннерных приколов к Экслеру.
Оооочень двусмысленно :))

ссылку прислал Igorx

prev

[ Архив+поиск ]-[ все комментарии ]-[ Жизнь ТАМ ]
[ Хакеры ] [ Журнал WebSound ]
[ обзор книг ] [ mouseimp ] [ биржа труда ] [ Ссылки ]
[RSS feed simple]    [RSS feed simple 2]    [RSS feed complete]

next
Универсальный измеритель
Универсальный измеритель


роботы игрушки
роботы игрушки


найди птичку
найди птичку


CrossPad
CrossPad


MEMS
MEMS


развлекаемся
развлекаемся


mini-ITX
mini-ITX


Пишите! Мне интересно будет Ваше мнение, замечания и пожелания. Указывайте в письме НЕсогласие на опубликование. Если ничего не будет указано - публикую по своему усмотрению. Если письмо не личное, конечно...


это мой е-майл Боря делал дизайн

Градиент
Компьютерный журнал "Cooler". Авторство и выпуски Александр Чижов. Иркутск
1998-2009
Рейтинг@Mail.ru
Cooler
WWWoman - лучший WM!!
Exler.RU
EZHE
Rambler counter PcTuner.Ru - Компьютерные TV и FM тюнеры InterComp - Все о компьютерах

iXBT compatible award

Журнал поддерживает Иркутская фирмаDARS