okalachev/flix
Making an ESP32-based quadcopter from scratch
它是什么
Flix(flight + X 的缩写)是一个围绕 ESP32 微控制器构建的开源四轴飞行器。它是从零开始设计的——包括硬件和软件——并且用于教育和研究,而非商业用途。
当前状态
- 版本 1.1 存在,带有 3D 打印框架;早期也有版本 0。
- 该项目实际可以飞行——演示视频链接在 README 中。
- 一个专用 PCB(称为 Flix2)正在开发中。
- 位置控制功能(自动保持位置)也在开发中,并有一个使用头顶摄像头的演示。
主要特点
- 由通用、现成的组件构建(ESP32 板、IMU 传感器、有刷电机、MOSFET 等)。
- 用 Arduino 编写的简单、干净的固件——代码少于 2000 行。
- 通过 Wi-Fi 或 ESP-NOW(一种短距离无线协议)使用 MAVLink 协议进行通信。
- 可以使用 USB 游戏手柄、遥控器或智能手机进行控制。
- 包含一个用于配置和分析的无线命令行界面。
- 有一个用 Gazebo 构建的精确模拟器,运行与真实无人机相同的 Arduino 代码。
- 提供一个用于脚本编写和自动飞行的 Python 库。
- 一本关于飞行控制理论和实践的教科书正在开发中(位于 quadcopter.dev)。
硬件
- 主控板: ESP32 Mini(也支持 ESP32-S3 和 ESP32-C3 板)。
- 传感器: GY-91(MPU-9265)或其他 MPU-9250/MPU-6500 板、ICM20948V2 或 GY-521(MPU-6050)。
- 电机: 4× 8520 3.7V 有刷电机。
- 螺旋桨: 55 毫米或 65 毫米。
- 开关: 4× MOSFET 晶体管(UMW 100N03A 或类似型号——README 警告不要使用其他制造商)。
- 电池: 3.7V 锂聚合物电池,建议 25C,容量 1000 mAh 或更高。
- 框架: 3D 打印(提供 STL 和 STEP 文件),并推荐打印设置(0.2 毫米层高,0.4 毫米线宽,100% 填充)。
- 控制器选项: 基于 CC2500 的发射器(例如 BetaFPV LiteRadio)、通过 Wi-Fi 的双摇杆游戏手柄,或其他选项。
- 可选部件: 带 SBUS 接口的 RC 接收器、用于更稳定电源的升压转换器、电池电压分压器。
组装与接线
- README 提供了简化的连接图和电机连接方案(MOSFET 接线)。
- 它包含一个逐引脚表格,用于将 IMU 板连接到 ESP32(通过 VSPI),以及将四个电机连接到特定的 GPIO 引脚。
- 可选的 RC 接收器连接到 UART2;可选的电池电压分压器连接到 ADC1 引脚。
- 所需工具:3D 打印机、烙铁、焊锡丝、螺丝刀、万用表。
软件与仿真
- 模拟器在 Gazebo 中运行原始 Arduino 代码,因此模拟行为与真实无人机一致。
- 一个 Python 库(位于
tools/pyflix)支持脚本编写和自动飞行。 - README 链接到文档文章:组装说明、使用(构建/设置/飞行)、仿真指南、Python 库文档、固件架构概述、故障排除和日志分析。
社区与资源
- 官方 Telegram 频道(俄语)跟踪开发:t.me/opensourcequadcopter。
- 官方 Telegram 聊天(英语/俄语):t.me/opensourcequadcopterchat。
- 一篇关于无人机开发的详细 Habr 文章(俄语)。
- 文档中维护了一个用户构建画廊。
重要注意事项
- 这是一个 DIY 项目——README 明确说明它不容易组装和设置。
- 它按“原样”提供,不提供任何保修;作者不对损坏、伤害或损失负责。
- 某些组件有严格的要求(例如,精确的 3.7V 电机、特定的 MOSFET 制造商、匹配的螺旋桨孔径)。
- IMU 板上的气压计目前未使用。
- 框架针对 GY-91 板进行了优化;其他 IMU 板可能需要修改安装孔位置。
如何开始
- 阅读 README 中链接的组装说明和使用文档。
- 收集列出的组件(或先使用模拟器)。
- 3D 打印框架部件。
- 按照原理图进行焊接和接线。
- 烧录 Arduino 固件并按照设置指南操作。
- 可选地使用 Python 库进行脚本飞行。
相关
- 项目
- 项目
- 项目
- 项目