漂移驴车-MUS4-开发板
01 项目概述
漂移驴车MUS4开发板是面向自动驾驶小车与创新教育的开源控制板,适配LattePanda MU核心板作为上位机,承载视觉感知与模型推理,为RC小车智能化注入源源算力;板载陀螺仪与功率计,姿态与供电实时可见,配合ESP32下位机实时驱动与开源固件,让小车控制更精准,配套课程资料便于社区复刻与二次开发。

系统架构:板卡采用上下位机分工。LattePanda MU 计算模块作为核心计算单元,运行 Ubuntu + Python,负责自动驾驶算法、图像感知与模型推理、数据处理与系统调度;ESP32-WROOM-32E作为下位机,运行基于IDF的C++ 固件,负责遥控信号采集、PWM 输出、传感器采样与实时底层运动控制。板卡通过专用接口与 MU 连接,提供供电与外设扩展通道,配套纽扣电池保存系统时钟与配置信息。纯视觉端到端架构无需激光雷达与高精地图,自研 PCB 打通上下位机通信,避免从零焊接飞线。

适用人群:创客与 RC 车手、青少年科技创新教育师生、自动驾驶入门学习者、竞赛队伍。项目源于 DonkeyCar / 漂移驴车开源生态,可用于 RC 底盘的智能化改造、端到端自动驾驶教学与二次开发。
三种控制模式:
模式 | 常量 | 行为 |
RC 手动 | CAR_MODE_MANUAL = 0 | 接收机信号直接驱动转向与油门 |
半自动 | CAR_MODE_SEMI_AUTO = 1 | 辅助转向 + 手动油门 |
全自动 | CAR_MODE_FULL_AUTO = 2 | 由上位机模型输出驾驶指令 |
02 开源范围与版本声明
项目名称:漂移驴车-MUS4开发板;硬件版本:v2.4.2。
本次开源的内容:
类别 | 内容 | 授权 |
硬件设计文件 | KiCad 原理图、PCB 源文件、封装库、Gerber、钻孔与坐标文件、结构/布局图 | CERN-OHL-P-2.0 |
生产资料 | 生产 BOM(位号 / 型号 / 数量 / 规格) | CERN-OHL-P-2.0 |
固件与软件 | MUS4_FW 源码、构建脚本、工具脚本、Web 控制台资源 | Apache-2.0 |
文档 | PCB 用户手册、开发与测试记录、接口定义 | 逐项单独标注 |
开源范围与许可证:本项目「漂移驴车-MUS4开发板」为开源硬件项目,按客体分层授权:
① 硬件设计文件(原理图、PCB 源文件、封装库、Gerber、钻孔文件、BOM 及结构图)采用 CERN Open Hardware Licence Version 2 – Permissive(CERN-OHL-P-2.0 / Version 2 - Permissive),允许依据设计文件制造、使用、修改、销售与分发实物电路板,须保留 Notice 并标注修改;
② 固件与配套软件(MUS4_FW 等)采用 Apache License 2.0;
③ 文档与课程资料按各自标注的许可单独授权,含非商业限制的材料仅提供外链。
声明:本次开源不包含「漂移驴车 / DonkeyDrift」商标、Logo 及「官方认证套件」资格,使用上述标识须经社区委员会书面批准,非官方版本不得出现「官方认证」标识。
03 核心功能与特点
特性 | 规格 |
核心计算 | LattePanda MU(Ubuntu + Python),负责图像感知与模型推理 |
下位机主控 | ESP32-WROOM-32E,双核 Xtensa LX6 240 MHz,520 KB SRAM,4 MB Flash,WiFi 802.11 b/g/n,蓝牙 4.2 |
PWM 输入 | 6 路(CH1–CH6),800–2200 μs,3.3 V 兼容,10 kΩ 输入阻抗 |
PWM 输出 | 4 路(转向 / 油门 / 辅助 2 路),300 Hz,死区带宽 6 μs 软件过滤 |
姿态感知 | 板载 MPU-6050 六轴 IMU,I²C 地址 0x68,100 Hz 采样,±8 g / ±2000 °/s |
供电监测 | 板载 INA219AIDCNR,I²C 地址 0x40,电流 ±3.2 A、电压 0–26 V、精度 0.5%;另有 10 mΩ / 4 W 采样电阻与 CC6900SO-30A 霍尔电流传感器 |
无线通信 | WiFi AP(MUS4-DEBUG)/ STA 双模式;TCP 2323、HTTP Web 控制台 80、WebSocket 遥测 81 |
漂移辅助 | CH5 使能 / CH6 调强度,基于陀螺仪 Z 轴角速度计算补偿,平滑过渡避免抖动 |
安全机制 | 1 s 信号超时、800–2200 μs 范围验证、80 μs 迟滞过滤、故障安全自动回中 + 刹车、CH3 驻车互锁、OTA 时自动驻车 |
状态反馈 | WS2812B 可编程 RGB LED、蜂鸣器、电源与状态指示灯组 |
存储与扩展 | M.2 Key-E(WiFi 模块)、M.2 Key-M(2230 SSD,NVMe / SATA)、HDMI-A、USB 3.0 Type-A、摄像头接口、CPU 风扇、JST 扩展 |
INA219 为电流 / 电压检测放大器,功率由母线电压与采样电流计算得出,「功率计」是功能俗称,并非独立功率计芯片;MPU-6050 为集成三轴加速度计与三轴陀螺仪的六轴 IMU。
控制链路:RC 接收机 PWM → ESP32 输入捕获与滑动窗口中值滤波(窗口 5)→ 按控制模式决策(手动 / 半自动 / 上位机指令)→ 300 Hz PWM 输出到转向舵机与电调;MPU-6050 与 INA219 经 I²C(SDA GPIO21 / SCL GPIO22)反馈姿态与供电状态;WiFi / WebSocket 提供遥测与 Web 控制台调参。
04 硬件说明


