物联网AI MicroPython传感器学习 之 GPS户外定位模块

news2024/11/18 15:51:01

学物联网,来万物简单IoT物联网!!在这里插入图片描述

一、产品简介

HT2828Z3G5L是一款高性能的面向车载组合导航领域的定位G-MOUSE,系统包含同时支持北斗和GPS的高性能卫星接收机芯片。具备全方位功能,能满足专业定位的严格要求。体积小巧,可以装置在汽车内部任何位置,低功耗,能适应个人用户的需要。
该产品采用了新一代AT6558D低功耗芯片,高灵敏度,在城市峡谷、高架下等信号弱的地方,都能快速、准确的定位。可广泛应用开发多种GPS终端产品,如:汽车导航汽年保全系统、车辆监控以及其他卫星定位应用等。
image.png
接口说明

标号名称功能描述
1VBAT/PPS兼容备用电池/时间标准脉冲输出
2VCC系统主电源,供电电压为3.3~5V,工做时消耗电流约25mA
3TXUART/TTL接口,可选RS232_TXD
4RXUART/TTL接口,可选RS232_RXD
5GND接地
6EN电源使能,高电平/悬空模组工作,低电平模组关闭

二、技术参数

  • 行业标准的25_25_4mm高灵敏度GPS天线
  • 采用0.5PPM高精度TCXO
  • 内建RTC晶体及皮法电容更快的热启动
  • 内建LNA,低噪声信号放大器
  • 采用6558D芯片,内置FLASH,支持温启动
  • 1~10Hz定位更新速率
  • 支持AssistNow Online和AssistNow Offline等A-GPS服务
  • GPS、北斗、GLONASS、(WMS,EGNOS,MSAS,GAGAN)混合引擎

三、软件接口

Gnss(uartObj) - 创建全球导航定位传感器驱动对象

  • 函数原型

gnssObj = Gnss(uartObj)

  • 参数说明:
参数类型必选参数?说明
uartObjUART传入UART对象
  • 返回值

若创建Gnss对象成功,返回Gnss对象;若创建Gnss对象创建失败,抛出Exception

  • 示例代码
from machine import UART,Pin    # 驱动库
import gnss                     # gnss定位驱动库

uartObj = UART(1, baudrate=9600,bits = 8,stop = 1, tx=Pin(33), rx=Pin(32))
gnssObj = gnss.GNSS(uartObj) # GNSS设备初始化
print("Testing gnss ...")
  • 输出
Testing gps ...

getLocation() - 获取GPS信息值

  • 函数功能:

解析更新GPS数据

  • 函数原型:

Gnss.getLocation()

  • 参数说明:

  • 返回值:

成功:返回gnss定位信息值,数据类型:字典,含义如下:
longitude(纬度)
latitude(经度)
altitude(海拔)

  • 示例:
from machine import UART,Pin    # 驱动库
import gnss                     # gnss定位驱动库

uartObj = UART(1, baudrate=9600,bits = 8,stop = 1, tx=Pin(33), rx=Pin(32))
gnssObj = gnss.GNSS(uartObj) # GNSS设备初始化
print("Testing gnss ...")

location = gnssObj.getLocation()
print("The gnss infor 纬度-%d 经度-%d 海拔-%d",location.longitude, location.latitude, location.altitude)
  • 输出
Testing gnss ...
The gnss infor 纬度-xx 经度-xx 海拔-xx

四、接口案例

  • 案例代码
from machine import UART,Pin    # 驱动库
import gnss                     # gnss定位驱动库
import utime

uartObj = UART(1, baudrate=9600,bits = 8,stop = 1, tx=Pin(33), rx=Pin(32))
gnssObj = gnss.GNSS(uartObj) # GNSS设备初始化
print("Testing gnss ...")

while True:
    utime.sleep(1)
    location = gnssDev.getLocation()
    print("The gnss infor 纬度-%d 经度-%d 海拔-%d",location.longitude, location.latitude, location.altitude)
  • 输出
Testing gnss ...
The gnss infor 纬度-xx 经度-xx 海拔-xx

五、工作原理

1、电气特性

输入电压宽电压范围:主电源为3.3~5V
工作电流30mA
备用电压1.8~3.6V
温度范围5% to 95% non-condensing
工作温度-40度~100度
存储温度-55度~100度

2、模块性能

