python - 使用 LIRC 为 Raspberry PI (RPi) 设置 IR 远程控制
问题描述
经过大量搜索后,我对如何为我的 RPi 项目设置红外遥控器的相互矛盾的信息感到惊讶和沮丧。我认为这很容易,但设置 Linux InfraRed Control (LIRC) 长期以来一直存在问题
但是在 2019 年 6 月,随着 Raspbian Buster 版本的发布,许多教程变得毫无价值,发生了很大变化。许多教程让您创建了一个 hardware.conf 文件,但 LIRC 不需要也不想要它,并且 lirc-rpi 模块已被 gpio-ir 模块取代。
那么如何使用 Raspbian(Buster)在 RPi 上设置 LIRC?
解决方案
此答案假设 RPi 正在运行 raspbian(版本 Buster Jun 2019)。还假设终端的工作知识、来自命令提示符的基本命令和编辑文本文件。
第 1 步:安装 lirc
1)打开终端窗口并安装LIRC。请注意,这可能会引发错误“无法启动灵活的 IR 远程输入/输出应用程序支持”,因为安装的文件现在附加了 .dist 并且必须删除后缀,如下所述。不难但令人沮丧。
$ sudo apt-get update
$ sudo apt-get install lirc
- - 不用担心!因为这可能会引发错误“无法启动灵活的 IR 远程输入/输出应用程序支持”,因为需要从 lirc_options.conf 中删除 .dist 后缀。只需复制文件,如图所示。
$ sudo cp /etc/lirc/lirc_options.conf.dist /etc/lirc/lirc_options.conf
2) 重新安装 lirc 现在 lirc_options.conf 文件已被重命名
$ sudo apt-get install lirc
第 2 步:编辑 lirc_options.conf
通过更改这两行来编辑 /etc/lirc/lirc_options.conf 如下:
:
:
driver = default
device = /dev/lirc0
:
:
第 3 步:执行复制以从 lircd.conf.dist 中删除 .dist 后缀
从 /etc/lirc/lircd.conf.dist 中删除后缀 .dist
$ sudo cp /etc/lirc/lircd.conf.dist /etc/lirc/lircd.conf
第 4 步:编辑 config.txt
通过在 lirc-rpi 模块部分添加一行来编辑 /boot/config.txt,如下所示。此示例假设 RPi 在 BCM 引脚 17 上为 IR 接收器“侦听”,但可以使用任何 RPi IO 引脚。我还没有尝试过,但是如果您想从 RPi 发送命令,请添加并取消注释第 4 行,如下所示以在 BCM 引脚 18 上发送 IR 命令
:
:
:
# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi
dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18
:
:
:
第 5 步:检查状态并重新启动
1) 停止、启动和检查lircd的状态,确保没有错误!
$ sudo systemctl stop lircd.service
$ sudo systemctl start lircd.service
$ sudo systemctl status lircd.service
2) 重启
$ sudo reboot
第 6 步:测试遥控器
此步骤假设您在 config.txt 中指定的引脚上连接到您的 RPi 的 IR 接收器。
1)停止LIRCD服务并使用mode2命令测试远程
$ sudo systemctl stop lircd.service
$ sudo mode2 -d /dev/lirc0
3) 将遥控器指向接收器并按下一些按钮。你应该看到这样的东西:
:
:
space
pulse
:
:
4) 按 Ctrl-C 退出
5) 您的 IR 接收器已设置好,可以继续进行第 2 部分并在 python 中访问。
推荐阅读
- split - ANSIBLE:拆分函数未从字符串中删除“\r”回车符
- javascript - $('selector').editableSelect() 正确获取值 editableSelect
- python - 未找到关键字参数“{'pk': 11}”的“detail_view”反向 - (使用 Slug 字段)
- javascript - Javascript - 使用包含 $ 和其他特殊字符的字符串替换()
- python - 使用 colorgram 从图像中提取所有颜色
- python - 分组并计算与组的日期差异,第一行考虑开始年份的第一天
- matlab - 将元胞数组的内容转换为单个矩阵
- php - 使用 CURL 从 1688 url 读取文件
- flutter - 颤振获取何时使用 GetX
, 获取生成器 或 Obx() - php - 为什么我的 PHP 函数返回两个结果和一个意外结果?