RK3506B开发板提供了片温检测功能及串口通讯功能,将两种相结合并配以语言合成模块,就可实现片温识读功能。
在编程方面,有两种方式无需编译即可实现,即脚本编程和python编程方式。
相对来讲,采用脚本编程的方式更易于实现,而采用python编程方式要次之。从技术探索的角度出发,这里是以python编程的方式来实现。
1)片温检测
片温检测的python程序为:

经程序,其测试结果如图1所示。

图1运行结果
2)串口通讯
由于语言合成模块是通过串口来控制,为此先要解决串口通讯的问题。
这里是选取UART1来控制语言合成模块,需修改设备树来添加串口设备。UART1所使用的引脚为RM_IO10和RM_IO11,其引脚位置见图2所示。

图2引脚位置
使用 Python 的serial库,实现串口通讯的程序为:
#!/usr/bin/python3
from periphery import Serial
# 使用上下文管理器,自动关闭串口
with Serial("/dev/ttyS1", baudrate=115200, databits=8, parity="none", stopbits=1, xonxoff=False, rtscts=False) as serial:
try:
serial.write(b"\xfd\x00\x0e\x01\x03\x53\x5f\x4d\x52\x47\x72\x29\x6e\x2f\x66\x00\x00")
# 合成“当前片温”的语言输出
except Exception as e:
print(f"An error occurred: {e}")3)语言合成及指令生成
在串口通讯的基础上,通过语言合成模块就能把检测到的片温值转化为语言播报内容。
语言合成模块与开发板的连接关系为:
TX----RM_IO10
RX----RM_IO11

图3 器件连接
将片温值转化为语言合成指令进行播报的程序为:

经程序的运行,其测试效果见图4和视频所示。

图4 测试结果
演示视频:
我要赚赏金