标号名称功能描述
1芯片AT65558D(内置FLASH,支持温启动)
2频率BDS/GPS/1.5611-1.57542GHz
3C/A码1.023MHz码流
4可用波特率4800,19200,38400,57600,115200bps(默认9600)
5通道三通道射频,支持GPS+BDS(默认)、BDS+GLONASS、GPS+GLONASS输出
6SWRS11<=1.3
7SWRS22<=1.3
8Log MagS212>=20.0dB
9SmithS11:50欧姆+5%
10灵敏度跟踪:-162dBm,捕捉:-148dBm
11冷启动平均35秒
12冷启动灵敏度-148dBm
13温启动平均10秒
14热启动平均1秒
15热启动灵敏度-156dBm
16AGPS网络辅助星历数据3s(平均)
17定位精度<5m
18授时精度30ns
19方向<0.5Degree
20参照坐标系WGS-84
21速率<0.1m/s
22最大海拔高度50000米
23标准时钟脉冲0.25Hz~1KHz
24最大速度515m/s
25最大加速度<=4G
26更新频率1~10Hz(默认1Hz)
27端口界面UART:232/TTL
28输出语句NMEA 0183 V3.0(GGA,GSA,GSV,RMC,VTG,GLL)协议数据

GPS是全球定位系统(Global Position System)的简称,常见于汽车、手机中。民用GPS的定位精度在10~20米之间,这是为什么用手机的GPS定位,有时候明明在陆地上,却被认为在河里的原因。GPS定位的原理很简单,叫做三角定位法(Triangulation)。原理如下图所示:
image.png
装在无人车上的GPS接收机,首先量测无线电信号到达卫星的传播时间,再将传播时间乘以光速,即可得到当前GPS接收机到达卫星的距离,有了距离,就可以根据几何原理求得位置了。
image.png
若已知GPS接收机到达1号卫星和3号卫星的距离,那么1号和3号卫星根据距离产生两个球体(图中绿色和蓝色的球体),两个球体的相交的部分为圆形,该圆形与地球表面靠近的任何一个点都有可能是当前无人车(GPS接受装置)的位置。
因此仅根据这两个距离信息,还无法确定当前无人车的具体位置。此时通过引入第三个卫星的距离,就能较为准确地确定无人车的位置。这就是三角定位法的原理。

参考文献

[1] GPS模块购买链接

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

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

相关文章

【数据结构】常见复杂度习题详解 ------ 习题篇

文章目录 &#x1f4cb;前言一. ⛳️前篇回顾二. ⛳️常见时间复杂度计算举例1️⃣实例一2️⃣实例二3️⃣实例三4️⃣实例四5️⃣实例五6️⃣实例六7️⃣实例七8️⃣实例八 三. ⛳️常见空间复杂度计算举例1️⃣实例一2️⃣实例二3️⃣实例三 四. ⛳️总结 &#x1f4cb;前言 …

GIS 数据结构整理:网格索引

1 一维网格索引 把整个数据库数值空间划分成n*n的正方形网格&#xff0c;建立另一个倒排文件——栅格索引每一个网格在栅格索引中有一个索引条目(记录)&#xff0c;在这个记录中登记所有位于或穿过该网格的物体的关键字 1.1 变长指针法 在这个网格的物体&#xff0c;按照序号…

2023年系统设计面试如何破解?进入 FAANG 面试的实战指南

如果您正在准备编码面试&#xff0c;但想知道如何准备关键的系统设计主题&#xff0c;并寻找正确方法、技巧和问题的分步指导&#xff0c;那么您来对地方了。在本文中&#xff0c;我将分享 2023 年系统设计面试的完整指南。 在软件开发领域&#xff0c;如果您正在申请高级工程…

『Linux升级路』权限管理

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;Linux &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、Linux中的用户 &#x1f4d2;1.1Linux用户分类 &#x1f4d2;1.2用户转换…

网络编程 day3

#include <head.h> #define SER_PORT 6678 //服务器端口号 #define SER_IP "192.168.115.64"//服务器IP地址 #define CLI_PORT 6666 //客户端端口号 #define CLI_IP "192.168.115.93" int main(int argc, const char *argv[]) {//1.创建套接字,用于连…

css-边框流水线

效果图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><meta name"viewport" content"initial-scale1.0, user-scalableno" /><title></title><style type&…

eNSP笔记③

密码模式 Telnet ①首先进入console口 [Huawei]user-interface console 0②设置模式为密码模式,回车后输入密码 [Huawei-ui-console0]authentication-mode password ③设置对应权限3 [Huawei-ui-console0]user privilege level 3用户级别允许使用的命令级别进入系统视图保存…

基于国产ARM+FPGA+AD的验证和生产测试自动化

