前言
ardupilot和PX4作为开源飞控的两大巨头,他们的完整的生态,科学的架构设计,完整的功能,和强大的二次开发能力等吸引了很多玩家和科研人员的眼球。有很多有趣的研究和设计都在他们的基础上完成。当然优秀的固件离不开实际的硬件平台,虽然pixhawk的硬件设计也非常优秀,又或者一些专业厂商如CUAV,holybro,Hex,QIOTEK,Matek等基于pixhawk硬件标准设计的硬件也很棒且具有官方固件支持。但是善于折腾的玩家向来不愿意轻易满足,基于开源的标准和原理图,我们其实可以自己设计属于自己的板子来满足自己一些奇奇怪怪的要求。(当然这付出的精力和金钱觉得比直接买高的多的多!)基于两大固件的优秀移植设计,只要你选用的器件目前官方都支持,那么其实移植的工作量也还可以接受。想想或者自己专属的硬件和固件还是一件很酷的事情!好了,言归正传,开始介绍ardupilot的移植(PX4的还没研究,应该类似)
一、编写硬件描述文件
首先把自己的飞控硬件的各引脚的定义以及选取的晶振频率等做成简明的table(当然只要其实画板子的时候这些话不多就弄好了)
然后我们进入ardupilot\libraries\AP_HAL_ChibiOS\hwdef文件。如下图所示,这里存放了一大堆的硬件描述文件。市面上我们能买到的飞控的硬件描述文件都在这里了。所以如果我说就直接照着葫芦画瓢弄一个自己的硬件描述文件这部分就可以完事儿了。当然,这显然太坑了。也许会坑到以后我自己忘了回来翻看一下都忍不住骂出声,所以还是要大概介绍一下。

目前市面上的飞控基本都是FMUV5标准的,所以我们就看看V5系列的飞控,其他就不看了。那么打开V5系列的亲儿子pixhawk4。

显然最后两个文件呢,不是必要的。道理很简单,不可能用图片和md文本来指导生成我们的最终文件嘛。这两个打开文件打开就是描述飞控硬件定义的可读信息,我们也可以学着弄两个。

那么接下来是重点了:
-
defaults.parm:
这个文件定义了针对该电路板的默认参数设置。比如不使用串口流控制,电源电压检测的比例系数等。注意:只是硬件相关的默认设置参数,而不是飞控的飞行控制算法相关参数。所以该文件不是必须的,没有它,我们完全可以在地面站对相关硬件设置参数进行手动更改。举个栗子:

上面两个参数是defaults.parm里常定义的两个参数。实际上,我们完全可以连上飞控在地面站设置。

-
hwdef.dat:
这个

本文介绍了如何根据自己的硬件设计编写硬件描述文件,包括STM32配置、接口定义与IMU校准,详细讲述了BootLoader和飞控固件的编译与烧写过程。适合想要DIY飞控的开发者参考。

2459

被折叠的 条评论
为什么被折叠?



