Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
После долгих поисков я был удивлен и встревожен противоречивой информацией о том, как настроить ИК-пульт дистанционного управления для моего проекта RPi. Я думал, что это будет легко, но настройка Linux InfraRed Control (LIRC) долгое время была проблематичной, но многое изменилось в июне 2019 года с выпуском версии Raspbian Buster, сделавшей большую часть учебников бесполезными. Во многих руководствах вы создаете файл hardware.conf, но LIRC не нужен и не хочет этого, а модуль lirc-rpi был заменен модулем gpio-ir.
В руководстве предполагается, что RPi работает под управлением raspbian (версия Buster, июнь 2019 г.). Также предполагается практическое знание терминала, основных команд из командной строки и редактирования текстовых файлов.
ПРИМЕЧАНИЕ. Установка LIRC завершится ошибкой, если запускается от имени пользователя root, и приведет к ужасной ошибке «не удается импортировать имя RawConnection» при запуске кода Python. В этом руководстве предполагается, что вы вошли в систему как пользователь (например, PI).
Цель: включить ИК-дистанционное управление проектами RPi
1) Настройте LIRC на RPi [Часть 1]
2) Продемонстрируйте LIRC с помощью Python [Часть 2]
Запасы
--- Raspberry Pi (3, 4, ноль)
--- Проволока Dupont (женщина-женщина)
--- ИК-приемник VS 1838b
Шаг 1. Соберите оборудование
Использование ИК-приемника VS1838b не может быть проще. Просто подключите датчик к RPi напрямую с помощью провода Dupont (гнездо-гнездо). Вы также можете использовать макетную плату (не показана) или припаять прототипную плату (фото).
Глядя на ИК-приемник VS1838b спереди (большой X обращен к вам)
---- Левая нога отсутствует
---- Центральная нога заземлена
---- Правая нога - 3,3 В
1) Присоедините левую ногу к контакту 17 BCM на RPi (желтый провод).
2) Присоедините центральную ножку к земле (черный провод)
3) Присоедините правую ногу к 3,3в (красный провод)
Шаг 2: Установите Lirc
1) Откройте окно терминала и установите LIRC. Имейте в виду, что это, скорее всего, вызовет ошибку «Не удалось запустить поддержку приложения гибкого ИК-удаленного ввода / вывода», поскольку к установленным файлам теперь добавлен.dist, а суффикс должен быть удален, как указано ниже. Не сложно, но разочаровывает.
$ sudo apt-get update
$ sudo apt-get install lirc
---- НЕ волнуйтесь! так как это, скорее всего, вызовет ошибку «Не удалось запустить поддержку приложения гибкого удаленного ввода / вывода через ИК-порт», поскольку суффикс.dist необходимо удалить из lirc_options.conf. Просто переименуйте файл, как показано.
$ sudo mv /etc/lirc/lirc_options.conf.dist /etc/lirc/lirc_options.conf
2) Переустановите lirc теперь, когда файл lirc_options.conf был переименован
$ sudo apt-get install lirc
Шаг 3: отредактируйте Lirc_options.conf
Отредактируйте /etc/lirc/lirc_options.conf следующим образом, изменив эти две строки:
:
:
драйвер = по умолчанию
устройство = / dev / lirc0
:
:
Шаг 4: Выполните перемещение, чтобы удалить суффикс.dist из Lircd.conf.dist
Удалите суффикс.dist из /etc/lirc/lircd.conf.dist
$ sudo mv /etc/lirc/lircd.conf.dist /etc/lirc/lircd.conf
Шаг 5: отредактируйте файл Config.txt
Отредактируйте /boot/config.txt, добавив одну строку в раздел модуля lirc-rpi следующим образом. В этом примере предполагается, что RPi «прослушивает» вывод 17 BCM для ИК-приемника, но можно использовать любой вывод RPi IO. Я еще не пробовал, но если вы хотите отправлять команды из RPi, добавьте и раскомментируйте 4-ю строку, показанную ниже, для отправки ИК-команд на вывод 18 BCM.
:
:
:
# Раскомментируйте это, чтобы включить модуль lirc-rpi
# dtoverlay = lirc-rpi
dtoverlay = gpio-ir, gpio_pin = 17
# dtoverlay = gpio-ir-tx, gpio_pin = 18
:
:
:
Шаг 6. Проверьте статус и перезагрузите
1) Остановите, запустите и проверьте статус lircd, чтобы убедиться в отсутствии ошибок!
$ sudo systemctl stop lircd.service
$ sudo systemctl start lircd.service
$ sudo systemctl status lircd.service
2) Перезагрузка
$ sudo перезагрузка
Шаг 7. Тестирование пульта ДУ
Этот шаг предполагает, что у вас есть ИК-приемник, подключенный к RPi через контакт, указанный в config.txt.
1) остановить службу LIRCD и протестировать удаленный с помощью команды mode2
$ sudo systemctl stop lircd.service
$ sudo mode2 -d / dev / lirc0
3) Направьте пульт на приемник и нажмите несколько кнопок. Вы должны увидеть что-то ПОДОБНОЕ:
:
:
Космос
пульс
:
:
4) Нажмите Ctrl-C для выхода.
5) Ваш ИК-приемник настроен и готов к переходу к Части 2 и доступу к нему через python.