gps定位网站源码-基于Arduino的GPS+北斗定位功能实现(附源码)

摘要:基于Arduino开源软硬件环境,建立了GPS+北斗卫星定位功能模块。 本文简要介绍了硬件模块、系统搭建、软件编程和测试结果,并编写了Python程序对定位数据进行分析。

1.Arduino开源硬件平台简介

Arduino是一个源自日本的开源硬件项目平台gps定位网站源码,基于该平台可以开发多种交互式应用设备。 它是技术学习、产品原型制作和创客常用的通用平台之一。 最好的平台之一。 Arduino的出现大大提高了交互设计的门槛。 业余爱好者可以使用Arduino制作各种创意作品,例如机器人、移动可穿戴设备、智能家居、玩具等。

Arduino平台是一个包含USB接口和简单I/O接口板的微控制器(单片机,MCS),并提供类似C语言的集成开发平台。 Arduino的核心是基于AVR指令集的单片机,​​但它简化了单片机的工作流程,对AVR库进行了二次编译和封装,封装了复杂的底层代码将单片机融入简单实用的功能,使用户无需关心单片机冗长的编程细节(如寄存器、地址指针等),这大大增加了单片机的开发难度。芯片微机系统,特别适合教师、学生和商业爱好者,也可以作为创客的工作平台。

详情请参见2018年《地球科学新视野》公众号文章。

2、硬件模块介绍

本实验内容是基于Arduino开源软硬件环境建立GPS+北斗卫星定位功能。 主要涉及两个硬件模块,一是单片机开发板,二是卫星定位模块。 相关模块可在天猫购买。

笔者使用的MCU开发板是DFRobot BL UNO开发板。 为了方便连接各种传感器或控制模块,还可以添加I/O扩展板。 有数字插座和模拟插座用于连接各种传感或控制模块。 这里不再详细描述,请参考相关资料。

使用的卫星定位模块是中科微电子的ATGM332D-5N,支持GPS和北斗(BDS)卫星双卡定位授时功能。 卫星定位模块支持通过USB-TTL模块通过USB口直接连接PC。 此时可以通过相应的并口读取模块发送的信息。 该模块还可以通过UART输出通道连接到开发板。

BLUNO开发板和ATGM332D-5N卫星定位模块在天猫售价分别为145元和66元(还有更实惠的产品)。

BLUNO 微控制器开发板

I/O扩展板

卫星定位模块(带天线)

系统实际连接效果如右图所示。 卫星定位模块与开发板连接,开发板通过MicroUSB与PC连接。 连接形式如下:卫星定位模块的GND(地)和VCC(电源)端子分别连接到开发板的GND和VCC,卫星定位模块的TXD(发射)端子连接接到开发板的RXD(接收)端,也就是数字口D0,卫星定位模块的RXD和PPS(脉冲输出)口可以不接。 此时PC上会出现一个并口设备。 如果卫星定位模块通过USB-TTL模块直接通过USB口与PC连接,也会出现并口设备。

系统连接实际效果

端口连接形式

串口设备显示(开发板通过MicroUSB与PC连接)

串口设备显示(定位模块通过USB-TTL模块通过USB口直接连接PC)

3. NMEA-0183合约简介

当卫星定位模块通过USB口通过USB-TTL模块直接与PC机连接时,我们可以使用GNSS Viewer软件或SSCOM串口通讯软件来接收数据并显示信息。

GNSS Viewer软件显示界面

SSCOM软件串口通信接收数据

从里面的软件显示我们可以看到,卫星定位模块不断地以文本格式发送相关信息。 下图包含了几种类型的数据格式(GPTXT、GPGSV、BDGSV、GNZDA、GNGLL、GNVTG、GNRMC、GNGGA)。 这实际上是NMEA-0183合同规定的数据格式标准。

gps定位网站源码-基于Arduino的GPS+北斗定位功能实现(附源码)

GPS数据格式示例

NMEA-0183是美国国家海洋电子协会(National Marine Electronics Association)针对船用电子设备制定的标准格式,现已成为GPS导航设备统一的RTCM(Radio Technical Commission for Maritime services)标准合同。 NMEA-0183规定了以下命令信息内容:

NMEA-0183合约主要数据类型

将上表中的标准内容与我们得到的数据示例进行比较,可以发现存在细微的差别。 标准中命令的前两个字母是GP,在日本代表GPS,而实际数据中的BD代表北斗,GN代表多种导航定位系统集成的数据。 命令的最后三个字母代表命令的类型名称,命令前用冒号分隔一系列数据内容。 我们这里主要使用GGA和ZDA命令,GGA用于获取定位信息,ZDA用于获取授时信息。 下面给出几种常用命令的数据格式。

几种常见的命令数据格式

4. 编程和源代码

如果将卫星定位模块连接到MCU开发板,我们就可以从模块接收卫星定位和授时数据,并根据需要处理和应用数据,并通过并口将信息发送到PC。

基于Arduino单片机实现GPS+北斗定位功能,软件开发的主要任务是获取GPS定位授时信息,对获取的数据进行分析处理,然后以需要的格式显示出来。

这里不再赘述gps定位网站源码,直接给出程序的源码,读者可以自行阅读理解。 软件开发基于Arduino开发环境,采用类C语言编程。

程序源代码

程序编译并写入单片机开发板。 软件运行后,将定位信息发送到PC机的并行口,PC机获取相应的数据。 每行都是一个定位记录,包括日期、时间、纬度、经度和海拔信息。

gps定位网站源码-基于Arduino的GPS+北斗定位功能实现(附源码)

程序输出数据

5 测试结果及分析

作者还编写了一个Python数据分析程序,对获得的卫星定位数据进行展示和简单分析。 此处省略分析程序及说明。

下面给出了长期定位记录结果的分析。 本次观测记录了2273条定位记录,持续时间近63000秒(约17.5小时)。 分析表明,定位精度的标准偏差(均方根误差)约为2.5米,最大偏差约为4-5米。 从图中可以看出,定位误差并不是完全随机的,而是含有低频成分,应该与卫星位置的变化有关。

位置数据解析器输出

卫星定位精度分析(两种显示方式)

卫星定位纬度、经度和高度随时间的变化

于宁,2020年2月29日

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 网站源码 gps定位网站源码-基于Arduino的GPS+北斗定位功能实现(附源码) https://www.wkzy.net/game/173432.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务