红外遥控实验
Lab9实验报告:红外遥控实验¶
一、实验介绍¶
遥控器接收头是用于接收遥控器所发射信号进而读取按键信息而执行操作 的一种光电信号转换器件。 遥控器接收头是利用最新的 IC 技术开发和设计出来的小型红外控系统接收 器。在支架上装着 PIN 二极管和前置放大器,环氧树脂包装成一个红外过滤器, 解调输出信号可以由微处理器解码,一般三条腿的红外线遥控接收头是接收、放 大、解调一体头,接收头输出的是解调后的数据信号,Raspberry pi 里面需要相 应的读取程序。 红外通信是利用红外技术实现两点间的近距离保密通信和信息转发。 它一般由红外发射和接收系统两部分组成。发射系统对一个红外辐射源进行 调制后发射红外信号,而接收系统用光学装置和红外探测器进行接收,就构成红 外通信系统。
二、实验原理¶
在本实验中,我们使用 lirc 库读取遥控器按钮返回的红外信号,并将它们转 换为按钮值。
三、实验步骤¶
- 连接电路 连接遥控器接收头到 Raspberry Pi 的 GPIO 引脚上,如下图所示:
- 安装LIRC及相关配置:
- 使用以下命令安装LIRC软件包及其依赖项:
-
修改
/boot/config.txt
文件中的红外模块部分,确保启用了红外接收功能,并指定了正确的GPIO引脚编号(例如接收引脚为22,发射引脚为23)。添加或修改如下行: -
调整驱动设置:
-
编辑位于
/etc/lirc/lirc_options.conf
的LIRC配置文件,更改默认驱动程序和设备路径:将内容更改为:Bash -
重启系统:
-
执行完上述配置更改后,请重启Raspberry Pi以使新的设置生效:
Bash -
测试IR接收器:
- 重启完成后,可以使用
irw
命令查看当前接收到的红外信号。打开终端窗口并输入:Bash - 此时按下遥控器上的任意按键,观察屏幕上的十六进制代码输出。
-
记录红外代码: 在终端输入
irrecord -l
命令,按照提示操作,记录红外遥控器的按键代码。 屏幕上输出的十六进制代码如下:Text Only -
开始录制: 在终端输入
irrecord -d /dev/lirc0 ~/lircd.conf
命令,按照提示操作,录制红外遥控器的按键代码。 -
保存文件: 保存文件后,将其复制到
/etc/lirc/lircd.conf
目录下:Bash - 重命名文件: 重命名文件后,重启LIRC服务:
-
测试遥控器: 在终端输入
sudo irw
命令,按下遥控器上的按键,观察屏幕上的输出。 -
关联Python程序: 修改文件名
编辑/etc/lirc/lircrc
文件,添加以下内容: -
编写Python程序: 程序框图
Python代码flowchart TD A[开始] --> B{导入lirc库} B --> C{定义解析函数} C --> D{建立连接} D --> E{读取数据} E --> F{解析按键} F --> G{打印按键} G --> H{循环} H --> E H -- 中断 --> I[退出]
-
运行Python程序: 在终端输入
python3 test.py
命令,按下遥控器上的按键,观察终端上的输出。