QuecPython+GNSS:实现快速定位

news2025/7/15 11:09:22

概述

QuecPython 结合 GNSS(全球导航卫星系统)模块为物联网设备提供开箱即用的定位能力解决方案。该方案支持 GPS/北斗/GLONASS/Galileo 多系统联合定位,为物联网开发者提供从硬件接入到云端服务的全栈式定位解决方案。

优势特点

  • 多体系定位:支持 GNSS、LBS 和 Wi-Fi 定位功能
  • 极简开发:高度封装 API 接口,无需编写底层驱动

功能概述

主要介绍如何使用 QuecPython 开发板的内置 GNSS 功能实现定位信息的获取,典型的编程工作流程分为以下几个部分:

  • GNSS 初始化
  • 定位数据获取

GNSS 初始化

该方法用于实现模组内置 GNSS 模块功能的初始化。

quecgnss.init()

API 详情请参考 quecgnss.init。

定位数据获取

该方法用于读取 GNSS 定位数据。

quecgnss.read(size)

API 详情请参考 quecgnss.read。

参数设置

该方法用于设置 GNSS 参数,包括卫星系统、NMEA 语句类型、是否使用 AGNSS 和 APFLASH 等。

quecgnss.configSet(config_type, config_value)

API 详情请参考 quecgnss.configSet。

示例代码

import quecgnss

# 初始化
quecgnss.init()

# 读取数据
data = quecgnss.read(4096)

# 打印数据
print(data[1].decode())

运行结果

以下为运行结果示例,主要介绍一下定位数据的内容。

# 运行结果

167,169,170,,,,,,,,1.773,1.013,1.455*15
$GPGSV,2,1,8,3,23,303,34,16,32,219,28,22,74,98,26,25,16,43,25*77
$GPGSV,2,2,8,26,70,236,28,31,59,12,38,32,55,127,34,4,5,,21*49
$BDGSV,2,1,8,163,51,192,32,166,70,11,31,167,52,197,32,169,59,334,31*61
$BDGSV,2,2,8,170,40,205,31,161,5,,31,164,5,,27,165,5,,29*59
$GNRMC,022326.000,A,3149.324624,N,11706.921702,E,0.000,261.541,180222,,E,A*38
$GNGGA,022326.000,3149.324624,N,11706.921702,E,1,12,1.013,-8.580,M,0,M,,*47
$GNGLL,3149.324624,N,11706.921702,E,022326.000,A,A*44
$GNGSA,A,3,31,32,3,16,22,25,26,,,,,,1.773,1.013,1.455*1C
$GNGSA,A,3,163,166,167,169,170,,,,,,,,1.773,1.013,1.455*15
$GPGSV,2,1,8,3,23,303,34,16,32,219,27,22,74,98,26,25,16,43,25*78
$GPGSV,2,2,8,26,70,236,28,31,59,12,37,32,55,127,34,4,5,,20*47
$BDGSV,2,1,8,163,51,192,32,166,70,11,31,167,52,197,32,169,59,334,31*61
$BDGSV,2,2,8,170,40,205,31,161,5,,31,164,5,,27,165,5,,29*59
$GNRMC,022327.000,A,3149.324611,N,11706.921713,E,0.000,261.541,180222,,E,A*3F
$GNGGA,022327.000,3149.324611,N,11706.921713,E,1,12,1.013,-8.577,M,0,M,,*48
$GNGLL,3149.324611,N,11706.921713,E,022327.000,A,A*43
...... # 数据较多,省略
$GNGSA,A,3,31,32,3,16,22,25,26,,,,,,1.837,1.120,1.456*11
$GNGSA,A,3,163,166,167,169,170,,,,,,,,1.837,1.120,1.456*18
$GPGSV,2,1,8,3,23,302,27,16,32,220,26,22,73,101,27,25,16,43,27*45
$GPGSV,2,2,8,26,70,237,28,31,59,13,33,32,54,128,28,4,5,,24*44
$BDGSV,2,1,8,163,51,192,33,166,71,11,35,167,52,198,33,169,59,334,34*6E
$BDGSV,2,2,8,170,40,205,32,161,5,,33,164,5,,28,165,5,,30*5F
$GNRMC,022507.000,A,3149.324768,N,11706.922344,E,0.000,261.541,180222,,E,A*31
$GNGGA,022507.000,3149.324768,N,11706.922344,E,1,12,1.120,-8.794,M,0,M,,*48
$GNGLL,3149.324768,N,11706.922344,E,022507.000,A,A*4D
$GNGSA,A,3,31,32,3,16,22,25,26,,,,,,1.837,1.120,1.455*12
$GNGSA,A,3,163,166,167,169,170,,,,,,,,1.837,1.120,1.455*1B
$GPGSV,2,1,8,3,23,302,26,16,32,220,26,22,73,101,27,25,16,43,26*45
$GPGSV,2,2,8,26,70,237,28,31,59,13,32,32,54,128,28,4,5,,24*45
$BDGSV,2,1,8,163,51,192,24,166,71,11,35,167,52,198,33,169,59,334,34*68
$BDGSV,2,2,8,170,40,205,31,161,5,,33,164,5,,28,165,5,,30*5C
$GNRMC,022508.000,A,3149.324754,N,11706.922338,E,0.002,261.541,180222,,E,A*38
$GNGGA,022508.000,3149.324754,N,11706.922338,E,1,12,1.120,-8.750,M,0,M,,*4B
$GNGLL,3149.324754,N,11706.922338,E,022508.000,A,A*46
$GNGSA,A,3,31,3
# 数据介绍

