200元1天搞定自研四旋翼:ESP-Drone开源飞控DIY从零到首飞
【免费下载链接】esp-droneMini Drone/Quadcopter Firmware for ESP32 and ESP32-S Series SoCs.项目地址: https://gitcode.com/GitHub_Trending/es/esp-drone
总成本约200元,一个晚间的焊接时间:第二周,我用 ESP-Drone 开源项目搭起的这台四旋翼已经能在客厅稳定悬停10秒,加装气压计扩展板后还会自动保持高度。主控就是一块 ESP32-S2,算法全是开源代码,每一行都能读懂、都能改。如果你一直想DIY无人机却被四位数价位的飞控劝退,这台低成本四旋翼就是最划算的入门路径;我踩过的坑也一并写在文里,帮你绕开。
认识这个项目:ESP-Drone 是什么,开源到什么程度
一句话:ESP-Drone 是乐鑫基于 ESP32 / ESP32-S2 / ESP32-S3 芯片的小型四旋翼方案,通过 Wi-Fi 连接手机 APP 或游戏手柄即可控制。主代码移植自成熟的 Crazyflie 项目(GPL3.0 协议),也就是说你拿到的不是玩具演示代码,而是一套被大量用户验证过的控制算法。
它的开源程度相当彻底:固件源码全部在仓库里,原理图与 PCB 文件放在 hardware/ 目录,iOS 和 Android 的 APP 源码同样公开——从飞控环到螺旋桨,每个环节都摸得到。
| 对比项 | 买现成飞控套件 | 自己搭 ESP-Drone |
|---|---|---|
| 花费 | 入门套装约1200元,尚不含电机与机架 | 基础版约200元,进阶版约450元 |
| 代码透明度 | 封闭,只能用厂商预设 | 全开源,姿态与 PID 算法可改 |
| 硬件自由度 | 固定搭配 | 扩展板可插拔(光流、气压计、罗盘) |
| 学习价值 | 只会被调参数 | 能挖到任务调度与传感器融合 |
动手前的准备:买什么零件、装什么环境
要买哪些零件:两档预算二选一
| 部件 | 基础版(首台建议) | 进阶版 |
|---|---|---|
| 主控芯片 | ESP32-S2 | ESP32-S3 |
| 惯性传感器 | MPU6050(六轴) | MPU9250(九轴)+ MS5611 气压计 |
| 水平定位 | 无 | PMW3901 光流 |
| 电机 | 8520 空心杯 | 1106 无刷 |
| 总成本 | 约200元 | 约450元 |
⚠️ 两版的差别不在芯片,而在电机:空心杯无需额外电调,无刷则要处理电调的供电与信号。我第一台直接上无刷,光接线就耗了3小时。首台选空心杯,组装难度低得多,扩展板接线可查 硬件参考。
要装什么环境:四步跑通编译
- 安装 ESP-IDF v4.4(官方提供一键安装脚本);
- 获取代码:
git clone https://gitcode.com/GitHub_Trending/es/esp-drone - 把编译目标设为 esp32s2(通过 idf.py 的 set-target 完成,详见 环境搭建文档);
- 执行
idf.py build,固件编译成功即环境可用。
当天能验证到哪一步
顺利的话,第一天可以拿下三件事:固件编译成功、传感器自检通过、电机怠速转动。三项全部打勾,就可以放心进入组装环节。
从零件到首次起飞:五步走完,每步都有验收标记
分离 PCB、安装脚架:用美工刀沿切割线划开,力度要均匀——我第一次下手太猛,把 PCB 边缘划出了裂纹;脚架带箭头标识的一端朝前方。✅ 完成标志:板子放平,四个支撑点不晃动。
焊接电机、验证转向:先分清正负极,焊反等于电机倒转。四台电机的标准转向是固定的:前左 M1 顺时针、前右 M2 逆时针、后左 M3 逆时针、后右 M4 顺时针;A/B 桨要按旋转方向配对安装,装错桨不产生推力。焊完先不上桨,短暂通电核对每台电机的实际转向。✅ 完成标志:四台电机转向与标准一致。
烧录固件:把编译好的固件写入 ESP32-S2。✅ 完成标志:上电后手机 APP 能搜到并连上这台机器。
按顺序跑完传感器四步校准:机身按六个面各水平静止2秒(加速度计);水平放置等3秒自动完成(陀螺仪);手持画"8"字直到指示灯变绿(磁力计);放在地面静止10秒(高度传感器)。
⚠️ 磁力计校准必须远离金属:我第一次在电脑旁操作,飞行时严重偏航。
✅ 完成标志:机身水平静置时,上位机显示的姿态角度稳定在 0 附近不漂移。
首飞:到空旷场地,先用手托住试推力,确认震动正常再松手。✅ 完成标志:稳定悬停10秒。
它为什么能飞起来:3分钟看懂两个环的分工
关键是姿态环与位置环的分工:
- **姿态环(内环)**负责"不翻倒",运行频率很高。MPU6050 里的陀螺仪响应快,好比人在雾里走路,知道"自己转得多快"却会慢慢走偏;加速度计慢但稳,始终清楚"地面朝哪个方向"。姿态估计器把两者融合出实时倾角,再由 PID 计算每台电机的转速差。三项可以这样理解:P 是你感觉倾斜时回推的力度,太小会晃、太大会左右震荡;I 负责累计并消除长期存在的小偏差;D 预判趋势、压住超调。
- **位置环(外环)**负责"不漂移"。高度由 MS5611 气压计(或 VL53L1X 激光)测量,水平漂移由 PMW3901 光流测量,偏差先换算成姿态设定值,再交给姿态环执行。
所以调参顺序天然是"先姿态、后位置"。
调参与排错:参数起点与常见症状速查
先调姿态环:PID 推荐起点与两条纪律
| 参数 | 起点值 | 作用 |
|---|---|---|
| P(比例) | 2.5 | 太小反应迟钝,太大剧烈抖动 |
| I(积分) | 0.1 | 消除静态偏差 |
| D(微分) | 0.5 | 抑制超调,不宜过大 |
两条纪律:先调姿态环再调位置环;一次只改一个参数,单次变化量不超过10%。
💡 我每次改参前后都会记录参数与飞感,飞得更差时能立刻回退,不靠记忆。
症状速查表:三种常见飞行异常
| 症状 | 可能原因 | 处理办法 |
|---|---|---|
| 起飞时剧烈震动、原地打转 | 电机正负极焊反,转向与机架不符 | 交换该电机两线的焊接位置,或在软件中修改电机映射 |
| 飞行中无输入却自动偏航 | 磁力计校准时受金属干扰(手机、电脑) | 到空旷场地重新校准,远离电子设备 |
| 定高时高度波动超过 ±30cm | 气压计受气流干扰 | 增加低通滤波器参数,或在代码中加入滑动平均 |
玩法升级:从入门到专家的三个方向
- 入门 · LED 灯带:用灯光指示飞行状态,离着几米也能一眼看出上锁、悬停还是异常。
- 进阶 · VL53L1X 激光测距:用激光替代气压计测高度,室内定高更稳,不受气流影响。
- 专家 · 手机 APP 控制:项目已提供 Android 示例代码,移植后不依赖 PC 就能操控飞机。
动手验收清单:三级任务卡
| 级别 | 目标 | 预计耗时 | 额外物料 | 达标线 |
|---|---|---|---|---|
| 初级 | 基础版首飞 | 1天 | ESP32-S2 核心板、MPU6050、空心杯电机×4、机架 | 稳定悬停10秒以上 |
| 中级 | 定高飞行 | 2天 | MS5611 气压计 | 高度变化不超过 ±15cm |
| 高级 | 定点悬停 | 3-5天 | PMW3901 光流 | 1米范围内位置误差不超过 ±20cm |
三张任务卡全部通过后,你的机器才算从"能飞"走向"飞得稳"。
从焊下第一台电机到机身稳稳悬空,我得到的不只是四旋翼,而是一套完全透明、随时能读懂修改的飞控系统。这是开源给新手最大的红利:复杂的飞行控制,第一次变得触手可及。
⚠️安全提醒:飞行前务必在空旷场地测试,远离人群和障碍物;室内调试先拆桨再通电。安全永远是第一位的。
【免费下载链接】esp-droneMini Drone/Quadcopter Firmware for ESP32 and ESP32-S Series SoCs.项目地址: https://gitcode.com/GitHub_Trending/es/esp-drone
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考