ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

如何快速做出一架开源无人机:ESP-Drone 飞控完整教程

如何快速做出一架开源无人机:ESP-Drone 飞控完整教程

如何快速做出一架开源无人机: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-S2 / ESP32-S3 芯片的开源飞控固件。你按文档把一架小无人机组装出来,烧录固件后用手机通过 Wi-Fi 连接,就能起飞;想实现定高和定点悬停,再插上对应的扩展板即可。代码移植自 Crazyflie,GPL3.0 协议开源,适合想自己动手做出能飞无人机、顺便看懂飞控原理的新手和进阶玩家。

挑一款适合你的飞控

选开源飞控,先想清楚三个问题:机型多大、要不要 Wi-Fi、你想不想读代码。主流项目的差异如下:

项目定位适合人群
ESP-Drone基于 ESP32 的迷你四旋翼飞控,自带 Wi-Fi,手机 APP / 手柄直控,硬件模块简单想从零组装一台无人机、学习飞控原理的入门者和开发者
BetaFlight高频率 FPV 竞速飞控,调参选项丰富、响应快穿越机玩家,追求操控极限
PX4企业级开源飞控,支持多旋翼 / 固定翼,导航栈完整中大型机型、工业任务开发
ArduPilot功能全面,支持自动驾驶与复杂任务规划农业、测绘等场景应用
Cleanflight轻量级飞控,资源占用低硬件受限的小型实验机

为什么选 ESP-Drone?如果你的预算有限、希望不装 GCS 软件就能用手机飞、还想把代码一行行读明白,它就是性价比最高的入口:主控板只搭了飞行必需的最小传感器集,姿态自稳不依赖任何扩展板;定高、定点这些高级模式则由扩展板决定,按需购买,不被迫一次买齐。

备齐物料与环境

类别内容说明
核心硬件ESP32-S2 主控板(板载 MPU6050)、4 个电机、4 个螺旋桨、2S 锂电池主控板是基础飞行的最小配置,MPU6050 即姿态传感器
扩展板(可选)定点板(PMW3901 光流 + VL53L1X 激光测距)、气压板(MS5611)定高 / 定点模式必须;光流 = 用摄像头芯片看地面纹理推算移动量
工具电烙铁、焊锡、助焊剂、尖嘴钳、十字螺丝刀电机焊线前建议先给焊盘镀锡防虚焊
开发环境ESP-IDF v5.0(官方指定 release/v5.0 分支)编译、烧录、监控全靠它
控制端ESP-Drone 手机 APP(Android / iOS)无人机本身做 Wi-Fi 热点,手机连它
调试上位机cfclient(可选但强烈推荐)传感器校准、PID 调参、实时数据曲线

把飞机飞上天

  1. 组装主板【难度★】【约 30 分钟】【尖嘴钳、螺丝刀】拆分 PCB 定位板、装支撑脚,核对硬件参考文档里的管脚布局。
  2. 焊电机与接线【难度★★】【约 60 分钟】【电烙铁、助焊剂】逐个焊接电机与电池线,确认每个电机的转向标记与桨叶匹配。
  3. 编译烧录固件【难度★★】【约 20 分钟】【PC + USB 线】克隆仓库后一条命令走完全程:
git clone https://gitcode.com/GitHub_Trending/es/esp-drone cd esp-drone && idf.py set-target esp32s2 idf.py build flash monitor
  1. APP 连接与校准【难度★】【约 10 分钟】【手机】手机连上无人机热点,APP 点 Connect,绿灯闪烁即握手成功;用 cfclient 做一次加速度计校准(水平静置),必要时设置 Roll / Pitch trim。
  2. 首次起飞【难度★】【约 5 分钟】轻推油门离地,保持水平观察 10 秒,确认姿态稳定后再谈调参。

⚠️ 电机线虚焊是"起不来"的头号原因:先在焊盘镀锡再焊线,飞前逐个空转测试,转弱或停转的立刻重焊。

