# Roomba 串口无法直接发送 8000

> 原文链接：https://robotics.hellobike.com/pitfalls/2014-12-13-robotics-se-2530
> 频道：pitfalls | 更新日期：2014-12-13 | 标签：auto, stackexchange, mobile-robot, raspberry-pi, serial, irobot-create
> 核心摘要：Roomba 直行半径需按十六进制 0x8000 拆成高低字节并按大端顺序发送。

# Roomba 串口无法直接发送 8000

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Help sending serial command to Roomba](https://robotics.stackexchange.com/questions/2530/help-sending-serial-command-to-roomba)（Robotics Stack Exchange #2530）

**状态**：已解决

## 问题

Raspberry Pi 连接 Roomba 560 串口时，规格要求直行发送 `8000`，但单个字节不能大于 `255`，不清楚如何发送该值。

## 环境

Raspberry Pi；Roomba 560 串口；Python `serial`；`/dev/ttyUSB0`；波特率 `115200`。

## 解决办法

1. 将规格中的 `8000` 理解为十六进制 `0x8000`，每个字节对应两个十六进制数字。
2. 将 `0x8000` 拆成 `0x80` 和 `0x00`，即十进制 `128` 和 `0`。
3. 按规格 `[radius high byte] [radius low byte]` 的大端顺序发送，先发高字节再发低字节。
4. 提问者实现中先用 `chr(128)` 启动 SCI，再用 `chr(131)` 进入 safe mode，之后发送 `chr(137)` 和拆分后的速度、半径字节。

原问题作者：Ian Hyzy；采纳答案作者：DrRobotNinja。原内容依 CC BY-SA 4.0 授权，本页摘要同样依 CC BY-SA 4.0 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #2530：Help sending serial command to Roomba](https://robotics.stackexchange.com/questions/2530/help-sending-serial-command-to-roomba)