Orange Pi Zero, подключение и настройка ИК пульта в Debian Stretch
В новой версии Debian под кодовым названием Stretch, LIRC подрос до версии 0.9.4. Поэтому прикручивание ИК пульта отличается от танцев с Debian Jessie.
Загружаем PuTTY или Xshell 6, вписываем IP и устанавливаем SSH соединение на порту 22. Вводим логин и пароль. Загружаем текстовое меню:
root@orangepizero:~# sudo armbian-config

Идем в System -> Hardware и ставим галочку на против cir. Перегружем апельсин. Через меню Network -> wlan0 -> Install IR устанавливаем пакеты LIRC.
Теперь загружаем ИК модуль ядра, который по умолчанию отключен в Debian от Armbian:
root@orangepizero:~# sudo modprobe sunxi_cir
Посмотреть загрузился ли модуль можно командой выводящей список всех активных модулей ядра:
root@orangepizero:~# sudo lsmod
Добавляем ИК модуль ядра в автозагрузку иначе после reboot все придется повторять заново. Загружаем Midnight Commander и идем в папку etc/modules-load.d/ открываем файл @modules.conf на запись командой F4 и добавляем строку sunxi_cir как на картинке.

Теперь сконфигурируем LIRC. Идем в папку etc/lirc/ открываем файл lirc_options.conf и меняем две строчки:
driver = default
device = /dev/lirc0
device = /dev/lirc0
Следующий этап обучить LIRC понимать пульт. Идем по адресу http://lirc.sourceforge.net/remotes/, ищем свой пульт и кидаем файл с раширением .conf в папку etc/lirc/lircd.conf.d/. Если не нашелся то останавливаем LIRC чтоб не мешал:
root@orangepizero:~# sudo service lirc stop
Запускаем процесс обучения LIRC новому пульту:
root@orangepizero:~# sudo irrecord --disable-namespace -H default -d /dev/lirc0 etc/lirc/lircd.conf.d/mylircd.conf
Для определения header, gap и bit mask пульта нажимаем на все кнопки пока irrecord-у не надоест. Повторяем процедуру 2 раза. В появившемся приглашении пишем название клавиши, на пример KEY_CH-. Нажимаем и удерживаем клавишу "CH-" до следующего приглашения. Повторяем пока не закончатся клавиши.
Пульт так же можно купить. Я взял с eBay за $1.3. Конфиг на него лежит тут. Бонусом идет ИК приемник HX1838/VS1838. Батарейку CR2025 продавец зажал. Дома нашлась и подошла CR2032. Переименовываем lircd.conf в carMP3.lircd.conf и копируем в etc/lirc/lircd.conf.d/.

дешманский пульт с eBay
После того как файл пульта создан/скопирован добавляем строчку в файл lircd.conf из папки etc/lirc/:
include "etc/lirc/lircd.conf.d/имявашегофайла.conf"
Теперь перезапускаем LIRC:
root@orangepizero:~# sudo service lirc start
Для проверки конфига пульта выполняем команду:
root@orangepizero:~# sudo irw /var/run/lirc/lircd
Нажимаем кнопки на пульте. В терминале дожна появится комнда, её имя и марка пульта если она прописана в файле.

Для дистанционного управления Logitech Media Server через Command Line Interface нам понабится telnet:
root@orangepizero:~# sudo apt-get install expect telnet
Последний шаг - модификация файла irexec.lircrc в папке etc/lirc/. В нем описывается как приложения должны реагировать на нажатие клавиш. Копируем текст и сохраняем (если у вас другой пульт, то поля remote и button придется заменить на свои):
# telnet is required to control Logitech Media Server via Command Line Interface
# sudo apt-get install expect telnet
begin
prog = irexec
remote = CAR_MP3
button = KEY_CH
repeat = 0
delay = 5000
config = sudo shutdown -h now
end
begin
prog = irexec
remote = CAR_MP3
button = KEY_VOL-
repeat = 0
delay = 0
config = echo "mixer volume -2.5" | telnet orangepizero 9090
end
begin
prog = irexec
remote = CAR_MP3
button = KEY_VOL+
repeat = 0
delay = 0
config = echo "mixer volume +2.5" | telnet orangepizero 9090
end
begin
prog = irexec
remote = CAR_MP3
button = KEY_EQ
repeat = 0
delay = 0
config = echo "mixer muting toggle" | telnet orangepizero 9090
end
begin
prog = irexec
remote = CAR_MP3
button = KEY_PLAY_PAUSE
repeat = 0
delay = 0
config = echo "pause" | telnet orangepizero 9090
end
begin
prog = irexec
remote = CAR_MP3
button = KEY_PREV
repeat = 0
delay = 0
config = echo "playlist index -1" | telnet orangepizero 9090
end
begin
prog = irexec
remote = CAR_MP3
button = KEY_NEXT
repeat = 0
delay = 0
config = echo "playlist index +1" | telnet orangepizero 9090
end
# sudo apt-get install expect telnet
begin
prog = irexec
remote = CAR_MP3
button = KEY_CH
repeat = 0
delay = 5000
config = sudo shutdown -h now
end
begin
prog = irexec
remote = CAR_MP3
button = KEY_VOL-
repeat = 0
delay = 0
config = echo "mixer volume -2.5" | telnet orangepizero 9090
end
begin
prog = irexec
remote = CAR_MP3
button = KEY_VOL+
repeat = 0
delay = 0
config = echo "mixer volume +2.5" | telnet orangepizero 9090
end
begin
prog = irexec
remote = CAR_MP3
button = KEY_EQ
repeat = 0
delay = 0
config = echo "mixer muting toggle" | telnet orangepizero 9090
end
begin
prog = irexec
remote = CAR_MP3
button = KEY_PLAY_PAUSE
repeat = 0
delay = 0
config = echo "pause" | telnet orangepizero 9090
end
begin
prog = irexec
remote = CAR_MP3
button = KEY_PREV
repeat = 0
delay = 0
config = echo "playlist index -1" | telnet orangepizero 9090
end
begin
prog = irexec
remote = CAR_MP3
button = KEY_NEXT
repeat = 0
delay = 0
config = echo "playlist index +1" | telnet orangepizero 9090
end
На всякий случай перезагружаем Orange Pi Zero:
root@orangepizero:~# sudo reboot
Для моего пульта кнопка "CH" выключение апельсина, "VOL+" увеличение громокости, "VOL-" уменьшение громкости, "EQ" отключить-включить звук, "PLAY/PAUSE" проигрование и пауза, "PREV" предыдущий трек в текущем плейлисте и "NEXT" следующий трек в плейлисте.
Остальной список команд для LMS смотреть в тут:
хттп://IP вашего LMS:9000/html/docs/cli-api.html#playlistcontrol
PROFIT!!!
Источник
29.03.2019 в 14:29, Просмотров: 2624