ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Arduino-ESP32 入门指南:3 小时做出一台避障小车

Arduino-ESP32 入门指南:3 小时做出一台避障小车 Arduino-ESP32 入门指南3 小时做出一台避障小车【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32Arduino-ESP32 是乐鑫官方为 ESP32 系列芯片提供的 Arduino 核心让你在 Arduino IDE 里直接用熟悉的setup/loop语法给板子烧录带 WiFi、蓝牙、I2C 的固件。本文以两轮避障小车为案例按环境、接线、代码、远控四步讲完适合从未给开发板烧写过固件的人。先把软件环境跑起来 安装 Arduino IDE2.x 或 1.8 以上均可从 arduino.cc 官网下载。打开文件 → 首选项在附加开发板管理器网址中填入https://espressif.github.io/arduino-esp32/package_esp32_index.json稳定渠道保存。打开工具 → 开发板 → 开发板管理器搜索 esp32安装 esp32 by Espressif Systems。当前稳定版为 3.3.x覆盖 ESP32、S2、S3、C3、C6 等芯片。安装完成后在开发板列表选择 ESP32 Dev Module若列表没出现重启一次 IDE。需要阅读核心源码的话克隆仓库git clone https://gitcode.com/GitHub_Trending/ar/arduino-esp32。硬件清单部件规格数量参考价开发板ESP32 DevKitC经典双核版1约 50 元电机直流减速电机ST-77 同规格2约 15 元驱动板L298N 双 H 桥1约 12 元传感器HC-SR04 超声波1约 8 元底盘四轮底盘套件含 18650 电池架1 套约 50 元接线与外设分配 引脚按电机 4 根 超声波 2 根分配全部取自 DevKitC 板上已引出的 GPIO引脚号功能对应外设GPIO25PWM 调速L298N IN1左电机速度GPIO26方向L298N IN2左电机方向GPIO27PWM 调速L298N IN3右电机速度GPIO33方向L298N IN4右电机方向GPIO13Trig 触发HC-SR04 超声波GPIO14Echo 回显HC-SR04经分压5V / GND供电驱动板 ENA、ENB 接 5V整机共地接线注意 3 点电机由电池组供电ESP32 从 L298N 的 5V 输出口取电不要用开发板 3.3V/5V 口直接带电机。HC-SR04 的 Echo 是 5V 电平必须经 1kΩ 2kΩ 分压后再接 GPIO14。超声波模块装在小车正前方、离地 2~3cm避免贴地回波干扰。核心逻辑拆解 电机驱动与测距两段最小代码如下const uint8_t L_PWM 25, L_DIR 26, R_PWM 27, R_DIR 33; const uint8_t TRIG 13, ECHO 14; float readDistance() { digitalWrite(TRIG, LOW); delayMicroseconds(2); digitalWrite(TRIG, HIGH); delayMicroseconds(10); digitalWrite(TRIG, LOW); return pulseIn(ECHO, HIGH) * 0.034 / 2; // 回显脉宽换算成厘米 } void drive(int speed) { // 双轮同向0-255 digitalWrite(L_DIR, HIGH); digitalWrite(R_DIR, HIGH); analogWrite(L_PWM, speed); analogWrite(R_PWM, speed); }readDistance发 10μs 触发脉冲用pulseIn读回显脉宽并换算成厘米drive让双轮正转靠analogWrite调速。L298N 的逻辑是 IN1/IN2 电平相反时电机正转、对调反转、同为低电平滑行停止转向就是左右轮一个正转一个反转。避障决策全部在loop里用三档阈值完成距离大于 20cm 以 200 前进10~20cm 降到 80小于 10cm 停车、左轮反转右轮正转转开延时后恢复前进。远控只需在setup里加两行WiFi.begin(ssid, password); while (WiFi.status() ! WL_CONNECTED) delay(500); // 阻塞到连上为止连上后板子获得 IP 地址再用 WebServer 库启动 HTTP 服务手机浏览器访问http://板子IP/?cmdforward这类路径即可发指令无需任何专用 App。跑通之后能做什么 最先做的是把遥控做成网页。WebServer 库随核心自带libraries/WebServer/examples/ 里有现成的示例页面和按键处理写法把小车状态机从本地决策改成浏览器按钮控制再在页面加一个滑块就能实时调速。其次是换用蓝牙。libraries/BLE/examples/ 目录里有 22 个 .ino 示例覆盖 GATT 服务与特征值的完整流程。BLE 不依赖家里 WiFi适合室外场地。算法层最直接的升级是循线加 3 路红外反射传感器做三线循线或在转向时累计左右轮运行时间近似转角让车避障后能转回原方向这是从避障走向简单自主导航的第一步。部署层方面libraries/ArduinoOTA/ 和 libraries/ESPmDNS/ 两个库都已内置固件可以隔空通过 WiFi 升级不再每次插数据线板子还能用主机名在局域网内被直接发现。踩坑速查 ⚠️现象上传始终报 Failed to connect to ESP32。 原因芯片没进下载模式或板型选错。 解法按住 BOOT 键再点上传手动进下载模式同时核对板级菜单里的 USB CDC On Boot 与上传模式设置。现象超声波永远读 0cm。 原因Echo 没分压烧坏引脚或用了 GPIO16/17——经典 DevKitC 上这两脚没有引出。 解法换 13/14 等有引出的引脚补上分压电阻先用 5V 单独给模块上电验证。现象车跑起来抖动、卡顿随后整板重启。 原因供电不足电机和 ESP32 共用 3.3V 口。 解法电机改由电池组供电ESP32 改从 L298N 的 5V 输出口回灌。现象烧录后串口监视器无任何输出。 原因USB CDC 串口未启用Serial 走的是 UART 引脚。 解法板级菜单把 USB CDC On Boot 设为 Enabled串口走 USB 口直接可用。文档与社区 docs/en/installing.rst安装全流程含国内地区的备用索引地址docs/en/getting_started.rst各芯片支持状态矩阵与板级菜单项说明libraries/ESP32/examples/GPIO、Serial、Touch、Timer 等官方示例板型定义与引脚映射boards.txt 与 variants/ 目录换其他开发板时查这里交流渠道Espressif 官方 Discord 与 GitHub Discussions入口见 README.md装完支持包后先别急着接线。下一步动作就一个从示例菜单打开 Blink选对开发板和串口烧录确认板载 LED 闪烁。这一步不通后面所有项目结论都不可信这一步通了小车的接线和代码才值得动手。【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表