树莓派的红外遥控

来源:互联网 发布:mysql先排序后分页 编辑:程序博客网 时间:2024/04/30 04:44

买树莓派的目的就是想搭建一个红外遥控平台,控制家里的空调(实际上,空调遥控器比较复杂,玩玩电视机遥控器应该还是可以的)。参考下面的教程,

发布树莓派专用红外线扩展板

树莓派作品:红外遥控+2维度步进电机+超声波测距+语音输出

Raspberry Pi lirc_rpi - (IR Remote control) LIRC GPIO driver


硬件方面,刚开始不想用面包板和元器件自己搭平台,从网上买了个红外遥控的扩展板,上面集成了红外发射和接收。软件方面,主要使用 LIRC 软件。

1. 硬件连接
只要把扩展板的GPIO插槽对准树莓派的GPIO接口,正确插入即可。
注意,观察引脚的焊点,方块形状的焊点是1号引脚。两个板子的1号引脚要对准。
最后上下两块板子基本重合,如下图所示



2. 安装LIRC,修改配置文件

LIRC (Linux Infrared remote control)是一个linux系统下开源的软件包。
这个软件可以让你的Linux系统能够接收及发送红外线信号。
sudo apt-get install lirc
sudo vim /etc/lirc/hardware.conf


LIRCD_ARGS=””DRIVER=”default”DEVICE=”/dev/lirc0″MODULES=”lirc_rpi”


注意,教程用的是下面这行,但是会报错,不知道为什么
LIRCD_ARGS=”–uinput –listen”

3. 添加下面两行到模块配置文件。
扩展板的红外发射器=17,红外接收器=18(参考管脚对应图)
配置完成后,重启一下树莓派,让配置生效。
sudo vim /etc/modules

lirc_devlirc_rpi gpio_in_pin=18 gpio_out_pin=17


4. 重新开启LIRC功能
到此LIRC软件和扩展板的配置就完成了。
sudo /etc/init.d/lirc stop
sudo /etc/init.d/lirc start


5. 红外线接收功能
首先关闭LIRC软件,然后执行如下命令。
sudo /etc/init.d/lirc stop
mode2 -d /dev/lirc0


使用任何红外线遥控器,对着扩展板按下任意按键,如果没按下键时屏幕都打印类似一下的内容,就说明红外线接收功能正常。
space 16300
pulse 95
space 28794
pulse 80
space 19395


6. 红外编码录制
首先关闭LIRC软件,然后查看可用的按键名
sudo /etc/init.d/lirc stop
irrecord –list-namespace

注:列出几个常用的按键名
KEY_POWER
KEY_VOLUMEUP
KEY_VOLUMEDOWN

KEY_PLAY
KEY_STOP

KEY_VIDEO_PREV

KEY_VIDEO_NEXT


然后,执行红外线编码录制命令
irrecord -d /dev/lirc0 ~/lircd.conf

根据软件的提示操作即可,这个程序会自动算出你按下的遥控器按键的编码和时长,并录制下来记录在~/lircd.conf文件中。

最后,将录制好的~/lircd.conf文件覆盖lirc软件的相应文件
sudo cp ~/lircd.conf /etc/lirc/lircd.conf

7. 红外发射功能
首先重启LIRC软件,然后查看录制好可以使用的按键名
sudo /etc/init.d/lirc restart
irsend LIST /home/pi/lircd.conf ""

注意,将会看到类似一下的内容
irsend: 000000000000c837 KEY_VOLUMEDOWN
irsend: 00000000000048b7 KEY_VOLUMEUP
irsend: 00000000000008f7 KEY_VIDEO_PREV
irsend: 0000000000008877 KEY_VIDEO_NEXT

最后,发射之前录制好的遥控器按键编码了,用户利用这点将扩展板作为一个转台工具。发射命令参考一下命令:

irsend SEND_ONCE /home/pi/lircd.conf KEY_POWER
irsend SEND_ONCE /home/pi/lircd.conf KEY_VOLUMEUP
irsend SEND_ONCE /home/pi/lircd.conf KEY_VOLUMEDOWN

irsend SEND_ONCE /home/pi/lircd.conf KEY_PLAY
irsend SEND_ONCE /home/pi/lircd.conf KEY_STOP
irsend SEND_ONCE /home/pi/lircd.conf KEY_VIDEO_PREV
irsend SEND_ONCE /home/pi/lircd.conf KEY_VIDEO_NEXT



0 0
原创粉丝点击