ESP32 开源飞控 ESP-Drone:百元硬件的四旋翼无人机完整固件
【免费下载链接】esp-droneMini Drone/Quadcopter Firmware for ESP32 and ESP32-S Series SoCs.项目地址: https://gitcode.com/GitHub_Trending/es/esp-drone
ESP-Drone 是一套跑在 ESP32 / ESP32-S 系列芯片上的四旋翼无人机固件,继承自 Crazyflie 开源飞控的控制内核,把姿态解算、状态估计、PID 控制和传感器驱动全部打包进一个 ESP-IDF 工程。硬件成本在百元级,软件覆盖从底层驱动到上位机调参的完整链路,适合作为嵌入式开发和飞控学习的实验平台。
从信号链看控制架构
固件把整条控制链路拆成清晰的层次:驱动层采集原始数据,状态估计层把多路传感器输出融合成统一的机体状态,控制器再据此生成电机指令。核心算法位于 源码目录,沿用 Crazyflie 原版飞控的模块结构;传感器与外设驱动独立放在 驱动目录,两层通过接口头文件解耦,替换某一类传感器时改动面很小。
传感器融合:多源数据汇成一份状态估计
悬停不漂的前提是状态估计够准。ESP-Drone 用扩展卡尔曼滤波器(EKF,一种把模型预测与传感器测量做加权修正的递推滤波器)处理多路输入:IMU 提供角速度与加速度,气压计给出高度参考,光流和激光测距分别修正水平与垂直位置。数据流上,各驱动以固定周期刷新缓存,EKF 每个控制周期读取最新值做一步预测加一步更新,输出姿态四元数、角速度、高度与位置,供控制器直接消费。
| 传感器 | 型号 | 关键参数 | 用途 |
|---|---|---|---|
| 六轴 IMU | MPU6050 | 加速度 ±2g/±4g/±8g/±16g,陀螺 ±250/±500/±1000/±2000 °/s | 姿态解算 |
| 气压计 | MS5611 | 10~1300 hPa,精度 ±2 hPa | 高度测量 |
| 光流 | PMW3901 | 最大 3000 dpi,帧率 64 Hz | 位置控制 |
| 激光测距 | VL53L1X | 0~4 m,精度 ±3% | 精确高度控制 |
四类传感器各有短板:IMU 短时精确但会漂移,气压计易受温度干扰,光流依赖地面纹理,激光测距量程有限。EKF 的价值正是按各自的表现动态分配权重。MPU6050 内置数字运动处理器(DMP),可以直接输出姿态四元数,把姿态解算的运算从主控 CPU 卸走,留给控制环的响应时间更充裕。
串级 PID:从姿态环到电机输出
控制框架是串级 PID:位置环在内环姿态环之外,外环输出期望姿态,内环负责把实际姿态拉回期望值。期望角度来自遥控器指令或自主导航系统,姿态环每拍读取角误差,按比例、积分、微分三项合成控制量,其中积分项带限幅,避免误差长时间累积造成积分饱和。串级结构让位置环只管慢变量、姿态环专注快响应,两环各自独立整定;从姿态解算到电机输出只隔一次 PID 运算,控制周期短、延迟小。
从烧录到首飞的完整流程 🛠️
按六步完成硬件组装
组装顺序比较直接:分离 PCB 板件,装脚架固定机身结构,把四个微型无刷电机焊到控制板对应接口,按正反旋向装好螺旋桨,接上 3.7V 500mAh 锂电池和传感器模块,烧录固件。焊接电机前核对控制板上的接口标识,避免与相邻接口混淆;正反桨混装会直接导致无法起飞,安装前对照板端丝印确认旋向。主控为 ESP32-S2,另配 MPU6050、MS5611、PMW3901 各一枚,原理图、PCB 与 BOM 都在 hardware 目录,打板或核对元件时可直接取用。
ESP-IDF 编译与固件烧录
开发环境基于 ESP-IDF,仓库已附带目标板默认配置,切换芯片只需改 set-target 参数,克隆、编译、烧录三步走:
git clone https://gitcode.com/GitHub_Trending/es/esp-drone cd esp-drone idf.py set-target esp32s2 idf.py build idf.py flash monitorflash monitor 烧录完成后直接打开串口日志,后续校准与调参阶段会频繁用到。
校准与 PID 调参
首次开机前完成三项校准:陀螺仪零偏在机身静止时执行,加速度计按提示摆放到不同姿态,磁力计走 8 字流程。之后接上位机实时调整 PID 参数,观察响应收敛情况;飞行日志会完整记录传感器读数与控制输出,出现异常时回放数据即可定位问题。
故障排查与应用延伸
用对照表处理高频故障
⚠️ 下表覆盖飞前排查中遇到最多的四类现象:
| 现象 | 可能原因 | 处理 |
|---|---|---|
| 无法起飞 | 电机转向错误 | 交换电机连接线或修改配置中的电机顺序 |
| 飞行中剧烈抖动 | PID 参数不当 | 降低 P 增益或增加 D 增益 |
| 高度漂移 | 气压计受温度影响 | 启用高度融合或做温度补偿 |
| 无法悬停 | 光流传感器脏污 | 清洁传感器镜头或重新校准 |
把平台带入教学与行业场景
- STEM 教学:一次实验覆盖嵌入式开发、实时操作系统、传感器融合与控制理论四个方向
- 环境监测:加装温湿度、PM2.5 传感器做区域巡检
- 温室植保:小型化机身适合在狭小空间作业
- 集群实验:多台经 Wi-Fi 组网,实现编队飞行与协同作业
- 航拍与配送原型:加装摄像头云台或机械爪,探索低成本空中应用
ESP-Drone 把驱动、飞控算法到上位机的完整链路以开源形式开放,社区贡献者可以针对自己的硬件和场景持续改造。对入门者它是能直接跑起来的飞控基线,对成熟开发者则是一个随手改得动的平台。
【免费下载链接】esp-droneMini Drone/Quadcopter Firmware for ESP32 and ESP32-S Series SoCs.项目地址: https://gitcode.com/GitHub_Trending/es/esp-drone
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考