尧图精选

ESP32智能小车DIY教程:150元以内从零搞定自动避障

🕒 发布时间:2026/9/13 17:22:54 📁 来源:尧图网络
ESP32智能小车DIY教程150元以内从零搞定自动避障【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32本文带你做一台能自动避障的ESP32智能小车物料总成本约140元接线加编程约3小时完成。成品小车用超声波探测前方遇障碍自动减速绕行还能扩展WiFi遥控。 成品预览这台ESP32智能小车能干什么做完之后的效果是小车自己往前走前方 20cm 内出现障碍就减速10cm 以内就停下来换向绕行整个反应循环不到 100ms。板载双核分工明确一个核管电机、一个核采传感器ESP32 本身带 WiFi后期接手机遥控不用换主板。 物料清单成本约 140 元物料数量参考价元用途ESP32 DevKitC 开发板155主控跑避障程序N20 减速电机套装带轮1 对42驱动左右两个轮L298N 电机驱动板112放大 ESP32 信号去带电机HC-SR04 超声波模块18测前方障碍物距离两轮底盘 万向轮1 套15车体结构与前支撑18650 电池盒 电池1 套8整车供电合计—约 140—辅助工具一行带过电烙铁、万用表、剥线钳和螺丝刀家里有旧的就能用不必新买。 接线步骤3 步把智能小车底盘搭起来Step 1电机上底盘把两个 N20 电机分别固定在两轮底盘的左右两侧装好轮子万向轮装在底盘前部中央当第三个支点。⚠️ 易错点两侧轮距要对称轮子转起来会蹭底盘先空转确认间隙再装后面的东西。Step 2驱动板与供电L298N 固定在底盘后侧电池盒输出接到驱动板电源端注意正负极X1/X2、Y1/Y2 四个输出分别接左、右电机的两根线。⚠️ 易错点电池正负极接反时电机只会倒转断电对调即可上电前先用万用表量一下电压应在 6~8V。Step 3装 ESP32 并接信号线ESP32 放底盘中央按这张引脚分配表接线ESP32 引脚接到作用GPIO12L298N IN1左轮速度PWMGPIO13L298N IN2左轮方向GPIO14L298N IN3右轮速度PWMGPIO15L298N IN4右轮方向GPIO16HC-SR04 Trig超声波触发GPIO17HC-SR04 Echo超声波回波5V / GND模块 VCC / GND信号部分供电HC-SR04 朝正前方装在小车头部。⚠️ 易错点HC-SR04 必须 5V 供电VCC 接到 3.3V 上读数会飘接完线对着表逐根复查一遍再上电。下面这段代码做两件事给两个方向引脚设为输出再给 GPIO12/14 挂上 5kHz、10 位占空比0~1023的 PWM之后随时改速度。const int L_PWM 12, R_PWM 14; const int L_DIR 13, R_DIR 15; void setup() { pinMode(L_DIR, OUTPUT); pinMode(R_DIR, OUTPUT); ledcAttach(L_PWM, 5000, 10); // 5kHz10 位分辨率 ledcAttach(R_PWM, 5000, 10); } void setSpeed(int l, int r) { // 0~1023 ledcWrite(L_PWM, l); ledcWrite(R_PWM, r); }烧录后手动调setSpeed(300, 300)车应该直行哪个轮不转就先查对应 DIR 引脚有没有拉高。 Arduino IDE 配置与首次烧录安装最新版 Arduino IDEWindows / macOS / Linux 都有安装包。打开「文件 → 首选项」在附加开发板管理器网址里填入 ESP32 包地址具体 URL 见仓库内安装文档。板卡管理器中搜索 esp32 并安装然后在「工具 → 开发板」选择 ESP32 Dev Module并选好串口端口。克隆仓库git clone https://gitcode.com/GitHub_Trending/ar/arduino-esp32打开 基础教程 里提到的 blink 示例做一次烧录确认板和串口都通。 跑不起来先查这 3 处现象最可能原因排查动作电机不转驱动板没电或 DIR 为低万用表量驱动板输出确认 GPIO13/15 输出高电平超声波读数 0 或 999cmTrig/Echo 接反或模块没给 5V对调 GPIO16/17 两根线确认模块 VCC 接 5V程序上传失败端口或开发板型号选错重选开发板与串口仍失败就按住 BOOT 键再点上传 避障原理与参数怎么调整条链路是「感知 → 决策 → 执行」超声波是小车的眼睛发射超声波再量回波时间除以 58 就得到厘米数if-else 是它的大脑按距离分三档下指令两个电机是它的腿左右轮差速决定直行还是转向。好比人走路眼睛看到墙、大脑判断远近、腿决定迈哪边。下面这段代码把三件事串起来读一次距离小于 10cm 就停左轮、右轮走原地右转20cm 以内减速否则全速前进。const int TRIG 16, ECHO 17; float readDistance() { digitalWrite(TRIG, HIGH); delayMicroseconds(10); digitalWrite(TRIG, LOW); return pulseIn(ECHO, HIGH) / 58.0; // 微秒 - 厘米 } void avoid() { float d readDistance(); if (d 10) setSpeed(0, 400); // 太近右转绕行 else if (d 20) setSpeed(300, 300); // 接近减速 else setSpeed(600, 600); // 安全正常前进 }loop()里每隔 50ms 调一次avoid()小车就进入循环避障状态。参数别死记按这张表调参数默认值作用调法安全距离20cm小于它开始减速车速调快了就把阈值调低危险距离10cm小于它停车绕行电池没电动力弱时调高前进占空比600 / 1023最高前进速度调高提速但刹车距离变长绕行转向时长300ms一次避障转多久转得不够就加长到 400~500ms测距间隔50ms多久看一次前方越短反应越快耗电略增 进阶玩法3 个低成本升级方向WiFi 手机遥控ESP32 自带 WiFi加上WiFi.h连接和一段串口转网络的代码就能用手机发指令接管小车原理见仓库内 WiFi 库 API 文档示例代码在libraries/WiFi/examples/目录。侧方检测再买一个 HC-SR048 元装在小车侧面侧面距离小于 15cm 时朝反方向修正绕行时不容易蹭到墙边。状态指示任意 GPIO 接一个蜂鸣器绕行时鸣叫、停车时熄灭调参数时肉眼就能看出小车处在哪个档位。至此你的第一台 ESP32 智能小车已经闭环约 140 元物料、3 小时工时换来了电机 PWM、超声波测距、差速避障这套完整链路代码结构之后加功能直接照抄就行。下一步建议很具体这周把第二个侧面超声波加上记录加上前后小车蹭墙的次数对比你会对距离阈值到底该设多少有直观感觉。【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →