QuecPython+GNSS:实现快速定位

概述

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:卫星系统IDVTG语句的基本格式如下:$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.mzph.cn/pingmian/78160.shtml

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

相关文章

leetcode刷题日记——逆波兰表达式求值

[ 题目描述 ]&#xff1a; [ 思路 ]&#xff1a; 借助栈的特性&#xff0c;遇见数字就将这个数压入栈内&#xff0c;遇见符号&#xff0c;就从栈中弹出两个数&#xff0c;进行相应的运算&#xff0c;然后将结果压入栈中运行如下 int evalRPN(char** tokens, int tokensSize…

firewalld 详解

firewalld 详解 firewalld 是 Linux 系统中一个动态防火墙管理工具&#xff0c;取代了传统的 iptables&#xff0c;提供更灵活、动态的规则配置&#xff0c;支持运行时修改且无需重载服务。以下是其核心概念、常用操作及示例指南&#xff1a; 一、核心概念 区域&#xff08;Zo…

面向高性能运动控制的MCU:架构创新、算法优化与应用分析

摘要&#xff1a;现代工业自动化、汽车电子以及商业航天等领域对运动控制MCU的性能要求不断提升。本文以国科安芯的MCU芯片AS32A601为例&#xff0c;从架构创新、算法优化到实际应用案例&#xff0c;全方位展示其在高性能运动控制领域的优势与潜力。该MCU以32位RISC-V指令集为基…

支付宝小程序组件与页面构造器使用指南:从页面到组件的正确迁移

引言 在支付宝小程序开发中&#xff0c;我们经常会遇到需要将页面组件化的情况。本文将通过一个实际案例&#xff08;将 /pages/plugin/device 从页面迁移到组件&#xff09;&#xff0c;深入分析支付宝小程序中页面和组件的区别&#xff0c;以及正确的迁移方式。我们将从问题…

26-算法打卡-字符串-右旋字符串-第二十六天

1 题目说明 字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k&#xff0c;请编写一个函数&#xff0c;将字符串中的后面 k 个字符移到字符串的前面&#xff0c;实现字符串的右旋转操作。 例如&#xff0c;对于输入字符串 &qu…

fastbev mmdetection3D 角度和方向损失

角度/方向损失 sin(a−b)sinacosb−cosasinb config参数 dir_offset0.7854, # pi/4 dir_limit_offset0, box编解码 # Copyright (c) OpenMMLab. All rights reserved. import torchfrom mmdet.core.bbox import BaseBBoxCoder from mmdet.core.bbox.builder import BBOX_COD…

极狐GitLab 如何 cherry-pick 变更?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 拣选(cherry-pick)更改 (BASIC ALL) 在 Git 中&#xff0c;cherry-pick 是从一个分支获取一个提交并将其添加为另一个分支的…

java多线程(7.0)

目录 ​编辑 定时器 定时器的使用 三.定时器的实现 MyTimer 3.1 分析思路 1. 创建执行任务的类。 2. 管理任务 3. 执行任务 3.2 线程安全问题 定时器 定时器是软件开发中的一个重要组件. 类似于一个 "闹钟". 达到一个设定的时间之后, 就执行某个指定好的…

优化非线性复杂系统的参数

非线性项组合的系统 对于系统中的每一个复杂拟合&#xff0c;即每一个残差函数&#xff0c;都能表示为非线性方程的趋势&#xff0c;例如较为复杂的系统函数组&#xff0c; from optimtool.base import sp, np x sp.symbols("x1:5") res1 0.5*x[0] 0.2*x[1] 1.…

清华LeapLab开源Cooragent框架:一句话构建本地智能体服务群,让AGI真正触手可及

引言&#xff1a;智能体革命&#xff0c;从复杂到简单 在人工智能发展的浪潮中&#xff0c;Agent&#xff08;智能体&#xff09; 技术被视为实现通用人工智能&#xff08;AGI&#xff09;的关键路径。然而&#xff0c;传统智能体的开发与协作始终面临两大痛点&#xff1a;依赖…

云原生--核心组件-容器篇-1-Docker和云原生关系(Docker是云原生的基石)

