1216|3

115

帖子

8

TA的资源

一粒金砂(高级)

楼主
 

【得捷电子Follow me第1期】+任务4 GNSS模块(Air530)定位 [复制链接]

 

经过前面3个实验的熟悉,对于更高的综合实验就比较得心应手了,接下来,我们上手玩一玩合宙的Air530 GNSS模组。

GNSS定位模组在日常做位置服务、同步授时等场合都有非常广泛的应用!

(1)硬件准备

关于Grove GNSS模组,可以参阅资料:Grove - GPS (Air530) - Seeed Studio

 

Air530模块是一款高性能、高集成度的多模卫星定位导航模块。体积小、功耗低,可用于车载导航、智能穿戴、无人机等GNSS 定位的应用中。而且提供了和其他模块厂商兼容的软、硬件接口,大幅减少了用户的开发周期。 模块支持GPS/Beidou/GLONASS/Galileo/QZSS/SBAS。采用了射频基带一体化设计,集成了DC/DC、 LDO、 LNA、射频前端、基带处理、32 位RISC CPU、RAM、FLASH 存储、RTC 和电源管理等功能。提供超高的性能,即使在弱信号的地方,也能快速、准确的定位。

GNSS模组Air530的链接非常简单,只需要将UART接口连接到Grove底板的UART0上即可,分别用到串口的TX=GP0 RX=GP1。

 

(2)软件调试

针对GNSS模组,都是遵循NMEA规范格式进行的报文输出。若需要熟悉GNSS模组的报文输出,可以采用USB转TTL的串口工具,以9600波特率,将输出的报文在PC上位机端采用串口助手打印出来。

"""GPS NMEA Sentence Parser. Creates object that stores all relevant GPS data and statistics.
    Parses sentences one character at a time using update()."""

为了避免造轮子,借用巨人的肩膀,我们采用micropyGPS的库进行定位信息的解析,先克隆micropyGPS的库:

链接已隐藏,如需查看请登录或者注册

借用前人的成果,很容易就调用gps.update函数可以将解析得到的经纬度信息、日期信息等内容通过print输出或显示在OLED的屏幕上。

from machine import UART, Pin
import time
from micropyGPS import MicropyGPS
from machine import I2C
from ssd1306 import SSD1306_I2C

WIDTH = 128
HEIGHT = 64

# Init I2C using I2C0 defaults, SCL=Pin(GP9), SDA=Pin(GP8), freq=400000
i2c = I2C(1, scl=Pin(7), sda=Pin(6), freq=400000)  # Grove - OLED Display 0.96" (SSD1315)

oled = SSD1306_I2C(WIDTH, HEIGHT, i2c)

uart0 = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))

time.sleep(0.1)
rxData = bytes()
my_gps = MicropyGPS()
while True:
    if uart0.any():
        stat = my_gps.update(uart0.read(1).decode("ascii"))  # Note the conversion to to chr, UART outputs ints normally
        if stat:
            oled.fill(0)
            lat_disp = my_gps.latitude_string()
            oled.text(lat_disp, 5, 10)
            lon_disp = my_gps.longitude_string()
            oled.text(lon_disp, 5, 30)
            time_disp = my_gps.date_string("s_dmy")
            oled.text(time_disp, 5, 50)
            oled.show()
            print("Latitude:", my_gps.latitude_string())
            print("Longitude:", my_gps.longitude_string())
            print(
                "Speed:",
                my_gps.speed_string("kph"),
                "or",
                my_gps.speed_string("mph"),
                "or",
                my_gps.speed_string("knot"),
            )
            print("Date (Long Format):", my_gps.date_string("long"))
            print("Date (Short D/M/Y Format):", my_gps.date_string("s_dmy"))
            print("timestamp (Short [H,M,S] Format):", my_gps.timestamp)

            stat = None

(3)调试实验

将代码下载到开发板内部,然后将GPS模组置于窗口位置就可以在OLED上显示定位的经纬度以及REPL窗口上输出相关的NIMA的报文解析。

 

 

最新回复

好呀好呀,期待学习大佬的作品。   详情 回复 发表于 2023-6-1 18:12
点赞 关注
 
 

回复
举报

7065

帖子

11

TA的资源

版主

沙发
 
这就可以申请押金了吗?楼主太牛了!

点评

闲暇时间,争取搞个任务5玩玩,DIY一下!  详情 回复 发表于 2023-6-1 16:28
 
 
 

回复

115

帖子

8

TA的资源

一粒金砂(高级)

板凳
 
lugl4313820 发表于 2023-6-1 15:55 这就可以申请押金了吗?楼主太牛了!

闲暇时间,争取搞个任务5玩玩,DIY一下!

点评

好呀好呀,期待学习大佬的作品。  详情 回复 发表于 2023-6-1 18:12
 
 
 

回复

7065

帖子

11

TA的资源

版主

4
 
alanlan86 发表于 2023-6-1 16:28 闲暇时间,争取搞个任务5玩玩,DIY一下!

好呀好呀,期待学习大佬的作品。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表