第1章:RTK-GPS模块选型与硬件接口

各位同学,咱们直接进入正题。RTK定位这事儿,说白了就是让无人机知道「我在哪」——不是大概知道,而是精确到厘米级。我这些年调试过的飞控没有一百也有八十,踩坑最多的就是GPS模块选型和接口配置。今天咱们就把这块硬骨头啃下来。

1.1 主流RTK模块对比

市面上RTK模块看着多,其实真正能打的就那几款。我个人习惯把模块分成三类:消费级、工业级、专业级。咱们做无人机,重点关注工业级。

模块型号 定位精度 更新率 接口 典型价格 我的评价
u-blox F9P 2.5cm + 1ppm 20Hz UART/I2C/SPI ~¥800 性价比之王,我项目里用得最多
ZED-F9P 2.5cm + 1ppm 20Hz UART/I2C/SPI/USB ~¥1200 F9P的升级版,多了USB接口
RTK2GO 5cm + 2ppm 10Hz UART ~¥500 入门级,适合预算有限的情况

关键点:F9P和ZED-F9P的核心芯片其实一样,区别在于外围电路和固件。ZED-F9P多了USB接口,调试方便些。但如果你做的是嵌入式集成,F9P就够了——省下的钱买个好天线不香吗?

我在项目中遇到过一件事:有次用RTK2GO模块做测绘无人机,结果发现精度死活上不去。查了半天,原来是模块的固件版本太老,不支持北斗信号。嗯,这里要注意——买模块时一定要确认固件版本,最好买最新的。

1.2 UART/I2C/SPI接口配置

接口配置这块,说白了就是怎么让飞控和GPS模块「说话」。三种接口各有优劣,我给你们捋一捋。

UART接口(最常用)

为什么最常用?因为简单。飞控和模块之间就两根线:TX和RX。波特率一般设115200或230400。我个人习惯用230400,数据量大时不容易丢包。

// 典型的UART初始化代码(STM32平台)
void GPS_UART_Init(void) {
    // 配置USART2,波特率230400
    USART_InitTypeDef USART_InitStructure;
    USART_InitStructure.USART_BaudRate = 230400;
    USART_InitStructure.USART_WordLength = USART_WordLength_8b;
    USART_InitStructure.USART_StopBits = USART_StopBits_1;
    USART_InitStructure.USART_Parity = USART_Parity_No;
    USART_Init(USART2, &USART_InitStructure);
    USART_Cmd(USART2, ENABLE);
}

小技巧:UART的TX/RX线不要超过20cm,否则信号衰减会导致丢包。我曾经在机臂上走线太长,结果定位数据断断续续,排查了两天才发现是线的问题。

I2C接口(省引脚)

I2C只需要两根线:SDA和SCL。但有个坑——I2C速度慢,最高也就400kHz。如果你需要20Hz的定位更新率,I2C可能扛不住。我建议只在传感器数量多、引脚不够用的情况下用I2C。

SPI接口(高速但复杂)

SPI能跑到10MHz以上,适合大数据量传输。但需要4根线:MOSI、MISO、SCK、CS。而且SPI没有标准协议,每个模块的寄存器映射都不一样。嗯,这里要注意——除非你特别需要高速率,否则别碰SPI。

1.3 PPS秒脉冲信号

PPS(Pulse Per Second)是GPS模块输出的秒脉冲信号,精度能达到纳秒级。为什么需要它?因为飞控需要和GPS模块「对表」——PPS信号告诉飞控:现在正好是整秒。

我给你们画个图,看看PPS信号在系统里怎么用:

GPS模块 飞控 PPS秒脉冲 UART数据(NMEA/UBX) 时间同步流程 1. GPS模块在整秒时刻输出PPS脉冲 2. 飞控捕获PPS上升沿,记录本地时间戳 3. 飞控通过UART接收定位数据,与PPS时间戳对齐

注意:PPS信号是3.3V电平,如果你的飞控是5V系统,记得加电平转换。我曾经直接连5V引脚,结果烧了一个GPS模块——血的教训。

1.4 天线选型要点

天线这东西,很多人不重视。你想想看,GPS信号从两万公里外的卫星传下来,到地面时已经弱得跟蚊子叫似的。天线就是那个「扩音器」。

选天线我只看三个指标:

  • 增益:一般选25-35dB。太低信号弱,太高容易引入噪声。
  • 驻波比:小于1.5。大于2的天线直接扔了。
  • 有源/无源:无人机必须用有源天线(带LNA)。无源天线只适合固定站。

我给你们列个常见天线对比:

天线类型 增益 适用场景 价格
陶瓷贴片天线 25-28dB 小型无人机 ¥20-50
螺旋天线 30-35dB 测绘无人机 ¥80-150
测量型天线 35-40dB 基准站 ¥300+

个人建议:做RTK无人机,至少用螺旋天线。陶瓷贴片天线在低空还行,飞到100米以上多径效应就出来了。我有个项目用陶瓷天线,结果在楼群间定位误差飙到50cm——换了螺旋天线后直接降到3cm。

嗯,天线安装也有讲究。记住三点:

  1. 天线要放在无人机顶部,远离碳纤维机架(碳纤维会屏蔽信号)
  2. 天线下方要有金属地平面,至少5cm x 5cm
  3. 馈线越短越好,超过30cm就要用低损耗线

好了,这一章的内容就到这。RTK模块选型和硬件接口是基础中的基础,但也是最容易出问题的地方。你把这些搞明白了,后面讲MAVLink融合的时候就能少踩很多坑。

本章核心要点:

  • F9P是性价比之选,ZED-F9P适合需要USB调试的场景
  • UART是主流接口,波特率建议230400
  • PPS信号必须接,否则时间同步会出问题
  • 天线选螺旋天线,增益30dB以上

专注资料整理