TestStand是一款测试执行软件&#xff0c;可帮助工程师在验证和生产环节加速开发和部署系统。 验证和生产测试自动化 TestStand可借助自身功能特性&#xff0c;实现用户所有测试系统中整个测试过程的自动化、提速和标准化: 调用和执行使用LabVIEW、Python、C/C或.NET编写的测…

【API篇】八、Flink窗口函数

文章目录 1、增量聚合之ReduceFunction2、增量聚合之AggregateFunction3、全窗口函数full window functions4、增量聚合函数搭配全窗口函数5、会话窗口动态获取间隔值6、触发器和移除器7、补充 //窗口操作 stream.keyBy(<key selector>).window(<window assigner>)…

【31】c++设计模式——>模板方法模式

模板方法模式通常由以下几个部分组成&#xff1a; 1.抽象基类&#xff08;Abstract Base Class&#xff09;&#xff1a;抽象基类定义了一个算法的骨架&#xff0c;其中包含了模板方法和一些基本操作方法。模板方法在抽象基类中被声明为虚函数&#xff0c;它定义了算法的流程&…

html网页多个div鼠标移动自动排列实例

程序示例精选 html网页多个div鼠标移动自动排列实例 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《html网页多个div鼠标移动自动排列实例》编写代码&#xff0c;代码整洁&#xff0c;规则…

【数据集】1980-2020年(5年)土地利用分类数据-中国科学院

土地利用/覆被变化是自然客观条件和人类社会经济活动综合作用的结果&#xff0c;其形成与演变过程在受到地理自然因素制约的同时&#xff0c;也越来越多的受到人类改造利用行为的影响。伴随城市化进展&#xff0c;土地供需矛盾日益凸显&#xff0c;土地利用已经成为城市发展的重…

[moeCTF 2023] crypto

这个比赛从8月到10月&#xff0c;漫长又不分段。结束了以后前边的都基本上忘光了。还是分段提交的好点&#xff0c;有机会写写。不过反正也是新生赛&#xff0c;又不是新生只是打个热闹。 ezrot 厨子解决大部分问题 可可的新围墙 给了1个串 mt3_hsTal3yGnM_p3jocfFn3cp3_hFs…

[c语言]深入返回值为函数指针的函数

之前写过个好玩代码 c语言返回值为函数指针的函数 一、发现 #include<stdio.h>int (*drink(void)) (void) {static int i;i;printf("(%d)\n", i);return (int(*)(void))drink; }int main() {drink()();return 0; }这个代码定义了一个返回值为函数指针的函数&…

Python基础入门例程11-NP11 单词的长度

目录 描述 输入描述&#xff1a; 输出描述&#xff1a; 示例1 解答&#xff1a; 说明&#xff1a; 描述 牛妹正在学英语&#xff0c;但是背单词实在是太痛苦了&#xff0c;她想让你帮她写一个小程序&#xff0c;能够根据输入的单词&#xff0c;快速得到单词的长度。 输…

测试C#调用Windows Media Player组件

新建基于.net framework的Winform项目&#xff0c;可以通过添加引用的方式选择COM组件中的Windows Media Player组件&#xff0c;如下图所示&#xff1a;   也可以在VS2022的工具箱空白处点右键&#xff0c;选择“选择项…”菜单。   在弹出的选择工具箱项窗口中&#xf…

多线程环境下的原子性问题

什么是原子性呢? 在数据库事务的ACID特性中就有原子性&#xff0c;它是指当前操作中包含的多个数据库事务操作&#xff0c;要么全部成功&#xff0c;要么全部失败&#xff0c;不允许存在部分成功、部分失败的情况。而在多线程中的原子性与数据库事务的原子性相同&…

WPS中图的自动编号及引用

WPS中图的自动编号及引用 图的自动编号图编号的引用图编号及引用的更新 图的自动编号 将光标放置在需要插入编号的位置点击“引用”→“题注”&#xff1a; 点击“引用”→“题注”&#xff1a; 点击“编号”&#xff0c;设置图的编号格式&#xff0c;可勾选“包含章节编号”&…

【RTOS学习】信号量 | 互斥量 | 递归锁

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《RTOS学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 信号量 | 互斥量 | 递归锁 &#x1f37a;信号量&#x1f964;原理&#x1f964;使用信号量的函数&…

Java反射获取内部类方法

Java反射获取内部类方法 结论一、案例准备二、测试方法&#xff1a;使用反射获取类的成员内部类和方法具体操作具体操作&#xff08;使用getDeclaredClasses&#xff09; 结论 Java 通过反射可以获得内部类&#xff0c;包括内部类属性信息和方法。 一、案例准备 创建了一个类…