NMEA端口数据分类:
                $GPGGA 卫星定位信息
                $GPGSA  卫星PRN数据
                $GPGSV  可视卫星信息
                $GPRMC 推荐定位信息
                $GPVTG  地面速度信息
                $GPDTM 大地坐标系信息
                $GPGNS  GNSS定位数据
NMEA语句解析:
GSV 语句的基本格式如下:

                $GPGSV,(1),(2),(3),(4),(5),(6),(7),...,(4),(5),(6),(7)*hh(CR)(LF)

                字段1:GSV 语句总数

                字段2:本句 GSV 的编号

                字段3:可见卫星的总数(00~12,前面的 0 也将被传输)

                字段4:卫星编号(01~32,前面的 0 也将被传输)

                字段5:卫星仰角(00~90 度,前面的 0 也将被传输)

                字段6:卫星方位角(000~359 度,前面的 0 也将被传输)

                字段7:信噪比(00~99dB,没有跟踪到卫星时为空)(就是常说的CN值)

GGA 语句的基本格式如下:

                $GPGGA,(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)*hh(CR)(LF)

                字段1:UTC 时间,hhmmss.sss,时分秒格式

                字段2:纬度ddmm.mmmm,度分格式(前导位数不足则补0)

                字段3:纬度N(北纬)或S(南纬)

                字段4:经度dddmm.mmmm,度分格式(前导位数不足则补0)

                字段5:经度E(东经)或W(西经)

                字段6:GPS状态,0=未定位,1=非差分定位,2=差分定位,3=无效PPS,6=正在估算

                字段7:正在使用的卫星数量(00 - 12)(前导位数不足则补0)

                字段8:HDOP水平精度因子(0.5 - 99.9)

                字段9:海拔高度(-9999.9 - 99999.9)

                字段10:海拔高度单位,米

                字段11:地球椭球面相对大地水准面的高度

                字段12:地球椭球面相对大地水准面的高度单位,米

GSA 语句的基本格式如下:

                $GPGSA,(1),(2),(3),(3),,,,,,,,,,(3),(4),(5),(6),(7)*hh(CR)(LF)

                字段1:定位模式,A=自动手动2D/3D,M=手动2D/3D

                字段2:定位类型,1=未定位,2=2D定位,3=3D定位

                字段3:PRN码(伪随机噪声码),第1信道正在使用的卫星PRN码编号(00)(前导位数不足则补0)(最多12个)

                字段4:PDOP综合位置精度因子(0.0 - 500.0)

                字段5:HDOP综合位置精度因子(0.0 - 500.0)

                字段6:VDOP水平精度因子(0.0 - 500.0)

                字段7:卫星系统ID

VTG语句的基本格式如下:

                $GPVTG,(1),(2),(3),(4),(5),(6),(7),(8),(9)*hh(CR)(LF)

                字段1:运动角度,000 - 359,(前导位数不足则补0)

                字段2:T=真北参照系

                字段3:运动角度,000 - 359,(前导位数不足则补0)

                字段4:M=磁北参照系

                字段5:水平运动速度(0.00)(前导位数不足则补0)

                字段6:N=节,Knots

                字段7:水平运动速度(0.00)(前导位数不足则补0)

                字段8:K=公里/时,km/h

                字段9:状态指示 E(航迹推算) A(非DGPS)

RMC语句的基本格式如下:

                $GPRMC,(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13)*hh(CR)(LF)

                字段1:UTC时间,hhmmss.sss格式

                字段2:状态,A=定位,V=未定位

                字段3:纬度ddmm.mmmm,度分格式(前导位数不足则补0)

                字段4:纬度N(北纬)或S(南纬)

                字段5:经度dddmm.mmmm,度分格式(前导位数不足则补0)

                字段6:经度E(东经)或W(西经)

                字段7:速度,节,Knots

                字段8:方位角,度

                字段9:UTC日期,DDMMYY格式

                字段10:磁偏角,(000 - 180)度(前导位数不足则补0)

                字段11:磁偏角方向,E=东W=西

                字段12:状态指示 E(航迹推算) A(非DGPS)

                字段13:导航状态,V 表示不提供导航状态

