3. 硬件选型与飞控板配置:Pixhawk系列对比、Cube系列选型、自定义硬件移植、Bootloader烧录
硬件选型这事儿,说简单也简单,说坑也真坑。我见过太多人拿着淘宝上几十块的“Pixhawk兼容板”来问我为什么飞不起来。嗯,咱们今天就把这事儿聊透。
3.1 Pixhawk系列:别被名字骗了
Pixhawk这个名字,现在已经被用滥了。真正的原版只有几个型号,其他的都是“兼容版”或者“魔改版”。
| 型号 | 处理器 | IMU | RAM | 适合场景 |
|---|---|---|---|---|
| Pixhawk 1 (原版) | STM32F427 | MPU6000 + LSM303D | 256KB | 入门学习、小型无人机 |
| Pixhawk 2.1 (Cube Black) | STM32F427 | ICM-20608 + MPU9250 | 256KB | 工业应用、科研 |
| Pixhawk 4 | STM32F765 | ICM-20689 + BMI055 | 512KB | 高性能、多传感器融合 |
| Pixhawk 5X | STM32F765 | ICM-20649 + BMI088 | 2MB | 高端科研、自动驾驶 |
避坑指南: 我曾经遇到过客户用“Pixhawk Lite”飞六轴,结果空中掉程序。拆开一看,IMU是翻新件,陀螺仪温漂大到离谱。记住:飞控板上的IMU,一定要买原装正品,尤其是MPU6000和ICM系列,假货太多。
3.2 Cube系列:模块化的正确打开方式
Cube系列,说白了就是Pixhawk的“工业升级版”。我个人习惯用Cube Orange做主力飞控,原因很简单:它把IMU和处理器做成了独立模块,坏了换一个就行,不用整板报废。
- Cube Black:经典款,稳定可靠,适合大多数场景
- Cube Orange:双IMU冗余,带RTK接口,适合高精度应用
- Cube Yellow:性价比之选,适合教育和小型项目
- Cube Purple:最新款,带AI协处理器,适合复杂任务
我的经验: 选Cube系列时,注意看“载板”版本。v1.0的载板没有CAN接口,v2.0才有。如果你要用DroneCAN外设,千万别买错。
3.3 自定义硬件移植:从零开始
有时候,市面上的飞控板满足不了你的需求。比如你要做超小型无人机,或者要集成特殊传感器。这时候就得自己画板子,然后移植ArduPilot。
移植的核心步骤,其实就这几步:
- 选主控芯片:STM32F4/F7/H7系列都行,但要注意RAM和Flash够不够
- 配IMU:SPI接口的IMU(如ICM-20602)比I2C的稳定得多
- 写BoardConfig:定义引脚、外设、时钟
- 编译测试:用
make <board_name>编译,然后烧录
// 一个简单的BoardConfig示例
// 文件路径:libraries/AP_HAL_ChibiOS/hwdef/MyCustomBoard/hwdef.dat
# MCU
MCU STM32F427xx
# 晶振
OSCILLATOR_HSE 8000
# IMU
SPIDEV imu1 SPI1 DEVID1 MPU6000_CS 0 1 1 0
SPIDEV imu2 SPI2 DEVID2 ICM-20602_CS 0 1 1 0
# 串口
UART1 USART1 PA9 PA10
UART2 USART2 PA2 PA3
# LED
GPIO(LED_BOOTLOADER, PA0, OUTPUT, HIGH)
关键点: 移植时最容易出问题的是“时钟配置”。我见过有人把HSE配成12MHz,结果系统时钟跑飞了。建议直接用CubeMX生成基础配置,再手动调整。
3.4 Bootloader烧录:最后一道防线
Bootloader,说白了就是飞控板的“开机引导程序”。没有它,你连固件都刷不进去。ArduPilot官方推荐用dfu-util或者OpenOCD烧录。
烧录步骤其实不复杂:
- 进入DFU模式:按住Boot按钮,再上电
- 烧录Bootloader:
dfu-util -a 0 -s 0x08000000:leave -D bl.bin - 验证:重新上电,看LED是否正常闪烁
我曾经踩过的坑: 有一次烧录Bootloader时,忘记擦除整个Flash,结果旧数据和新Bootloader冲突,飞控板变砖。后来用ST-Link强制擦除才救回来。记住:烧录前一定要
dfu-util -a 0 -s 0x08000000:mass-erase:force -D bl.bin。
3.5 知识体系总览
下面这张图,把本章的核心逻辑串起来了。你想想看,从选型到移植,再到烧录,每一步都有坑。
3.6 实战建议
最后,给你几个实在的建议:
- 新手别碰自定义硬件:先买一块Cube Orange或者Pixhawk 4,把基础跑通再说
- Bootloader一定要备份:烧录前,先读出来存一份。万一变砖,还能救
- IMU选型看温漂:ICM-20602的温漂比MPU6000小,但价格贵一倍。看预算来
- 载板上的接口:CAN、UART、I2C,能多留就多留。后期加外设时你就知道了
我的习惯: 每次拿到新飞控板,第一件事就是烧录最新版Bootloader,然后跑一遍
hwtest。这样能提前发现硬件问题,而不是等到上天了才炸。