esp32-car/packet.md

132 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 数据包格式
## 基础
| 含义 | 数据 |
| ---- | ---- |
| 发送包头 | 0x00 |
| 发送包尾 | 0xff |
| 返回包头 | 0x01 |
| 返回包尾 | 0xfe |
`数据包头` + `包体长度` + `指令` + `数据包体` + `数据包尾`
如:
`00 06 20 AA BB FF`
## 信息查询
### 查询蓝牙连接状态 `0x10`
查询示例 `00 04 10 FF`
| 返回数据 | 含义 |
| -------- | ---- |
| 01 | 已连接 |
| 00 | 未连接 |
返回示例 `01 05 10 01 FE`
### 查询 SPI Flash 挂载状态 `0x11`
查询示例 `00 04 11 FF`
| 返回数据 | 含义 |
| -------- | ---- |
| 01 | 已挂载 |
| 00 | 未挂载 |
返回示例 `01 05 11 01 FE`
### 查询超声波距离 `0x12`
查询示例 `00 04 12 FF`
返回一个 4 字节浮点数,表示距离,单位 m
返回示例 `01 08 12 距离3 距离2 距离1 距离0 FE`
## 控制
### 行进控制 `0x20`
| 方向数据 | 含义 |
| -------- | ---- |
| 0x00 | 停止 |
| 0x01 | 前进 |
| 0x02 | 后退 |
包体 `00 06 20 方向 速度 FF`
控制示例 `00 06 20 01 FF FF`
### 方向控制 `0x21`
| 方向数据 | 含义 |
| -------- | ---- |
| 0x00 | 左转 |
| 0x01 | 右转 |
包体 `00 06 21 方向 差速 FF`
控制示例 `00 06 21 01 01 FF`
### 单轮控制 `0x22`
| 轮数据 | 含义 |
| -------- | ---- |
| 0x00 | 左前轮 |
| 0x01 | 左后轮 |
| 0x02 | 右后轮 |
| 0x03 | 右前轮 |
| 方向数据 | 含义 |
| -------- | ---- |
| 0x00 | 停止 |
| 0x01 | 顺时针 |
| 0x02 | 逆时针 |
包体 `00 07 22 轮 方向 速度 FF`
控制示例 `00 07 22 01 01 01 FF`
### 原地控制 `0x23`
| 方向数据 | 含义 |
| -------- | ---- |
| 0x00 | 顺时针 |
| 0x01 | 逆时针 |
包体 `00 06 23 方向 时间 FF`
控制示例 `00 06 23 01 01 FF`
### XYR 控制 `0x24`
> ⚠️ 注意: X Y R 的取值范围为 -100 到 100为有符号 8 位整数
包体 `00 07 24 X Y R FF`
控制示例 `00 07 24 01 01 01 FF`
## 设置
### 设置设备名称 `0xA1`
> ⚠️ 注意: 设备名称长度不能超过 16 个字符,此时最大包体长度 20仅支持 ASCII 码
包体 `00 包体长度 A1 设备名称 FF`
> 示例WhiteTiger
设置示例 `00 0E A1 57 68 69 74 65 54 69 67 65 72 FF`
## 状态回报
### 电机状态汇报 `0xE0`
包体 `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`
示例 `01 0C E0 01 FF 02 FF 02 FF 01 FF FE`