2024-12-15 18:09:40 +08:00
|
|
|
|
# 数据包格式
|
|
|
|
|
|
|
|
|
|
## 基础
|
|
|
|
|
|
|
|
|
|
| 含义 | 数据 |
|
|
|
|
|
| ---- | ---- |
|
|
|
|
|
| 发送包头 | 0x00 |
|
|
|
|
|
| 发送包尾 | 0xff |
|
|
|
|
|
| 返回包头 | 0x01 |
|
|
|
|
|
| 返回包尾 | 0xfe |
|
|
|
|
|
|
|
|
|
|
`数据包头` + `包体长度` + `指令` + `数据包体` + `数据包尾`
|
|
|
|
|
|
|
|
|
|
如:
|
|
|
|
|
|
|
|
|
|
`00 06 20 AA BB FF`
|
|
|
|
|
|
|
|
|
|
## 信息查询
|
|
|
|
|
|
|
|
|
|
### 查询蓝牙连接状态 `0x10`
|
|
|
|
|
|
|
|
|
|
查询示例 `00 04 10 FF`
|
|
|
|
|
|
|
|
|
|
| 返回数据 | 含义 |
|
|
|
|
|
| -------- | ---- |
|
|
|
|
|
| 01 | 已连接 |
|
|
|
|
|
| 00 | 未连接 |
|
|
|
|
|
|
|
|
|
|
返回示例 `01 05 10 01 FE`
|
|
|
|
|
|
2024-12-18 16:10:26 +08:00
|
|
|
|
### 查询 SPI Flash 挂载状态 `0x11`
|
2024-12-15 21:42:43 +08:00
|
|
|
|
|
|
|
|
|
查询示例 `00 04 11 FF`
|
|
|
|
|
|
2024-12-18 16:10:26 +08:00
|
|
|
|
| 返回数据 | 含义 |
|
|
|
|
|
| -------- | ---- |
|
|
|
|
|
| 01 | 已挂载 |
|
|
|
|
|
| 00 | 未挂载 |
|
|
|
|
|
|
|
|
|
|
返回示例 `01 05 11 01 FE`
|
|
|
|
|
|
|
|
|
|
### 查询超声波距离 `0x12`
|
|
|
|
|
|
|
|
|
|
查询示例 `00 04 12 FF`
|
|
|
|
|
|
2024-12-15 21:42:43 +08:00
|
|
|
|
返回一个 4 字节浮点数,表示距离,单位 m
|
|
|
|
|
|
2024-12-18 16:10:26 +08:00
|
|
|
|
返回示例 `01 08 12 距离3 距离2 距离1 距离0 FE`
|
2024-12-15 21:42:43 +08:00
|
|
|
|
|
2024-12-15 18:09:40 +08:00
|
|
|
|
## 控制
|
|
|
|
|
|
|
|
|
|
### 行进控制 `0x20`
|
|
|
|
|
|
|
|
|
|
| 方向数据 | 含义 |
|
|
|
|
|
| -------- | ---- |
|
|
|
|
|
| 0x00 | 停止 |
|
|
|
|
|
| 0x01 | 前进 |
|
|
|
|
|
| 0x02 | 后退 |
|
|
|
|
|
|
|
|
|
|
包体 `00 06 20 方向 速度 FF`
|
|
|
|
|
|
|
|
|
|
控制示例 `00 06 20 01 FF FF`
|
|
|
|
|
|
2024-12-19 01:08:39 +08:00
|
|
|
|
### 方向控制 `0x21`
|
2024-12-15 18:09:40 +08:00
|
|
|
|
|
|
|
|
|
| 方向数据 | 含义 |
|
|
|
|
|
| -------- | ---- |
|
2024-12-19 01:08:39 +08:00
|
|
|
|
| 0x00 | 左转 |
|
|
|
|
|
| 0x01 | 右转 |
|
2024-12-15 18:09:40 +08:00
|
|
|
|
|
2024-12-19 01:08:39 +08:00
|
|
|
|
包体 `00 06 21 方向 差速 FF`
|
2024-12-15 18:09:40 +08:00
|
|
|
|
|
2024-12-18 14:12:46 +08:00
|
|
|
|
控制示例 `00 06 21 01 01 FF`
|
|
|
|
|
|
2024-12-18 17:31:35 +08:00
|
|
|
|
### 单轮控制 `0x22`
|
|
|
|
|
|
|
|
|
|
| 轮数据 | 含义 |
|
|
|
|
|
| -------- | ---- |
|
|
|
|
|
| 0x00 | 左前轮 |
|
|
|
|
|
| 0x01 | 左后轮 |
|
|
|
|
|
| 0x02 | 右后轮 |
|
|
|
|
|
| 0x03 | 右前轮 |
|
|
|
|
|
|
|
|
|
|
| 方向数据 | 含义 |
|
|
|
|
|
| -------- | ---- |
|
|
|
|
|
| 0x00 | 停止 |
|
|
|
|
|
| 0x01 | 顺时针 |
|
|
|
|
|
| 0x02 | 逆时针 |
|
|
|
|
|
|
|
|
|
|
包体 `00 07 22 轮 方向 速度 FF`
|
|
|
|
|
|
|
|
|
|
控制示例 `00 07 22 01 01 01 FF`
|
|
|
|
|
|
2024-12-19 01:08:39 +08:00
|
|
|
|
### 原地控制 `0x23`
|
|
|
|
|
|
|
|
|
|
| 方向数据 | 含义 |
|
|
|
|
|
| -------- | ---- |
|
|
|
|
|
| 0x00 | 顺时针 |
|
|
|
|
|
| 0x01 | 逆时针 |
|
|
|
|
|
|
|
|
|
|
包体 `00 06 23 方向 时间 FF`
|
|
|
|
|
|
|
|
|
|
控制示例 `00 06 23 01 01 FF`
|
2024-12-18 14:12:46 +08:00
|
|
|
|
|
2024-12-20 00:11:04 +08:00
|
|
|
|
### XYR 控制 `0x24`
|
|
|
|
|
|
|
|
|
|
> ⚠️ 注意: X Y R 的取值范围为 -100 到 100,为有符号 8 位整数
|
|
|
|
|
|
|
|
|
|
包体 `00 07 24 X Y R FF`
|
|
|
|
|
|
|
|
|
|
控制示例 `00 07 24 01 01 01 FF`
|
|
|
|
|
|
2024-12-27 10:16:08 +08:00
|
|
|
|
## 设置
|
|
|
|
|
|
|
|
|
|
### 设置设备名称 `0xA1`
|
|
|
|
|
|
|
|
|
|
> ⚠️ 注意: 设备名称长度不能超过 16 个字符,此时最大包体长度 20,仅支持 ASCII 码
|
|
|
|
|
|
|
|
|
|
包体 `00 包体长度 A1 设备名称 FF`
|
|
|
|
|
|
|
|
|
|
> 示例:WhiteTiger
|
|
|
|
|
|
|
|
|
|
设置示例 `00 0E A1 57 68 69 74 65 54 69 67 65 72 FF`
|
|
|
|
|
|
2024-12-27 10:34:06 +08:00
|
|
|
|
### 设置 PID 参数 `0xA2`
|
|
|
|
|
|
|
|
|
|
> ⚠️ 注意: Kp Ki Kd 类型为 float,每个参数 4 个字节
|
|
|
|
|
|
|
|
|
|
包体 `00 07 A2 Kp1 Kp2 Kp3 Kp4 Ki1 Ki2 Ki3 Ki4 Kd1 Kd2 Kd3 Kd4 FF`
|
|
|
|
|
|
|
|
|
|
设置示例 `00 11 A2 01 01 01 01 01 01 01 01 01 01 01 01 01 FF`
|
|
|
|
|
|
2024-12-19 01:08:39 +08:00
|
|
|
|
## 状态回报
|
2024-12-18 14:12:46 +08:00
|
|
|
|
|
2024-12-19 01:08:39 +08:00
|
|
|
|
### 电机状态汇报 `0xE0`
|
2024-12-18 14:12:46 +08:00
|
|
|
|
|
2024-12-19 01:08:39 +08:00
|
|
|
|
包体 `01 0C E0 电机A_IN_1_2 电机A_PWM 电机B_IN_1_2 电机B_PWM 电机C_IN_1_2 电机C_PWM 电机D_IN_1_2 电机D_PWM FE`
|
2024-12-18 14:12:46 +08:00
|
|
|
|
|
2024-12-19 01:08:39 +08:00
|
|
|
|
示例 `01 0C E0 01 FF 02 FF 02 FF 01 FF FE`
|