okalachev/flix
GitHub: okalachev/flix
Flix 是一个基于 ESP32 从零构建的开源四轴飞行器项目,旨在通过简洁的固件代码、完整的硬件文档和仿真环境帮助用户学习无人机飞行控制理论与实践。
Stars: 1078 | Forks: 201
Flix (flight + X) — open source ESP32-based quadcopter made from scratch.
| Version 1.1 (3D-printed frame) | Version 0 |
![]() |
![]() |
版本 0 演示视频:https://youtu.be/8GzzIQ3C6DQ。
在教育中的应用 (RoboCamp):https://youtu.be/Wd3yaorjTx0。
查看[用户作品库](docs/user.md):
### PCB
官方 PCB *(Flix2)* 目前正在开发中。关注[项目频道](https://t.me/opensourcequadcopter)以跟踪进度。
当前原型的户外飞行演示视频:
## 仿真
仿真器使用 Gazebo 实现并运行原始的 Arduino 代码:
## 文档文章
1. [组装说明](docs/assembly.md)。
2. [用法:构建、设置和飞行](docs/usage.md)。
3. [仿真](gazebo/README.md)。
4. [Python 库](tools/pyflix/README.md)。
附加文章:
* [用户作品库](docs/user.md)。
* [固件架构概述](docs/firmware.md)。
* [故障排除](docs/troubleshooting.md)。
* [日志分析](docs/log.md)。
## 组件
|类型|部件|图片|数量|
|-|-|:-:|:-:|
|微控制器板|ESP32 Mini。也支持 ESP32-S3/ESP32-C3 开发板。|
|1|
|IMU(和气压计¹)板|GY‑91, MPU-9265(或其他 MPU‑9250/MPU‑6500 开发板)ICM20948V2 (ICM‑20948)
GY-521 (MPU-6050)|


|1|
|*升压转换器(可选,用于更稳定的电源)*|*5V 输出*|
|1|
|电机|8520 3.7V 有刷电机。需要确切电压为 3.7V 的电机,而不是宽工作电压(3.7V — 6V)。
确保电机轴直径和螺旋桨孔径匹配!|
|4|
|螺旋桨|55 mm 或 65 mm|
|4|
|MOSFET(晶体管)|UMW 100N03A 或[同类替代品](https://t.me/opensourcequadcopter/33)。警告:请勿使用 KIA 100N03A 或其他制造商的产品,它们可能无法工作!|
|4|
|下拉电阻电压测量电阻|10 kΩ|
|6|
|3.7V 锂聚合物电池|LW 952540(或任何尺寸兼容的电池)。确保电池具有足够的放电倍率——25C 或更高!|
|1|
|电池连接线|MX2.0 2P 母头|
|1|
|锂聚合物电池充电器|任意|
|1|
|IMU 开发板安装螺丝|M3x5|
|2|
|机架组装螺丝|M1.4x5|推荐设置:层高 0.2 mm,线宽 0.4 mm,填充 100%。|
|1|
|机架顶部部分|3D 打印:[`stl`](docs/assets/esp32-holder.stl) [`step`](docs/assets/esp32-holder.step)|
|1|
|IMU 开发板垫圈|3D 打印:[`stl`](docs/assets/washer-m3.stl) [`step`](docs/assets/washer-m3.step)|
|2|
|控制器(推荐)|CC2500 发射机,如 BetaFPV LiteRadio CC2500(RC 接收机/Wi-Fi)。双摇杆游戏手柄(仅限 Wi-Fi)——参见[推荐的游戏手柄](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/setup_view/joystick.html#supported-joysticks)。
其他⁵|

|1|
|*RC 接收机(可选)*|*DF500 或其他³*|
|1|
|导线|推荐 28 AWG|
||
|胶带,双面胶||||
*¹ — 目前暂未使用气压计。**² — 此机架针对 GY-91 开发板进行了优化,如果使用其他开发板,应修改板载安装孔的位置。*
*³ — 您也可以使用任何带有 SBUS 接口的发射机-接收机对。* 组装所需工具: * 3D 打印机。 * 电烙铁。 * 焊锡丝(含助焊剂)。 * 螺丝刀。 * 万用表。 欢迎随意修改设计或代码,并创建您自己的改进版本。将您的成果发送至[官方 Telegram 聊天室](https://t.me/opensourcequadcopterchat),或直接发送给作者([电子邮件](mailto:okalachev@gmail.com),[Telegram](https://t.me/okalachev))。 ## 原理图 ### 简化接线图
您可以查看用户提供的该无人机[完整电路图变体](https://miro.com/app/board/uXjVN-dTjoo=/?moveToWidget=3458764612338222067&cot=14)。
### 注意事项
* 使用 VCC (+) 和 GND (-) 引脚,通过锂聚合物电池为 ESP32 Mini 供电。
* 使用 VSPI 将 IMU 开发板连接到 ESP32 Mini,使用 3.3V 和 GND 引脚为其供电:
|IMU 引脚|ESP32 引脚|
|-|-|
|GND|GND|
|3.3V|3.3V|
|SCL *(SCK)*|SVP (GPIO18)|
|SDA *(MOSI)*|GPIO23|
|SAO *(MISO)*|GPIO19|
|NCS|GPIO5|
* 将下拉电阻焊接到 MOSFET 上。
* 按照以下方案,使用 MOSFET 将电机连接到 ESP32 Mini:
|电机|位置|方向|螺旋桨类型|电机引线|GPIO|
|-|-|-|-|-|-|
|电机 0|左后|逆时针|B|黑色和白色|GPIO12 *(TDI)*|
|电机 1|右后|顺时针|A|蓝色和红色|GPIO13 *(TCK)*|
|电机 2|右前|逆时针|B|黑色和白色|GPIO14 *(TMS)*|
|电机 3|左前|顺时针|A|蓝色和红色|GPIO15 *(TD0)*|
顺时针旋转的电机具有蓝色和红色引线,对应于螺旋桨类型 A(在螺旋桨上有标记)。
逆时针旋转的电机具有黑色和白色引线,对应于螺旋桨类型 B。
* 可选:将 RC 接收机连接到 ESP32 的 UART2:
|接收机引脚|ESP32 引脚|
|-|-|
|GND|GND|
|VIN|VCC(或 3.3V,取决于接收机)|
|信号 (TX)|GPIO4|
* 可选:连接电池分压器以在任何 ADC1 引脚上进行电压监控(例如 ESP32 上的 *GPIO32*,或 ESP32-S3 上的 *GPIO3*)。
ESP32 和 ESP32-S3 [可以测量](https://docs.espressif.com/projects/arduino-esp32/en/latest/api/adc.html#analogsetattenuation) 最高 3.1 V 的电压,而 ESP32-S3/ESP32-C3 可以测量最高 2.5 V 的电压,因此请相应地选择分压电阻。
## 资源
* 关于开发无人机和飞行控制器的 Telegram 频道(俄语):https://t.me/opensourcequadcopter。
* 官方 Telegram 聊天室:https://t.me/opensourcequadcopterchat(英语 / 俄语)。
* Habr.com 上关于无人机开发的详细文章(俄语):https://habr.com/ru/articles/814127/。
## 免责声明
这是一个 DIY 项目,我希望您觉得它有趣且有用。然而,它并不容易组装和设置,并且是在“原样”基础上提供的,不提供任何保证。不能保证它能完美运行,甚至不能保证它能运行。
⚠️ 对于因使用本项目而造成的任何损害、伤害或损失,作者概不负责。使用风险自负!标签:Arduino, ESP32, MAVLink, 四轴飞行器, 嵌入式开发, 无人机, 机器人, 逆向工具

