做出你的第一架ESP32无人机:从裸板到稳定悬停的完整新手路径
【免费下载链接】esp-droneMini Drone/Quadcopter Firmware for ESP32 and ESP32-S Series SoCs.项目地址: https://gitcode.com/GitHub_Trending/es/esp-drone
本文带你完整走一遍 ESP32 开源无人机的 DIY 全流程:组装硬件、搭好环境、烧录固件,直到完成首次飞行。适合没有任何嵌入式和无人机经验的读者。
动手前:为什么选这个项目
- 成本低:整体花销比商业无人机低 70% 以上,个人和教学场景都负担得起。
- 完全开源:代码和硬件设计文件全部开放,你可以改任何部分,学习路径是透明的。
- 模块化设计:部件靠插接组合,基础组装不需要复杂焊接,动手门槛低。
📦 备货清单:买什么、准备什么
| 名称 | 规格 | 获取渠道 |
|---|---|---|
| ESP32-S2 主控板 | 双核处理器,支持 Wi-Fi | hardware/ESP32_S2_Drone_V1_2/ |
| 无刷电机 | 7x16mm 空心杯 | 开源社区推荐配件清单 |
| 锂电池 | 3.7V 300mAh | 通用航模配件店 |
| 螺旋桨 | 4 个(2 正 2 反) | 项目配套零件包 |
| 传感器模块 | MPU6050 六轴传感器(同时测角度和加速度) | components/drivers/i2c_devices/mpu6050/ |
上面这张图里的主板、支撑脚、电机、桨叶和电池,基本就是整架机的全部零件。
硬件工具
- 15W 电烙铁,用来把电机线焊到板上
- 建议再备一个万用表,方便确认电池是否带电
软件环境
- ESP-IDF(乐鑫官方的开发框架,写固件的工具链),版本 v4.4 以上
- 安装完成后配置环境变量:
export IDF_PATH=~/esp/esp-idf - 预期结果:终端里可以直接敲
idf.py命令而不报错
🔧 阶段一 · 装好它:从裸板到待飞的 5 步
- 拆分 PCB 板:沿预切割线轻轻折断。预期结果:板子断口整齐,边缘不毛刺。
- 装入支撑脚:把 4 个塑料支撑脚插入板子对应孔位,按压到位。预期结果:板子能自己立住,不晃。
- 焊接电机:用 15W 电烙铁把电机线焊到 PCB 焊点上。预期结果:轻拉线材不脱落。⚠️ 单个焊点焊接时间不超过 3 秒,久了会伤到板上的元件;红线一般是正极,焊前先分清极性。
- 装螺旋桨:黑色桨装标有 "CW"(顺时针)的电机,红色桨装标有 "CCW"(逆时针)的电机,往下按到听到"咔哒"声。预期结果:桨叶用手拔不下来。
- 接电池:把锂电池插头插进 PCB 板上的 JST 接口(一种小型电源插头)。预期结果:插头插到底、不松。⚠️ 插之前核对方向:红线对正极。
🛬 阶段二 · 让它飞起来:环境、烧录与首飞
环境搭建
- 安装 ESP-IDF v4.4 以上版本,配置环境变量:
export IDF_PATH=~/esp/esp-idf。预期结果:终端可用idf.py。 - 获取源码:
git clone https://gitcode.com/GitHub_Trending/es/esp-drone cd esp-drone预期结果:当前目录出现 esp-drone 文件夹。 3. 配置项目:运行idf.py menuconfig,选择开发板型号 ESP32-S2,保存退出。预期结果:项目里生成了对应配置。 4. 编译固件:idf.py build。预期结果:终端提示编译成功,固件文件生成。
烧录
- 把开发板用 USB 连到电脑。
- 执行烧录命令:
idf.py flash monitor。预期结果:烧录完成后自动打开串口监控,能看到输出。
首飞
先过一遍检查项:
- 电池电量 ≥70%
- 选一个开阔、无风的室内场地
- 桨叶保护罩:首次飞行建议保留
然后按顺序操作:
- 长按电源键 2 秒开机。预期结果:无人机电源指示亮起。
- 在手机 Wi-Fi 设置里连接 "ESP-DRONE_XXXX" 热点,输入默认密码
12345678。预期结果:连接成功。 - 打开 ESP-Drone 手机应用,点击"连接"按钮。预期结果:应用内显示已连接。
- 缓慢向上推左侧油门摇杆。预期结果:无人机自动起飞并悬停。
摇杆分工记牢这张表:
| 操作 | 作用 |
|---|---|
| 左侧摇杆 | 高度与旋转 |
| 右侧摇杆 | 前后左右移动 |
| 双摇杆快速拉至左下角 | 紧急处置 |
阶段三 · 飞得稳:PID 调参实操
PID(比例-积分-微分控制,三个决定"无人机如何纠正姿态偏差"的参数)。步骤:
- 在电脑安装 cfclient 上位机软件。预期结果:软件正常启动。
- 用 USB 线把无人机连上电脑。预期结果:cfclient 能识别到设备。
- 进入 "Parameters" 标签页,找到
pid_attitude参数组。 - 从默认值开始:P=5.0、I=0.0、D=0.5。
- 按原则微调后试飞:晃动过大就增加 D 值;响应迟缓就适当增加 P 值。
⚠️ 参数改完必须重启无人机才生效,别跳过这步。
验收:合格的飞行长什么样
首飞结束后,对照下面 3 条判断:
- 悬停稳定、无明显漂移:松手后机子大致停在原位,不越飘越远。
- 操控响应及时:推杆后动作跟手,没有明显延迟。
- 无异常异响、异味:电机声音均匀,机身不发烫到反常。
三条都过,就可以进入下面的拓展方向了。
❓ 卡住了?按这份自检清单来
现象一:无法起飞,按顺序查:
- 电机旋转方向是否正确
- 螺旋桨安装是否牢固
- 传感器校准:在 cfclient 里执行一次传感器校准
现象二:飞行不稳定,按顺序查:
- 重新调整 PID 参数
- 电池电量是否充足
- 传感器有无遮挡或损坏
现象三:连不上,按顺序查:
- 重启无人机的 Wi-Fi 模块
- 在手机上忘记该热点,再重新连接
- 确认手机 APP 是最新版本
下一步的三种走法:拓展方向
- 光流定点悬停:加装光流传感器,让机子悬停时不再漂移。驱动在 components/drivers/spi_devices/pmw3901/
- 激光测距与避障:用测距模块量障碍距离,驱动在 components/drivers/i2c_devices/vl53l1/;避障逻辑在 components/core/crazyflie/modules/src/collision_avoidance.c
- 路径规划与多机协同:路径规划算法见 components/core/crazyflie/modules/src/planner.c;多机协同先看 Wi-Fi 通信实现 components/core/crazyflie/hal/src/wifilink.c,再研究集群控制
- 外观与交互改造:3D 打印个性化保护罩、加微型摄像头做第一视角、换更大电池延长飞行时间,或做语音/手势控制,任选其一入手
资源与社区
- 项目文档:docs/zh_CN/rst/
- 代码仓库:esp-drone(地址即上文 git clone 使用的那个)
- 交流论坛:开源无人机开发者社区
- 视频教程:项目官方 YouTube 频道
走完全文,你手里多的不只是一架能飞的无人机。从读硬件文件、配环境、烧固件,到调控制参数,嵌入式开发、控制算法和传感器应用这三块能力,你已经各摸过一遍。下次再看到别的板子和传感器,你知道该从哪里下手。
【免费下载链接】esp-droneMini Drone/Quadcopter Firmware for ESP32 and ESP32-S Series SoCs.项目地址: https://gitcode.com/GitHub_Trending/es/esp-drone
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考