一、方案概述
基于 ESP32-C3 SuperMini 与自制驱动板 v1.1 的超低成本 2WD 智能小车。驱动板将电机驱动、电源防护、状态 LED、轻触开关、超声波接口与全部 GPIO 排针集成到一块 PCB;主控以 1×8×2 排母插接,电机与超声波用 XH2.54 / 4P 接口直连。
核心能力:双轮差速行走(PWM 调速 / 正反转)、超声波前方测距与近距告警灯光、左右板载按键分别控制左右轮、WiFi/BLE 便于遥控与二次开发。固件采用 MicroPython,适合课堂与创客实践。
图 1 整机实物(前方视角:超声波、驱动板与主控)
图 2 整机实物(侧面视角:驱动轮、万向轮与 18650)
图 3 整机实物(后方视角:电池、电源开关与主控 USB)
图 4 驱动板 v1.1 正面(TC1508A、电源、LED、按键、接口)
图 5 驱动板 v1.1 背面
图 6 驱动板 v1.1 仿真渲染
二、物料清单
1. 核心模块
| 模块 | 型号 / 规格 | 说明 |
| 主控板 | ESP32-C3 SuperMini(WiFi/BLE,原生 USB) | 插接在驱动板 1×8×2 排母上 |
| 驱动板 | 自制 PCB v1.1 | 集成电机驱动 + 电源 + LED + 按键 + 接口 |
| 电机驱动 | TC1508A 双 H 桥(板载) | PWM 调速、正反转 |
| 电源 | 3.7V 锂电输入 + 防反接 / 滤波 | 3.7VBAT 直供 TC1508A 与 C3 的 5V/VIN(宽电压) |
| 测距传感器 | HC-SR04 超声波(新版 3.3V~5V) | 接板上超声波 4P 接口 |
| 2WD 机械结构 | 底盘 + 驱动轮 + TT 电机 ×2 + 万向轮 | 接板上 motor01 / motor34;整机见上图 |
| 状态灯 | LED5 / LED6(板载贴片 + 100Ω) | 高电平点亮;颜色以实物实测为准 |
| 按键 | 板载轻触开关 SW20 / SW21 | 低有效,内部上拉 |
2. 整车成本
核心物料与辅材合计约 ¥35~40(随打样数量、元件采购与底盘选型浮动)。驱动 PCB 将电机驱动、电源通路、LED、按键一次集成,装配时主要完成插接主控与接插电机 / 超声波 / 电池。
三、驱动板子系统
1. 电源:电池输入、防反接与滤波
| 项目 | 说明 |
| 输入 | 3.7V 锂电(XH2.54 2P,接 3.7VBAT / GND) |
| 电源开关 | 板载 SW1,控制电池输入通断 |
| 防护 / 滤波 | TVS(如 SMBJ5.0A)+ 电解 / 陶瓷去耦 |
| 供电方式 | 3.7VBAT 直供 TC1508A VDD,并接入 ESP32-C3 SuperMini 的 5V/VIN(宽电压输入) |
图 7 18650 锂离子电池(XH2.54 2P 出线,红正黑负)
图 8 TT 减速马达(整机左右驱动各 1 只)
焊接 / 上电前用万用表核对 3.7VBAT 与 GND,避免电池反接或短路。调试时若 USB 枚举异常,优先采用先插 USB 到 C3,再开电池供电;异常时短按 RESET。
2. 电机驱动:TC1508A 双 H 桥
| 项目 | 规格 |
| 芯片 | TC1508A(板载,双 H 桥) |
| 输入 | INA / INB / INC / IND(4 路逻辑输入) |
| 输出 | OUTA/OUTB → motor34;OUTC/OUTD → motor01 |
| 电机接口 | motor01 / motor34(XH2.54 2P) |
| 供电 | VDD 接 3.7VBAT,板载去耦 |
| pin1 | pin2 | 电机状态 |
| PWM | LOW | 正转(前进) |
| LOW | PWM | 反转 |
| LOW | LOW | 停止(滑行) |
| HIGH | HIGH | 刹车 |
3. 状态指示 LED
以 2026-06-18 实物实测为准:GPIO5 = LED5 = 红色 = 左侧,GPIO6 = LED6 = 绿色 = 右侧。原理图丝印红绿标注可能与实物相反,软件与教学说明一律按实测。
| GPIO | 板载 | 颜色 / 方位 | 接法 |
| GPIO5 | LED5 | 红色,左侧 | GPIO5 → 100Ω → LED → GND,高电平点亮 |
| GPIO6 | LED6 | 绿色,右侧 | GPIO6 → 100Ω → LED → GND,高电平点亮 |
综合演示中可用距离控制灯光:远处绿灯常亮,近处红灯频闪(越近越快)。
4. 板载轻触开关 SW20 / SW21
| 项目 | 说明 |
| 类型 | 轻触开关,低有效(空闲上拉为高,按下拉低) |
| 引脚 | SW20 → GPIO20,SW21 → GPIO21 |
| 方位(实测) | SW21 = 左侧,SW20 = 右侧 |
| 软件 | Pin(20/21, Pin.IN, Pin.PULL_UP),按下判定 value()==0 |
| 程序约定 | SW21 控左轮、SW20 控右轮(与左右布局一致) |
5. HC-SR04 超声波
图 9 HC-SR04 超声波模块(新版宽电压 3.3V~5V)
| 参数 | 规格 |
| 工作电压 | 3.3V ~ 5V |
| 测距范围 | 2cm ~ 400cm,精度约 ±3mm,探测角约 15° |
| 板载接口 | Trig = GPIO7,Echo = GPIO10(不可对调) |
6. 拓展接口
板上提供 4P 超声波 / 外设接口及 GND / 3.7VBAT 引出;全部 GPIO 经两组 1×8 排针完整引出(io0~4、io5~21),便于外接循迹、ToF、蜂鸣器等。
7. 供电拓扑
3.7V 锂电(XH2.54)
│
┌────┴────┐
│ SW1 开关 │
└────┬────┘
│ 防反接 / TVS / 滤波
▼
3.7VBAT 公共轨
┌───────┼──────────┐
▼ ▼ ▼
TC1508A ESP32-C3 超声波 VCC
电机 VM 5V/VIN (宽电压版)
│ │
│ GPIO 控制线
▼ ▼
motor01/34 LED / 按键 / Trig·Echo
四、GPIO 与接线
本车各外设所接 GPIO 以下文表格为准;其它章节只描述功能,不再重复编号,以免多处修改时不同步。
图 10 ESP32-C3 SuperMini 引脚图(插接时请与驱动板排母丝印核对,勿反插)
1. 引脚分配(实测验证)
| GPIO | 分配用途 | 状态 |
| GPIO0 | 左轮 motor1 一路(非 strap) | 已分配 |
| GPIO1 | 左轮 motor1 一路 | 已分配 |
| GPIO2 | 空闲 ⚠️ strap 脚,保持悬空 | 可用(慎用) |
| GPIO3 | 右轮 motor2 — INB | 已分配 |
| GPIO4 | 右轮 motor2 — INA | 已分配 |
| GPIO5 | 红色 LED5(左侧) | 已分配 |
| GPIO6 | 绿色 LED6(右侧) | 已分配 |
| GPIO7 | 超声波 Trig(非 strap) | 已分配 |
| GPIO8 | 空闲(丝印 I2C SDA)⚠️ strap 脚 | 可用(慎用) |
| GPIO9 | 空闲 ⚠️ strap 脚,保持悬空 | 可用(慎用) |
| GPIO10 | 超声波 Echo(空闲宜为低) | 已分配 |
| GPIO20 | 轻触开关 SW20(右侧,控右轮,低有效) | 已分配 |
| GPIO21 | 轻触开关 SW21(左侧,控左轮,低有效) | 已分配 |
| 电机 | 位置 | GPIO(pin1 / pin2) |
| motor1 | 左轮 | GPIO1 / GPIO0 |
| motor2 | 右轮 | GPIO4 / GPIO3 |
结论:各外设引脚互不重叠;ESP32-C3 三个 strap 脚 GPIO2 / GPIO8 / GPIO9 全部空出,外设均不占用。
2. strap 脚说明(摘要)
- ESP32-C3 的 strap 脚为 GPIO2、GPIO8、GPIO9,仅在上电 / 复位瞬间被采样,决定启动模式。
- 超声波 Trig 使用 GPIO7(非 strap),读数稳定;Echo 必须用 GPIO10(空闲为低),不可与 Trig 对调。
- 扩展外设时尽量避开 strap 脚;若必须使用,注意上电电平与上拉。
- 注意:在 ESP32-C3 上 GPIO0 不是 strap 脚(与经典 ESP32 不同),可安全用于电机。
3. 接线图
ESP32-C3 SuperMini(插接驱动板) 板载 / 外设
───────────────────────────────── ────────────────
GPIO1 / GPIO0 ─────────────────→ TC1508A → motor1 左轮
GPIO4 / GPIO3 ─────────────────→ TC1508A → motor2 右轮
GPIO7 ─────────────────────────→ HC-SR04 Trig
GPIO10 ←───────────────────────── HC-SR04 Echo
GPIO5 ──→ LED5 红(左侧,经 100Ω)
GPIO6 ──→ LED6 绿(右侧,经 100Ω)
GPIO21 ←── SW21 左侧按键(低有效,控左轮)
GPIO20 ←── SW20 右侧按键(低有效,控右轮)
5V/VIN ←── 3.7VBAT(经防反接 / 滤波)
GND ──── 公共 GND(PCB 已互联)
五、方案优势
| 优势 | 说明 |
| 成本极低 | 整车约 ¥35~40,适合批量教学与创客入门 |
| PCB 集成 | 电机驱动、电源、LED、按键、超声波接口一次成型,装配快、可靠性高 |
| 引脚清晰 | 左右轮 / 超声 / 灯 / 键分区明确,strap 脚全部空出 |
| WiFi + BLE | ESP32-C3 内置无线,可做手机遥控、Web 控制、OTA |
| MicroPython | 语法友好,配套分层测试脚本,课堂上手快 |
| 电源简洁 | 3.7VBAT 宽电压直供主控 VIN 与电机驱动,链路短 |
六、注意事项
- 上电顺序 — 调试时优先先插 USB 到 C3,再开电池;异常时短按 RESET。
- 共地 — ESP32-C3、TC1508A、超声波、电源、LED、按键 GND 已在 PCB 互联;外接模块须共地。
- 超声波引脚不可对调 — Trig=GPIO7、Echo=GPIO10,对调则读不到回波。
- 超声波版本 — 须为新版 HC-SR04(3.3V~5V)。
- 电机电流 — TT 堵转约 250~500mA,避免长时间堵转。
- 电机方向 — 若某侧转向与预期相反,对调该电机两根输出线,或交换软件中该侧两个引脚常量。
- LED / 按键以实测为准 — LED5=红/左、LED6=绿/右;SW21=左、SW20=右。
- strap 脚 GPIO2/8/9 — 扩展外设时避免占用,或注意上电电平。
七、可选升级路径
| 升级方向 | 方案 | 备注 |
| 测距升级 | VL53L0X ToF(I2C) | 走空闲脚;注意 GPIO8 为 strap |
| 声音反馈 | 有源蜂鸣器 | 接拓展 GPIO |
| 循迹 | TCRT5000 ×2 | 接拓展接口 |
| 无线控制 | WiFi / BLE 遥控、Web、OTA | ESP32-C3 原生支持 |
| 整车主程序 | 避障 + 按键控轮 + LED 状态 | 可基于已验证组合脚本扩展 |
八、软件与调试
教学路线:与本专题硬件一致的程序设计章节与实验安排,见 《MicroPython 智能小车程序设计(2WD v1.1)教程》(C3 / Thonny / 固件烧录 → 板载 LED → 轻触开关 → 单电机 → 整车运动 → 超声波灯光 → 按键控轮 → 综合项目)。
固件采用 MicroPython(ESP32_GENERIC_C3 v1.27.0)。电机为 PWM + TC1508A;GPIO 分配仅以第四节为准。
1. 程序文件
| 程序文件 | 说明 |
motor_driver.py | Motor / Car 类;左轮 GPIO1/0、右轮 GPIO4/3 |
test_motor.py | 8 项电机测试(左右轮正反转 + 前后进 + 左右转) |
test_button.py | SW20 / SW21 按键状态测试 |
test_ultrasonic.py | HC-SR04 测距(Trig=7 / Echo=10) |
test_ultrasonic_led.py | 远→绿灯、近→红灯频闪 |
test_sw_motor.py | 按键控轮三态循环 + LED 指示 |
test_sw_motor_ultrasonic_led.py | 按键控轮 + 超声灯光组合 |
main.py | 开机自启入口(可指向组合演示脚本) |
2. 综合演示逻辑(推荐)
- SW21(左):左轮在「停止 → 前进 → 反转」间循环
- SW20(右):右轮同样三态循环
- 超声波灯光:距离 ≥ 1m 绿灯常亮;< 1m 红灯频闪(越近越快);无回波双灯灭
3. 环境准备与烧录
# 进入下载模式: 按住 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 退出下载模式
4. 上传与运行
PORT=/dev/cu.usbmodem101
mpremote connect $PORT cp motor_driver.py :
mpremote connect $PORT cp test_motor.py :
mpremote connect $PORT cp test_ultrasonic.py :
mpremote connect $PORT cp test_sw_motor_ultrasonic_led.py :
mpremote connect $PORT run test_motor.py
mpremote connect $PORT run test_ultrasonic.py
# 设为开机自启(示例)
mpremote connect $PORT cp test_sw_motor_ultrasonic_led.py :main.py
端口名随环境调整(macOS 常见 /dev/cu.usbmodem*)。上电后数秒内可用 Ctrl-C 中断 main.py,避免自启脚本占满 REPL。
九、应用场景
- 高校与通识实验 — 低成本 2WD 平台,覆盖电源、PWM、测距、按键交互与无线扩展。
- 创客与 STEM — PCB 集成、硬件透明,便于拆解、改线与二次开发。
- 原型验证 — BOM 低,适合批量对比算法与课堂分组实验。
智能小车
ESP32-C3 SuperMini
驱动板 v1.1
TC1508A
MicroPython
2WD
超声波避障
板载 LED / 按键
WiFi + BLE
STEM