一、方案概述
基于 ESP32-C3 SuperMini 开发板的超低成本 2WD 智能小车方案,支持 WiFi/BLE 无线控制、超声波避障。电源采用 18650 单节 + 5V 充放电一体小板;行走机构采用 ¥9.9 的 2WD 底盘套件(底盘 + 双轮 + 双 TT 电机 + 万向轮)。状态指示采用 红、绿 3mm LED 灯珠。电机驱动占用 GPIO9/10/20/21,运行按钮占用 GPIO0;板载丝印的 I2C(GPIO8 SDA / GPIO9 SCL) 中 GPIO9 已用于电机,扩展 I2C 外设需改用其它空闲脚(见第四节)。
主控、电池、充放电板、电机驱动与超声波等模块规格与价格见第二节;电池与电源小板说明见第三节;全车供电拓扑与 GPIO 飞线见第三节 §3.3与第四节 §4.2。
二、物料清单
1. 核心模块
| 模块 | 型号 / 规格 | 数量 | 单价 | 小计 |
|---|---|---|---|---|
| 电池 | 18650 锂离子电池(2200mAh,XH2.54 2P 插头) | 1 | ¥6.12 | ¥6.12 |
| 充放电主板 | 5V 充放电一体小板(Type-C 同口,B+ / B-,5V± 焊盘) | 1 | ¥2.65 | ¥2.65 |
| 主控板 | ESP32-C3 SuperMini 开发板(WiFi/BLE) | 1 | ¥8.76 | ¥8.76 |
| 电机驱动 | 2 路直流电机驱动模块(双 H 桥,迷你 L298N) | 1 | ¥1.05 | ¥1.05 |
| 测距传感器 | HC-SR04 超声波模块(新版 3.3V~5V) | 1 | ¥4.50 | ¥4.50 |
| 2WD 机械套件 | 底盘 + 驱动轮 + TT 电机 ×2(含后置万向轮) | 1 | ¥9.90 | ¥9.90 |
| 核心物料合计 | ¥32.98 | |||
2. 辅材(预估)
| 物料 | 预估价格 |
|---|---|
| 杜邦线 / 连接线 | ¥2~3 |
| 双面胶、扎带等(固定主板、电池、超声波等) | ¥0~2 |
| 状态指示灯:3mm LED 灯珠(红、绿各 1)+ 220Ω~470Ω 限流电阻各 1 | ¥0.5~2 |
| 辅材小计 | ¥2.5~7 |
3. 总成本
| 类别 | 金额 |
|---|---|
| 核心模块 | ¥32.98 |
| 辅材预估 | ¥2.5~7 |
| 整车总计 | ¥35.48 ~ ¥39.98 |
三、电源与模块
1. 18650 电池与 5V 充放电一体模块
电芯经 XH2.54 接小板 B+/B-;升压 5V 供 SuperMini;电机驱动 VM 优先接 B+。焊接前用万用表核对焊盘极性与网络。
5V/GND、B+/B- 焊盘以实物为准)18650 电池(本项目选用)
| 参数 | 规格 |
|---|---|
| 类型 | 18650 锂离子电池 |
| 标称电压 | 3.7V |
| 容量 | 2200mAh |
| 充电限制电压 | 4.2V(GB31241-2022) |
| 出线 | XH2.54 2P,红正黑负 |
| 尺寸(约) | φ19mm × 66mm,线长约 18cm |
5V 充放电一体板 — 接口说明
| 接口 | 说明 |
|---|---|
| Type-C | 输入输出同口:充电与对外 5V(与焊盘关系以实物为准) |
| 5V 正 / 负 | 升压后 5V 与 GND,接 SuperMini 5V/VIN 与地 |
| B+ / B- | 接电芯正、负;XH2.54 红线接 B+、黑线接 B- |
| 显示按键 | 短按点亮 4× LED 电量指示(以厂商说明为准) |
| 保护 | 板载电池保护 IC,与主控侧构成双层保护 |
5V 充放电一体板 — 技术参数(厂商标称)
| 参数 | 规格 |
|---|---|
| 充电电压 | DC 4.5V ~ 5.5V(推荐 DC 5V) |
| 充电电流 | 0 ~ 2.1A |
| 充满(截止)电压 | 4.2V ± 1% |
| 放电输出 | 5V,最大放电电流约 2.4A |
| 输出电压范围 | 5V ~ 5.15V |
| 放电静态电流 | 80μA |
| 放电效率 | ≤ 96% |
| 工作温度 | -20°C ~ +85°C |
保护功能:过流(OCP)、过压(OVP)、短路(SCP)、过温(OTP);内置锂电池保护。无保护板电芯与带保护板电芯均可配合使用(以电芯规格与厂商说明为准)。
电池兼容性:适用于标称 3.7V 锂电池(含聚合物、18650)。满充电压为 4.2V / 4.35V / 4.4V 等类型均可搭配;充电截止电压固定为 4.2V,高电压体系电芯长期匹配需自行评估。
主要特点:输入输出同口;空载超时后仍保持 5V 输出(多数同类会关断轻载),利于 ESP32-C3 稳定上电(以实测为准);双层保护;体积小,可按需加焊 USB 母座;预留焊线焊盘,便于车内飞线。
2. 2 路直流电机驱动模块
| 参数 | 规格 |
|---|---|
| 名称 | 2 路直流电机驱动模块(双 H 桥,迷你 L298N) |
| 供电电压 | 2V ~ 10V |
| 控制信号电压 | 1.8V ~ 7V |
| 通道 | 2 路(双 H 桥),独立驱动 2 个直流电机 |
| 功能 | PWM 调速、正反转 |
| 控制引脚 | A1/A2(电机 A)、B1/B2(电机 B),亦标注 INT1~INT4 |
| 电机输出 | MOTOR-A、MOTOR-B |
H 桥真值表(电机 A): A1 高 A2 低 → 正转;A1 低 A2 高 → 反转;双低 → 滑行;双高 → 刹车。电机 B 同(B1/B2)。PWM 调速时用 PWM 替代高电平,占空比控制速度。
3. 供电分配方案
18650 + 5V 充放电一体小板
┌────────────────────┐
5V 焊盘 ←────┤ Type-C 同口 │
│ │ B+ / B- 接电芯 │
│ │ │
│ │ GND ──┐ │
│ └──────────────┼─────┘
│ ┌────┴────┐
│ │电源开关 │(可选,串负极)
│ └────┬────┘
│ │
↓ 公共 GND ↓
┌──────────┐ │ ┌──────────────┐
│ESP32-C3 │ GPIO9/10/20/21 │ │ 电机驱动板 │
│SuperMini │────────────────┼─────────→│ 双 H 桥 L298N │
│ │ │ │ MOTOR-A ──→ 左轮
│ GPIO1/2 │──→ HC-SR04 │ │ MOTOR-B ──→ 右轮
│ GPIO5/6 │──→ 红/绿灯珠 │ └──────────────┘
│ GPIO0 │──→ [运行按钮]──┘
└────┬─────┘
└──────────── 公共 GND ─────────────────┘
超声波 Trig / Echo 与运行键所接 GPIO 编号仅以第四节「GPIO 与接线」为准,本文其它位置不再重复,以免多处修改时不同步。
电源开关(若使用)串联在 GND 负极回路时,断开则各模块同时失回路。
运行按钮(大按键模块)
| 参数 | 规格 |
|---|---|
| 尺寸 | 20mm × 12mm |
| 接口 | 3P(VCC、GND、OUT) |
| 输出 | 按下高电平,释放低电平 |
| 引脚 | 接线 |
|---|---|
| VCC | ESP32-C3 SuperMini 3.3V(以板丝印为准) |
| GND | 公共 GND |
| OUT | ESP32-C3 GPIO0(以板丝印为准) |
| 硬件 | 类型 | 功能 | 接法 |
|---|---|---|---|
| 电源开关 | 拨动开关 | 切断/接通整车供电 | 串联在 5V 负极或公共 GND 回路 |
| 运行按钮 | 按压按钮 | 启动/停止运行 | OUT→GPIO0,VCC→3.3V,GND→公共 GND |
工作流程:电源开关 ON → SuperMini 上电待机 → 按运行按钮启动 → 再按停止 → 电源开关 OFF 断电。
| 输出口 | 供给模块 | 电流预估 | 余量 |
|---|---|---|---|
| 5V(升压) | SuperMini + HC-SR04(经板载 3.3V) | WiFi 活跃时约百毫安级 | 5V 约 2.4A 能力,逻辑侧充足 |
| B+ | 电机驱动 → 2× TT 马达 | 典型约 300~400mA | 注意堵转电流 |
电机驱动优先使用 B+ 供 VM 的理由:
- 直驱效率高:不经升压回路,线损与变换损耗更小。
- 电流路径清晰:大功率走 B+/B-,5V 主供 MCU 与传感器逻辑。
- TT 马达适配:3.7V~4.2V 在 TT 马达常用 3~6V 范围内。
- 可选 5V 驱动:布线需要时可在电流允许下将 VM 接 5V 焊盘(模块仍在 2~10V 允许范围内)。
4. HC-SR04 超声波(宽电压版)
| 参数 | 规格 |
|---|---|
| 型号 | HC-SR04(新版,宽电压) |
| 工作电压 | 3.3V ~ 5V |
| 测距范围 | 2cm ~ 400cm |
| 精度 | ±3mm |
| 探测角度 | ~15° 锥形 |
| 接口 | VCC、Trig、Echo、GND |
| 工作电流 | ~15mA |
5. TT 马达与 2WD 套件
| 参数 | 规格 |
|---|---|
| 型号 | TT 马达直流减速电机(单轴,套件内 2 只) |
| 减速比 | 1:48(常见黄盖减速箱,以实物为准) |
| 工作电压 | 3V ~ 6V |
| 额定转速(约) | 200 RPM @ 3.7V |
| 空载电流 | ~150mA |
| 堵转电流 | ~250~500mA |
| 输出轴 | 单轴,白色塑料 D 型轴 |
6. 状态指示灯(红 / 绿 3mm LED 灯珠)
3mm LED 灯珠(学名为发光二极管)。下图仅为外形示例,实车仅需红、绿各 1 只。
| 项目 | 说明 |
|---|---|
| LED | 3mm LED 灯珠,红 ×1、绿 ×1 |
| 限流电阻 | 每只 LED 串联 1 只 220Ω~470Ω(1/4W 即可) |
| 连接顺序 | GPIO → 电阻 → LED 正极(长脚)→ LED 负极 → GND(高电平点亮) |
| 电流 | 每路约几 mA~十余 mA;勿省略电阻 |
| GPIO | 用途 | 状态含义 |
|---|---|---|
| GPIO5 | 绿色 3mm LED 灯珠 | 正常运行 / 程序已启动 |
| GPIO6 | 红色 3mm LED 灯珠 | 告警 / 避障触发 / 错误状态 |
除常亮/熄灭外,可用闪烁周期区分状态(如慢闪待机、快闪行驶)。
7. 电压兼容性
| 模块 | 工作电压 | 实际供电 | 兼容性 |
|---|---|---|---|
| ESP32-C3 SuperMini | 5V VIN → 板载 3.3V | 5V 充放电板 5V 焊盘 | ✅ |
| 双 H 桥(迷你 L298N) | 2~10V(控制 1.8~7V) | B+ 或 5V 焊盘 | ✅ |
| HC-SR04(新版) | 3.3V~5V | SuperMini 3.3V | ✅ |
| TT 减速马达 | 3V~6V | 经驱动板,B+ 优先 | ✅ |
| 3mm LED 灯珠(经电阻) | GPIO 输出高电平经电阻限流 | 3.3V 逻辑侧 | ✅ |
结论:全链路电压兼容,无需电平转换。
四、GPIO 与接线
本车各外设所接 GPIO(含超声波 Trig/Echo、运行键、左右电机)以下文表格与飞线为准;专题页其它章节只描述功能与拓扑,不再重复具体编号,以免多处修改时不同步。
板载双排各 8 脚(USB Type-C 端朝上时),本款丝印将 I2C 标在 GPIO8(SDA)、GPIO9(SCL),GPIO5~7 侧为 SPI(MISO/MOSI/SS)等复用。下列顺序与上图及常见 SuperMini 一致;若采购其它外形,以实物丝印为准。
1. 排针顺序(USB 朝上)
| 左侧(由上 → 下) | 右侧(由上 → 下) |
|---|---|
| 5V | GPIO5(A5 / MISO) |
| GND | GPIO6(MOSI) |
| 3.3V | GPIO7(SS) |
| GPIO4(A4 / SCK) | GPIO8(I2C SDA) |
| GPIO3(A3) | GPIO9(I2C SCL) |
| GPIO2(A2) | GPIO10 |
| GPIO1(A1) | GPIO20(UART RX) |
| GPIO0(A0) | GPIO21(UART TX) |
2. 引脚分配(实测验证)
| GPIO | 分配用途 | 位置(本款,USB 朝上) | 状态 |
|---|---|---|---|
| GPIO0 | 运行按钮(按下高电平) | 左侧最下脚 | 已分配 |
| GPIO1 | 超声波 Trig | 左侧自下数第 2 脚 | 已分配 |
| GPIO2 | 超声波 Echo | 左侧自下数第 3 脚 | 已分配 |
| GPIO3 | 空闲 | 左侧自下数第 4 脚 | 可用 |
| GPIO4 | 空闲 | 左侧自下数第 5 脚 | 可用 |
| GPIO5 | 绿色 3mm LED 灯珠(经电阻接 GND) | 右侧最上脚 | 已分配 |
| GPIO6 | 红色 3mm LED 灯珠(经电阻接 GND) | 右侧自上数第 2 脚 | 已分配 |
| GPIO7 | 空闲(SPI SS 等复用) | 右侧自上数第 3 脚 | 可用 |
| GPIO8 | 空闲(板载丝印 I2C SDA) | 右侧自上数第 4 脚 | 可用 |
| GPIO9 | 电机 A — A1/INT1(左轮)⚠️ strap 脚 | 右侧自上数第 5 脚 | 已分配 |
| GPIO10 | 电机 A — A2/INT2(左轮) | 右侧自上数第 6 脚 | 已分配 |
| GPIO20 | 电机 B — B1/INT3(右轮,原 UART RX) | 右侧自下数第 2 脚 | 已分配 |
| GPIO21 | 电机 B — B2/INT4(右轮,原 UART TX) | 右侧最下脚 | 已分配 |
已占用 9 个 GPIO;GPIO3、GPIO4、GPIO7、GPIO8 仍可扩展。注意事项:
- GPIO9 是 strap 脚:上电瞬间若被驱动板拉低会进入下载模式。建议先插主控、最后再上电池;启动异常时按一下 RESET。
- GPIO20/21 与 UART0 复用:用作电机 PWM 后,控制台只能通过 USB Serial JTAG 输出,不影响 mpremote / Thonny 调试。
- GPIO8/9 板载丝印为 I2C:由于 GPIO9 已用于电机,扩展 I2C 设备(如 ToF)需改走 GPIO3/GPIO4 作软件 I2C。
- GPIO0~4 在启动时可能有特殊行为;GPIO0 作按钮、GPIO1/GPIO2 作 HC-SR04 在本方案实测正常。
3. 接线图
ESP32-C3 SuperMini 电机驱动板(双 H 桥)
──────────────────── ────────────────────
GPIO9 ─────────────────→ A1/INT1 ┐
GPIO10 ─────────────────→ A2/INT2 ┘ 电机 A(左轮)
GPIO20 ─────────────────→ B1/INT3 ┐
GPIO21 ─────────────────→ B2/INT4 ┘ 电机 B(右轮)
GND ─────────────────→ GND(共地)
ESP32-C3 SuperMini HC-SR04 超声波
──────────────────── ──────────────
GPIO1 ─────────────────→ Trig
GPIO2 ←──────────────── Echo
3.3V ─────────────────→ VCC
GND ─────────────────→ GND
ESP32-C3 SuperMini 运行按钮模块
──────────────────── ────────────
GPIO0 ←──────────────── OUT(按下高电平)
3.3V ─────────────────→ VCC
公共 GND ─────────────────→ GND
ESP32-C3 SuperMini 3mm LED 灯珠(各支路:GPIO→电阻→LED+→LED−→GND)
────────────────────
GPIO5 ──→ [220Ω~470Ω] ──→ 绿色灯珠正 → 负 ──→ GND
GPIO6 ──→ [220Ω~470Ω] ──→ 红色灯珠正 → 负 ──→ GND
5V 充放电一体小板
──────────────────
5V 正 / 5V 负 ────────────→ SuperMini 5V / GND
B+ ─────────────────────→ 电机驱动板 VM/VCC(优先)
B- / 5V 负 ──────────────→ 公共 GND ──┬→ SuperMini GND
├→ 电机驱动板 GND
├→ HC-SR04 GND
├→ 运行按钮 GND
└→ 3mm LED 灯珠负极(共地)
五、方案优势
| 优势 | 说明 |
|---|---|
| 成本极低 | 核心 BOM ¥32.98,整车约 ¥35.5~40(含 3mm LED 灯珠辅材) |
| WiFi + BLE | ESP32-C3 内置无线,可做手机遥控、Web 控制、OTA |
| 结构更简单 | 无 OLED,减少 I2C 与屏幕相关代码 |
| GPIO 分配 | GPIO9/10/20/21 驱动电机;GPIO0 接按钮;GPIO5/6 接红绿 LED;GPIO1/2/7/8 可扩展 |
| MicroPython | 支持 Python 编程,学习门槛低 |
| 机械一体化 | ¥9.9 2WD 套件含底盘、双电机、轮与万向轮,装配快 |
六、注意事项
- 共地连接 — ESP32-C3、电机驱动板、超声波模块、充放电小板、按钮、LED 的 GND 必须互联。
- 供电分离 — 电机 VM 走 B+ 或 5V 焊盘,不要从 SuperMini 3.3V 给电机供电。
- 超声波版本 — 须为新版 HC-SR04(3.3V~5V);老版仅 5V 不宜直接接 3.3V 逻辑供电。
- 充放电小板 — 焊接前核对 B+/B- 与 5V/GND;确认最大电流满足 WiFi 峰值与电机需求。
- 电机电流 — TT 堵转约 250~500mA,避免长时间堵转。
- GPIO9 是 strap 脚 — 上电时若驱动板把 A1 拉低会让 C3 进入下载模式。建议先上 USB / 主控,再上电池给驱动板供电;启动异常时短按 RESET。
- 3mm LED 灯珠 — 每只必须串联限流电阻,禁止 GPIO 直接短接灯珠两脚;负极与整车 GND 共地。
- GPIO20/21 — 原 UART0,作电机 PWM 后串口控制台只能走 USB Serial JTAG(mpremote/Thonny 仍可正常用),不要再外接 UART 设备到这两脚。
七、可选升级路径
| 升级方向 | 方案 | 额外成本 |
|---|---|---|
| 测距升级 | VL53L0X ToF(I2C,建议软件 I2C 走 GPIO3/GPIO4,因 GPIO9 已用于电机) | ¥5~8 |
| 电机驱动 | TB6612FNG(效率更高、发热更小) | ¥2~3 |
| 状态指示升级 | RGB LED(四脚共阴/共阳,需 3 路 GPIO + 限流电阻) | ¥2~10 |
| 声音反馈 | 有源蜂鸣器(如 GPIO7) | ¥0.3 |
| 循迹 | TCRT5000 ×2 | ¥2~4 |
| 人机界面 | 外接显示屏或基于网络的交互界面 | 视选型 |
| 融合测距 | 超声波 + ToF | ¥5~8 |
八、超声波与 ToF 对比
本方案选用 HC-SR04,下表供选型参考。
| 特性 | HC-SR04 超声波 | VL53L0X ToF |
|---|---|---|
| 价格 | 约 ¥4.5 | ¥5~8 |
| 测距范围 | 2cm ~ 400cm | 3cm ~ 200cm |
| 精度 | ±3mm | ±3~5% |
| 探测方式 | 声波 ~15° 锥体,覆盖面宽 | 激光点射,精准但覆盖面窄 |
| 工作电压 | 3.3V~5V(新版) | 2.8~3.3V |
| 接口 | GPIO(Trig + Echo,占 2 引脚) | I2C(GPIO9 已用于电机,建议软件 I2C 走 GPIO3/GPIO4) |
| 避障适用性 | 宽角度,更适合简单避障 | 定点精准,适合 SLAM/跟随 |
选用 HC-SR04 的理由:宽角度探测更适合 2WD 小车避障,成本更低。
九、软件与调试
教学路线:与本书架硬件一致的程序设计章节与实验安排,见专题配套页面 《MicroPython 智能小车程序设计(2WD)教程提纲》(点亮 LED → 按键 → 单电机 → 整车运动 → 超声波 → 避障 → 综合项目)。
固件采用 MicroPython(ESP32_GENERIC_C3 v1.27.0),可按教学需要搭配 REPL、文件同步与无线调试等常规开发方式。电机为 PWM + 双 H 桥;Trig / Echo、运行键及各电机脚位等 GPIO 分配与飞线说明仅以第四节为准。
| 程序文件 | 说明 |
|---|---|
motor_driver.py | Motor / Car 类,PWM 调速、正反转、刹车;引脚 GPIO9/10/20/21。 |
test_motor.py | 8 项电机测试(左右轮正反转 + 前后进 + 左右转)。 |
test_button.py | 按键状态计数测试(GPIO0)。 |
test_button_forward.py | 按键控制小车前进 1 秒(演示交互)。 |
test_ultrasonic.py | HC-SR04 测距,串口实时输出 50 次(GPIO1/2)。 |
环境准备与烧录
# 进入下载模式: 按住 BOOT, 插 USB, 松 BOOT
esptool.py --chip esp32c3 --port /dev/cu.usbmodem101 erase_flash
esptool.py --chip esp32c3 --port /dev/cu.usbmodem101 --baud 460800 \
write_flash 0 firmware/ESP32_GENERIC_C3-v1.27.0.bin
# 烧完按一次 RESET 退出下载模式
上传与运行
PORT=/dev/cu.usbmodem101
mpremote connect $PORT cp motor_driver.py :
mpremote connect $PORT cp test_motor.py :
mpremote connect $PORT cp test_button.py :
mpremote connect $PORT cp test_button_forward.py :
mpremote connect $PORT cp test_ultrasonic.py :
mpremote connect $PORT run test_motor.py
mpremote connect $PORT run test_ultrasonic.py
# 设为开机自启(示例)
mpremote connect $PORT cp test_button_forward.py :main.py
详细踩坑记录与烧录流程见项目目录 调试记录-2026-05-20.md;端口名随环境调整(macOS 常见 /dev/cu.usbmodem*)。
十、应用场景
- 高校与通识实验 — 低成本 2WD 平台,覆盖电源分配、PWM、测距与无线扩展。
- 创客与 STEM — 硬件透明,便于拆解与二次开发。
- 原型验证 — BOM 低,适合批量对比与算法验证。