其他分享
首页 > 其他分享> > 测试双频GNSS定位导航模块

测试双频GNSS定位导航模块

作者:互联网

简 介: 初步测试了一款国内GNSS导航模块的性能。通过指令配置使得GPS可以输出10Hz的数据。并对接收到的数据进行了初步的统计分析。

关键词 GNSSGPS精度

GNSS定位GPS 目 录
Contents
基本特性 输出数据格式 测试GNSS 测试方法 配置GPS 测试结果 测试总结

 

§01 GNSS定位GPS


  边有来自于 TB LQ的双频GNSS定位GPS 模块。现在(2022-02-09)准备对其进行测试。

1.1 基本特性

1.1.1 工作电压和外部结构

▲ 图1.1.1 GPS连接关系

▲ 图1.1.1 GPS连接关系

1.1.2 模块组成

▲ 图1.1.2 GPS的组成

▲ 图1.1.2 GPS的组成

1.1.3 模块特性

▲ 图1.1.3 模块特性

▲ 图1.1.3 模块特性

1.2 输出数据格式

▲ 图1.2.1 数据组成

▲ 图1.2.1 数据组成

▲ 图1.2.2 数据的开始

▲ 图1.2.2 数据的开始

 

§02 试GNSS


2.1 测试方法

  利用ESP32-S模块转接板设计与实现测量GPS的输出数据。

▲ 图2.1.1  利用ESP32测试GPS

▲ 图2.1.1 利用ESP32测试GPS

2.1.1 测试电路板

▲ 图2.1.2  ESP32-S转接板的定义接口

▲ 图2.1.2 ESP32-S转接板的定义接口

2.1.2 使用示波器观察GPS的TX

▲ 图2.1.3 观察GPS的TX波形

▲ 图2.1.3 观察GPS的TX波形

2.1.3 问题

  将GPSDETX连接到ESP32的RX端口,ESP32退出了运行过程。

2.1.4 更换接收模式

  利用原来应用于开发MEGA单片机的下载接口模块,来接收GPS发送的字符。

▲ 图2.1.4 利用MEGA328下载模块

▲ 图2.1.4 利用MEGA328下载模块

(1)管脚定义

  下面是对应的MEGA32的接口定义,可以看到上面下载UART模块的功能定义:

UART下载管脚定义:
Pin1:+5V
Pin2:RXD,注:与单片机的TXD的交叉连接。
Pin3:TXD
Pin4:DTS
PIn5:GND

▲ 图2.1.5 单片机接口定义

▲ 图2.1.5 单片机接口定义

(2)接收结果

  打开PC中的COM1,可以接收到从GPS的发送的信息。

▲ 图2.1.6  接收到的数据文本

▲ 图2.1.6 接收到的数据文本

2.2 配置GPS

  由于需要发送十六进制的配置命令,通过MEGA8下载程序界面进行通信。

▲ 图2.2.1 MEGA328下载程序界面

▲ 图2.2.1 MEGA328下载程序界面

2.2.1 配置命令

(1)GPS常用命令

▲ 图2.2.2 GPS 常用命令

▲ 图2.2.2 GPS 常用命令

  上面的关闭命令顺序可以交换顺序。后面的保存设置一定在断电重启之前执行完毕。

2.2.2 设置后的结果

  执行完毕之后,模块断电重启之后便可以接收到来自于GPS模块的每秒10个数据。

▲ 图2.2.3  设置后可以获得10Hz的数据

▲ 图2.2.3 设置后可以获得10Hz的数据

2.3 测试结果

  将GPS摆放在靠近办公室的窗口,此时GPS便可以接收到外部卫星信号,输出对应的接收数据。

2.3.1 秒脉冲信号

  一旦GPS接收到信号之后,在模块的第五管脚便输出秒脉冲信号。
▲ 图2.3.1 GPS输出的秒信号

▲ 图2.3.1 GPS输出的秒信号

2.3.2 接收到的数据

▲ 图2.3.2  GPS 发送的文本数据

▲ 图2.3.2 GPS 发送的文本数据

