第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信号在系统里怎么用:
注意: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。
嗯,天线安装也有讲究。记住三点:
- 天线要放在无人机顶部,远离碳纤维机架(碳纤维会屏蔽信号)
- 天线下方要有金属地平面,至少5cm x 5cm
- 馈线越短越好,超过30cm就要用低损耗线
好了,这一章的内容就到这。RTK模块选型和硬件接口是基础中的基础,但也是最容易出问题的地方。你把这些搞明白了,后面讲MAVLink融合的时候就能少踩很多坑。
本章核心要点:
- F9P是性价比之选,ZED-F9P适合需要USB调试的场景
- UART是主流接口,波特率建议230400
- PPS信号必须接,否则时间同步会出问题
- 天线选螺旋天线,增益30dB以上