我买了[红外传感器和遥控器] [1]用于我的Raspberry Pi 3.
我有LIRC设置,我可以使用以下命令检测IR Remote的输入:
sudo /etc/init.d/lirc stop
mode2 -d / dev / lirc0
当我运行上述命令时,我能够检测到IR Remote的输入。当我按下IR REmote上的任何按钮时,我得到如下输出:
我的问题是 - 在上面的输出中,我按下了' 2"在遥控器上。我该如何解密(在python中)哪个按钮真的按下了?
更新1:
我尝试使用python-lirc包,但是我在这一行得到错误:
答案 0 :(得分:0)
您可能不希望使用mode2
输出。有一个可用的Python库(Here),这可能是一个更好的方法来进行这个项目。
<强>代码:强>
import lirc
sockid = lirc.init("myprogram")
print(lirc.nextcode())
lirc.deinit()
lircrc配置文件
begin
button = 1 # what button is pressed on the remote
prog = myprogram # program to handle this command
config = one, horse # configs are given to program as list
end
begin
button = 2
prog = myprogram
config = two
end
按下按钮1后的结果
['one', 'horse']
答案 1 :(得分:0)
之前的答案快捷方式是lirc解码。由于您具有工作模式2,因此内核驱动程序可以正常工作并将正确的数据发送到lircd。但是,mode2不会告诉您解码是否有效。
要检查解码,请使用irw(1)。在您从此程序获得工作输出之前,您不知道lirc是否可以解码您的遥控器。
上面描述的lircrc文件用于将通用按钮按下(如irw所示)转换为特定于应用程序的命令。要调试此文件,请使用ircat(1)。
当您从irw(1)和ircat(1)获得工作输出时,您的lirc设置已完成。在使用任何python包之前,确实需要一个工作lirc设置。 BTW,截至即将发布的0.10.0 lirc将具有本机python绑定。
有关设置lirc的综合指南,请访问http://lirc.org/html/configuration-guide.html