ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

3小时组装一台ESP32避障小车:150元与6个GPIO引脚

3小时组装一台ESP32避障小车:150元与6个GPIO引脚 3小时组装一台ESP32避障小车150元与6个GPIO引脚【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32用 arduino-esp32 核心3小时、150元以内做出一台会自己走、自己避障的 ESP32 智能小车。全程只需6个 GPIO 引脚和一个超声波模块不用焊接贴片器件。适合嵌入式初学者和第一次做车的项目学生。做完之后它能干什么以 0.5 m/s 的速度直行前方测距低于 10 cm 时自动停车并转向按三级距离分级处理大于 20 cm 正常行驶10 到 20 cm 减速小于 10 cm 转向侧方读数低于 15 cm 时修正方向避障响应低于 100 ms超声波最小检测距离 2 cm18650 电池供电单次续航 2 到 3 小时开工前准备物料清单与环境硬件物料合计不到150元部件数量参考价备注ESP32 开发板DevKitC1 块55 元控制核心N20 减速电机套装带轮1 对42 元固定在底盘两侧HC-SR04 超声波模块1 个8 元最小检测距离 2 cm亚克力/3D打印底盘 万向轮1 套40 元万向轮作前部支撑电机驱动板1 块不含在上述报价L298N 或 TB6612FNG 均可18650 锂电池与电池盒1 套不含在上述报价电机动力电源两处容易接错的地方驱动板的电机电源接 5V 和 GND极性接反会损坏驱动板超声波模块供电为 5V不要从 3.3V 引脚取电软件环境三样最新版 Arduino IDE、板管理器地址https://espressif.github.io/arduino-esp32/package_esp32_index.json、一根能传数据的 USB 线。组装阶段底盘、电机与传感器就位两个 N20 电机固定到底盘两侧装上轮子万向轮装到前部作为支撑点电机引线接好驱动板电源极性逐一核对ESP32 开发板固定在底盘中央超声波模块装在小车正前方发射面对准行进方向用扎带整理线缆不留悬空线完成标志上电后各模块无异常发热万用表通断档下驱动板上每对电机引线蜂鸣正常且没有裸露铜线接触底盘。接线阶段6 个 GPIO 引脚核对表信号GPIO左电机 PWM12左电机方向13右电机 PWM14右电机方向15超声波 Trig16超声波 Echo17驱动电源走 5V 和 GND超声波接 4 根线VCC、GND、Trig、Echo。完成标志对照表格逐根复核重点确认超声波 GND 与 ESP32 已共地。悬空的地线是读数乱跳最常见的原因。环境搭建阶段装板包与拉代码安装最新版 Arduino IDE打开文件→首选项把板管理器地址粘贴到附加开发板管理器网址打开工具→开发板→开发板管理器搜索 esp32 并安装拉取示例代码与文档git clone https://gitcode.com/GitHub_Trending/ar/arduino-esp32完整步骤可对照 安装指南。完成标志开发板下拉列表中出现 ESP32 Dev Module随便打开一个示例文件编译无红色报错。首次运行阶段先 LED 后电机USB 连接开发板在 IDE 中选择 ESP32 Dev Module 和正确端口先上传官方示例 Blink 验证链路再换成电机测试程序两轮同时转 1 秒后停止示例代码在 libraries/ESP32/examples/按功能分类存放。完成标志板载 LED 按固定节奏闪烁电机测试时两轮同步转动约 1 秒后停稳不抖动、不偏转。功能增强阶段避障逻辑与 WiFi 遥控避障按四步写初始化硬件 → 超声波测距循环 → 三级阈值判断 → 结果映射到电机动作。遥控走 WiFi STA 模式小车连上家里的路由器手机 App 和车在同一网络内指令下发、传感器数据回传。WiFi.begin(你的WiFi名称, 你的WiFi密码); while (WiFi.status() ! WL_CONNECTED) { delay(500); Serial.print(.); } Serial.println(WiFi已连接);完成标志串口打印 WiFi已连接在车前 10 cm 放一个纸箱小车应在 100 ms 内停车转向。工作原理速览差速转向与 PWM没有转向机构两个轮子独立驱动。PWM 用 5 kHz、10 位分辨率左右占空比不等时小车向慢的一侧偏转方向引脚 13/15 控制正反转。ledcSetup(0, 5000, 10); // 5 kHz10 位 ledcAttachPin(12, 0); // GPIO12 左电机 ledcSetup(1, 5000, 10); ledcAttachPin(14, 1); // GPIO14 右电机 ledcWrite(0, 1023); // 左轮满速 ledcWrite(1, 512); // 右轮半速向左转三个阈值定避障HC-SR04 发出超声波并计时返回换算出距离。判断写成三个分支侧向读数低于 15 cm 时另触发方向修正。if (dist 20) goStraight(); // 大于 20 cm else if (dist 10) goSlow(); // 10 到 20 cm else stopAndTurn(); // 小于 10 cmWiFi 远程链路ESP32 以 STA 模式接入路由器手机与小车处于同一局域网指令从手机下发传感器数据从小车上传。踩坑速查电机不转串口正常但轮子不动。 可能原因驱动电源没接、驱动板未处于工作状态、PWM 引脚配置错误。 动作先查电源连接再验证驱动板状态最后核对程序里 12/14 的引脚定义。超声波读数乱跳或恒为 0可能原因5V 供电不稳、信号线接触不良、模块安装角度偏了。 动作把模块单独拆下通电测试检查各线连接调整安装角度。上传卡在 Connecting...可能原因数据线只能充电、开发板型号选错、端口选错。 动作换一根数据线重新选择型号与端口仍不行就按住 BOOT 键再点上传。方向反了该前进却后退可能原因方向引脚电平接反或代码写反。 动作在程序里对调对应方向引脚13 或 15的输出电平不用重新接线。进阶路线新手档加装红外避障传感器补强侧方检测接入蓝牙遥控脱开 WiFi 环境引入陀螺仪做姿态控制进阶档摄像头模块 图像识别路径规划与自主导航接 MQTT 平台或 4G 模块做远程监控收尾这台车覆盖了电机控制、传感器测距、无线通信三块基础链路做完后再拆任何嵌入式项目都不慌。想深入硬件层从 外围设备教程 开始核心代码在 cores/esp32/ 下都可以直接看卡住时优先翻 官方文档。【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进