Рулим компьютером с помощью лентяйки (пульт ДУ)

Опубліковано: 10 травня 2017р. 12:44
Я їжджу на ВАЗ / LADA 21072
Кривий Ріг, Україна

Наши руки не для скуки…
Вступление (что к чему и почему…)
У меня комп в основном используется как аудио-видео плеер. Подключен по HDMI к телику и через аудиокарту Audigy2 ZS к двум комплектам усилителей с колонками. Такое 4.0 на 50 советских ватт в каждый канал.
Системник с монитором и клавиатурой с мышью живут на балконе, а в комнату с аппаратурой протянута USB переноска с приемником для беспроводной мыши и клавиатуры.
Хоть беспроводная клавиатура с мультимедиа клавишами, но держать под боком на диване это одоробло на дофига клавиш — как-то не то…
Наткнулся я как-то на статейку про такое ПО как LIRC (Linux Infra Red Control). А так как я являюсь пользователем систем из семейства *nix, меня эта тема заинтересовала.
Смысл темы в том, что с помощью нехитрых действ можно подружить с компом пульт от видика/телека/магнитофона/муз.центра/кондиционера/прочей_фигни.
Ближе к телу…
1) Нам понадобится ИК-приемник.
Где его взять? Что за глупый вопрос — самому сделать!
Я пошел по пути наименьшего сопротивления, приемник у меня будет цепляться на COM-порт материнки.
На сайте проекта LIRC есть схемы приемников. Например вот:

схема ИК-приемника на COM-порт

Но у меня собран приемник по такой схеме:

Мой приемник

В куче компьютерного хлама была найдена мышь на COM-порт и лишена хвоста. Онный разобран…

… и переделан

Оказалось что внутри не все контактные площадки, а те что есть — не совпадают с нужными. Пришлось переделывать.

Штекер готов!

Для платы приемника был использован кусок текстолита от китайской "балалайки" с "лампоськами" в колонках с одной из этих "лампочек".

Немножко по сверлили, немножко по паяли…
С обратной стороны…

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

Подпаял второй конец 10метровго кабеля…

Теперь его нужно определить в какой-то корпус. Например нерабочий блок питания от Ethernet-свитча.

Готово!

Теперь его можно куда-то пристроить, но в зоне видимости пульта. У меня он в таком корпусе прекрасно занял место в свободной розетке рядом с теликом)) (внутренняя часть контактов в корпусе срезана).
2) Пульт ДУ
Берем любой какой найдем, главное что бы был рабочий. Вставляем батарейки, давим на кнопки и смотрим на излучатель через камеру мобильного телефона/фотоаппарата (не зеркалки!). Если излучатель мигает, значит пульт рабочий.
У меня этим пультом оказался пульт от японского видика фирмы Realistic (oн же Sanyo, чистый иппонец, на 110В питания)
3) Компутер, как подружить и обучить…
Изначально софт для данного дела создавался под ОС Linux, но потом его сделали и для платформы Windows.
Для начала опишу как подружить это дело с Windows.
Скачиваем программу WinLIRC, (на момент написания темы, последняя версия программы ) распаковываем куда-то и запускаем.
Софтина ругнется что не может там чего-то найти и предложит настроиться, давим ОК и высвечивается окошко:

Настройки

Input Plugin выбираем "SerialDevice", далее жмем "Plugin Setup" и делаем как на картинке. На нашем ИК-приемнике должен засветиться светодиод. ИК-приемник с компом готовы принимать сигналы.
Дальше в "Remote Configs" жмем "Create Config" и следуем инструкции в открывшемся окне. Жмем клавиши для определения характеристик сигнала, потом поочередно, подписывая их. Я подписывал клавиши так, как они обозначены на пульте, что б потом проще было их назначить в программах. При нажатии клавиш пульта, светодиод ИК-приемника должен гаснуть.
После того как будет создан конфиг, самое время настроить прочее ПО в котором есть поддержка WinLIRC.
Media Player Classic

Настройки-Клавиши-галочка возле WinLIRC-Выбираем функцию и пролистываем до колонки RemoteCmd-вписываем клавишу пульта

Клавишу пульта выбираете сами какую хотите, название ее писать то, которое давали при настройке WinLIRC.
Foobar2000
Скачиваем плагин foolirc, распаковываем и закидываем dll-ку в папку components установленного плеера. Запускаем плеер для настройки:

foobar2000

