树莓派,接收遥控器指令
树莓派,接收遥控器指令
哈库纳 发表于1年前
树莓派,接收遥控器指令
  • 发表于 1年前
  • 阅读 309
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

    进行下面操作之前希望你是一名不干服输,勤于动手的 gek。下面这条路很清晰,但是相信每一步你都会遇到更多的问题,所以你还要有 google or baidu 资料的能力。

 

1. 把 config.txt 中有关红外线的功能启用找到下面这个并把 # 去掉

# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi

2. 安装 lirc 工具包。

    在安装环节可能遇到失败。我的处理方式是重新在树莓派网站上下载了新的镜像并刷进SD卡。重新执行安装,问题解决!之所以选择这条路是因为我的树莓派系统版本,本身也很落后了需要升级。

sudo apt-get install lirc

3. 选择你的红外引脚,配置文件sudo vi /etc/modules。

    我使用的引脚是,GPIO 18号引脚作为红外信号输入,GPIO17号引脚作为红外发送。

lirc_dev
lirc_rpi gpio_in_pin=18 gpio_out_pin=17

4. 加载红外线驱动模块,每次重启机器都要执行它。

sudo modprobe lirc_rpi

如果提示:ERROR: could not insert 'lirc_rpi': No such device,那么请回顾第一步。

5. 测试红外线接收。如果日光非常强烈,红外接收会变得很弱。所以避光测试是一个有效的途径。

sudo mode2 -d /dev/lirc0

6. 测试结果类似这样

space 14945
space 35
pulse 620
pulse 8901
space 34
pulse 624
pulse 2863
space 34
pulse 625
pulse 4067
space 37
pulse 621
pulse 2843
space 32
pulse 19055
pulse 11325
space 36
pulse 622
space 6473

7. 查看所有按键名。可以通过 grep 去搜寻自己想要的按键名,例如:KEY_POWER

sudo irrecord --list-namespace

8. 录制红外线,用遥控器对准红外接收管

irrecord -d /dev/lirc0 ~/lircd.conf

    录制 “lircd.conf”你需要有十分的耐心,下面这个就是中途失败的情况。当你 RETURN 之后便开始让遥控器对准红外线接收管,然后就是按个不停。屏幕会输出各种 . 大概要按个 100多次把。才会成功。如果中途长时间没有收到按键信号,那么就会出现下面这个提示。

It is very important that you press many different buttons and hold them
down for approximately one second. Each button should generate at least one
dot but in no case more than ten dots of output.
Don't stop pressing buttons until two lines of dots (2x80) have been
generated.

Press RETURN now to start recording.
...........................
irrecord: no data for 10 secs, aborting
irrecord: gap not found, can't continue

    匹配的目的是为了让树莓派识别遥控器的编码格式,所以你可以随便按键。每次按键间隔1秒的样子。识别成功之后就会生成 “lircd.conf” 配置文件了。

    在匹配时第一排“...”每次要按键 1 秒左右。当出现第二排“...”的时候,就可以随便按遥控器上的键了。两次匹配之后就可以录制按键了。

    如果在录制过程中出现下面这样的情况,那么意味着你的遥控器不被支持。

Please enter the name for the next button (press <ENTER> to finish recording)

Now hold down button "EY_POWER".
Something went wrong. Please try again. (9 retries left)
Something went wrong. Please try again. (8 retries left)

 

    目前状况:实验失败!

    问题原因:没有找到合适的能够匹配上的遥控器。

    原因分析:可能是红外线接收管灵敏度问题导致,不排除遥控器真的不被支持。

    下一步:考虑更换红外接收头。之前用的是红外接收二极管,准备更换成三极管在试试。

 

Tips:红外接收管

    接收红外线的电子元器件,2只脚的叫红外接收二极管。3只脚的叫三极管。二极管的管子一般不会对红外接收信号做放大处理,此外它的线性特性要好于三极管,但是二极管的灵敏度没有三极管好。

    但是要知道遥控器输出的红外线信号时“0”“1”这种数据。因此我们需要的是灵敏度而不是线性特性。因此准备更换红外光敏三极管在试一试。或许家里的遥控器会在树莓派上复活。

    另外无论是红外二极管,还是三极管都是有极性的。所以你最好是有一块万用表放到二极管档位来测量二极管极性,当然还有取巧的办法,是通过观看二极管内部两个电极的样子来区分电极性。有兴趣的可以自己多找几个发光二极管或者接收管来试验。

    呃,三极管就不说了,光是二极管三极管足够单开一篇 Blog 去说它们的特点了。

Tips:树莓派,重启红外接收功能,让配置生效

sudo /etc/init.d/lirc stop
sudo /etc/init.d/lirc start

 

共有 人打赏支持
哈库纳
粉丝 928
博文 81
码字总数 149803
作品 4
×
哈库纳
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: