亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

树莓派无需 LIRC 捕获红外遥控指令:Python UART 方案

将红外遥控器与树莓派集成,若绕过 LIRC 直接利用 UART 串口接口,将变得简单可靠。本指南涵盖从硬件搭建到 Python 解码的全过程,让你以最少代码可靠捕获遥控信号。

为何跳过 LIRC?

LIRC 为红外设备提供通用框架,但对简单项目而言大材小用,且有时引入延迟或兼容性问题。利用内置 UART 引脚 (TX/RX) 和低速串口协议,可实现轻量、确定性的解决方案,调试更容易。

硬件概览

步骤 1 — 为 UART 准备树莓派

1. 备份内核命令行:

sudo cp /boot/cmdline.txt /boot/cmdline_bp.txt

2. 从 /boot/cmdline.txt 移除 ttyAMA0 参数(如 console=ttyAMA0,115200 和 kgdboc=ttyAMA0,115200):

sudo nano /boot/cmdline.txt

修改后应类似:

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait

3. 在 /etc/inittab 中屏蔽 ttyAMA0 登录提示:

sudo nano /etc/inittab

注释掉:

#X:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

步骤 2 — 安装 pySerial

安装 Python 串口库,提供 serial 模块用于 UART 通信:

sudo apt-get install python-serial

安装后即可在脚本中导入:

import serial

步骤 3 — 接线红外传感器

步骤 4 — 读取红外字节的基础 Python 脚本

HX1838 以 2400 bps 发送串行流。下面片段读取每次按键 12–16 字节并打印 ASCII 码。

import serial
ser = serial.Serial('/dev/ttyAMA0')
ser.baudrate = 2400
for _ in range(15):  # 捕获最多 15 字节
    byte = ser.read(1)
    print(ord(byte))

实测 2400 bps 最可靠,较低速率可能降低空中传输误码率。

步骤 5 — 解码三星遥控按键

用三星电视遥控器测试,发现每次按键产生 12–16 字节:

为映射按键,我们计算字节 6–11 的加权和:

keyidentity = (byte[6] + 2*byte[7] + 3*byte[8] + 4*byte[9] + 5*byte[10] + 6*byte[11])

虽非最稳健方法,但能为每个按钮产生唯一值,便于比对。如需更强抗冲突,可替换为哈希或 XOR。

完整示例:ir_serial3samsung.py

下方精简脚本:

import serial
ser = serial.Serial('/dev/ttyAMA0', 2400)
while True:
    # 读取 24 字节清空缓冲
    raw = ser.read(24)
    # 前 12 字节对应单次按键
    key_bytes = raw[:12]
    key_id = sum((i+1)*b for i, b in enumerate(key_bytes[6:12]))
    print(f'Key ID: {key_id}')

运行脚本并按下三星遥控器按键,每次按键打印唯一 Key ID。将这些 ID 存入查找表,映射到应用动作。

结论

利用 UART 和简易 Python 脚本捕获红外遥控信号,省去 LIRC,降低延迟,完全掌控解码逻辑。代码极简透明,调试直观。可适配任何输出串行数据的红外遥控器,是树莓派项目的通用方案。

深度教程见原文:How to Use and Emulate…

制造工艺

  1. 树莓派温度画像:Python+SQLite+LabVIEW实战
  2. 树莓派2上使用DS18B20读取温度完整指南
  3. 树莓派结合 Maxim 1-Wire 传感器与 DS2482 I2C 桥接器的多点温度测量
  4. 树莓派与 Python 构建远程温度传感器:分步实战指南
  5. 树莓派精准监测机柜温度:DS18B20 多点部署实战
  6. 树莓派 3 配合 PubNub 实现远程气象监测
  7. 树莓派 Zero 配合 Node‑RED 融合 TI SensorTag 与 Blynk 物联网平台
  8. 树莓派与 AS3935 闪电检测传感器实战指南
  9. 树莓派无原生 ADC 读取模拟传感器:阶跃响应法实战
  10. 树莓派 LIRC 通用红外遥控器专业构建指南
  11. 树莓派 PIR 运动传感器控制 LED 实战指南
  12. 树莓派 2 无头模式水浸报警器:基于 Adafruit T‑Cobbler Plus 构建