使用lirc红外控制树莓派

使用LIRC红外控制树莓派

  • 认识红外传感器
  • lirc的安装与使用
  • 读取并校验接收、对应到的红外信号

认识红外传感器

使用lirc红外控制树莓派_第1张图片
红外传感器
引脚从上到下分别为
IO GND VCC

lirc的安装与使用

使用红外,首先需要安装树莓派的lirc模块
LIRC (Linux Infrared remote control)是一个linux系统下开源的软件包。这个软件可以让Linux系统接收及发送红外线信号。
注意事项:
安装:

sudo apt-get install lirc

修改以下几处:

sudo leafpad /etc/lirc/hardware.conf
LIRCD_ATGS=""
DRIVER="default"
DEVICE="/dev/lirc0"
MODULES="lirc-rpi

终端执行

sudo leafpad /etc/modules

添加下面两行到模块配置文件:

lirc-dev
#红外接收模块的OUT接口接到了树莓派的GPIO18
#因为本例中未用到红外发射模块,所以后面的gpio_out_pin可以不写
lirc-rpi gpio_in_pin=18 gpio_out_pin=17

如测试时报错-ERROR: could not insert ‘lirc_rpi’: No&nbs
解决办法:

sudo vi /boot/config.txt

找到:

#dtoverlay=lirc-rpi

把前面的“#”号去掉, 然后重启系统即可

测试红外线接收功能
首先关闭lirc软件,然后执行如下命令:

sudo /etc/init.d/lirc stop
mode2 -d /dev/lirc0

这时候提示

no such file or directory

经过查看发现 /dev 下面没有 lirc0 这个module,发现在/boot/config.txt里面dtoverlay=lirc-rpi
取消注释,然后reboot,问题解决。

再次执行

mode2 -d /dev/lirc0

如果弹出

Partial read 8 bytes on /dev/lirc0pi@raspberrypi:~ $

发生错误,解决方案:

changed the following two lines in 
	/etc/lirc/lirc_options.conf
driver = default

(尝试过程中第一次仍然无效,但是第二次重装系统后正常,目前未知原理)
如果显示下面内容

pulse 629
space 518
pulse 627
space 523
pulse 628
space 523
pulse 631
space 517
pulse 629

则说明接收正常.

#协议
采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的"0";以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的"1 使用lirc红外控制树莓派_第2张图片
协议:
上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如下图。
使用lirc红外控制树莓派_第3张图片
| 引导码 | 用户识别码 |用户识别码反码 | 操作码 | 操作码反码 |
一个命令只发送一次,即使遥控器上的按键一直按着。但是会每110mS发送一次代码,直到遥控器按键释放。

重复码比较简单:一个9mS的AGC脉冲、2.25mS间隔、560uS脉冲。
使用lirc红外控制树莓派_第4张图片
使用lirc红外控制树莓派_第5张图片

读取并校验接收、对应到的红外信号

使用lirc红外控制树莓派_第6张图片

你可能感兴趣的:(树莓派)