ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

ESP-Drone 上手指南:用 ESP32 打造一台可飞的四旋翼

ESP-Drone 上手指南:用 ESP32 打造一台可飞的四旋翼

ESP-Drone 上手指南:用 ESP32 打造一台可飞的四旋翼

【免费下载链接】esp-droneMini Drone/Quadcopter Firmware for ESP32 and ESP32-S Series SoCs.项目地址: https://gitcode.com/GitHub_Trending/es/esp-drone

想自己动手做一台无人机?成品动辄上千元,开源飞控方案又常常改不动、查不到原理。ESP-Drone 是乐鑫推出的小型无人机固件方案,基于 ESP32、ESP32-S2、ESP32-S3 芯片开发,用手机 APP 或游戏手柄经 Wi-Fi 直接操控,适合想啃飞控原理的嵌入式新手、STEAM 教育场景和 DIY 玩家。

想象这样一个画面:教室角落里,你焊好的一台巴掌大四旋翼缓缓离地,四个桨叶加速旋转,机身自动把姿态摆平,手机屏幕上的虚拟摇杆决定它往哪去——整个过程不需要任何云台、GPS,纯靠传感器和算法硬扛。

自稳定、定高、定点:ESP-Drone 支持哪些飞行模式

先看它能干什么,再谈为什么。ESP-Drone 提供三档飞行能力:

  • 自稳定模式:只负责把机身摆平,油门完全交给你,是最基础也最适合上手的模式;
  • 定高模式:油门由飞控接管,飞机自动维持在你给定高度,手只用管横移和转向;
  • 定点模式:连机身倾角都自动修正,松杆即悬停,适合演示和拍摄固定机位。

后两档不是白送的:定高需要气压计(MS5611 模块),定点需要光流 PMW3901 加 ToF 测距 VL53L1X 的扩展板,硬件清单在 硬件参考文档 里有完整表格。

操控端有三条路:安卓/iOS APP、通过 cfclient 上位机接游戏手柄、以及直接用 cfclient 做调试。手柄方案比手机摇杆稳,长时间操作手腕也不酸。

硬件架构拆解:主控板加扩展板的组合逻辑

这套方案的硬件走的是"主板保底、扩展板升级"的路线,主控板 ESP32-S2 上集成了 IMU 芯片 MPU6050 和必要电源、电机驱动,向外放出 I2C、SPI、GPIO 三类扩展接口;扩展板按功能插在对应位置:

模块核心器件带来的能力安装位置
主控板ESP32-S2 + MPU6050基础飞行—
定点扩展板PMW3901 + VL53L1X室内悬停机身底部朝地
气压定高板MS5611高度保持顶部或底部
指南针板HMC5883L无头模式顶部或底部

板卡原理图和 PCB 源文件都放在 hardware/ 目录下,想自己画板子或者抄板都能找到 Gerber 和 BOM。

飞控原理:FreeRTOS 与 PID 如何让飞机站稳

一块指甲盖大小的芯片,凭什么把四旋翼托稳?拆开代码看就明白了。固件主体移植自 Bitcraze 的 Crazyflie 飞控(代码在 components/core/crazyflie/),运行在 FreeRTOS 之上:传感器读取、姿态解算、电机输出被拆成不同优先级的任务并行跑,IMU 数据先经过卡尔曼滤波或互补滤波融合,再由 PID 回路算出四个电机的修正量。

上位机通信走的是 CRTP 协议,这意味着你可以直接挂上 Bitcraze 社区的 cfclient:PID 参数曲线图、传感器日志、状态机调试,一整套调参工具链免费复用,不用自己造轮子。矩阵运算部分由 WhyEngineer 移植的 Xtensa DSP 库加速,双核 CPU 跑这套算法还有余力。

ESP-Drone 环境搭建与烧录步骤

动手前把环境对齐,两个关键点:必须使用 ESP-IDF 的 release/v5.0 分支(主线上游有 API 差异),芯片目标选 esp32s2(或你的实际板卡)。流程大致四步:

  1. 安装 ESP-IDF release/v5.0 并配置好IDF_PATH;
  2. 拉取代码:git clone https://gitcode.com/GitHub_Trending/es/esp-drone
  3. 进入目录后执行idf.py set-target esp32s2;
  4. idf.py build flash monitor完成编译、烧录并查看串口日志。

首次烧录时记得进下载模式;如果日志里看不到stabilizer任务启动,优先检查 MPU6050 的 I2C 地址是否冲突。细节以 快速入门文档 为准。

从课堂到二开:扩展空间与协议说明

这套代码的价值不止于飞起来。它按模块化方式切分,components/drivers/下是传感器驱动(IMU、气压计、光流、磁力计),components/core/crazyflie/modules/下是飞控逻辑,想在自稳定模式里加个 LED 灯效、加个碰撞检测,改一个文件就能验证。教育侧可以带学生走"传感器读数 → 滤波 → PID → 电机输出"完整链路,每一步都有日志可查。

许可方面要注意:飞控核心来自 Crazyflie 开源工程,采用 GPL-3.0 协议,DSP 库则来自 esp32-lin 移植项目,商用二次分发前请确认合规。官方自 2022 年 12 月起只提供有限维护,但社区 Pull Request 持续被接纳,遇到 bug 翻 issue 或自己动手修,基本都能有结果。

代码全开源,硬件图纸全公开,飞起来之前,先把文档读一遍。

【免费下载链接】esp-droneMini Drone/Quadcopter Firmware for ESP32 and ESP32-S Series SoCs.项目地址: https://gitcode.com/GitHub_Trending/es/esp-drone

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进