MiniFly 飞控固件 minifly-fc

无人机 4/5 🧩 软硬件结合 已发布
bfmhno3 0 Stars MIT BOM 完整度: 0/5 教程完整度: 0/5

项目简介

STM32F411CEUx上运行的完整四轴飞行器飞控,含级联PID控制。


一款运行在STM32F411CEUx(Cortex-M4F,96 MHz)上的完整四轴飞行器飞控,采用级联PID控制、传感器融合、无线电/USB遥测以及支持热插拔的扩展模块系统。最初基于正点原子MiniFly开源项目(2017),现已全面重构以适应现代工具链并提升可维护性。

标签

项目特点

**级联PID控制**:角度环+角速度环级联,支持位置/速度PID和自动悬停推力
**Mahony姿态估计**:基于四元数的姿态解算,支持INAV风格位置估计
**多传感器融合**:MPU6500 IMU (1kHz)、AK8963磁力计、BMP280/SPL06气压计自动检测
**双通信链路**:nRF24L01无线电 (1Mbaud DMA TX) + USB CDC虚拟串口
**ATKP二进制协议**:支持遥测和命令传输,双源RC输入(无线电+WiFi)
**热插拔扩展模块**:WS2812灯环、PMW3901光流、VL53L0X/VL53L1X激光测距、WiFi摄像头
**安全机制**:IWDG看门狗、异常检测、飞行锁定、链路丢失自动降落、低电量报警
**现代工具链**:CMake + Ninja构建,FreeRTOS多任务调度(10个任务)
**分层架构**:清晰的App/Control/Services/Platform/BSP层次,易于维护和扩展

技术规格

**MCU** STM32F411CEUx (Cortex-M4F, 96 MHz)
**Flash** 512 KB (8 sectors)
**SRAM** 128 KB
**IMU** MPU6500 (I2C1, 6-axis, ±16g/±2000dps)
**磁力计** AK8963 (I2C1, via MPU bypass)
**气压计** BMP280 / SPL06 (I2C1, 自动检测)
**无线电** nRF24L01 (USART2, 1Mbaud, DMA TX)
**USB** USB OTG FS (CDC虚拟串口)
**扩展接口** I2C3, SPI2, USART1
**电机布局** X-Quad (4路PWM: TIM2_CH1/3, TIM4_CH1/2)
**姿态更新率** 250 Hz
**控制频率** 500 Hz
**传感器采样** 1 kHz
**RTOS** FreeRTOS (CMSIS-RTOS v2, 10 tasks)
**构建系统** CMake + Ninja + GCC

项目资源

物料清单 (BOM)

物料名称 数量 参考价格 备注
STM32F411CEUx 1 UFQFPN48封装
MPU6500 1 6轴加速度+陀螺仪
AK8963 1 3轴磁力计,通过MPU旁路
BMP280 或 SPL06 1 自动检测
nRF24L01 1 2.4GHz无线模块
空心杯电机 4 8520或类似规格
40mm或类似 4 正反桨各2
1S LiPo (3.7V) 1 260mAh或更大
WS2812灯环 1 12-LED RGB
PMW3901光流传感器 1 可选
VL53L0X/VL53L1X激光测距 1 可选
WiFi摄像头模块 1 可选

能力画像

⚪ 记忆与知识检索: 2/5
🔵 逻辑推演: 4/5
⚪ 表达与交流: 2/5
⚪ 感知与观察: 3/5
🔵 数理与计算: 4/5
🔵 动手与操作: 4/5
🔵 狂热与坚持: 4/5
🔵 创造与创新: 3/5

所需技能

🔧 **动手能力**:需要焊接QFN封装MCU和传感器,组装四轴飞行器机架,调试硬件接口 💻 **编程能力**:需要C语言嵌入式开发经验,理解FreeRTOS任务调度、CMake构建系统、STM32 HAL库 ⚡ **电子电路**:需要理解I2C/SPI/USART通信协议、PWM电机控制、电源管理、ADC检测

适用场景

**学习四轴飞行器飞控原理**:从传感器融合到PID控制的完整实现
**嵌入式系统进阶学习**:现代工具链(CMake+HAL+FreeRTOS)的实战项目
**MiniFly飞行器改造**:为现有MiniFly硬件升级固件
**飞控算法研究**:级联PID、Mahony姿态估计、位置估计等算法的实现和调参
**扩展模块开发**:利用热插拔模块系统开发自定义外设