第一章:Pixhawk概述

大家好,我是你们的嵌入式硬件讲师。今天咱们聊聊Pixhawk——这个在无人机圈子里几乎无人不知的开源飞控项目。

说实话,我第一次接触Pixhawk是在2014年。那时候市面上能用的飞控不多,要么是闭源的商业产品,要么是稳定性堪忧的DIY方案。Pixhawk的出现,可以说给整个行业带来了一场革命。

1.1 Pixhawk项目起源

Pixhawk的故事,得从两位关键人物说起:Lorenz Meier和David Sidler。这两位是苏黎世联邦理工学院(ETH Zurich)的研究人员。他们当时在做无人机相关的课题,发现市面上缺少一个真正开放、可靠、可扩展的飞控硬件平台。

嗯,这里要注意,他们说的「开放」不只是开源代码,而是硬件设计也完全开放。PCB文件、原理图、BOM表,全部公开。这在当时是非常大胆的做法。

2012年,他们启动了Pixhawk项目。目标很明确:

  • 做一个模块化的飞控硬件平台
  • 支持多种传感器组合
  • 具备强大的计算能力
  • 完全开源,任何人都可以复制和改进

我记得当时有个同行跟我说:「开源硬件?那不是把自己的饭碗砸了吗?」结果呢?Pixhawk不仅没砸饭碗,反而催生了整个无人机生态。你想想看,如果没有Pixhawk,现在的无人机行业会是什么样子?

核心观点: Pixhawk的成功,本质上是一种「开放生态」的成功。它证明了在硬件领域,开放比封闭更有生命力。

1.2 硬件版本演进:从FMUv1到FMUv6X

Pixhawk的硬件版本,用FMU(Flight Management Unit)来编号。从v1到v6X,我几乎每个版本都亲手玩过。来,咱们一个一个看。

FMUv1(2013年)

这是最初的版本。主控用的是STM32F405,Cortex-M4内核,168MHz主频。传感器组合是MPU6000(IMU)+ MS5611(气压计)+ HMC5883L(磁力计)。

说实话,以现在的眼光看,这个配置很寒酸。但在当时,这已经是顶配了。我在项目中用过v1,最大的问题是接口太少,扩展性差。你想挂个光流模块?对不起,没接口。

FMUv2(2014年)

v2是真正意义上的「经典款」。主控升级到STM32F427,主频还是168MHz,但Flash翻倍到2MB。传感器增加了第二颗IMU作为冗余。

这个版本我用的时间最长。说实话,v2的稳定性让我印象深刻。我曾经在一个农业植保项目里,用v2飞了整整一个季度,没出过任何硬件故障。

FMUv3(2015年)

v3其实是个小改款。主控换成STM32F427的更高规格版本,主要是修复了v2的一些小bug。嗯,说白了就是「v2的完善版」。

FMUv4(2016年)

v4是个大版本。主控升级到STM32F469,Cortex-M4内核,主频180MHz。最大的变化是传感器接口从SPI升级到更高速的接口,支持更多外设。

我个人习惯把v4叫做「性能版」。它的计算能力比v2强了将近30%。我在一个视觉导航项目里用过v4,跑光流算法完全没问题。

FMUv5(2018年)

v5开始,Pixhawk进入了「多核时代」。主控换成STM32F765,Cortex-M7内核,主频216MHz。传感器支持到了三颗IMU冗余。

这里有个避坑指南:我曾经在v5上踩过一个坑。它的供电电路设计比较敏感,如果电源纹波太大,会导致IMU数据异常。后来我加了一级LC滤波,问题就解决了。

FMUv6X(2020年至今)

v6X是目前最新的版本。主控是STM32H753,Cortex-M7内核,主频480MHz。传感器支持四颗IMU冗余,还集成了SD卡接口、双CAN总线、以太网接口。

说实话,v6X的配置已经接近工业级了。我在一个物流无人机项目里用过v6X,同时跑PX4固件、RTK定位、避障算法,CPU占用率才40%左右。

版本 主控芯片 主频 IMU数量 发布时间
FMUv1 STM32F405 168MHz 1 2013
FMUv2 STM32F427 168MHz 2 2014
FMUv3 STM32F427(高规格) 168MHz 2 2015
FMUv4 STM32F469 180MHz 2 2016
FMUv5 STM32F765 216MHz 3 2018
FMUv6X STM32H753 480MHz 4 2020

个人建议: 如果你是初学者,从v2或v3开始学起。这两个版本资料最多,社区最活跃。等把基础搞明白了,再上v6X。

1.3 核心设计理念

Pixhawk的设计理念,我总结为三点。这三点贯穿了所有版本的演进。

第一:模块化

Pixhawk把飞控拆成了几个独立模块:FMU(主控模块)、IO(输入输出模块)、电源模块、传感器模块。每个模块都可以单独升级或更换。

为什么会这样设计?你想想看,如果传感器坏了,你只需要换传感器模块,而不是整块板子。我在项目里遇到过IMU损坏的情况,换了个传感器模块,十分钟搞定。

第二:冗余设计

从v2开始,Pixhawk就引入了IMU冗余。到v6X,已经支持四颗IMU同时工作。如果一颗IMU数据异常,飞控会自动切换到另一颗。

我曾经在测试中故意拔掉一颗IMU的电源,飞控立刻切换到备用IMU,飞行姿态没有任何变化。嗯,这就是冗余设计的意义。

第三:开放生态

Pixhawk的硬件设计完全开源。你可以下载原理图、PCB文件,自己打板、焊接、调试。这意味着什么?意味着你可以根据自己的需求定制飞控。

我有个朋友是做农业无人机的,他基于Pixhawk v5的参考设计,自己改了一版,增加了两个RS485接口用来连接农业传感器。这就是开放生态的力量。

注意事项: 虽然Pixhawk开源,但自己打板时一定要注意PCB的阻抗控制和信号完整性。我曾经见过有人自己做的Pixhawk,飞起来IMU数据全是噪声,就是因为PCB layout不规范。

好了,第一章的内容就到这里。下一章咱们深入聊聊Pixhawk的硬件架构,从主控芯片到传感器接口,一个一个拆开来看。

记住一句话:理解Pixhawk的设计理念,比记住它的参数更重要。参数会过时,但理念不会。


公众号:蓝海资料掘金营,微信deep3321