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

Raspberry Pi与Roomba 9xx/6xx系列SCI端口通信失败求助

Roomba 9xx/6xx与Raspberry Pi SCI通信故障排查

步骤中的潜在错误

  • 未激活Roomba的SCI模式:Roomba默认SCI端口处于禁用状态,必须通过串口发送启动指令才能启用通信功能,直接放置在充电底座上不会自动开启SCI。
  • 串口配置不完整:你的minicom命令仅指定了波特率,但未明确设置Roomba SCI要求的8位数据位、1停止位、无校验(8N1)参数,默认配置可能存在偏差。
  • Roomba处于休眠状态:充电底座上的Roomba通常处于低功耗休眠,此状态下SCI端口不会响应任何指令。
  • 串口映射未验证:部分Raspberry Pi型号(如3B+、4B)默认将硬件串口分配给蓝牙,/dev/serial0可能映射到不稳定的mini UART(ttyS0),导致通信异常。

修正后的操作步骤

  1. 重新确认接线逻辑
    • 确保电平转换器方向正确:Roomba TXD → 转换器HV TX → Pi RXD;Roomba RXD → 转换器HV RX → Pi TXD;GND引脚共接。
    • 转换器HV端建议直接连接Roomba SCI端口的5V引脚(而非Raspberry Pi的5V),避免供电冲突,LV端保持接Pi的3.3V。
  2. 确认Raspberry Pi串口映射
    • 执行命令查看串口映射:
      ls -l /dev/serial*
      
    • 若serial0指向ttyS0,需通过raspi-config重新配置:进入Interface Options > Serial Port,选择关闭串行控制台、启用硬件串口,重启后确保serial0映射到ttyAMA0。
  3. 完整配置minicom
    • 使用指定参数启动minicom:
      minicom -b 115200 -8 -c on -D /dev/serial0
      
      其中-8指定8位数据位,-c on开启颜色显示便于观察数据。
  4. 唤醒并激活Roomba SCI
    • 将Roomba从充电底座取出,按清洁键唤醒机器人。
    • 在minicom控制台中发送启动指令:按Ctrl+A → Z → S,选择Hex模式,输入80并发送(对应Roomba的Start命令)。
    • 可选发送安全模式指令83,此模式下可读取传感器并发送基础控制指令。
  5. 读取充电状态数据
    • 在minicom中发送传感器读取指令(十六进制):84 15,其中84是Sensor命令,15是充电状态传感器的ID。
    • 此时会收到Roomba返回的1字节数据,对应充电状态(0=未充电,1=充电中,2=充电完成等,具体参考Roomba SCI官方定义)。

后续实现碰撞传感器读取与控制的建议

  • 碰撞传感器的ID为7,发送84 07可读取碰撞数据(返回2字节,高位代表左碰撞状态,低位代表右碰撞状态)。
  • 控制机器人移动需先进入安全/全模式,发送89(Drive命令)配合速度和转向参数,例如89 00 1F 00 00代表以31mm/s的速度向前直行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 00:21:24