esp32-car/packet.md

3.1 KiB
Raw Blame History

数据包格式

基础

含义 数据
发送包头 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 位整数

数据 正数 负数
X
Y
R 逆时针 顺时针

包体 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

设置 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

状态回报

设备状态回报 0xE0

包体 01 0E 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

数据 类型 表示
IN_1_2 无符号整数 按位表示 IN1 IN2 的值, 0000 00 IN2 IN1
PWM 无符号整数 -
红外引脚数量 无符号整数 -
红外数据 无符号整数 按位表示红外循迹模块数据, 0001 1111

示例 01 0E E0 01 FF 02 FF 02 FF 01 FF 05 1F FE