DTM语句的基本格式如下:

                 $GNDTM,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>*<9>(CR)(LF)

                <1>本地坐标系代码 W84,P90

                <2>坐标系子代码 空

                <3>纬度偏移量

                <4>纬度半球N(北半球)或S(南半球)

                <5>经度偏移量

                <6>经度半球E(东经)或W(西经)

                <7>高度偏移量

                <8>坐标系代码 W84

                <9>校验码

GNS语句的基本格式如下:

                $GNGNS,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>.<9>,<10>,<11>,<12>,<13>,*<14>(CR)(LF)

                <1> UTC时间: 定位时间 hhmmss.ss——000000.00~235959.99

                <2> 纬度: ddmm.mmmmm——0000.00000~8959.9999

                <3> 南纬北纬: 北纬N,S南纬

                <4>经度:dddmm.mmmmm——0000.00000~17959.99999

                <5>东经西经: 东经E,西经W

                <6>定位模式: N-未定位;A-已定位;D-普通差分定位;P-高精度定位;R-RTK定位固定解;F-RTK定位浮点解;E-估算值;M-注入位置;S-模拟输入

                <7>定位卫星:参与定位卫星,00-99

                <8>HDOP:水平精度因子,0.5-99.9

                <9>海拔:单位:米

                <10>大地水准面: 地球椭球面相对大地水准面的高度

                <11>差异数据时间:GN开头时为空

                <12>基准站ID:GN开头时为空

                <13>导航状态—— C=告警, S=安全, U=不安全, V=无效

                <14>校验和

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2343476.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在网上找的资料怎样打印出来?

在数字化时代&#xff0c;我们经常需要从互联网上获取各种资料&#xff0c;无论是学术论文、工作文档还是学习资料。然而&#xff0c;如何高效地将这些网上的资料打印出来&#xff0c;却是一个值得探讨的问题。本文将为您提供一个全面的解决方案&#xff0c;帮助您轻松完成网上…

算法训练营 Day1

努力追上那个曾经被寄予厚望的自己 —— 25.4.25 一、LeetCode_26 删除有序数组中的重复项 给你⼀个 升序排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现⼀次 &#xff0c;返回删除后数组的 新⻓度。元素的 相对顺序 应该保持 ⼀致 …

【linux】Chrony服务器

简介 1.1 时间的重要性 由于 IT 系统中&#xff0c;准确的计时非常重要&#xff0c;有很多种原因需要准确计时&#xff1a; 在网络传输中&#xff0c;数据包括和日志需要准确的时间戳 各种应用程序中&#xff0c;如订单信息&#xff0c;交易信息等 都需要准确的时间戳 1.2 时区…

技术视界 | 数据的金字塔:从仿真到现实,机器人学习的破局之道

在人工智能的世界里&#xff0c;有一个共识正逐渐达成——谁掌握了数据&#xff0c;谁就掌握了未来。 尤其是在机器人技术迅速演进的今天&#xff0c;“如何让机器人理解世界、学习操作”这一问题的根源&#xff0c;越来越回归到数据本身。正如一座金字塔般&#xff0c;不同层…

wsl联通外网

在C:\Users<你的用户名>下&#xff0c;新建.wslconfig文件添加如下配置&#xff08;具体配置参考官方文档&#xff09;&#xff1a; # Settings apply across all Linux distros running on WSL 2 [wsl2]# Limits VM memory to use no more than 4 GB, this can be set …

shadcn/radix-ui的tooltip高度定制arrow位置

尝试了半天&#xff0c;后来发现&#xff0c;不支持。。。。。就是不支持 那箭头只能居中 改side和align都没用&#xff0c;下面有在线实例 https://codesandbox.io/p/sandbox/radix-ui-slider-forked-zgn7hj?file%2Fsrc%2FApp.tsx%3A69%2C21 但是呢&#xff0c; 第一如果…

【专题刷题】二分查找(二)

&#x1f4dd;前言说明&#xff1a; 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录&#xff0c;按专题划分每题主要记录&#xff1a;&#xff08;1&#xff09;本人解法 本人屎山代码&#xff1b;&#xff08;2&#xff09;优质解法 优质代码&#xff1b;&#xff…

C++_数据结构_详解红黑树

✨✨ 欢迎大家来到小伞的大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C学习 小伞的主页&#xff1a;xiaosan_blog 制作不易&#xff01;点个赞吧&#xff01;&#xff01;谢谢喵&#xff01;&…

