Начнем с ИК-приемника. Тут вариантов несколько: использовать готовый от ТВ-тюнеров или еще откуда нибудь или сделать его самому. У меня первого не оказалось, поэтому было решено паять самому.
Делал вот по этой схеме
Диода 1N4148 у меня не оказалось, почитав в интернете выяснилось, что его можно заменить на КД503. А сам приемник (TSOP 1738) можно заменить любым 5ти вольтовым.
Все это можно купить в любом радио-магазине не более чем за 100р.
Пульт ДУ я взял от старенького видео-магнитофона LG (он небольшой и его прекрасно понимал приемник).
Теперь нужно настроить программную часть, а именно LIRC.
Устанавливаем LIRC:
Код: Выделить всё
# sudo aptitude install lirc liblircclient0 lirc-modules-source setserial
для сборки модуля ядра нам понадобится еще и module-assistant и исходники ядра, поэтому даем еще одну команду:
Код: Выделить всё
# sudo aptitude install module-assistant linux-headers-$(uname -r)
Далее набираем в консоли
Код: Выделить всё
# sudo dpkg-reconfigure lirc-modules-source
Здесь выбираем "serial", т.к. именно он будет ипользоваться приемником, собранным по данной схеме.
Далее у нас спрашивают тип поддержаваемых устройств, тут выбираем "ANIMAX" (почему именно это, сам не знаю, прочел на каком-то итальянском форуме).
На следуюшие 2 вопроса отвечаем отрицательно. Жмем ОК. Если приемник висит на COM1, то оставляем 0x3f8, если на COM2, то 0x2f8. IRQ для СОМ1 4, для СОМ2 3. Дальше выбираем "Установить локальную версию файла" и жмем ОК.
Теперь собственно сборка модуля:
Код: Выделить всё
# sudo m-a update,prepare
# sudo m-a clean lirc
# sudo m-a a-i lirc
Устанавливаем модуль:
Код: Выделить всё
# sudo depmod -a
В файле /var/lib/setserial/autoserial.conf прописываем это если приемник на СОМ1:
Код: Выделить всё
/dev/ttyS0 uart none
или это если приемник на СОМ2.
Код: Выделить всё
/dev/ttyS1 uart none
Копируем этот файл в /etc
Код: Выделить всё
# sudo cp /var/lib/setserial/autoserial.conf /etc/serial.conf
Подгружаем собранный модуль:
Код: Выделить всё
# sudo modprobe lirc_serial
смотрим подгрузился он или нет
Код: Выделить всё
# lsmod | grep lirc
Должно быть примерно так:
Код: Выделить всё
evgeny@desktop: ~$ lsmod | grep lirc
lirc_serial 12020 1
lirc_dev 10548 1 lirc_serial
Сейчас можно проверить работает наш приемник или нет. Для этого набираем следующую команду:
Код: Выделить всё
# mode2
направляем пульт на приемник и жмем разные кнопочки, мы должны увидеть примерно это
Код: Выделить всё
evgeny@desktop: ~$ mode2
space 3078511
pulse 9025
space 4417
pulse 663
space 454
pulse 664
space 1570
pulse 663
space 1568
pulse 668
space 1565
pulse 663
.....
если при нажатии кнопок появляются эти символы, значит наш приемник исправно работает.
Продолжим настройку.
Создадим файл /etc/lirc/hardware.conf (если его нет) со следующим содержанием:
Код: Выделить всё
LOAD_MODULES=true
MODULES="lirc_serial"
LIRCD_CONF="/etc/lirc/lircd.conf"
Настройка LIRC почти закончена, пробуем запустить его:
Код: Выделить всё
# sudo /etc/init.d/lirc start
Starting lirc daemon: lircd.
Теперь осталось только сделать конфиг пульта (ленивые могут поискать готовый для своего пульта на сайте www.lirc.org)
Для создания своего конфига запускаем специальную программу:
Код: Выделить всё
# irrecord -d /dev/lirc0 ~/lircd.conf
Нажимаем 2 раза Enter. Здесь нас просят понажимать кнопки на пульте, должны пройти две полоски по 80 точек. После этого появится приглашение ввести имя считываемой кнопки
Код: Выделить всё
Please enter the name for the next button (press <ENTER> to finish recording)
Вводим имя кнопки (например: PLAY) и жмем Enter. Повторяем это для всех остальных кнопок пульта. Главное при создании конфига пульта не медлить, если программа не дождется от вас действий в течении 5 сек, то она оборвет создание конфига и прийдется начинать все с начала.
Записанный конфиг копируем в /etc/lirc/lircd.conf
Код: Выделить всё
# sudo cp ~/lircd.conf /etc/lirc/lircd.conf
Проверить как работает пульт можно командой irw, она же показывает имя нажимаемой кнопки
Код: Выделить всё
# irw
00000000768910ef 00 play LG
00000000768910ef 01 play LG
000000007689c03f 00 ff LG
000000007689c03f 01 ff LG
00000000768940bf 00 rew LG
00000000768940bf 01 rew LG
00000000768909f6 00 right LG
00000000768909f6 01 right LG
00000000768912ed 00 speed LG
00000000768912ed 01 speed LG
Если при нажати кнопки irw показывает ее 2-3 раза это не страшно, LIRC это умеет обрабатывать.
Теперь осталось только создать конфиг для приложений, которыми мы будем управлять дистанционно. Управляться с LIRC могут не все приложения, а только те которые имеют его поддержку. Я приведу пример настройки MPLayer и Audacious.
Эти настройки хранятся в файле ~/.lircrc или /etc/lirc/lircrc
Код: Выделить всё
begin
button = ff (имя кнопки)
prog = mplayer (имя приложения)
config = seek 10 (команда приложения)
repeat = 1 (повторять действие, когда удерживается кнопка, 0 - не повторять)
end
Для примера вот конфиг:
Код: Выделить всё
####################################
# Audacious #
####################################
#воспроизведение
begin
prog = audacious
button = play
config = PLAY
repeat = 0
end
#пауза
begin
prog = audacious
button = pause
config = PAUSE
repeat = 0
end
#стоп
begin
prog = audacious
button = stop
config = STOP
repeat = 0
end
#песня вперед
begin
prog = audacious
button = ff
config = NEXT
repeat = 0
end
#песня назад
begin
prog = audacious
button = rew
config = PREV
repeat = 0
end
#громкость +
begin
prog = audacious
button = right
config = VOL_UP
repeat = 1
end
#громкость -
begin
prog = audacious
button = left
config = VOL_DOWN
repeat = 1
end
#звук вкл/выкл
begin
prog = audacious
button = speed
config = MUTE
repeat = 0
end
#перемотка вперед
begin
prog = audacious
button = eject
config = FWD
repeat = 1
end
####################################
# MPlayer #
####################################
#Звук +
begin
button = right
prog = mplayer
config = volume 1
repeat = 1
end
#Звук -
begin
button = left
prog = mplayer
config = volume -1
repeat = 1
end
#старт\стоп воспроизведение
begin
button = pause
prog = mplayer
config = pause
end
#во весь экран
begin
button = menu
prog = mplayer
config = vo_fullscreen
end
#прокрутка назад на 10 секунд
begin
button = rew
prog = mplayer
config = seek -10
end
#прокрутка вперед на 10 секунд
begin
button = ff
prog = mplayer
config = seek 10
end
#Закрыть mplayer
begin
button = power
prog = mplayer
config = q
end
Для работы Audacious нужно включить плагин LIRC: Настройки -> Модули -> Общие -> LIRC plugin.
Ну вот и все, теперь можно валяясь на диване переключать песни и т.д. Удачи)