2、硬件平台选型:支持双系统的飞控硬件
做双系统切换,第一步就是选对硬件。这活儿我干了快十年,踩过的坑比飞过的航线还多。说白了,不是随便拿块飞控板就能刷两个固件的。你得看硬件架构、看接口定义、看传感器型号。今天我就把这几年的经验掰开揉碎,跟你聊聊。
2.1 主流硬件平台概览
目前能稳定跑PX4和ArduPilot的硬件,主要就两个家族:Pixhawk系列和Cube系列。其他像Holybro的Pixhawk 6X、CUAV的V5+,其实都是基于Pixhawk标准做的变体。我个人习惯把Pixhawk系列叫“开源公版”,Cube系列叫“商业加固版”。
核心结论:Pixhawk 4及以上版本、Cube Orange/Black,是当前双系统切换最稳妥的选择。老版本Pixhawk 1(FMUv2)内存太小,刷双系统会很吃力。
2.2 Pixhawk系列:从FMUv2到FMUv6
Pixhawk的迭代史,其实就是飞控芯片的升级史。我最早接触的是Pixhawk 1(FMUv2),STM32F427主控,256KB RAM。那时候刷个ArduPilot还行,想跑PX4就得精打细算。后来到了Pixhawk 4(FMUv5),换了STM32F765,2MB Flash、512KB RAM,这才算真正能玩双系统。
| 型号 | 主控芯片 | Flash / RAM | 双系统支持 | 我的评价 |
|---|---|---|---|---|
| Pixhawk 1 (FMUv2) | STM32F427 | 2MB / 256KB | 勉强支持 | 太老了,别折腾 |
| Pixhawk 4 (FMUv5) | STM32F765 | 2MB / 512KB | 良好 | 性价比之选 |
| Pixhawk 6X (FMUv6) | STM32H753 | 2MB / 1MB | 优秀 | 性能过剩,未来5年够用 |
我的经验:如果你手头有Pixhawk 1,别急着扔。刷个ArduPilot当固定翼飞控还是可以的。但想玩双系统切换?我建议直接上Pixhawk 4起步。我在2020年用Pixhawk 4做过一次PX4到ArduPilot的切换测试,整个流程下来,Flash还剩30%的空间,很从容。
2.3 Cube系列:工业级的底气
Cube系列(以前叫Pixhawk 2.1)是ProfiCNC出的。这板子我最早是在测绘项目里用的。说实话,第一次拿到手,那个铝合金外壳就让我觉得——嗯,这玩意儿耐摔。
Cube系列最大的特点是模块化设计。载板(Carrier Board)和核心模块(Flight Controller Module)是分开的。想升级?换个核心模块就行,载板不用动。我有个客户,从Cube Black升级到Cube Orange,就花了5分钟。
| 型号 | 主控芯片 | 特色 | 双系统表现 |
|---|---|---|---|
| Cube Black | STM32F427 | 铝合金外壳、减震设计 | 稳定,但内存偏小 |
| Cube Orange | STM32H743 | 2MB Flash、1MB RAM | 双系统切换非常流畅 |
| Cube Yellow | STM32F765 | 性价比款 | 和Pixhawk 4相当 |
注意:Cube系列的核心模块和载板之间的连接器是专用的。我曾经遇到过客户买了Cube Orange核心模块,却配了个老款载板,结果接口不匹配。买之前一定要确认载板版本。
2.4 硬件接口对比:别让接口卡了脖子
双系统切换时,接口兼容性是个大问题。你想想看,PX4和ArduPilot对UART的分配逻辑不一样。PX4默认把TELEM1当主串口,ArduPilot却可能把SERIAL0当控制台。搞不好,你刷完固件,地面站连不上了。
我整理了一份接口对比表,你照着配就行:
| 接口功能 | Pixhawk 4 | Cube Orange | 双系统注意事项 |
|---|---|---|---|
| 主串口(控制台) | TELEM1 (UART1) | TELEM1 (UART1) | 两个固件默认一致,不用改 |
| GPS串口 | GPS1 (UART4) | GPS1 (UART4) | 注意波特率:PX4默认115200,ArduPilot默认38400 |
| I2C接口 | I2C1 / I2C2 | I2C1 / I2C2 | 完全兼容,放心用 |
| SBUS输入 | RC_IN | RC_IN | 两个固件都支持SBUS,无需额外配置 |
| 安全开关 | GPIO | GPIO | ArduPilot默认禁用安全开关,需要手动开启 |
避坑指南:我曾经在切换系统后,发现GPS没数据。查了半天,原来是波特率没改。PX4默认GPS波特率是115200,ArduPilot是38400。你刷完固件后,第一件事就是检查GPS波特率。别问我怎么知道的——那次我在地面站前坐了俩小时。
2.5 传感器兼容性分析
传感器是飞控的“眼睛”。双系统切换时,传感器驱动是个大坑。PX4和ArduPilot的传感器驱动框架完全不同。PX4用的是uORB消息机制,ArduPilot用的是AP_HAL硬件抽象层。同一个传感器,在两个系统里的表现可能天差地别。
我按传感器类型给你拆开说:
2.5.1 惯性测量单元(IMU)
IMU是飞控的核心。主流方案是ICM-20602(加速度计+陀螺仪)加BMI088或MPU9250。我个人推荐BMI088,温度稳定性好。PX4和ArduPilot对BMI088的支持都很成熟,切换时基本不用改配置。
2.5.2 磁力计
磁力计是个麻烦精。HMC5883L、IST8310、RM3100,这三个是主流。PX4对IST8310支持最好,ArduPilot对HMC5883L更友好。我建议你选RM3100,两个系统都支持得很好,而且抗干扰能力强。
2.5.3 气压计
MS5611是标配。这玩意儿皮实,两个系统都支持。不过要注意,有些山寨版MS5611的I2C地址不对。我遇到过一块板子,PX4下能读气压,刷了ArduPilot就报错。后来发现是地址线没拉对。
传感器选型黄金法则:选两个系统都原生支持的传感器。别用那些需要自己写驱动的冷门型号。双系统切换已经够复杂了,别在传感器上给自己加戏。
2.6 硬件选型决策树
说了这么多,你可能有点晕。我画了张图,帮你理清思路:
2.7 我的最终建议
如果你问我,现在入坑双系统切换,买什么硬件最合适?我会说:
- 新手入门:Pixhawk 4 + 标准GPS模块 + MS5611气压计。这套组合不到600元,社区资料多,遇到问题好查。
- 工业应用:Cube Orange + Here+ GPS + RM3100磁力计。稳定第一,别省那几百块钱。
- 科研/教学:Pixhawk 6X。性能冗余大,可以折腾各种高级功能。
最后提醒一句:不管你选哪个硬件,拿到板子后第一件事——去官网下载硬件原理图和引脚定义。我见过太多人,刷完固件发现某个接口不工作,结果是因为跳线帽没插对。硬件选型只是第一步,后面的路还长着呢。