资讯详情

3小时从零上手:Arduino-ESP32智能小车手把手教程

📅 2026/9/19 21:35:47 | 华诺云谱 👁 阅读
3小时从零上手:Arduino-ESP32智能小车手把手教程
3小时从零上手Arduino-ESP32智能小车手把手教程【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32想做智能小车结果底盘焊好了、代码却不知从哪写起——这是新手最常见的卡点。Arduino-ESP32 是 ESP32 系列芯片的官方 Arduino 核心让你用熟悉的 Arduino 语法直接写 WiFi、避障和电机控制。读完这篇你能在 3 小时内做出一台 Arduino-ESP32 智能小车总花费不到 150 元。 你将得到什么一台会避障的 WiFi 小车这一节先让你心里有底跟着做下去最后手里会有一台能自己走、能躲障碍、还能联网的小车。小车以 WiFi 站点STA模式接入家中路由器为远程控制打开通道成品跑起来之后的样子小车通电后先连上家里的 WiFi然后开始连续测距——前方 20 厘米以外全速前进进入 10 厘米内自动右转绕行转完接着走整个过程不需要人工干预。自主避障超声波传感器就是小车的眼睛持续测量前方障碍物距离并自动决策PWM 调速两个直流电机独立控制加减速平滑起步不会打滑WiFi 联网连上 2.4GHz 家用网络后串口打印 IP 地址为手机遥控铺路可扩性强ESP32 的 I2C、SPI、蓝牙通道都空闲着后续想加什么传感器直接挂上去 准备工作硬件与软件清单一次列全这一节做完你的桌面会摆齐所有零件电脑里装好开发环境的前置件后面不再被打断去找东西。硬件清单名称数量参考价用途ESP32 DevKitC 开发板1约 50 元控制核心运行 Arduino-ESP32 核心直流减速电机2约 20 元/个驱动左右轮L298N 电机驱动板1约 15 元ESP32 引脚电流太小用它放大驱动电机HC-SR04 超声波模块1约 8 元测量前方障碍物距离智能小车底盘套装1约 30 元机械结构与轮子18650 锂电池 电池盒2约 20 元给电机和驱动板供电杜邦线若干1 套约 5 元连接各模块总花费约 150 元。软件与工具Arduino IDE从官网下载最新版即可Windows、macOS、Linux 都支持。ESP32 核心下一步会通过开发板管理器安装安装步骤和包地址以官方文档为准docs/en/installing.rst。想通读源码和示例的话把仓库拉到本地git clone https://gitcode.com/GitHub_Trending/ar/arduino-esp32DevKitC 两侧引脚位数字即 GPIO 编号——后面接线表会反复用到这张图⚙️ 环境搭建3步配好Arduino-ESP32开发板这一节走完你的 Arduino IDE 里会多出一整个 ESP32 板卡菜单上传代码就从不可能变成点一下。第 1 步安装 Arduino IDE。官网下载最新版装完打开主界面菜单栏能看到 File、Sketch、Tools 即安装成功。第 2 步添加核心包地址。打开 文件 → 首选项Preferences在 Additional Boards Manager URLs 输入框中填入 esp32 核心包的索引地址——稳定版和国内镜像版两个地址都写在 docs/en/installing.rst 里直接复制即可。填好后点 OK 保存看到输入框里地址还在说明保存成功坑提示一次可以填多个地址中间用英文逗号隔开下载慢就换文档里的镜像地址。第 3 步开发板管理器安装 esp32 核心。进入 工具 → 开发板 → 开发板管理器搜索 esp32找到 esp32 by Espressif Systems 点击 Install。装完后在 工具 → 开发板 菜单里能看到 ESP32 Dev Module 等选项选中它。条目右侧出现版本号即安装完成坑提示如果下载中途超时重新打开开发板管理器点 Install 就能续传不用从头再来。装完记得用 USB 线连板试传一次进不了下载模式就按住 BOOT 键再点上传。 动手搭建Arduino-ESP32智能小车分动力感知控制接线接完这一节小车的所有模块就都连上脑了通电后轮子能转、眼睛能看。具体引脚号对照准备阶段那张 DevKitC 引脚图找。按模块分四组接顺序不能乱动力部分电池盒正负极接 L298N 的电源输入VMOTL298N 的四个 IN 引脚分别接 ESP32 的 GPIO12、13、14、15两个电机分别接驱动板的两路输出。感知部分HC-SR04 的 VCC 接 5VGND 接 GNDTrig 接 GPIO16Echo 接 GPIO17。控制部分ESP32 的 GND 与 L298N、超声波的 GND 全部共地。上电检查先别通电用万用表测一下电池两端有没有对地短路确认后再上电。关键引脚分配一张表说清引脚号信号类型连接目标GPIO12PWM 输出L298N IN1左电机速度GPIO13数字输出L298N IN2左电机方向GPIO14PWM 输出L298N IN3右电机速度GPIO15数字输出L298N IN4右电机方向GPIO16触发输出HC-SR04 的 TrigGPIO17输入HC-SR04 的 Echo5V / GND电源传感器 VCC / 全系统共地三条实操技巧都是被线电过的人总结的线色分工电源用红、地线用黑、信号线用黄接错时一眼能看出问题在哪一路。电源线电池到驱动板尽量选粗一点的导线电机启动电流大细线会发烫。接线顺序永远是先 GND、再电源、最后信号每接完一组都别急着通电。 核心代码读懂避障与联网的关键逻辑代码一共三段、六十来行全部逻辑都在这。看懂它们你就看懂了这台小车的大脑是怎么转的。第一段负责腿四个引脚分别控制左右电机的速度和方向PWM 值就像油门的开度0 是松油门、255 是地板油。const int leftMotorPWM 12; // 左电机速度PWM const int leftMotorDir 13; // 左电机方向 const int rightMotorPWM 14; // 右电机速度PWM const int rightMotorDir 15; // 右电机方向 void setup() { pinMode(leftMotorPWM, OUTPUT); // 初始化4个控制引脚为输出 pinMode(leftMotorDir, OUTPUT); pinMode(rightMotorPWM, OUTPUT); pinMode(rightMotorDir, OUTPUT); } // 前进方向脚都拉高两路PWM输出相同速度 void moveForward(int speed) { digitalWrite(leftMotorDir, HIGH); digitalWrite(rightMotorDir, HIGH); analogWrite(leftMotorPWM, speed); // speed 范围 0-255 analogWrite(rightMotorPWM, speed); } // 右转左轮继续转、右轮刹住靠速度差转向 void turnRight(int speed) { digitalWrite(leftMotorDir, HIGH); digitalWrite(rightMotorDir, LOW); analogWrite(leftMotorPWM, speed); analogWrite(rightMotorPWM, 0); }第二段负责眼睛超声波发射一个短脉冲再听回波按声速换算距离然后执行三段式避障决策——20 厘米是安全距离10 厘米是减速距离再近就转。const int trigPin 16; // 超声波触发脚 const int echoPin 17; // 超声波回波脚 // 发射脉冲并测回波时长换算成厘米 float measureDistance() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); // 触发脉冲要求大于10微秒 digitalWrite(trigPin, LOW); long duration pulseIn(echoPin, HIGH); // 读回波持续时间微秒 return duration * 0.034 / 2; // 声速340米/秒往返除以2 } // 三段式避障决策 void avoidObstacle() { float distance measureDistance(); if (distance 20) { // 安全距离全速前进 moveForward(200); } else if (distance 10) { // 警告距离减速 moveForward(100); } else { // 危险距离右转避让 turnRight(150); delay(500); } }第三段负责耳朵让小车加入家里的 WiFi连上后把 IP 打印到串口后续遥控全靠这一步。#include WiFi.h const char* ssid 你的WiFi名称; const char* password 你的WiFi密码; void setupWiFi() { WiFi.begin(ssid, password); // 发起连接 while (WiFi.status() ! WL_CONNECTED) { delay(500); Serial.print(.); // 每半秒打一个点表示仍在等待 } Serial.println(WiFi.localIP()); // 连上后打印分配到的IP }✅ 跑起来上传验证与排错速查表上传成功之后小车应该先安静联网、再安静走路——串口里先滚动连接点号随后打印 IP接着小车开始缓慢巡逻你用手掌挡在前方 15 厘米处它应该明显减速再逼近到 8 厘米左右它右转 500 毫秒后继续前进。底部窗口显示上传字节数与串口实时输出看到 IP 打印即运行正常第一次跑几乎人人都会遇到下面表里的问题对照排查即可现象可能原因解决方法电机不转驱动板没供电或 IN 脚接错确认 L298N 电源脚接了电池对照引脚表复核 IN1-4超声波读数固定为 0 或 500Echo 线接错、模块没上电检查 GPIO17 接线确认模块 VCC 接的是 5V上传失败、提示超时板子没进下载模式或选错开发板按住 BOOT 键再点上传确认选中 ESP32 Dev ModuleWiFi 一直连不上密码错或连到了 5GHz 网络核对账号密码ESP32 只支持 2.4GHz 频段的 WiFi硬件问题查线软件问题查模式基本能覆盖九成的坑再解决不了就翻 docs/en/troubleshooting.rst。 进阶玩法从避障到WiFi远程遥控基础小车跑稳之后按下面这个顺序往上加每一步都只改一小块代码。 先上 Web 遥控最容易用内置的 libraries/WebServer/examples/ 里的网页服务器示例给小车做几个前进/后退/转弯按钮手机连上同一 WiFi 点开页面就能当方向盘。 再挂 I2C 传感器中等难度ESP32 自带 I2C 总线温湿度、IMU 姿态传感器都走这两根线接法看下图多个从设备共用 SDA/SCL 两条线靠地址区分。I2C 总线接线示意SDA、SCL 两线共用每个从机一个独立地址 最后玩 BLE 与低功耗进阶把遥控从 WiFi 换成蓝牙参考 libraries/BLE/examples/ 里的示例再给小车加 DeepSleep 休眠电池能撑得更久适合做巡逻-休眠的常驻机器人。 学习资源与社区入口卡住时按这个顺序找资料基本不用翻外部论坛。入门总览docs/en/getting_started.rst环境安装与包地址docs/en/installing.rst官方教程目录Blink、分区表等docs/en/tutorials/基础示例GPIO、ADC 等libraries/ESP32/examples/WiFi 示例libraries/WiFi/examples/蓝牙示例libraries/BLE/examples/核心源码cores/esp32/遇到问题先搜仓库已有 Issue没有再新建提交内容前按 CONTRIBUTING.md 的格式写清楚板卡和核心版本。四周节奏建议第一周跑通 libraries/ESP32/examples/GPIO/ 里的点灯与 PWM 示例手熟。第二周复现本文接线与避障逻辑动手改 20/10 厘米两个阈值观察小车行为变化。第三周加 Web 遥控把小车变成手机可玩的玩具有余力再碰 BLE 和 DeepSleep。小车跑起来那一刻你会发现嵌入式开发远没有想象中神秘——环境、接线、代码、排错这四样你已经全部亲手过了一遍。接下来把它晒到项目社区也把你的翻车经历和解决办法留在 Issue 里帮下一个接线的人少走弯路。【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。