Orange Pi Zero, подключение и настройка ИК пульта в Debian Jessie.

Aug 15, 2018 21:29

Продолжаем ковырять Orange Pi Zero. Сегодня прикрутим ИК пульт дистанционного управления. Научимся управлять общей громкостью и выключать апельсинку не вставая с дивана.


Загружаем PuTTY, вписываем IP и устанавливаем SSH соединение на порту 22. Вводим логин и пароль.

Загружаем УДОБНОЕ текстовое меню:

root@orangepizero:~# sudo armbian-config

Попадаем в меню:



текстовое меню здорового человека
Идем в Network, выбирем wlan и кликаем на Install IR. Утилита сама подгрузит у установит LIRC пакет.

Теперь загружаем ИК модуль ядра, который по умолчанию отключен в Debian от Armbian:

root@orangepizero:~# sudo modprobe sunxi_cir

Посмотреть загрузился ли модуль можно командой выводящей список всех активных модулей ядра:

root@orangepizero:~# sudo lsmod

Проверим нашли ли друг друга модуль ядра и LIRC:

root@orangepizero:~# sudo evtest

Выбираем sunxi-ir, в моем случае он под цифрой 2 и тыкаем кнопки пульта. Если в терменале запрыгали цыфры и буквы все отлично.



прыгают цифры
Добавляем ИК модуль ядра в автозагрузку. Если этого не сделать то после reboot все придется повторять заново. Загружаем Midnight Commander и идем в папку etc/modules-load.d/ открываем файл @modules.conf на запись командой F4 и добавляем строку sunxi_cir как на картинке.



открытый @modules.conf
Теперь сконфигурируем LIRC. Идем в папку etc/lirc/ открываем файл hardware.conf, удаляем все и копируем текст:

# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS=""

# Don't start lircmd even if there seems to be a good config file
START_LIRCMD=false

# Don't start irexec, even if a good config file seems to exist
#START_IREXEC=false

# Start irexec
START_IREXEC=true

# Try to load appropriate kernel modules
LOAD_MODULES=true

# Run "lircd --driver=help" for a list of supported drivers.
#DRIVER="UNCONFIGURED"
DRIVER="default"

# Usually /dev/lirc0 is the correct setting for systems using udev
DEVICE="/dev/lirc0"
MODULES="sunxi_cir"

# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""

Сохраняем и закрываем. Следующий этап обучить LIRC понимать пульт. Идем по адресу http://lirc.sourceforge.net/remotes/, ищем свой пульт и кидаем файл lircd.conf в папку etc/lirc/. Если не нашли то удаляем старый конфиг пульта командой:

root@orangepizero:~# sudo rm /etc/lirc/lircd.conf

Останавливаем LIRC чтоб не мешал:

root@orangepizero:~# sudo service lirc stop

Запускаем процесс обучения LIRC новому пульту:

root@orangepizero:~# sudo irrecord --disable-namespace -H default -d /dev/lirc0 /etc/lirc/lircd.conf

Для определения header, gap и bit mask пульта нажимаем на все кнопки пока irrecord-у не надоест. Повторяем процедуру 2 раза. В появившемся приглашении пишем название клавиши, на пример KEY_CH-. Нажимаем и удерживаем клавишу "CH-" до следующего приглашения. Повторяем пока не закончатся клавиши.

Я купил пульт на eBay и создал для него lircd.conf. Качаем тут. Продают за $1.3. В довесок идет ИК приемник HX1838/VS1838. Батарейку CR2025 продавец зажал. Дома нашлась и подошла CR2032.



дешманский пульт с eBay
После того как файл пульта скопирован или создан перезапускаем LIRC:

root@orangepizero:~# sudo service lirc start

Для проверки конфига пульта запускаем команду:

root@orangepizero:~# sudo irw /dev/lircd

Нажимаем кнопки на пульте. В терминале дожна появится комнда и имя котрое ей присвоенно, а так же марка пульта если она прописана.



тест конфига ИК пульта
Для дистанционного управления Logitech Media Server через Command Line Interface нам понабится telnet:

root@orangepizero:~# sudo apt-get install expect telnet

Создаем файл lircrc в папке etc/lirc/. В нем описывается как и какому приложению реагировать на нажатие клавиш. Я уже все написал за вас. Копируем в lircrc текст и сохраняем (если у вас другой пульт, то поля 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 = 2000
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" следующий трек в плейлисте.

Остальной список команд смотреть в тут:

хттп://IP вашего LMS:9000/html/docs/cli-api.html#playlistcontrol

PROFIT!!!

#orange pi, linux, #linux, orange pi

Previous post Next post
Up