手搓STM32H743开源飞控系列教程---(一)飞控调研与方案设计_betaflight官网
资料汇总(AI问答知识库)
物唯AI智慧文档
CSDN系列文章
手搓STM32H743开源飞控系列教程---(一)飞控调研与方案设计-CSDN博客
手搓STM32H743开源飞控系列教程---(二)源码下载,修改引脚定义、编译固件-CSDN博客
手搓STM32H743开源飞控系列教程---(三)物唯飞控原理图讲解、硬件引脚讲解、一键适配官方固件
手搓STM32H743开源飞控系列教程---(四) 番外~~AI问答知识库上线-CSDN博客
手搓STM32H743开源飞控系列教程---(五) 飞控IMU与罗盘方向调整-CSDN博客
放在最前面
0)首飞视频
F450机架,烧录Ardupilot固件首飞
210穿越机机架,烧录Betaflight固件首飞
穿越机外场花飞,作死视频
1)PCB设计
设计软件采用国民电路板设计神器-立创EDA专业版
2)手搓实物
阻容件0402、主控芯片抛弃BGA封装,采用LQFP封装,便于手搓!
3)测试机架
本飞控打算适配2套固件:
Ardupilot固件,采用F450轴距的练习机机架。
翻出了我入门用的老古董F450机架,又从一个朋友那里薅一套航电设备。
Betaflight固件,采用210mm的穿越机机架
1、前言
不知不觉从事无人机行业已10余年,注册CSDN也已经12年了,也从CSDN论坛学到了很多东西,是时候做点内容输出,帮助更多想了解无人机的朋友了。首先就从手搓一个开源飞控的做起吧!本人的无人机从业经验一直以较大型的行业机为主(参与了多个旋翼、油机、垂起、直升机等等),个人其实还没怎么认真玩过穿越机。因为在2014、2015年的时候穿越机被定义为烧钱娱乐的项目,今年来穿越机在军用上取得的成就大家有目共睹,因此也借着这么个开源的机会,好好了解一下穿越机的各项技术及产业链。
2、计划目标
2.1 硬件目标
1)参考市面上穿越机的飞控,设计一款飞控硬件,该有的接口都坐上!
2)PCB板层降低到4层,节省打板费用。(6层板大概200多大洋,4层板打样可在40大洋以内)
3)主控芯片要干到STM32H743,并且要用LQFP的封装,方便手搓。
2.2 固件目标
1)支持烧录Ardupilot(APM)固件,这个飞控固件的功能最为强大,可实现定高定点、航线任务飞行、自主返航以及SLAM开发等等。大家可以看到最近二毛袭击大毛的轰炸机用的就是这个APM的飞控固件。
而且另外一个技术小伙伴也在这个固件上开发了很多年,本人也用APM的固件做过很多个项目,稳定性其实已非常可以!本人用了这么多年APM固件,飞了有几千个架次,没有因为固件问题炸过机!
2)支持烧录betaflight(BF)固件,这个飞控主打的就是穿越机暴力高速飞行,穿越机在军事领域以及竞速领域,也有非常广泛的用途,因此飞控也要兼容BF固件,后续也可在BF固件上加装小模块!
2.3 教学目标
1)撰写详细的保姆级教程就为了让小白学会,宗旨是要让大家能够从原理图、到焊接、到修改官方源码的特定硬件配置文件,编译、最后将自己编译的固件烧录在自己做的飞控硬件上。
2)如果有小伙伴对源码感兴趣,后续在结合大家的技术水平,再出一期代码教程!
2.4 后续规划目标
后续还将基于这个飞控固件增加外设模块、比如AI追踪导引头、视觉辅助降落、SLAM自主导航、避障感知等等。想做的开源项目太多,时间有限及精力有限,先稳打稳扎,一步一个脚印做好,避免虎头蛇尾,开局就烂尾就不好了!
2.5 开源目标
代码调通并稳定飞行时间达到一定时间/架次后,确保飞机的硬件以及固件,没有严重的缺陷问题;再开源所以设计资料,包含硬件图纸、原理图、源代码、固件等。
3、三大开源飞控项目(固件)
目前在世界上比较著名的行业级(干活飞航线任务的)飞控项目主要是Ardupilot(后面简称APM)和PX4,穿越机的飞控项目则是Betaflight(后面简称BF),还有INAV据说也可上航线用来做FPV固定翼远航。只要把功能最全的APM/PX4的硬件及固件吃透,那么BF和INAV的软硬件设计也是手到擒来!
3.1 Arudpilot项目
官网链接:ArduPilot - Versatile, Trusted, Open
Ardupilot起源于2007年,最初为APM(ArduPilot Mega)硬件开发,后扩展至Pixhawk等平台。作为历史最悠久的开源飞控之一,它支持多旋翼、固定翼、无人车、船只、潜艇等载具类型,具备高度成熟的算法和丰富的功能。
- 提供GPS导航、自动航点任务、失控保护、低电量返航等安全机制。
- 支持多种飞行模式(如Manual、Auto、Guided),适用于水质监测、地形扫描等场景
- 兼容APM、Pixhawk、Cube等硬件平台,社区驱动持续优化适配
- 采用GPLv3协议,代码修改需开源回馈,社区活跃。【修改代码新增功能后,需要开源你的代码以回馈开源社区,否则可以起诉你~~】
- 代码维护了很多年(最早起源于2008年左右),由于维护时间久远,历史包袱比较沉重,并且这个代码也在疯狂的支持各种硬件板子以及外设模块,因此代码也日益冗余,代码风格比较混乱,采用线程调度器的方式进行代码编写,需要一定的C++代码功底才能看懂。
3.2 PX4项目
官网链接:Open Source Autopilot for Drones - PX4 Autopilot
PX4由苏黎世联邦理工学院(ETH)于2012年发起,专为Pixhawk硬件设计,强调模块化架构和科研友好性,与Ardupilot同属DroneCode基金会(后独立)
- 基于uORB消息中间件实现模块解耦,任务调度采用多线程设计,提升实时性。
- 支持Gazebo仿真和ROS/ROS2集成,便于算法验证与开发。
- BSD协议允许闭源修改,更适合商业项目,可以自由修改!
- 配套工具完善:QGroundControl地面站、MAVLink通信协议、MAVSDK开发套件
- 优点:由于PX4固件晚于APM固件出现,其历史包袱也比较小,采用了比较新的软件架构方式,新增外设及驱动的耦合性较小,代码分离的比较清晰,比较适合学术研究学习,被广泛应用在高校研究、集群控制、视觉导航等需快速迭代算法的场景。
- 缺点:由于晚于APM的出现,因此在很多功能上的稍弱于APM固件。
但近几年来,PX4与APM两家的固件也逐步朝着相互兼容相互学习的方向在发展,最典型的就是两套固件的地面站都开始相互兼容了!
3.3 Betaflight项目
官网链接:Betaflight - Pushing the Limits of UAV Performance | Betaflight
Betaflight专注于多旋翼无人机(尤其是穿越机)的高性能控制,以极致响应速度和低延迟著称,适用于竞技与航拍场景。
- 代码架构也比较简单,就是一个单片机的工程。(APM和PX4都有复杂的线程调度器或者操作系统,相对来说BF固件的软件工程就简单多了)
- 代码简单的坏处:就是功能非常的少,只有基础的返航功能,冗余功能也少(比如APM有丢星后的策略、智能返航、EKF降级处理等等)。
- 地面站也非常简单,无法进行航线飞行等等!(杀鸡焉用牛刀,专业的功能给专业飞控去做!)
- 最主要是用来做穿越机竞速、花飞,另外单板价格便宜也适合用来干仗~~
4、飞控硬件厂商调研
既然想要设计能够同时烧录BF固件与Ardupilot固件的飞控硬件,那么我们首先要对市面上已有的飞控硬件厂商进行调研,观摩一下他们都分别有哪些接口,都分别看看他们是怎么设计的?为此我花了点时间分别调研了以下飞控硬件厂商!
4.1、APM与PX4硬件调研
首先调研了一下国内Ardupilot和PX4的飞控硬件厂商,这类飞控通常外观上有个CNC的金属壳子包裹着,做工比较精致,外设接口丰富并且在传感器的冗余设计、供电冗余设计、接口防静电、对外信号引脚的3.3V与5V电平相互转化。最重要的是里面的IMU传感器有恒温电路、做了海绵减震处理!(恒温可以控制温漂,海绵可以降低振动,特别是一些大型的飞机/油机对震动及长时间飞行的IMU温漂还是非常敏感)
上述一系列优点组合下来,到我们消费者(特别是学生党群体)手上就体现得贵了!
企业盈利,赚了钱才能加大研发投入,持续出好产品,这点无可厚非!
此外,他们还是Ardupilot/PX4官方组的赞助厂商及合作开发厂商,所以官方地面站上会自动适配并推送他们的固件,并且每次版本更新也会适配这些用户群里比较大的飞控硬件,相当于这些官方赞助商只需做好硬件板卡,固件上老外官方开发组就会持续不断的进行更新!
参考资料:Stores — ArduPilot documentation
APM与PX4的
飞控硬件厂商
雷迅创新