'$GNRMC,111333.700,A,4000.03218,N,11619.64045,E,0.000,26.91,090222,,,A*73', '$GNRMC,111333.800,A,4000.03218,N,11619.64044,E,0.000,26.91,090222,,,A*7D', '$GNRMC,111333.900,A,4000.03218,N,11619.64044,E,0.000,26.91,090222,,,A*7C', '$GNRMC,111334.000,A,4000.03219,N,11619.64044,E,0.207,89.88,090222,,,A*7B', '$GNRMC,111334.100,A,4000.03219,N,11619.64045,E,0.245,117.91,090222,,,A*43', '$GNRMC,111334.200,A,4000.03218,N,11619.64045,E,0.000,117.91,090222,,,A*42', '$GNRMC,111334.300,A,4000.03219,N,11619.64045,E,0.245,287.68,090222,,,A*4D', '$GNRMC,111334.400,A,4000.03219,N,11619.64044,E,0.263,267.46,090222,,,A*4D', '$GNRMC,111334.500,A,4000.03219,N,11619.64043,E,0.210,4.74,090222,,,A*49', '$GNRMC,111334.600,A,4000.03219,N,11619.64043,E,0.301,175.56,090222,,,A*4C', '$GNRMC,111334.700,A,4000.03219,N,11619.64043,E,0.000,175.56,090222,,,A*4F', '$GNRMC,111334.800,A,4000.03219,N,11619.64042,E,0.288,89.54,090222,,,A*73', '$GNRMC,111334.900,A,4000.03219,N,11619.64043,E,0.000,89.54,090222,,,A*71', '$GNRMC,111335.000,A,4000.03219,N,11619.64043,E,0.000,89.54,090222,,,A*79', '$GNRMC,111335.100,A,4000.03219,N,11619.64043,E,0.000,89.54,090222,,,A*78', '$GNRMC,111335.200,A,4000.03219,N,11619.64043,E,0.270,91.36,090222,,,A*73', 

2.3.3 数值统计

  统计接收到的坐标的平均值和标准方差。

from headm import *
from tsmodule.tsstm32       import *

stm32cmd('COPY')
allstr = clipboard.paste().split('\n')

longdim = []
latidim = []

for s in allstr:
    if len(s) == 0: continue
    if s.find('$') < 0: continue

    ss = s.split(',')
    longdim.append(float(ss[3]))
    latidim.append(float(ss[5]))

printf(len(longdim))
printf(mean(longdim), std(longdim))
printf(mean(latidim), std(latidim))
752
4000.0308547074465
0.00011173876995471463
11619.632931156917
0.0008331489016910691
1695
4000.0332160707962
0.00029362351378679037
11619.635073044246
0.0006330272316004214
2100
4000.033260909523
0.00028110730268333305
11619.634760957144
0.0008624486668393132
3070
4000.0333911465805
0.00032372987293646023
11619.634157592835
0.001206152808081727

 

试总结 ※


  步测试了一款国内GNSS导航模块的性能。通过指令配置使得GPS可以输出10Hz的数据。并对接收到的数据进行了初步的统计分析。


■ 相关文献链接:

● 相关图表链接:

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST2.PY                     -- by Dr. ZhuoQing 2022-02-09
#
# Note:
#============================================================

from headm import *
from tsmodule.tsstm32       import *

stm32cmd('COPY')
allstr = clipboard.paste().split('\n')

#printf(allstr)

longdim = []
latidim = []

for s in allstr:
    if len(s) == 0: continue
    if s.find('$') < 0: continue

    ss = s.split(',')
#    printf(ss)
    longdim.append(float(ss[3]))
    latidim.append(float(ss[5]))
#    break


printf(len(longdim))
printf(mean(longdim), std(longdim))
printf(mean(latidim), std(latidim))



#------------------------------------------------------------
#        END OF FILE : TEST2.PY
#============================================================

标签:00,GNSS,GNRMC,定位导航,090222,模块,双频,2.1,GPS
来源: https://blog.csdn.net/zhuoqingjoking97298/article/details/122846940