arduino上读取北斗+GPS双模定位模块的数据

发布时间 2023-08-25 15:33:59作者: 旺tA菌
  1. 前言

本周学习内容主要是实现在arduino上读取北斗+GPS双模定位模块的数据

  1. 烧录程序及查看数据

1.打开示例程序,选择arduino uno,串口号填USB的COM端口

2.上传示例示例程序到uno板子上,点击右箭头就好。

注意,这个时候不要接定位模块的串口,就是不要接线,会导致烧录失败。因为程序中和模块连接的串口和下载的串口是同一个。如果你接了,那很不幸,会出现下面的报错,别问我怎么知道的()

3.打开串口调试助手,查看输出数据

这里我使用的是vofa+,任意一个串口调试助手都行。

然后,不出意外,就是要出意外了。这里显示的数据是无效数据。不过,这个问题应该是模块搜星失败,应该是我的位置还是里窗户太远啦。找舍友的电脑看看串口。

输出成功!

  1. 模块拓展知识

1.模块输出的原始数据:

我们可以看到,上面一长串的字母和数字,那就是模块输出的原始数据。

看不懂对吧,我也看不懂,然后就是借助伟大的互联网爸爸的时候了。

上面的数据是NMEA-0183协议的报文,大多数常见的GNSS接收机、GNSS数据处理软件、导航软件都遵守或者至少兼容这个协议。

根据NMEA-0183协议的规定,$XXGGA报文是关于时间、经纬度位置、解算状态、卫星颗数等相关信息。XX的不同代表模式的不同,比如$GPGGA表示单GPS模式,$BDGGA表示单北斗模式,$GNGGA表示多星联合定位。具体的含义我们对应查表就行了:

还有其他的报文都有对应的含义:

$XXGSA 显示的是当前的卫星信息:

$XXGSV 显示的是可见卫星的信息:

每条GSV语句最多可以显示4个可见卫星的信息,其他的卫星都会在下一条语句中输出显示。每种卫星系统都会单独显示,一般GPS有3条GSV报文,北斗有2条GSV报文。

$XXVTG包含地面速度信息:$XXGLL包含基本的地理定位信息:

$XXRMC包含位置、速度、时间等最简定位信息:

  1. 总结

本次使用arduino uno开发板接入北斗加GPS双模定位模块读取经纬度数据由于有之前的经验,过程比较顺利,另外了解了一些协议。

不过需要改进的是定位的精度,后续需要了解更多的知识来写优化算法来提高定位精度。

参考链接:http://t.csdn.cn/8ZLGi