智能机器人 · STEM 教育 · 驱动板集成

PiCar Mini 2WD v1.1

面向 STEM 与嵌入式入门 的二驱智能车平台:一块专用驱动 PCB 集成 TC1508A 双 H 桥、电源输入、红绿状态灯、双轻触开关与超声波接口;主控插接 ESP32-C3 SuperMini,支持 WiFi/BLEMicroPython;硬件开源、结构紧凑、接插件装配。

极低成本 · 整车约 ¥35~40 · 驱动板一次成型

MicroPython 程序设计教程提纲 →

主控:ESP32-C3 SuperMini 驱动:板载 TC1508A 语言:MicroPython 测距:HC-SR04 机械:2WD 套件

一、方案概述

基于 ESP32-C3 SuperMini自制驱动板 v1.1 的超低成本 2WD 智能小车。驱动板将电机驱动、电源防护、状态 LED、轻触开关、超声波接口与全部 GPIO 排针集成到一块 PCB;主控以 1×8×2 排母插接,电机与超声波用 XH2.54 / 4P 接口直连。

核心能力:双轮差速行走(PWM 调速 / 正反转)、超声波前方测距与近距告警灯光、左右板载按键分别控制左右轮、WiFi/BLE 便于遥控与二次开发。固件采用 MicroPython,适合课堂与创客实践。
PiCar Mini 2WD 整机正面
图 1  整机实物(前方视角:超声波、驱动板与主控)
PiCar Mini 2WD 整机侧面
图 2  整机实物(侧面视角:驱动轮、万向轮与 18650)
PiCar Mini 2WD 整机后方
图 3  整机实物(后方视角:电池、电源开关与主控 USB)
驱动板 v1.1 正面
图 4  驱动板 v1.1 正面(TC1508A、电源、LED、按键、接口)
驱动板 v1.1 背面
图 5  驱动板 v1.1 背面
驱动板 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(宽电压输入)
18650 锂离子电池
图 7  18650 锂离子电池(XH2.54 2P 出线,红正黑负)
TT 减速马达
图 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,板载去耦
pin1pin2电机状态
PWMLOW正转(前进)
LOWPWM反转
LOWLOW停止(滑行)
HIGHHIGH刹车

3. 状态指示 LED

以 2026-06-18 实物实测为准:GPIO5 = LED5 = 红色 = 左侧GPIO6 = LED6 = 绿色 = 右侧。原理图丝印红绿标注可能与实物相反,软件与教学说明一律按实测。

GPIO板载颜色 / 方位接法
GPIO5LED5红色,左侧GPIO5 → 100Ω → LED → GND,高电平点亮
GPIO6LED6绿色,右侧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 超声波

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 以下文表格为准;其它章节只描述功能,不再重复编号,以免多处修改时不同步。

ESP32-C3 SuperMini 引脚图
图 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 脚说明(摘要)

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 + BLEESP32-C3 内置无线,可做手机遥控、Web 控制、OTA
MicroPython语法友好,配套分层测试脚本,课堂上手快
电源简洁3.7VBAT 宽电压直供主控 VIN 与电机驱动,链路短

六、注意事项

  1. 上电顺序 — 调试时优先先插 USB 到 C3,再开电池;异常时短按 RESET。
  2. 共地 — ESP32-C3、TC1508A、超声波、电源、LED、按键 GND 已在 PCB 互联;外接模块须共地。
  3. 超声波引脚不可对调 — Trig=GPIO7、Echo=GPIO10,对调则读不到回波。
  4. 超声波版本 — 须为新版 HC-SR04(3.3V~5V)。
  5. 电机电流 — TT 堵转约 250~500mA,避免长时间堵转。
  6. 电机方向 — 若某侧转向与预期相反,对调该电机两根输出线,或交换软件中该侧两个引脚常量。
  7. LED / 按键以实测为准 — LED5=红/左、LED6=绿/右;SW21=左、SW20=右。
  8. strap 脚 GPIO2/8/9 — 扩展外设时避免占用,或注意上电电平。

七、可选升级路径

升级方向方案备注
测距升级VL53L0X ToF(I2C)走空闲脚;注意 GPIO8 为 strap
声音反馈有源蜂鸣器接拓展 GPIO
循迹TCRT5000 ×2接拓展接口
无线控制WiFi / BLE 遥控、Web、OTAESP32-C3 原生支持
整车主程序避障 + 按键控轮 + LED 状态可基于已验证组合脚本扩展

八、软件与调试

教学路线:与本专题硬件一致的程序设计章节与实验安排,见 《MicroPython 智能小车程序设计(2WD v1.1)教程》(C3 / Thonny / 固件烧录 → 板载 LED → 轻触开关 → 单电机 → 整车运动 → 超声波灯光 → 按键控轮 → 综合项目)。

固件采用 MicroPython(ESP32_GENERIC_C3 v1.27.0)。电机为 PWM + TC1508A;GPIO 分配仅以第四节为准。

1. 程序文件

程序文件说明
motor_driver.pyMotor / Car 类;左轮 GPIO1/0、右轮 GPIO4/3
test_motor.py8 项电机测试(左右轮正反转 + 前后进 + 左右转)
test_button.pySW20 / SW21 按键状态测试
test_ultrasonic.pyHC-SR04 测距(Trig=7 / Echo=10)
test_ultrasonic_led.py远→绿灯、近→红灯频闪
test_sw_motor.py按键控轮三态循环 + LED 指示
test_sw_motor_ultrasonic_led.py按键控轮 + 超声灯光组合
main.py开机自启入口(可指向组合演示脚本)

2. 综合演示逻辑(推荐)

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。

九、应用场景

智能小车 ESP32-C3 SuperMini 驱动板 v1.1 TC1508A MicroPython 2WD 超声波避障 板载 LED / 按键 WiFi + BLE STEM