数据结构手撕--【二叉树】

目录 定义结构体&#xff1a; 初始化&#xff1a; 手动创建一个二叉树&#xff1a; 前序遍历&#xff1a; 中序遍历&#xff1a; 后序遍历 二叉树节点个数&#xff1a; 叶子节点个数&#xff1a; 二叉树第k层节点个数&#xff1a; 二叉树的高度&#xff1a; 查找值为x…

.NET MAUI 发展历程:从 Xamarin 到现代跨平台应用开发框架

文章目录 引言Xamarin 起源&#xff1a;MAUI 的前身Xamarin 的创立&#xff08;2011年&#xff09;Xamarin Studio 与 Visual Studio 集成&#xff08;2013年&#xff09;Xamarin.Forms 的诞生&#xff08;2014年&#xff09;微软收购Xamarin&#xff08;2016年&#xff09; .N…

多模态大语言模型arxiv论文略读(四十)

The Wolf Within: Covert Injection of Malice into MLLM Societies via an MLLM Operative ➡️ 论文标题&#xff1a;The Wolf Within: Covert Injection of Malice into MLLM Societies via an MLLM Operative ➡️ 论文作者&#xff1a;Zhen Tan, Chengshuai Zhao, Raha M…

【蓝桥杯选拔赛真题104】Scratch回文数 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析

目录 scratch回文数 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 四、程序编写 五、考点分析 六、推荐资料 1、scratch资料 2、python资料 3、C++资料 scratch回文数 第十五届青少年蓝桥杯scratch编…

OpenWrt 与 Docker:打造轻量级容器化应用平台技术分享

文章目录 前言一、OpenWrt 与 Docker 的集成前提1.1 硬件与内核要求1.2 软件依赖 二、Docker 环境部署与验证2.1 基础服务配置2.2 存储驱动适配 三、容器化应用部署实践3.1 资源限制策略3.2 Docker Compose 适配 四、性能优化与监控4.1 容器资源监控4.2 镜像精简策略 五、典型问…

C++初阶----模板初阶

引言 什么是模板 模板是泛型编程的基础&#xff0c;泛型编程是以一种独立于任何特定类型的方式编写代码。 模板也是创建泛型类或者函数的蓝图。 如&#xff1a;库容器&#xff0c;迭代器和算法&#xff0c;都是泛型编程的例子 1. 泛型编程 首先&#xff0c;我们应该了解什么是…

网络流量分析 | 流量分析基础

流量分析是网络安全领域的一个子领域&#xff0c;其主要重点是调查网络数据&#xff0c;以发现问题和异常情况。本文将涵盖网络安全和流量分析的基础知识。 网络安全与网络中的数据 网络安全的两个最关键概念就是&#xff1a;认证&#xff08;Authentication&#xff09;和授…

C语言文件操作完全手册:读写·定位·实战

1.什么是文件 1.1文件的概念 文件&#xff08;File&#xff09;是计算机中用于持久化存储数据的基本单位。它可以存储文本、图片、音频、程序代码等各种信息&#xff0c;并在程序运行结束后仍然保留数据。 1.2文件名 一个文件要有一个唯一的文件标识&#xff0c;以便用户识别…

多模态大语言模型arxiv论文略读(三十七)

A Spectrum Evaluation Benchmark for Medical Multi-Modal Large Language Models ➡️ 论文标题&#xff1a;A Spectrum Evaluation Benchmark for Medical Multi-Modal Large Language Models ➡️ 论文作者&#xff1a;Jie Liu, Wenxuan Wang, Yihang Su, Jingyuan Huan, …

SpringBoot 学习

什么是 SpringBoot SpringBoot 是基于 Spring 生态的开源框架&#xff0c;旨在简化 Spring 应用的初始化搭建和开发配置。它通过约定大于配置的理念&#xff0c;提供快速构建生产级应用的解决方案&#xff0c;显著降低开发者对 XML 配置和依赖管理的负担。 特点&#xff1a; …

VuePress 使用教程:从入门到精通

VuePress 使用教程&#xff1a;从入门到精通 VuePress 是一个以 Vue 驱动的静态网站生成器&#xff0c;它为技术文档和技术博客的编写提供了优雅而高效的解决方案。无论你是个人开发者、团队负责人还是开源项目维护者&#xff0c;VuePress 都能帮助你轻松地创建和管理你的文档…

卷积神经网络--手写数字识别

本文我们通过搭建卷积神经网络模型&#xff0c;实现手写数字识别。 pytorch中提供了手写数字的数据集 &#xff0c;我们可以直接从pytorch中下载 MNIST中包含70000张手写数字图像&#xff1a;60000张用于训练&#xff0c;10000张用于测试 图像是灰度的&#xff0c;28x28像素 …