⚠️ 手机扫不到 ESP-DRONE_XXXX 热点,十有八九是烧录失败或供电异常,先回串口 monitor 看启动日志,别急着怀疑 Wi-Fi。

🛠️ 静置时机身明显歪斜,别硬飞——那是安装误差,在 cfclient 里用 Roll / Pitch trim 补偿,再重新校准一次加速度计。

看懂它为什么能飞

姿态估计:EKF 一句话版。加速度计和陀螺仪各自有缺陷:前者有噪声和振动干扰,后者会随时间漂移。EKF(扩展卡尔曼滤波)的思路是用上一步状态预测下一步,再用传感器实测值不断修正,把噪声滤掉。本项目里,互补滤波器负责输出横滚 / 俯仰角,工程文件在components/core/crazyflie/modules/src/sensfusion6.c;高度与位置的状态估计则由estimator_kalman.c实现。各类传感器的 I2C / SPI 驱动统一放在components/drivers/i2c_devices/和components/drivers/spi_devices/,想弄清某块传感器怎么被读进来,直接去这两个目录翻。

三环嵌套控制。你的操作(或 APP 设定点)不直接驱动电机,而是穿过三层控制器:最内层角速度环响应最快,保证机身"跟得住";中间层角度环把姿态拉回水平;最外层位置环负责定点悬停。三环的代码都在components/core/crazyflie/modules/src/下:姿态环attitude_pid_controller.c、位置环position_controller_indi.c,稳定器主循环在stabilizer.c。

PID 的顺序不能乱。P(比例)负责"差多少补多少",D(微分)负责"预判变化提前刹车",I(积分)负责"磨掉残余偏差"。先有 P 才能谈稳定,D 用来收住 P 带来的振荡,I 最后锦上添花——顺序反了,飞机会越调越飘。

调稳机身:调参与排障

调参顺序照这个走,每次只动一个参数:

  1. 角速度环 P 值每次上调约 20%,直到机身出现轻微振荡——这就是临界点;
  2. 加 D,每次 10%~20%,把振荡压下去,目标是响应干脆不拖尾;
  3. 加 I,小步慢加,消除静止时的残余倾斜;I 给多了会缓慢摆动,立刻回退;
  4. 角速度环稳定后再用同样方法调角度环,最后才是位置环(悬停模式)。

飞起来之后,用"现象 → 原因 → 处理"快速排障:

现象常见原因处理
无法起飞 / 电机转弱电量不足、电机线虚焊充满电池;重查焊点与电机转向
飞行中摇晃P 值偏高、桨叶或机架松动P 值降 20% 再试;拧紧桨叶与机架螺丝
悬停漂移光流镜头脏、位置环不稳、地面无纹理擦 PMW3901 镜头;降低位置环 P;换纹理丰富的地面

进阶挑战方向

  • 多机协同飞行|难度★★★★★:项目通过 ESP-NOW(ESP32 芯片间的免 AP 直连协议)实现无人机互联,仓库内置 TDOA 定位引擎,可做多机定位与编队实验。切入点:components/core/crazyflie/hal/src/espnow_ctrl.c与components/core/crazyflie/utils/src/tdoa/。
  • 自主悬停与避障|难度★★★★:装上定点板后,光流 + 激光测距已经给了悬停数据基础,仓库自带避障模块可直接在此基础上扩展。切入点:components/drivers/spi_devices/pmw3901/、vl53l1驱动和modules/src/collision_avoidance.c。
  • Lighthouse 室内定位|难度★★★★:代码里完整保留了基于 Lighthouse 基站的高精度室内定位模块,适合想做定位研究的玩家。切入点:components/core/crazyflie/modules/src/lighthouse/。

项目源于 Crazyflie(GPL3.0),配套的 iOS / Android APP 同样是开源代码,cfclient 上位机和官方中文文档开箱即用。官方公告从 2022 年 12 月起只提供有限维护,但仍持续接收 PR——想给固件加功能,社区依然是最好的去处。

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

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

返回列表