双频定位怎么用?看这篇——合宙Air551G开发板入门使用及基础知识普及

描述

 

焊板子、撸代码、写文章——LuatOS社群工程师们热火朝天的2022虎年春节写照。无论何时何处,心里总燃动着灵魂之舞,没有什么能阻挡真正的热爱!

今天特别带来乔帮主乔工关于合宙Air551G双频定位开发板的试用分享,一篇详实易懂的用心之作,尤其适合新上手的朋友们。

 

 

 

1

 

Air551G开发板试用分享

 


 

 

一、开箱

合宙挺给力,节前就拿到了这块Air551G开发板,板子制作的不错,和我其他的板子对比起来,感觉高级不少。

左边是Air551G,右边是我另外其他厂家一个型号的。

开发板

 

二、连线

美中不足的是,它的连接线是5针1.25mm的传感器接口,拿到后,可能没有合适的线(年前活动未能同步发出,年后有配套接线)。有的同学,直接把接头口给取下来,直接焊线了。

我手头刚好有6针的接头,剪断一根,削了一针变5针,刚刚好用。

开发板

然后把剪断的部分,对接上标准的杜邦线,方便接在其他开发板上使用。当然,如果本身就有对应的1.25接口,那更好了。

初次使用,看了说明书,可以当一个普通的串口设备使用,那就先直接用USB2TTL连接,进行调试好了。等弄清楚了,再上开发板也不迟。

开发板

Air551G开发板有五个引脚,其中VCC使用3.3V或者5V电源均可,GND接地,PPS暂时不用,RX、TX接其他设备的对应的TX、RX即可。

开发板

 

三、串口连接使用

这个开发板,串口波特率默认情况下,选择115200即可,打开串口,就能看到信息Biu Biu Biu的发过来了。

通过Air551G的手册,我们可以知道,它是主动上报信息的。通电后,就会自动通过串口上报获取到的定位相关信息。

开发板

开发板

收不到定位信息如何解决?

 

 

 


 

初次使用,如果简单了解过这些信息的格式,可能会郁闷:怎么没有成功定位啊,定位到的经纬度信息,怎么都是0呢?

这是因为,一个单纯的GPS定位模块,需要在室外使用,越开阔的地方越好。而我们常用的手机上使用了基站、WIFi等辅助定位,在室内也通常可以定位,但是在地下车库或者隧道里面,或者信号不好的地方,辅助也不给力,也不能定位了。

那就把Air551放到窗外即可:

开发板

不一会儿,串口收到的信息,就发生了变化,数字部分,丰富多了。

开发板

 

 

串口收到的这些信息,就是导航卫星发送的电文信息,也就是NMEA协议报文。

通常情况下,会包含如下的报文:

开发板

定位模块都会主动获取卫星定位系统的报文信息,然后通过串口上报。

上面的报文信息,会分为几类:

1)定位信息:**GGA,通常使用;

2)当前卫星信息:**GSA,一般可以忽略,调试需要;

3)推荐定位信息:**RMC;

4)地面速度信息:**VTG;

5)可见卫星信息:**GSV,一般可以忽略,调试需要。

 

如果是通过单一的卫星导航系统定位,则上面的**为对应卫星导航系统的标识,如果是多系统定位的话,那么1-4的**会是GN,5则为各卫星导航系统的标识。

卫星导航系统通用标识

 

 

 


 

  • GN:全球导航卫星系统GNSS;

  • GP:美国全球定位系统GPS;

  • GL:俄罗斯全球轨道导航卫星系统格洛纳斯GLONAS;

  • BD:中国的北斗卫星导航系统BDS;

  • GA:欧盟伽利略卫星导航系统GALILEO,全球覆盖,问题较多;

  • IRN:印度区域卫星导航系统IRNSS,范围较小,印度本土及周边、印度洋区域;

  • QZ:日本准天顶卫星导航系统QZSS,是美國GPS的輔助系統,主要服务日本,亦覆盖东亚、澳洲等地。

 

Air551G支持的卫星定位导航系统,包括:GPS、BDS、GLONAS、GALILEO、IRNSS等。在北京地区,GPS、BDS、GLONAS、GALILEO都能搜到对应的卫星,IRNSS没有见到过。

在上述的报文信息中,我们可以看到GP、GL、GA、BD等GSV信息,对应的就是当前位置,可见的各卫星导航系统的卫星信息。其中,我们可以看到有BDGSC,5开头的BDGSC,5,1至BDGSC,5,5,这个就是一组北斗导航卫星,当前有5颗能为我们提供服务。

但是,其中还有BDGSV开头的信息,这是因为卫星导航系统有不同的频段,提供差异性的服务,也包括系统升级和增强对不同接收端系统的兼容。

通过Air551G提供的资料,我们了解到,支持的北斗导航,包括:BD B1I、BD B1C、BD B2A、BD B2B等。

 

报文信息的具体资料,可以查看合宙提供的资料:

《 2_GK9701输入输出格式文档V1.0.pdf 》中关于NMEA协议部分的详细说明。

 

四、经纬度信息到地图坐标转换

以上报文信息中的GGA部分信息:

$GNGGA,063508.000,??53.35241,N,??638.40280,E,1,13,1.15,36.02,M,-5.15,M,,*58

E/W之前的为经度信息,N/S之前的为维度信息,GPS拿到的经纬度信息,需要经过转换两次后,才能在百度地图或者其他地图上使用。

开发板

地图坐标转换示例

 

 

 


 

假设取到的原始坐标为:

lng0=11626.27158

lat0=3954.85016

 

第一次转换为WGS84坐标系通用格式:

GPS模块经纬度换算说明,参考网址:
http://www.gnss-module.com/news/47-cn.html