Настройки — WinLIRC Client — ставим галку Enabled — давим Connect — выбираем функцию — давим клавишу на лентяйке — проверяем правильность определенной кнопки в окне Key (будет писать то название кнопки которое вы дали) — жмем Assign — настраиваем дальнейшие функции пока не надоест или не кончатся кнопки — Apply — Ok — пользуемся.

Настройка сего девайса в ОС семейства Linux
Вариаций ОС этого семейства существует великое множество. Каждая из них со своими особенностями и правилами, но в общем они все похожи. В силу того, что с 2008г у меня в качестве домашней ОС используется Gentoo Linux, то описание будет применительно к нему. Но его можно использовать и для других дистров с "поправкой на ветер". Так как Gentoo собирается из исходных кодов пользователем, у меня она собрана с самой минимальной поддержкой нужных мне вещей.
И еще, в Linux можно бесконечно кликать мышкой настраивая что-то, а можно прямой правкой в "блокноте" конфигурационных файлов и через консоль настроить все за пару минут. Я выбрал вариант консоли и "блокнота".
Получаем права root (консоль, su или sudo -s) и понеслась:
1) Включаем поддержку данного девайса в ядре (или устанавливаем необходимые модули ядра)
Идем по адресу:
device drivers -> multimedia support -> remote controller decoders (выбираем всех) -> remote controller devices -> homebrew serial port receiver (выбираем как module) -> serial port transmitter
Затем в
device drivers -> staging drivers -> media staging drivers -> Linux Infrared Remote Control IR receiver/transmitter drivers -> Built-in SIR IrDA port (как модуль)
2) пробный запуск
# setserial /dev/ttyS0 uart none
# modprobe serial_ir (или sir, или lirc_serial) irq=4 io=0x3f8

Светодиод загорелся, при нажатии кнопок моргает? все ок.
3) автозапуск модуля
В файл в файл /etc/serial.conf вносим
/dev/ttyS0 uart none
У меня используется система инициации OpenRC (для systemd — гуглим сами)
# rc-update add serial default
в файл /etc/modprobe.d/lirc.conf вносим
alias char-major-61 serial_ir (или sir, или lirc_serial)
alias /dev/lirc* serial_ir (или sir, или lirc_serial)
options serial_ir (или sir, или lirc_serial) irq=4 io=0x3f8
install serial_ir setserial /dev/ttyS0 uart none; modprobe --ignore-install serial_ir (или sir, или lirc_serial)

в файл /etc/conf.d/modules
modules="serial_ir" (или sir, или lirc_serial)
Все, железо у нас прописано, черед софта:
Железо самодельное, по этому убираем/переименовываем следующий файл
/etc/lirc/lircd.conf.d/devinput.lircd.conf
4) смотрим как видит ИК-приемник система
# mode2 --driver default --list-devices
видим что-то типа такого (например у меня так):
/dev/lirc0
5) проверяем связь
# mode2 --driver default --device /dev/lirc0
должно быть что-то типа такого при нажатии клавиш на пульте:
space 16777215
pulse 8947
6)программируем пульт
irrecord --disable-namespace --driver=default --device /dev/lirc0 lircd.conf
Аналогично виндовому процессу, давим кнопки и обзываем их.
созданный файл имя_пульта.lircd.conf сохраняем под именем lircd.conf в папке /etc/lirc
7) проверяем правильность кнопок
lircd --nodaemon --device /dev/lirc0 --driver default
открываем новую консоль, запускаем irw и давим кнопки пульта, выскакиваемые строки должны соответствовать нажатым кнопкам.
8) правим файл /etc/lirc/lirc_options.conf на предмет
driver = default
9) запускаем демона
/etc/init.d/lircd start
10) проверяем работу с помощью irw (как при программировании пульта)
11) добавляем в автозагрузку
rc-update add lircd default
14)настраиваем софт
Создаем образцы файлов:
# lirc-config-tool
забираем из /root/.config/lirc файлы в одноименный каталог своего пользователя.
создаем кофигурационный файл у своего пользователя
$ touch ~/.lircrc
и вносим в него список программ которые будут управляться лентяйкой
include "~/.config/lirc/mplayer.lircrc"
include "~/.config/lirc/имя_еще_нужной_программы.lircrc"
далее открываем поочередно перечисленные файлы и назначаем кнопки (например перемотка назад в mplayer)
begin
prog = mplayer
button = кнопка_пульта
config = seek -30 0
end

Примеры таких настроек можно найти по запросу в гугле.

0 0

Коментарі

Щоб залишати коментарі, потрібно авторизуватись.