You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python实现RPI 4与UWB传感器的minicom自动化操作?

可行,直接操作串口比自动化minicom更可靠

为什么不推荐自动化minicom?

用os.system调用minicom后,Python无法直接控制这个独立终端进程的交互流程,就算借助expect这类工具实现自动化,步骤也繁琐且不稳定。直接操作串口是更简洁高效的方案。

实现步骤

  1. 安装Python串口库
pip install pyserial
  1. 编写Python代码直接控制串口
    以下代码完全模拟你手动操作的流程,可直接运行获取数据:
import serial
import time

# 配置串口参数,根据你的传感器实际参数调整
ser = serial.Serial(
    port='/dev/ttyACM0',  # 注意你之前写的ttyAMC0大概率是笔误,用ls /dev/tty*可确认正确路径
    baudrate=115200,  # 替换为你的UWB传感器实际波特率
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS,
    timeout=1
)

try:
    # 1. 按两次回车键
    ser.write(b'\r\n')
    time.sleep(0.1)
    ser.write(b'\r\n')
    time.sleep(0.1)

    # 2. 输入"nmt"并回车
    ser.write(b'nmt\r\n')
    time.sleep(0.1)

    # 3. 按两次回车键
    ser.write(b'\r\n')
    time.sleep(0.1)
    ser.write(b'\r\n')
    time.sleep(0.1)

    # 4. 输入"lec"并回车,开始获取数据
    ser.write(b'lec\r\n')
    time.sleep(0.1)

    # 持续读取并打印传感器数据
    print("开始获取传感器数据:")
    while True:
        if ser.in_waiting > 0:
            data = ser.readline().decode('utf-8').strip()
            print(data)
            # 可在此添加数据处理逻辑,比如保存到文件、解析计算等

except KeyboardInterrupt:
    print("\n停止读取数据")
finally:
    ser.close()

关键注意事项

  • 串口路径:用ls /dev/tty*命令确认传感器的正确设备名,避免路径写错
  • 波特率:必须和UWB传感器的配置完全一致,常见值为9600、115200
  • 延时调整:time.sleep()的时长可根据传感器响应速度微调,确保每一步操作完成后再执行下一步
  • 权限问题:若提示权限不足,执行sudo usermod -aG dialout $USER,重启树莓派后生效

内容的提问来源于stack exchange,提问作者Park Bo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 10:47:45