(Math.floor表示取整)

 

lng1_d=Math.floor(lng0/100) = 116

lng1_m= (lng0-lng1_d*100)/60 = 0.43786

lng1=lng1_d+lng1_m=116.43786

 

lat1_d=Math.floor(lat0/100) = 39

lat1_m= (lat0-lat1_d*100)/60 = 0.91417

lat1=lat1_d+lat1_m=39.91417

 

第二次转换为百度地图坐标系:

使用网页转换工具地图坐标系转换,参考网址:
https://tool.lu/coordinate/

通过上述转换工具,可以转换为各地图软件的坐标系;或者也可以在各地图开发者服务中申请对应的API接口。

使用上述网页进行转换时,记住我们要选择WGS84坐标系:

开发板

 

转换后的百度坐标地址为:

经度=116.45054049919501

维度=39.921605252645946

 

然后,我们去百度地图上,使用经纬度进行定位,看看是否准确:

 

开发板

 

该定位地址,就是我们原始的经纬度信息对应的实际百度地图位置。

 

 

 

 

五、NaviTrack基本使用

通过串口工具,能够正常收到Air551G的信息后,我们就可以使用NaviTrack工具来更有效的获取调试信息了。

先关闭串口工具,再打开NaviTrack,选择正确的串口和波特率,Connect后,界面如下:

开发板

注意:需要运行一段时间,且Air551G在室外,才能获得丰富的定位信息。

在以上界面中,各子窗口展示功能:

1)Navi CMD:用于给Air551G发送命令;

2)Track:表示每次输出经纬度坐标点在一个基准位置的散落情况;

3)Signal:表示各导航卫星的信号情况;

4)NAME info:对串口中的信息进行了整理输出,更便于查看分析;

5)Fix mode:修正模式;

6)Sky view:当前可见卫星一览。

 

如果Sky view中,没有显示到卫星,那么定位就不能进行,NAME info部分的经纬度信息,就会不显示或者显示为0,同时Singal部分也会没有信息。

 

六、指令发送:

在Navi CMD界面中,我们可以给Air551G发送指令。

重置设备指令示例

 

 

 


 

如果要重置设备,我们可以发送指令:

PGKC030,4,2

其中:030表示指令编号;4,2表示硬重启,也就是恢复到出厂模式。

 

开发板

在串口工具中,我们也可以发送该指令,但是其格式为完整格式:

 

$PGKC030,4,2*2A[CR][LF]

 

而Navi CMD会自动帮我们处理$和*后面的内容,并自动添加回车换行[CR][LF];*后面的2A,表示 $和*中间部分的BCC校验(异或校验)结果。

如果不了解如何进行BCC校验,可以通过网页进行计算。
BCC校验(异或校验)在线计算参考网址:

http://www.ip33.com/bcc.html

开发板

开发板

由此我们也可以知道,给Air551G发送指令,其格式为:

 

$PGKC指令编号,参数1,参数2,...,参数n*BCC校验码[CR][LF]

 

注意,其中的参数1~n,均为十六进制,BCC校验码,也为16进制。(10进制的10为16进制的A)。

 

 

开发板

我们还可以再分别尝试两条指令,用于查看只使用北斗导航和所有卫星导航的区别。

注意:在串口工具中,需要输入完整的指令;在Navi CMD中,只用输入$和*中间的部分即可。

只使用北斗导航示例

 

 

 


 

先试第一条,设置只使用北斗导航:

$PGKC121,0,8,0*39

开发板

执行该指令后,NaviTrack的NMEA info和Sky view界面会发生如下变化:

开发板

开发板

因为刚才执行的那一条指令,表示只使用L1的BD导航,所以现在只显示了北斗导航的卫星。

同样的,如果我们使用串口工具发送指令后,会看到如下返回:

开发板

可以看到,报文中,就只有BD的信息了。

注意:使用串口工具,一定要勾选尾部添加CRLF,否则指令无效。

 

 

使用所有卫星导航示例

 

 

 


 

我们在执行使用所有卫星导航指令后,上述界面中的卫星,又会变得多了起来。

$PGKC121,5,3F,3F*34

 

开发板

开发板

 

 

以上展示了基本的指令使用,在前面的《2_GK9701输入输出格式文档V1.0.pdf》中,有详细的指令说明,有需要可以仔细研读。

另外,出厂情况下,串口上报的信息会尽可能丰富,但是我们在实际使用中,如前面对报文简介所说的,很多只是调试使用,实际使用时不用。我们可以使用输出控制指令,设置需要输出哪些信息即可。

具体指令格式为:

开发板

实际上,9-21位的0,并不需要输入,我们只输入1-8位即可,1表示开启对应的输出,0表示关闭对应的输出。

 

GGA获取经纬度信息示例

 

 

 


 

在实际使用中,我们只需要通过GGA获取经纬度信息即可,那么发送的指令如下:

$PGKC242,0,0,0,1,0,0*2A

 

如果我们要把调试的信息都发出来,则使用如下的指令:

$PGKC242,1,1,1,1,1,1*2B

再次提醒:

在串口工具中,需要输入完整的指令;在Navi CMD中,只需要输入$和*之间的部分(不包含$和*)即可。

设置只输出GGA信息后,我们就可以使用其他开发板的串口来连接Air551G,通过串口读取即可。

 

到这里,我们了解了如何通过串口上报的报文,获取经纬度信息,以及通过发送对应的指令来控制Air551G的运行模式了。

后续通过合宙的其他LuatOS开发板,或者MicroPython类的开发板,都能非常方便的获取定位信息。再结合屏幕,就能够进行实际的定位展示了。

今天的分享就先到这里了,希望对大家有帮助,一起多交流~

 

 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分