• 【EC200U】GPS定位


    EC系列东西很多,网上资料却少,不但少还很杂QAQ,不知道怎么搞~我主要整理的是EC200U和EC600N这两个。翻资料整理比较慢,所以请耐心等待doge。主要是用QuecPython来弄哈。


    在这里插入图片描述
    (我买的是QTME0009PU【EC200U核心板支持GPS定位】)的哈,IDE操作可以看看,没有GPS功能的不用看,看了也测不了doge

    GNSS模块

    模块功能:对L76KGPS型号进行数据获取,可以得到模块定位是否成功,定位的经纬度数据,UTC授时时间,获取GPS模块的定位模式,获取GPS模块定位使用卫星数量,获取GPS模块定位可见卫星数量,获取定位方位角,GPS模块对地速度,模块定位大地高等数据信息。目前,该模块提供的功能接口,所获取的数据都来源于从串口读出的原始GNSS数据包中的GNGGA、GNRMC和GPGSV语句。

    我们是使用的是经过二次开发的模块~ GNSS可自行了解。

    quecgnss - 内置GNSS

    说明:当前仅 EC200UCNAA/EC200UCNLA/EC200UEUAA 型号支持该功能。

    有简单的为啥不用doge

    GNSS 功能初始化

    import quecgnss
    
    quecgnss.init()
    '''
    功能
    
    	模组内置GNSS模块功能的初始化。
    
    参数
    
    	无
    
    返回值
    
    	成功返回整形0,失败返回整形-1。
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    GNSS 工作状态获取

    quecgnss.get_state()
    
    
    '''
    功能
    
    	获取GNSS模块当前工作状态
    
    参数
    
    	无
    
    返回值
    	0	GNSS模块处于关闭状态
    	1	GNSS模块固件升级中
    	2	GNSS模块定位中,这种模式下即可开始读取GNSS定位数据,
    		定位数据是否有效需要用户获取到定位数据后,
    		解析对应语句来判断,
    		比如判断GNRMC语句的status是 A 还是 V,
    		A 表示定位有效,V 表示定位无效。
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    GNSS开关

    可以不用

    quecgnss.gnssEnable(opt)
    '''
    功能
    
    	开启或者关闭GNSS模块。如果是上电后第一次使用内置GNSS功能,
    	一般不需要调用该接口来开启GNSS功能,直接调用init()接口即可,init() 
    	接口在初始化时会自动开启GNSS功能。
    
    参数
    		opt 
    			0 - 关闭GNSS功能
    			1 - 开启GNSS功能
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    GNSS定位数据获取

    quecgnss.read(size)
    
    '''
    功能
    
    	读取GNSS定位数据。
    
    参数
    	size	指定读取数据的大小,单位字节。
    返回值
    
    	成功返回一个元组,失败返回整形-1。元组形式如下:
    
    	(size, data)
    
    	size - 实际读取数据的大小
    
    	data - GNSS定位数据
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    实测案例

    GPS定位(简单的定位,看看能不能收到数据)串口中运行哈。

    >>> import quecgnss          #调用quecgnss模块
    >>> quecgnss.init()          # 初始化
    0                            # 返回0  成功初始化了
    >>> data=quecgnss.read(4096) #读取数据
    >>> print(data[1].decode())  # 只打印data(GNSS)定位数据
    
    • 1
    • 2
    • 3
    • 4
    • 5

    出现下面的数据就表示获取失败。此时需要排查一下,你的GPS天线位值如何。放到屋里GPS信号弱就会这样。
    在这里插入图片描述

    把GPS天线放到外面在测。出现如下数据,有N和E了,我们随便提取一组查看信息。

    在这里插入图片描述
    使用GPS Tool工具转换坐标
    将我们获取的NE输入到GPS Tool工具中,点击转换,自动就可以看到定位信息了
    在这里插入图片描述
    只是看一下效果哈,说明GPS 没问题就行。代码后面也会改进的哦

    拓展

    当前互联网地图的坐标系现状

    地球坐标 (WGS84)

    国际标准,从 GPS 设备中取出的数据的坐标系
    国际地图提供商使用的坐标系

    火星坐标 (GCJ-02)也叫国测局坐标系

    中国标准,从国行移动设备中定位获取的坐标数据使用这个坐标系
    国家规定: 国内出版的各种地图系统(包括电子形式),必须至少采用GCJ-02对地理位置进行首次加密。

    百度坐标 (BD-09)

    百度标准,百度 SDK,百度地图,Geocoding 使用

    coordtransform 坐标转换

    https://github.com/wandergis/coordTransform_py
    移远官方提供,有兴趣的大佬可以自己看。

  • 相关阅读:
    ConcurrentHashMap
    数组实现单链表 Java详细讲解
    spa入门之实现wecome
    【老板要我啥都会】前端升全栈系列 项目安全
    日常中msvcr120.dll丢失怎么解决?有效的5个解决方法分享
    19爬虫之常见反反扒措施
    HTML 基础
    泊车功能专题介绍 ———— AVP系统基础数据交互内容
    Ubuntu下安装配置和调优Docker,支持IPV6
    【信号去噪】基于卡尔曼滤波实现信号去噪附matlab代码
  • 原文地址:https://blog.csdn.net/weixin_45020839/article/details/127866352