ESP32 智能小车:150 元成本,3 小时做出自动避障车
【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32
用一块 ESP32 开发板,你能做出一台会自己躲障碍的智能小车。总花费不到 150 元,动手时间约 3 小时,零基础也能跟着走完。整套流程基于 arduino-esp32 开发环境,从底盘接线一直做到阈值调优。如果你受够了动辄几百元的机器人套件,这就是门槛最低的起点。
一次备齐所有材料 🧰
硬件清单如下,价格按零售参考:
| 部件 | 作用 | 参考单价 |
|---|---|---|
| ESP32-S3 或 ESP32 DevKitC 开发板 | 控制核心,双核处理 | 约 55 元 |
| N20 减速电机套装(带轮)×2 | 驱动左右两轮 | 约 42 元/对 |
| HC-SR04 超声波模块 | 前方测距 | 约 8 元 |
| L298N 或 TB6612FNG 驱动板 | 放大电流,驱动电机 | 自备 |
| 亚克力底盘、万向轮、18650 电池盒 | 结构与电源 | 约 40 元 |
合计不到 150 元。工具方面准备电烙铁、焊锡丝、剥线钳、数字万用表和螺丝刀套装。软件侧提前装好 Arduino IDE 和串口调试助手,熟悉 Git 更好。前置知识只有一条:知道 VCC 接 VCC、GND 接 GND,信号线别交叉。
四步走完动手线
先把车接好
按底盘、主控、传感器三段来:
- 底盘:两个 N20 电机固定在两侧,万向轮装在前部,驱动板贴紧底盘,先确认电池极性。
- 主控:ESP32 装在底盘中央,按下面这张表接信号线,再用扎带理顺。
| 功能 | 引脚 |
|---|---|
| 左电机 PWM | GPIO12 |
| 左电机方向 | GPIO13 |
| 右电机 PWM | GPIO14 |
| 右电机方向 | GPIO15 |
| 超声波 Trig | GPIO16 |
| 超声波 Echo | GPIO17 |
| 驱动板供电 | 5V 与 GND |
- 传感器:超声波装在小车正前方,VCC、GND、Trig、Echo 四根线逐一接上。
验收标准:万用表量到超声波 VCC 稳定 5V;六根信号线逐一对上表;驱动板供电极性正确,电机手动拨动无卡阻。
十分钟装好环境
- 安装最新版 Arduino IDE,参考官方安装文档。
- 打开「文件」→「首选项」,在附加开发板管理器网址里粘贴:
https://espressif.github.io/arduino-esp32/package_esp32_index.json。
- 打开「工具」→「开发板」→「开发板管理器」,搜索 esp32,点安装。
- 需要完整示例代码时,执行:
git clone https://gitcode.com/GitHub_Trending/ar/arduino-esp32验收标准:开发板列表里能看到 esp32 系列;「文件」→「示例」下有 WiFi、Wire 等库。
让小车跑起来
插上 USB,选好开发板型号和端口。先编译上传 Blink 验证工具链,再传小车程序。首次失败就按住 BOOT 键再点上传,把板子拉进下载模式。
验收标准:板载 LED 按 1 秒节奏闪烁;串口 115200 波特率能看到输出;小车能前进、后退,左右轮单独可转。
调优到顺
把三档避障阈值写进程序:前方大于 20cm 正常走;10 到 20cm 降速;小于 10cm 停住转向。左右两侧小于 15cm 时修正航向。再慢慢加 PWM 占空比,把最高速度压在 0.5m/s 以内。
验收标准:撞障响应小于 100ms;10cm 处必停必转,不误报也不漏报;直线行驶不打摆。
看懂差速转向与避障阈值
差速转向的白话解释:左右轮各走各的,两轮速度差多少,车就偏多少。左轮停右轮走,车原地左转;两轮同速,车走直线。ESP32 的双核正好分工,一核管运动控制,一核跑传感器采集。
超声波测距的原理是回声计时:发一个脉冲,等回波返回,距离等于「时间 × 声速 ÷ 2」。速度高低由 PWM 决定。PWM 即脉宽调制,用信号高电平占比来调节等效电压,从而改变转速。初始化只写四行:
ledcSetup(0, 5000, 10); // 通道0:5kHz,10位分辨率 ledcAttachPin(12, 0); // GPIO12 接左电机 ledcSetup(1, 5000, 10); ledcAttachPin(14, 1); // GPIO14 接右电机ledc 就是 ESP32 的 PWM 子系统。之后随时用ledcWrite(0, 值)改左轮速度,值越大越快。
排查这 6 个常见故障
卡住了?对着这张表查,大多数问题三分钟能定位。
| 症状 | 最可能原因 | 排查动作 |
|---|---|---|
| 电机不转 | 驱动板没电或极性反 | 万用表量驱动板输入,核对电池极性 |
| 电机嗡响不转 | 方向引脚电平不对 | 检查 GPIO13/15 输出状态 |
| 超声波读数恒 0 或爆表 | Echo 线接触不良或供电不稳 | 单独给模块通电自测,重插杜邦线 |
| 读数偶尔跳变 | 安装角度偏斜 | 把模块调正,避免侧向回波 |
| 程序上传失败 | 端口或型号选错,未进下载模式 | 按住 BOOT 重传,核对端口号 |
| 小车无故转弯 | 阈值过敏感 | 放宽 10cm 判定档,重跑直线测试 |
更多细节可查官方基础教程和Blink 交互教程。
能玩出什么
这台车是底模,往上叠功能都很顺:
- 手机遥控:把车配成 WiFi 站点(STA,即客户端)模式接入家里的路由器,手机通过 HTTP 或 MQTT 发指令。连接方式见 WiFi 库文档。
- 加传感器:红外模块补侧方盲区,陀螺仪做姿态修正,摄像头模块接视觉识别。
- 换通信:加蓝牙做近场遥控,加 LoRa 拉远距离,4G 模块接云平台。
- 多车协同:两台车互为通信节点,做编队或接力巡航。
- 场景落地:教学演示平台、教室巡逻演示、仓库巡检原型、竞赛底盘。
下一步建议:先让车稳定跑直线 30 秒,再上避障,最后加遥控。每一步都有明确的验收线,做砸了也能立刻定位是哪一层的问题。
【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考