ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

用 Arduino-ESP32 组装一台在家遛弯会躲障碍的智能小车

用 Arduino-ESP32 组装一台在家遛弯会躲障碍的智能小车 用 Arduino-ESP32 组装一台在家遛弯会躲障碍的智能小车【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32小车开到茶几前离桌腿约二十厘米的地方停住转个弯接着往前走全程没人拿遥控器。这台车的主控是一块 ESP32 板子全部控制逻辑用 Arduino-ESP32 开源核心写成它最关键的工作是让超声波模块把障碍物离我多远报给芯片芯片再决定什么时候减速、什么时候转向。成品速览一台 Arduino-ESP32 智能小车长什么样ESP32 智能小车最简单的配置就是图中这块板子主控 ESP32 DevKitC 固定在车底盘上旁边一块 L298N 电机驱动板车头对着前方的 HC-SR04 超声波模块底盘下面是一组 18650 电池。上电之后车能直行、能转弯、能自主避障板子自带的 WiFi 功能先留着后面随时能加个手机遥控页面。几个核心部件怎么配合四个部件各司其职ESP32 是大脑负责读距离、做决策L298N 是肌肉放大器把芯片的小控制信号变成带得动两个电机的电流HC-SR04 是眼睛按固定周期发一次超声波量出前方距离电池组是能量来源同时给驱动器和主控板供电。信号流是这样的ESP32 给超声波模块发一个触发脉冲量出回声回来的时间换算成厘米距离小于 20 厘米就调低送给驱动器的占空比减速再小于 10 厘米就翻转两个电机的方向信号原地转弯。眼睛看到、大脑想好、手脚执行一圈下来就是一次完整的避障。从开箱到跑起来装好 Arduino-ESP32 核心并接线先软件。装好 Arduino IDE在首选项里添加官方开发板管理器网址具体地址见官方安装文档然后在开发板管理器里搜索 esp32安装 esp32 by Espressif Systems。选好对应板子和串口先把自带的 blink 例程上传一遍确认通路没问题再往下走。再接线。四根方向控制线左电机 IN1/IN2 接 GPIO25/GPIO26右电机 IN3/IN4 接 GPIO27/GPIO33两根调速线 ENA/ENB 接 GPIO12/GPIO13留给 PWM 调速用超声波 Trig 接 GPIO16Echo 接 GPIO17。电机电源直接接电池组不走板子的 5VL298N 的 EN 引脚必须接上电源固定高电平悬空的话电机永远不转。接完用万用表确认没有短路再上电。让小车自己避障电机部分就是方向引脚写高低电平 EN 引脚写占空比几行 digitalWrite 和 analogWrite 的事不贴了。这台车真正的价值在超声波读取和决策逻辑const int trig 16, echo 17; // 超声波 Trig、Echo 引脚 float measureDistance() { digitalWrite(trig, LOW); delayMicroseconds(4); digitalWrite(trig, HIGH); delayMicroseconds(10); digitalWrite(trig, LOW); long t pulseIn(echo, HIGH); // 读回声脉冲宽度微秒 return t * 0.034 / 2; // 换算成厘米 } void avoidObstacle() { float d measureDistance(); if (d 20) forward(200); // 安全距离直行 else if (d 10) forward(100); // 逼近中减速 else { stopCar(); turn(90); } // 转向避让 }在 loop() 里每 500ms 调一次 avoidObstacle()正好是超声波自己的测量周期。200 是 255 占空比里的一档先用 128 试试车速再慢慢调速度和距离阈值。它还能做什么ESP32 自带 WiFi 和蓝牙很多玩法不用额外加模块手机遥控写一个简单的 Web 页面手机上就能控制左右和前进用板载 WiFi 即可参考 WebServer 示例。循线行驶加一两个红外反射传感器跟着地面黑线走经典的入门机器人玩法。跟人行走再加一组超声波朝前放人或宠物走在前面车就跟着走。状态上报加个温湿度传感器数据走 MQTT 传上云小车变成会巡逻的环境监测点。踩坑记录上传完板子不停重启、再传就失败 → 程序启动时崩溃进了重启循环串口被占 → 按住 BOOT 键再上传用串口监视器看崩溃位置。电机完全不带转 → L298N 的 EN 引脚悬空驱动器没使能 → EN 接 5V 或固定拉高。车一直单侧打转 → 某侧电机的方向引脚逻辑写反或接线对调 → 把那一侧的 IN 线对调或检查代码里的极性。电机有啸叫、走得不稳 → ESP32 的 analogWrite 默认 PWM 频率 2550Hz 不适合驱动电机 → setup 里先调一次 analogWriteFreq(1000)。超声波读数乱跳或恒为 0 → Echo 输出 5V 信号、线太长受干扰 → 用 3.3V 版模块或加分压电阻接线尽量短。先把板载 LED 闪起来确认上传这条路走通再一根根接电机线等到小车自己躲开茶几那天你只需要回头调一下那个二十厘米的阈值。【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

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