Главная » 2010 » Июль » 2 » Дистанционный пульт и компьютер
15:28
Дистанционный пульт и компьютер
Лень - двгатель прогресса.

Я помню времена, когда дистанционно управляли телевизором только с помощью швабры. Недостатки такого "пульта дистанционного управления" налицо. Во-первых, расстояние до приемника не более 2 метров с учетом вытянутой руки с пультом. Во-вторых, в момент большой приборки пульт недоступен, ибо выполняет свои основные функции. В третьих, кнопочки маленькие, а рабочая площадь большая, не всегда удается попасть в нужную кнопку. 

Но прогресс неумолимо движется вперед, и вот уже мы заходим в магазин CD-дисков не для того, чтоб купить себе кино на вечер, а чтобы выбрать, что скачать с торрента. И, глядючи интересную фильму, возлежа с кружкой чая на диване, в самый ответственный момент материмся, подпрыгиваем и бежим к компу, чтобы тырканьем в клавиатуру отмотать кино на несколько предыдущих кадров. Нет, не так должен быть устроен наш быт! Вот "зомбоящик" - изобретение ушедшего века - каждый же снабжен "лентяйкой"! До каких пор я буду привязан к клавиатуре? Доколе?! - воскликнул я в сердцах и взялся за дело.

Реализация идеи с помощью беспроводных клавы и мыши была отметена сходу. Считаю, что пульт ДУ со 101 клавишей - явный перебор, а елозить мышкой по пледу - то еще извращение. Будем, как все нормальные теле- и кинозрители пользоваться инфракрасным пультом, желательно тем, который в доме уже есть - от пылящегося на почетном месте телевизора.

Открыл сайт, названый в честь великого русско-украинского писателя Н.В.Гоголя - т.е. Google. Набрал в строке поиска "Управление компьютером с дивана" и стал изучать предлагаемые материалы. По результатам изучения сделал несколько выводов:

1. Идея не нова.
2. Скорее всего, реализорвать ее удастся.
3. Программа ПерехватЪ - отстой полный. К тому же работает только под виндой - жуткое убожество.
Есть широко известное в узких кругах Линуксоидов приложение - lirc. В программном плане именно то, что "доктор прописал". Этот живчик (lirc, а не доктор) подключается к ИК-приемнику, получающему сигналы с пульта, обрабатывает-расшифровывает их и передает системе. Официальный сайт здесь. Но прежде чем его ставить, надо озаботиться аппаратной частью - ИК-приемником.

Ну чего там озабочиваться-то?! Пошел в магазин и купил! Ага. Именно так я и сделал. Пошел и купил ИК-порт, который встретился мне первым. Очень повезло незалежаться на прилавке некоему безымянному созданию с USB-интерфейсом. Теперь оно пылится в сторонке, дожидаясь, когда до него дойдут руки.

В системе эта финтифлюшка отображалась так:
$ lsusb
Bus 002 Device 003: ID 18ec:3118 

Гугление по строке 18ec:3118 повергло меня в уныние - интернет-сообщество разводило руками, лишь в одном месте  рассказывалось, как объяснить системе, с чем есть эту штуку. Объяснил. Ubuntu съела и выдала, что оказывается, это Arcmicro. Потирая руки, я взялся за скрещивание нового зверька с lirc`ом.

Через два дня безуспешных попыток под разними ОСями, на разных аппаратных платформах, мне пришло в годову, что что-то здесь не так. Я даже засомневался в своих способностях и подумал, что у меня руки растут не из того места, где обычно. Тогда я прошелся по квартире и попробовал свои силы на выключателях. Свет в комнате, на кухне и в ванной включался вполне удовлетворительно. Кран в ванной также адекватно отреагировал на мои попытки получить воду. Это все значительно подняло мою самооценку и я, как нормальный герой, пошел "в обход" - через COM-порт. 

Прекратив заморачиваться с USB-устройствами китайского производства, спокойно спаял ИК-приемник для COM-порта, благо схем, описаний и HOWTO в интернете на эту тему - навалом. Собирал вот по этой схеме.


Наладки не требует. Испробовал на Suse. После некоторых манипуляций с конфигами Lirc, все-таки удалось получить на экране raw-коды от пульта. Ура! Я аж подпрыгнул. LIRC_DEVICE=/dev/lirc0 и LIRC_MODULE=lirc_serial/ Элементарно!

С Ubuntu все пошло не так гладко. Приемник (точно работающий!!) не хотел принимать ничего от пульта ДУ, который я яростно жал. Пришлось продолжить поиски в Интернете для решения этой проблемы. Оказалось, что действительно, в репозитариях Ubuntu лежит нерабочий модуль lirc_serial. Так что для того, чтобы все заработало, пришлось выкачать и установить lirc с официального сайта, а потом уже "поверх" закатать lirc из репозитария, не устанавливая пакет lirc-modules-source. Кстати, при установке пакета с официального сайта натолкнулся на странные сообщения об ошибке - dialog not found. Не сразу я догадался, что dialog - это пакет, который следует установить (sudo apt-get install dialog).

Вот такими обходными маневрами мне удалось увидеть, что выдает программа mode2 при нажатии на клавиши пульта. А программа xmode2 очень эффектно отображает на экране форму сигнала!!

Ну вот, сигналы в компьютер уже попадают, осталось научить lirc их расшифровывать, применительно к имеющемуся пульту. На lirc.com очень много конфигураций для разных пультов, но не думаю, что перебирать их - легкий путь. Мне показалось быстрей и проще создать свой конфиг с помощью irrecord. Не забываем остановить демон lircd перед запуском этой проги - /etc/init.d/lirc stop. Подкидываем созданный конфиг и проверяем, что irw корректно отображает нажатые клавиши.

Чтобы команды передавались приложениям (в моем случае это великолепный медиа-центр xbmc), помещаем в автозагрузку irexec -d. Все. Смотрим кино с дивана и управляем с пульта.))

Резюмируя:демон lirc получает и обрабатывает информацию от устройства(в данном случае /dev/ttyS0 через модуль lirc_serial). Проверить raw-коды можно с помощью mode2 или xmode2. Если в файле, указанном в переменной LIRC_CONFIG, находится соответствующая коду клавиша, то lirc передает эту информацию в систему. Для проверки - irw. Демон irexec передает информацию о клавишах приложениям. Все настройки и переменные lirc доступны в conf-файлах, лежащих обычно в /etc/lirc/ (в Suse - /etc/sysconfig/ и легко-доступны для редактирования через апплет Yast "Редактор системной конфигурации -> Hardware -> Lirc)

Ссылки в тему:
ИТ-механика
Использование пульта ДУ в Линукс
Баг Lirc Ubuntu-9.10 
WinLirc - порт Lirc для windows

Просмотров: 1619 | Добавил: D-Raven | Рейтинг: 0.0/0
0 Нравится
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа
Поиск
Календарь
«  Июль 2010  »
ПнВтСрЧтПтСбВс
   1234
567891011
12131415161718
19202122232425
262728293031
Архив записей
Друзья сайта
  • D-Raven project
  • mysuse.ucoz.ua
  • hitechnews.at.ua
  • creative-ds
  • -VovkoZ-
  • Lugansk Linux User Group
  • GoodFood - здоровое питание
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0


    Проверка тиц