• GPS+北斗定位借助Arduino的数值显示


    一、前言

    较多的导航软件在生活中层出不穷,但是卫星定位同样也适用于轨迹记录、经纬分析、授时系统等,多样的功能使其能够应用于各个不同的场景。

    二、硬件要求

    本次使用的就是这款ATGM336H模块 ,它是搭载了中科微第四代低功耗GNSS SOC单芯片—AT6558。支持多种卫星导航系统,包括中国的BDS(北斗卫星 导航系统),美国的GPS,俄罗斯的GLONASS,欧盟的GALILEO,日本的QZSS 以及卫星增强系统SBAS(WAAS,EGNOS,GAGAN,MSAS)。

    AT6558 是一 款真正意义的六合一多模卫星导航定位芯片,包含32 个跟踪通道,可以同时接收这六个卫星导航系统的GNSS 信号,并且可以直接替换Ublox MAX系列模块。
    在这里插入图片描述

    三、参数基础

    支持 A-GNSS
    冷启动捕获灵敏度:-148dBm
    跟踪灵敏度:-162dBm
    定位精度:2.5 米(CEP50,开阔地)
    首次定位时间:32 秒
    低功耗:连续运行<25mA(@3.3V)
    内置天线检测及天线短路保护功能
    输出协议:ATGM332D-5N 系列模块通过 UART 作为主要输出通道, 按照NMEA0183 的协议格式输出,具体信息请参照《CASIC 多模卫星导航接收机协议规范》 。

    四、原理剖析

    该模块主要由ATGM332D-5N搭载诸多的元器件构成,其中不乏预留天线口、uart协议脚、iic协议脚,最终成型的也是vcc和gnd电源脚,rx、tx的协议脚,以及pps脚。
    本电路中,3.3v供电即可看到指示灯亮起,伴随芯片运作,整个端口的输入输出联系起来,实现远程收发的时候天线就作用起来了。
    在这里插入图片描述

    五、使用方式

    主要以uart的协议,进行数值反馈。
    可以在电脑window系统上面的上位机软件,利用usb转ttl,连接到电脑上可以看到相关的定位信息、经纬度、授时信息,更为全面。

    同样该协议也适用于开发板的程序应用,包括stm32、arduino、单片机等。
    在这里插入图片描述

    六、程序概要

    //ATGM336H接线 vcc接3.3v  gnd接gnd  tx接0引脚 其余不接
    //led灯接线 红接13引脚 黑接gnd
    #define GPSSerial  Serial 
    #define DEBUGSerial Serial
    int L = 13; //LED指示灯引脚
    
    void setup()	//一次循环
    {
      GPSSerial.begin(9600);			//定义波特率9600,刷新
      DEBUGSerial.begin(9600);          //定义波特率9600,刷新
      DEBUGSerial.println("GPS information");//输出换行
      DEBUGSerial.println("Please wating...");
      pinMode(L, OUTPUT);
     
    }
    
    void loop()		//主循环
    {    
    	if (GPSSerial.available()) {   
        	DEBUGSerial.write(GPSSerial.read());//如果收到GPS数据则通过Serial输出
    }
    else{
    	digitalWrite(L,1);//否则灯亮起
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    七、成果展示

    在这里插入图片描述
    在这里插入图片描述

    八、数据解析

    举例第1行

    $GNGGA,132506.000,2233.87430,N,11407.13740,E,1,13,1.0,103.3,M,-2.8,M,*5E

    $GNGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,*CS

    GGA接收机定位数据。GN是GPS+北斗双模式

    <1> 132506.000:UTC时间,hhmmss.sss(时分秒.毫秒)格式

    <2> 2233.87430:纬度ddmm.mmmm(度分)格式(前导位数不足补0)

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

    <4> 11407.13740:经度dddmm.mmmm(度分)格式(前导位数不足补0)

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

    <6> 1: GPS状态:0=未定位,1=非差分定位,2=差分定位,3=PPS模式

    <7> 13:正在使用解算位置的卫星数量(00~24)(前导位数不足补0)

    <8> 1.0:HDOP水平精度因子(0.5~99.9)

    <9> 103.3:海拔高度(-9999.9~99999.9)

    <10> M:高度单位

    <11> -2.8:地球椭球面相对于海平面的高度

    <12> M:高度单位

    <13> :差分修订时间。如果不是差分定位,此项为空

    * 5E:校验和,$和之间(不包括 $和)所有字符的异或结果

    • 模块使用NMEA-0183协议的报文,其余行详细说明见《CASIC多模卫星导航接收机协议规范》

    九、总结

    1、本次仅测试模块在arduino的正常接收,实际应用中ATGM336H注意应在高海拔和户外测试,数值更加精确
    2、如果需要最为简单、直观的数据查看,依旧推荐usb转ttl连接至电脑上,使用上位机查看。
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    Java架构师的底气,是从哪里来的?
    csdn中书写数学公式简单介绍
    安全基础 --- 过滤情况下实现弹窗展现
    PbootCMS后台用户账号密码时进行重置工具
    第二十三章 javascript请求方式Ajax
    一题带你写出图论算法模板!!!
    大话STL第五期——set/multiset(含pair对组)
    SpringBoot+Vue+Flowable,模拟一个请假审批流程
    【宝塔】python项目管理器虚拟环境bin没有activate导致计划任务运行不了python项目管理器找不到activate解决办法
    Softmax 回归 + 损失函数 + 图片分类数据集
  • 原文地址:https://blog.csdn.net/qq_42250136/article/details/128040117