1、基本概念 &#xff08;1&#xff09;、云原生&#xff08;Cloud Native&#xff09; 是一种构建和运行应用程序的方法论&#xff0c;旨在充分利用云计算环境&#xff08;公有云、私有云、混合云&#xff09;的特性&#xff0c;通过容器化、微服务、服务网格、声明式API等技…

问答页面支持拖拽和复制粘贴文件,MaxKB企业级AI助手v1.10.6 LTS版本发布

2025年4月24日&#xff0c;MaxKB开源企业级AI助手正式发布v1.10.6 LTS版本。这一版本主要进行了一些功能优化和问题修复。 功能优化 ■ 应用&#xff1a;文件上传支持上传其他自定义的文件类型&#xff0c;该类型文件需要自行写入函数解析&#xff1b; ■ 问答页面&#xff…

用户案例--慧眼科技

作者&#xff1a;算力魔方创始人/英特尔创新大使刘力 每个行业都有其独特的需求&#xff0c;算力魔方推出了全面的定制化服务&#xff0c;从概念到产品化&#xff0c;满足各行各业&#xff0c;用户可以根据具体应用需求定制更多接口或更强图形处理的需求&#xff0c;且算力魔方…

apple 个人开发者转公司经验

1、在apple开发者官网申请 2、收到邮件后&#xff0c;回复准备了开始迁移 3、收到填写迁移资料的邮件 4、开始填写资料 Sign In - Applehttps://developer.apple.com/enroll/type/edit To complete this change, you will need: 要完成此更改&#xff0c;您需要&#xff1a; L…

【ESP32-IDF笔记】20-配置以太网网络(W5500)

环境配置 Visual Studio Code &#xff1a;版本1.98.2 ESP32&#xff1a;ESP32-S3 ESP-IDF&#xff1a;V5.4 模块&#xff1a;W5500&#xff0c;SPI通讯协议 组件支持&#xff1a;esp_eth 官方的ethernet 以太网组件 W5500介绍 介绍 W5500 是一款全硬件 TCP/IP 嵌入式以太网…

卫星通信的基本概念

1 频段 频段 频率范围 技术特点 典型应用 优势 局限性 最新进展 L 频段 1-2 GHz 波长较长&#xff0c;穿透能力强&#xff0c;受天气影响小&#xff0c;带宽较窄&#xff08;<100 MHz&#xff09;。 卫星导航&#xff08;北斗 / GPS&#xff09;、海事通信&#x…

数据结构------C语言经典题目(7)

1.系统栈和数据结构中的栈有什么区别&#xff1f; 1.本质&#xff1a; 系统栈&#xff1a;由程序运行时由操作系统自动分配的一块连续内存区域&#xff0c;用于存储函数调用过程中的临时数据&#xff08;参数、局部变量、返回地址&#xff09;&#xff0c;是程序运行的底层机制…

【Redis】一、redis的下载与安装

目录 一、redis下载 二、启动服务 三、测试服务 四、可视化界面 五、设置reids密码 今天起准备对redis进行学习&#xff0c;目标是掌握实际开发项目中如何应用redis等操作。首先在这里讲将如何下载redis&#xff0c;方便以后查阅。 一、redis下载 可以去官网&#xff08…

vue3中nextTick的作用及示例

在Vue 3中&#xff0c;nextTick是一个用于处理DOM异步更新的工具函数&#xff0c;确保在数据变化后操作最新的DOM。以下是其作用的详细解析&#xff1a; 核心作用 延迟回调到DOM更新后&#xff1a;Vue的响应式系统会将数据变更批量处理&#xff0c;异步更新DOM。nextTick允许你…

拆解大模型“越狱”攻击:对抗样本如何撕开AI安全护栏?

该文章首发于奇安信攻防社区:https://forum.butian.net/share/4254 引言 随着大规模语言模型(LLMs)在内容生成、智能交互等领域的广泛应用,其安全性和可控性成为学界和产业界关注的焦点。尽管主流模型通过道德对齐机制建立了安全护栏,但研究者发现,通过精心设计的"…