Cubepilot
(厦门赫星)





4.2、Betaflight硬件调研
相对于Ardupilot和PX4的飞控硬件厂商,Betaflight固件的飞控硬件那就简单多了,因为是穿越机追求的是竞速,体积要小并且也不需要很多外设。其外观基本上就是一块PCB板,主打一个轻量化。
本人随便搜了一下,就发现穿越机的飞控有以下制造厂商,大部分穿越机的飞控厂商默认支持的固件就是Betaflight,有少部分穿越机飞控厂商的固件,厂商还额外支持Ardupilot固件(也是APM与PX4项目的赞助商)!
Axisflying酷飞
Speedy Bee快蜂
FlyingRC 飞盈科
GEPRC 格普
Holybro 合力博
Microair 微空
HAKRC 海科
Betaflight
DIATONE 大通
Betaflight
TMOTOR 南京三瑞
Betaflight
MATEK
Betaflight、Ardupilot
山鹰飞控
JHEMCU津航
HGLRC化骨龙
iFlight翼飞
RUSH 刀锋
Aocoda-RC
蔚川
HDZERO(迪威码)
重山
FOXEER
随便一搜,竟有如此多的穿越机硬件厂商,看来FPV运动在我国的航模界里还是非常受欢迎的!
5、穿越机飞控接口调研
PS:本人不是穿越机的狂热爱好者(准确说是穿越机飞行小白),年纪大了玩不得刺激的东西。所以本人这个帖子在搓飞控的同时,也是对穿越机一整套行业知识体系的学习。(用装逼一点的话来说,就是用输出来倒逼输入)
为了造价便宜,方便手搓,我打算先搓穿越机的飞控硬件。
【后续再搓一个行业机的飞控,原理都是类似的,只是在冗余设计方面的用料更足一点】
通过上述章节四的调研,大概知道有哪些厂商,这类飞控外观是怎么样的大概有什么接口。这样我们在画原理图的时候,才大概清楚要设计哪些对外引脚?
在设计硬件之前,首先要搞清楚,穿越机一般需要外接设备,因此我也专门去某宝找了几款穿越机飞控的接线定义图,抽离出共性的接口。
5.1穿越机飞控1-接口图
5.2穿越机飞控2-接口图
5.3穿越机飞控3-接口图
5.4穿越机飞控4-接口图
5.5 穿越机飞控接口总结:
与4合一电调板相连。
一般穿越机只有4个电机,但是为了兼容X8机架。所以要8路PWM
X8机体,载重能力强,挂大相机,用来拍大片。
6、飞控硬件设计框图
7、核心传感器选型
4V~36V输入,可调输出电源芯片
1路为5V输出。
1路为10V输出。
5V转3.3V电源芯片
1路3.3V给主控供电。
1路3.3V给传感器供电。
8、PCB布局
为了降低打样成本,方便批量手搓,PCB必须要降至4层板。
(立创虽然6层免费,但是一个月只能打样一次,而且近期规则改了,不能同样的文件反复打,每次总要修改点什么。)
10、对外接口及焊点
11、PCB实物
12、本章完结
不知不觉水了5000余个字,章节1就先写到这里把!
接下来,我会继续更新调试相关的教程!包含手搓飞控常见的问题:
1)如何编译APM固件以及BF固件?
2)传感器的引脚定义我是随便定义的,如何让官方源码适配我自己设计的板子?
3)IMU的方向是我随便摆放的,烧录固件后方向不对该怎么调整等等!
感谢大家的观看,如果喜欢的话,就高抬贵手点个赞或留个言吧!
你们的支持是我写下去的动力!
o(* ̄▽ ̄*)ブ