主要器件与模块 BOM:
模块 | 器件 / 位号 | 功能 |
核心计算 | LattePanda MU 计算模块(A1)、纽扣电池 BT1 | 算法运行、数据处理、系统调度;保存时钟与配置 |
协处理器 | ESP32-WROOM-32E(U7) | 实时运动控制、遥控信号处理、调试接口 |
六轴 IMU | MPU-6050(QFN24,I²C 0x68) | 姿态与运动数据采集,用于转向辅助与漂移控制 |
电流电压检测 | INA219AIDCNR(TI,SOT-23-8,I²C 0x40) | 实时监测电压、电流与功率 |
电流采样 | LR2728-24R010F1,10 mΩ / 4 W(R2728) | 配合 INA219 实现电流检测 |
霍尔电流传感器 | CC6900SO-30A(U12,SOP-8) | 电流采样链路 |
DC-DC | MP8756GD(DCDC1 / DCDC2) | 高效率降压,产生系统核心电压 |
LDO | SGM2225-3.3XKC3G/TR(LDO1)、XC6206P332MR(LDO3) | 3.3 V 外设与 MU 模块稳压 |
PD 诱骗 | CH224K | USB-C PD 快充输入协商 |
USB 转串口 | CP2102(USB-C 调试口) | 固件下载、日志输出 |
电源保护 | SL54B-TP(D51–D54)肖特基、SMFJ5.0CA(D2 / D5)TVS、ESD5V0B03 ×8、SP0503BAHT(D12)、ULC0524P(U4 / U6)、保险丝 F2–F5 | 反向电流 / 浪涌 / 静电 / 过流防护 |
人机交互 | WS2812B(GPIO5)、蜂鸣器 BZ1(GPIO2)、PWR / 3V3 / 5V / SLP / VDC / LED_SSD 指示灯 | 状态显示与音频反馈 |
存储与显示 | M.2 Key-M SSD 2230、HDMI-A(含 ESD1 / ESD2 / ESD4 与 AO3400A 电平转换) | 数据 / 模型存储,画面输出 |
PCB 物理特性:4 层板,板厚 1.6 mm,无铅喷锡表面处理,回流焊工艺;板载 FID1–FID8 定位标记用于贴片机器视觉定位。
设计文件清单(随开源包提供):DonkeyDrift-MUS4-v2.4.2.kicad_pro / .kicad_sch / .kicad_pcb,8 张子原理图(Controller、ESP32、HDMI、Interface、LattePanda Module、M.2 E&M Key、PSU、USB2.0&USB3.0),Gerber、钻孔(PTH.drl)、顶层 / 底层坐标文件(.pos)、封装库。
05 硬件描述
5.1 电源输入与输出
方向 | 接口 | 定义 |
输入 | Battery(XT30) | XT30 公座,丝印 3S Battery,输入 11–15 V;同时给板载器件与底盘电调供电,电调经 ESC_POWER 母座取电 |
输入 | PD-MAX 15V(USB-C) | Type-C,丝印 PD-MAX15V,输入 11–15 V;PD 快充输入,仅给板载器件供电,与底盘供电及电池输入隔离 |
输出 | ESC_POWER(XT30) | XT30 母座,丝印 ESC_POWER,向底盘电调供电;电源来自 3S Battery 一路输入 |
输出 | 5V / 5V OUT / G / G(JST GH) | 两路 5 V 外设供电 |
电源管理单元由 MP8756GD 降压 DC-DC、SGM2225 LDO、INA219 电流检测与 CH224K PD 诱骗组成,负责多电压输出、电源状态监测与快充输入。
5.2 指示灯、按键与跳线
元件 / 引脚 | 定义 |
PWR(绿色) | 主电源输入正常时常亮 |
3V3 / 5V(黄色) | 对应电压输出正常时常亮 |
SLP / VDC(红色) | 睡眠状态与电源电压检测指示 |
LED_SSD(绿色) | SSD 读写时闪烁 |
BOOT / RESET | ESP32 启动模式切换与复位,用于固件烧录与故障恢复 |
CPU_Reset / CPU_ON | LattePanda 模块复位与开机按键 |
UART_SEL(GPIO12) | UART 选择,默认低电平,高电平切换到备用串口 1 |
5.3 系统链路
供电双路隔离
① XT30 公座(丝印 3S Battery)输入 11–15 V,一路给板载器件供电,另一路经 XT30 母座(丝印 ESC_POWER)向底盘电调供电;
② Type-C 接口(丝印 PD-MAX15V)输入 11–15 V,仅给板载器件供电,与底盘供电及电池输入隔离。板载供电经电源保护与 DC-DC / LDO 变换后分配到 MU 核心、ESP32 与 3.3 V / 5 V 外设。
控制链路:RC 接收机 PWM → ESP32 输入捕获与滑动窗口中值滤波 → 按控制模式决策 → 300 Hz PWM 输出到转向舵机与电调;MPU-6050 与 INA219 经 I²C 反馈姿态与供电状态;WiFi / WebSocket 提供遥测与 Web 控制台调参。INA219 采样链路并联在电源输入侧,向系统回报电压 / 电流 / 功率。
5.4 电气特性
参数 | 条件 | 典型 / 范围 | 单位 |
输入电压范围 | — | 11–15 | V |
工作电压(推荐条件) | BEC 输出 | 5 | V |
工作电流 | 正常模式 / WiFi 模式 | 180 / 220 | mA |
工作温度 / 存储温度 | — | -20 – 85 / -40 – 105 | °C |
输入信号电压 | — | 0 – 3.6 | V |
每通道输出电流 | 最大值 | 500 | mA |
PWM 频率 | 舵机 / 电调 | 300 | Hz |
PWM 分辨率 | 有效位 | 0–4096(等效 12 bit) | bit |
5.5 测试点与布局注意
信号 | 测试条件 | 预期值 |
3.3V | 上电 | 3.3 V ±5% |
5V_IN | 上电 | 5.0 V ±5% |
CH1_IN | PWM 输入 | 800–2200 μs |
PWM_OUT | 无负载 | 3.3 V PWM |
I2C_SCL / I2C_SDA | 空闲 | 3.3 V |
布局经验:PWM 输入使用屏蔽线且长度不超过 20 cm;I²C 总线加 4.7 kΩ 上拉;电源走线宽度不小于 0.5 mm;晶振靠近 ESP32;采用星形接地、模拟与数字地单点连接;MPU6050 下方敷铜接地;ESP32 背面增加散热过孔,避免在 LDO 上方放置热敏感元件。
06 快速上手
使用前准备清单:
类别 | 需要准备 |
底盘与动力 | RC 小车底盘、动力电池(XT30)、电调与电机、转向舵机 |
控制 | RC 遥控器与接收机(CH1–CH6)、LattePanda MU 核心模块 |
感知 | 车载摄像头(纯视觉方案) |
线缆与工具 | USB-C 数据线、JST GH / PH 线材、万用表、螺丝与固定件 |
可选 | M.2 2230 SSD、M.2 Key-E WiFi 模块、CPU 风扇、HDMI 显示器 |
建议流程:
断电状态下检查 PCB 正反面无磕碰、无连锡,确认 XT30 与 JST 接口丝印方向。
先连接接收机、舵机、电调与摄像头,再连接动力电池;接线期间动力电池保持断开。
上电后观察 PWR / 3V3 / 5V 指示灯,用万用表复核 3.3 V 与 5 V 测试点。
通过 USB-C 调试口连接上位机(115200 baud),确认串口启动日志与 I²C 器件地址(0x68 / 0x40)。
连接 WiFi AP
MUS4-DEBUG(默认密码mus4-debug),打开 Web 控制台查看实时遥测、完成转向中点与行程校准。首次试车架空车轮,验证转向与油门中位、CH3 驻车解锁 / 锁定、信号丢失时的回中与刹车,再落地上车。
急停与人工接管:RC 信号丢失超过 1 s 触发故障安全(自动回中 + 刹车);CH3 高电平保持 1 s 解锁驻车、低电平保持 0.5 s 锁定;任何试车都应有人工接管预案,不要在无人看管或开放场地运行。
07 安装调试
7.1 固件烧录与升级
项目 | 参数 |
编程接口 | USB-to-UART(CP2102),USB-C 调试口 |
波特率 | 115200(UART0 调试、UART1 外部通信均为 115200,8-N-1) |
进入下载模式 | GPIO0 拉低后复位(BOOT 按键) |
OTA | 通过 Web 控制台上传固件,支持断点续传、升级期间自动保护状态、失败回滚 |
7.2 串口命令与遥测协议
类别 | 内容 |
日志与调试 | LOG_WEB(日志切到 Web)、LOG_SERIAL(切回串口)、FILTER_DEBUG(滤波调试开关)、STATUS(系统状态)、PING(连接测试) |
校准命令 | STEER_CAL(开始校准)、CAL_SAVE(保存)、CAL_ABORT(取消)、CAL_RESET(恢复出厂) |
基本控制协议 | T:S 换行结束,T 为油门 -100–100,S 为转向 -100–100 |
带校验协议 | T:S:SEQ*CS 换行结束,SEQ 为 0–255 序列号,CS 为十六进制校验和 |
Web 控制台 | http://设备名.local 或设备 IP;实时遥测、参数调整、固件升级;默认密码 mus4-debug |
RC 校准出厂默认值(微秒):油门最小 888 / 中位 1493 / 最大 2149;转向最小 872 / 中位 1488 / 最大 2113。漂移辅助默认参数:反打增益 25.0、触发阈值 1.2 rad/s、最大补偿 70。
7.3 RGB 状态灯与蜂鸣器
颜色 / 提示音 | 状态 |
绿色常亮 | 正常运行 |
蓝色 / 紫色闪烁 | WiFi AP / STA 模式 |
黄色呼吸 | 校准模式 |
红色快闪 | 错误状态 |
白色闪烁 | OTA 升级中 |
短响 / 长响 | 启动完成 / 错误报警 |
两短一长 / 三短 | 校准开始 / 校准完成 |
7.4 故障排除与错误码
现象 | 排查方向 |
无 PWM 输出 | 检查电源电压、ESP32 是否启动、PWM 引脚配置 |
WiFi 无法连接 | 检查天线、WiFi 配置参数与 STA 密码 |
传感器数据异常 | 检查 I²C 上拉电阻、器件地址、电源纹波 |
E001 / E002 | I²C 通信失败 / PWM 信号丢失,检查传感器与接收机连接 |
E003 / E004 | WiFi 连接超时 / 内存不足,检查网络设置或重启系统 |
08 工程验证与测试记录
已完成的工程验证:
阶段 | 验证内容 | 结果 |
v2.4 打样 | 电源质量测量、PCBA 功能测试 | 发现 MPU6050 GND 未连接,记录为覆铜参数问题 |
v2.4.1 修正 | 调整覆铜配置与设计规则约束,DRC 复核 | 未连接项目由 101 处清零,DRC 通过 |
v2.4.2 | 生产资料 EQ 答复、DRC 检验 | DRC 检验通过 |
09 注意事项与安全
⚠️ 安全提示:RC 车涉及锂电池、电机与舵机,存在机械伤害、过热与起火风险。本项目资料不能替代使用者的安全判断;试车必须在封闭场地进行,全程保留人工接管手段,遵守当地无线电管理规定。
电池与供电:XT30 公座(3S Battery)与 Type-C(PD-MAX15V)两路输入均为 11–15 V,但用途不同——前者同时给板载器件与底盘电调(经 ESC_POWER 母座)供电,后者仅给板载器件供电并与底盘供电、电池输入隔离。使用匹配规格的动力电池,接线前核对板面丝印与输入范围、注意 XT30 极性;禁止在通电状态插拔电池、电调与外设。
电流与散热:电调 / 电机回路电流大,接线端子须紧固;MU 模块配 CPU_FAN 散热接口,长时间运行注意温升;避免在 LDO 上方堆放热敏感元件。
静电与防护:板卡已在 HDMI、USB、ESP32 接口布置 ESD 器件,操作时仍应佩戴防静电手环;热插拔 HDMI / USB / M.2 设备前先断电。
急停逻辑:信号超时 1 s 自动回中 + 刹车,CH3 驻车互锁,OTA 升级时自动驻车;每次上电先验证急停链路再落地上车。
接地与覆铜:复现板卡须核对 GND 覆铜参数(电气间隙 0.25 mm、最小宽度 0.125 mm),DRC 中「错误」与「未连接项目」必须清零后再投产。
场地与合规:封闭场地测试、避免干扰他人;使用者自行承担场地安全与人工接管责任。
10 接口线序总表
10.1 PWM 输入(接收机)
信号 | ESP32 GPIO | 功能 |
CH1_PIN | 36 | 转向通道 PWM 输入 |
CH2_PIN | 39 | 油门通道 PWM 输入 |
CH3_PIN | 34 | 通道 3 PWM 输入(驻车) |
CH4_PIN | 26 | 通道 4 PWM 输入(模式选择) |
CH5_PIN | 27 | 通道 5 PWM 输入(漂移使能) |
CH6_PIN | 35 | 通道 6 PWM 输入(漂移比例) |
10.2 PWM 输出(舵机 / 电调)
信号 | ESP32 GPIO | 功能 |
STEERING_PIN | 23 | 转向舵机输出 |
THROTTLE_PIN | 25 | 油门电调输出 |
PWM_1 | 32 | 辅助 PWM 输出通道 1 |
PWM_2 | 33 | 辅助 PWM 输出通道 2 |
10.3 通信与指示
接口 | 引脚 | ESP32 GPIO | 功能 |
I2C | SDA | 21 | MPU6050 与 INA219 数据线 |
I2C | SCL | 22 | MPU6050 与 INA219 时钟线 |
UART1 | RX_1 | 16 | 串口 1 接收 |
UART1 | TX_1 | 17 | 串口 1 发送 |
UART1-BK | RX_1 | 19 | 备用串口 1 接收 |
UART1-BK | TX_1 | 18 | 备用串口 1 发送 |
选择 | UART_SEL | 12 | UART 选择,默认低电平 |
RGB LED | LED_PIN | 5 | WS2812B 可编程 LED |
蜂鸣器 | BUZZER_PIN | 2 | 音频反馈 |
10.4 通用扩展接口
接口 | 内容 |
EX_UART / IIC_3V3 / IIC_5V(JST PH) | UART 串口、3.3 V 电平 I²C、5 V 电平 I²C |
CH1_ST / PWM_1 / PWM_2 / CH2_TH(2.54 mm 排针) | PWM 输出与信号采集 |
Camera | 车载摄像头,环境视觉感知 |
RECEIVER(RC_MODULE) | 无线遥控器接收模块 |
LED5 / LED6 / LED7(2835 LED) | 扩展状态指示 |
线序以随包 KiCad 原理图为准。
11 免责声明与社区入口
免责声明:本产品仅供研发、教学与测试使用;使用时请遵守当地无线电管理规定,在封闭场地测试,避免干扰他人。作者与贡献者不对因使用本设计文件、固件或衍生实物造成的任何损失负责。本文档随硬件版本更新,请以随包最新用户手册与设计文件为准。
社区入口:项目页评论区、代码仓库 Issues 与项目 Wiki;课程与师训资料按版权状态以外链形式提供。
