简介:这份资源面向无人机开发者、飞控硬件爱好者及高校相关专业学生,整理了Pixhawk、CUAV、FLOW、AIRSPEED等常见开源飞控硬件的PCB设计资料,可用于理解飞控板卡结构、复刻或二次开发。压缩包共143个文件,约36.42MB,以brd、schdoc、sch、pcbdoc等原理图与PCB设计文件为主,辅以pdf文档、prjpcb工程文件、schlib与pcblib元件库,以及少量md说明、xlsx表格和dat数据文件,覆盖从原理图到制板输出的完整链路。内容预览中可见PX4FMU多个版本及PX4IO、sapog参考硬件等板级设计,便于对照不同版本差异。目前已有1315人学习下载,适合希望深入飞控硬件底层、开展定制化设计的读者参考。
1. 开源飞控硬件PCB:从Pixhawk到空速计,一块板子上的取舍
很多人第一次接触开源飞控,是从一块成品飞控板开始的:Pixhawk、CUAV、FLOW、AIRSPEED这些名字在选型表里反复出现,但真正要自己画一块PCB或者改一版硬件时,才发现问题不在“能不能飞”,而在“信号干不干净、传感器放哪、电源怎么分”。开源飞控硬件PCB的核心,是把主控、IMU、气压计、磁罗盘、光流、空速这些子系统在一块板上协调好,同时让固件能正确识别。它解决的是从“买成品”到“按自己机型定制”之间的那段路。适合已经会刷固件、调参,但想进一步控制硬件形态的开发者,也适合做科研平台、行业机型需要特殊接口的人。下面按选型、原理图、布局、避坑、验证的顺序,把这块板子拆开讲。
2. 先定架构:主控、传感器和接口怎么选
2.1 主控与固件生态的绑定关系
开源飞控硬件不是孤立存在的,它必须和固件生态对齐。常见做法是围绕STM32系列主控来设计,因为PX4和ArduPilot的官方支持列表里,STM32F4、F7、H7系列占了绝大多数。选主控时第一个要看的不是主频,而是固件有没有现成的板级定义。如果选了一颗冷门MCU,即使性能更强,也要自己写启动文件、外设映射和传感器驱动,工作量会翻几倍。
我一般会先确定固件版本,再倒推主控。比如要跑PX4,就去查它当前支持的板级配置目录,看哪些MCU有完整的board config。然后看传感器组合:IMU是SPI还是I2C,气压计是I2C还是SPI,磁罗盘是内置还是外置。这些决定了引脚分配和总线拓扑。主控的Flash和RAM也要留余量,因为日志、参数、任务栈都会吃资源。通常F4系列够用,但如果要跑光流和视觉融合,F7或H7更稳妥。
电源架构同样关键。飞控板一般从电源模块取5V,再通过LDO或DC-DC转3.3V给MCU和传感器。要注意的是,IMU对电源纹波很敏感,最好单独用一颗低噪声LDO供电,不要和舵机、图传共用一路。数字地和模拟地要分开铺,最后单点连接。这些在原理图阶段就要定下来,后面改布局会很被动。
2.2 传感器选型:IMU、气压计、磁罗盘、光流、空速
IMU是飞控的心脏。常见方案是两颗IMU做冗余,一颗SPI接口的高频IMU用于姿态解算,另一颗I2C或SPI的作为备份。选型时要看量程和噪声密度,不是越贵越好。比如ICM-42688在振动环境下表现不错,但焊接和布局要求高;MPU-6000系列老但资料多。关键是固件里要有对应驱动,否则再好的传感器也白搭。
气压计用来测高度,常见的是BMP280、BMP388、MS5611。BMP388精度更高,但I2C地址和寄存器配置要仔细对。磁罗盘分内置和外置,内置的容易受板载电流干扰,外置的可以放到GPS模块里远离干扰源。如果做光流,一般用PMW3901这类传感器,通过SPI读取,安装时要和地面纹理配合,高度太低或太高都会失效。空速计则是固定翼的刚需,常见的是MS4525DO差分压力传感器,通过I2C输出。它的管路不能漏气,动压和静压接口不能接反,否则读数直接反了。
这些传感器的共同点是:都要在固件里有对应的驱动和参数配置。画板子之前,最好先把固件的传感器驱动列表过一遍,确认你要用的型号在支持范围内。如果不在,要么换型号,要么自己写驱动,后者对大多数团队来说不划算。
2.3 接口与连接器:CAN、I2C、SPI、UART的分配
接口分配是原理图阶段最费脑子的部分。CAN总线适合长距离、多节点,比如连接GPS、电调、电源模块。I2C适合低速传感器,但总线电容有限,挂太多设备会通信失败。SPI速度快,适合IMU和光流,但片选线要单独走。UART用来接数传、接收机、OSD等。
我一般会按功能分组:高速SPI给IMU和光流,I2C给气压计和空速计,CAN给外部模块,UART留给通信。每组接口的电源和地都要就近去耦,尤其是SPI的时钟线,走线要短且远离电源。连接器选型也要考虑振动环境,GH1.25、JST-SH这些带扣的比排针可靠。如果做行业机型,最好把调试串口和USB都引出来,方便现场排故。
提示:接口分配表要在原理图第一页就画出来,后面每次改线都回来对一遍,避免引脚冲突。
3. 原理图与PCB布局:把信号完整性和热设计做扎实
3.1 原理图分页与电源树设计
原理图不要画成一张大图,按功能分页:主控页、IMU页、电源页、接口页、光流/空速页。每页之间用网络标签连接,不要用长线直连。电源树要单独画一页,标清楚每一路电压的来源、电流上限和去耦电容。比如5V输入经过理想二极管和TVS,再分两路:一路给DC-DC转3.3V给MCU,一路给LDO转3.3V给IMU。每路都要有电流采样电阻或至少一个测试点,方便后面测功耗。
去耦电容的摆放原则是:每个电源引脚旁边放一个0.1uF,每颗芯片的电源入口放一个10uF。IMU的电源引脚最好再加一个1uF和0.01uF并联。这些电容的接地端要就近打孔到地平面,不要用长走线。原理图里还要标出所有测试点,比如SPI时钟、I2C数据、CAN差分对,后面调试时不用飞线。
3.2 IMU与气压计的布局隔离
IMU的布局直接决定振动噪声水平。常见做法是把IMU放在板子中心附近,远离螺丝孔和边缘,因为边缘的振动放大更明显。IMU下方不要走任何高速信号线,尤其是SPI时钟和电源开关线。如果板子有内层,IMU正下方铺完整地平面,不要分割。气压计要远离IMU和发热元件,因为温度变化会影响读数。通常放在板子边缘,开孔让空气流通,但又要避免阳光直射和螺旋桨气流直吹。
磁罗盘如果内置,要放在远离大电流走线的地方,比如板子另一侧。更稳妥的做法是外置,通过I2C接口接到GPS模块上。光流传感器一般装在板子底部,镜头朝下,周围不要有遮挡。空速计的管路接口要朝外,方便接硅胶管。所有这些传感器的安装方向要和固件里的旋转参数对应,画板子时就要确定坐标系,不然后面调参很痛苦。
3.3 差分对、时钟线与地平面处理
CAN和USB是差分对,走线要等长、紧耦合,阻抗控制在120欧姆(CAN)和90欧姆(USB)。SPI时钟线要短,最好包地,不要跨分割。I2C的SCL和SDA要等长,上拉电阻放在主控端,不要每个设备都放。地平面尽量完整,不要被信号线割裂。如果板子有多个地,比如数字地和模拟地,用磁珠或0欧电阻单点连接,位置选在电源入口附近。
过孔不要打在焊盘上,除非做盘中孔。IMU和气压计的焊盘周围要留够空间,避免焊接时连锡。如果板子要过回流焊,传感器要选MSL等级合适的,否则烘烤和存储都要额外注意。这些细节在打样前就要和工厂确认,不然一批板子可能因为焊接不良报废。
注意:布局完成后,用EDA工具的3D视图检查一遍连接器方向和传感器开孔,避免装壳时发现干涉。
4. 避坑与排查:飞控硬件最常见的五个翻车点
4.1 现象:IMU数据跳动大,姿态发散
原因:IMU电源纹波大,或者布局靠近振动源。常见的是IMU和DC-DC电感放在同一面,电感漏磁耦合到IMU。解决:把IMU移到板子另一面,或者换低噪声LDO单独供电。同时检查固件里的滤波参数,适当降低陀螺仪带宽。如果振动来自机架,加减震棉或改安装方式。
4.2 现象:气压计读数随温度漂移
原因:气压计靠近MCU或电源芯片,热量传导导致温度变化。解决:把气压计移到板子边缘,开槽隔热,或者在固件里做温度补偿。如果用的是BMP388,可以开启其内置的温度补偿功能,但前提是传感器本身温度稳定。
4.3 现象:I2C总线挂死,传感器时有时无
原因:总线电容过大,或者上拉电阻阻值不合适。常见的是挂了多个I2C设备,每个设备都有上拉,导致等效阻值太小。解决:只保留主控端一对上拉电阻,通常4.7k欧姆。如果总线长,降到2.2k欧姆试试。另外检查I2C走线是否靠近SPI时钟线,串扰也会导致通信失败。
4.4 现象:空速计读数反了或不变
原因:动压和静压接口接反,或者管路漏气。解决:交换两根硅胶管,或者检查传感器安装方向。如果读数不变,用嘴轻轻吹动压管,看数值有没有变化。没有变化说明传感器没工作或驱动没加载。检查I2C地址和固件参数,确认空速计类型选对了。
4.5 现象:CAN设备不通信,总线报错
原因:终端电阻没装,或者差分对极性接反。解决:在总线两端各装一个120欧姆电阻,中间节点不装。用万用表测CANH和CANL之间的阻值,应该是60欧姆左右。如果极性反了,交换两根线。另外检查CAN收发器的供电和使能引脚,有些收发器需要外部唤醒。
5. 打样与验证:从裸板到能飞的最小系统
5.1 打样前的检查清单
打样前把原理图和PCB过一遍:电源短路检查、网络标签一致性、封装匹配、丝印方向、测试点可访问性。特别是连接器的封装,一定要和实物对一遍,GH1.25和JST-SH长得像但引脚间距不同。传感器封装也要确认,比如ICM-42688是LGA-14,焊盘尺寸和钢网开孔要按数据手册来。如果板子有内层,检查平面分割和过孔连接,避免出现孤岛。
5.2 上电顺序与最小系统验证
裸板回来先不要焊传感器,只焊电源和主控,上电测各路电压。5V输入正常后,测3.3V输出,再用示波器看纹波。然后焊USB接口,连电脑看能不能识别DFU或串口。能识别后,刷入固件,看启动日志。如果卡在某个传感器初始化,先跳过,把主控和通信调通。接着焊IMU,用固件自带的传感器测试命令看数据。最后焊气压计、磁罗盘、空速计,逐个验证。
5.3 用日志和地面站定位硬件问题
固件日志是排查硬件问题的黑匣子。PX4和ArduPilot都会记录传感器原始数据、电源电压、CPU负载。如果IMU数据有尖峰,看日志里的振动频谱。如果气压计跳变,看温度曲线。如果CAN丢包,看总线错误计数。地面站里可以实时看传感器状态,但日志更可靠,因为能回放。我一般会飞一个悬停,然后下载日志,用分析工具看振动和磁干扰。如果磁罗盘受干扰,调整罗盘安装位置或做罗盘校准。
提示:每次改硬件后,重新做一次传感器校准和罗盘校准,不要沿用旧参数。
6. 进阶技巧:把光流和空速计真正用起来
光流和空速计是很多开源飞控板上的选配,但真正用好的人不多。光流的难点在于安装高度和地面纹理。PMW3901的有效高度通常在0.5米到3米之间,太低会失焦,太高纹理看不清。安装时要保证镜头垂直向下,周围不要有反光或遮挡。固件里要设置正确的焦距和安装偏移,否则位置估计会漂。如果室内飞行,地面最好有纹理,纯色地板会让光流失效。室外飞行时,光流受光照影响大,正午和傍晚表现差异明显,最好配合气压计和GPS做融合。
空速计在固定翼上更关键。MS4525DO的管路要避免弯折和漏气,动压管朝前,静压管朝侧或朝后。固件里要设置空速计类型、比例系数和偏移量。校准方法是在无风环境下,用嘴轻轻吹动压管,看读数是否线性变化。如果读数跳变,检查管路是否漏气或传感器是否损坏。飞行时,空速计数据要和GPS地速对比,如果差异大,说明安装位置有气流干扰,比如螺旋桨滑流。这时要调整安装位置,或者做空速校准。
我自己的习惯是:每次装新机,先不装桨,用手推着飞机在地面滑跑,看空速计和光流的数据是否合理。然后再装桨低空试飞,逐步放开高度。这样能把硬件问题在地面暴露出来,避免空中翻车。希望帮到你。
本文还有配套的精品资源,点击获取