857|2

539

帖子

3

TA的资源

纯净的硅(初级)

楼主
 

【得捷电子Follow me第1期】任务4:实现定位功能 [复制链接]

 

本次活动配套了seeed的GPS定位模块,GPS模组型号是Air530z。在网上可以找到这个GPS模组的详细信息。

 

Air530Z 是一款高性能、高精度、高集成度、低功耗的多模卫星导航定位模块,支持北斗三代/GPS/GLONASS 等卫星定位系统,支持多系统联合定位和单系统独立定位。
模块采用了射频基带一体化设计,集成了 DC/DC、 LDO、射频前端、低功耗应用处理器、RAM、Flash 存储、RTC 和电源管理,可通过纽扣电池或法拉电容给 RTC、备份 RAM 供电,减少首次定位时间,可广泛应用于车载定位与导航设备、高精度授时、安全监测、测量测绘、精准农业等对导航/定位/授时有需求的领域。
 
该模块的详细说明请参考资料: Air530Z定位模块使用手册V1.4.pdf (1.28 MB, 下载次数: 3)

 

Air530z接口

Air530z模块对外提供的数据接口是UART,详细管教定义如下:

Air530z模块驱动

 

Air530z模块的驱动已经有大神提供了开源的python库,链接:

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

使方法也非常简单,只需要将micropyGPS.py文件上传到pico w中,再调用对应的接口就能获取到定位信息了。

 

示例代码:

 

"""
演示硬件:
    SSD1306(OLED 128*64 IIC)
    RP2040 Pico W
所需文件:
    ufont.py
    unifont-14-12917-16.v3.bmf
    ssd1306.py
链接引脚:
    SCL = 9
    SDA = 8
使用字体: unifont-14-12917-16.v3.bmf
"""
import time

from machine import I2C, Pin, UART

import ufont
import ssd1306

from micropyGPS import MicropyGPS


def wait(info, _t=5):
    print(info)
    time.sleep(_t)

if __name__ == '__main__':
    buzzer = Pin(16, Pin.OUT)  # Buzzer
    led = Pin("LED", Pin.OUT)  # led on board
    #uart_dbg = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1)) # uart0
    uart_gps = UART(1, baudrate=9600, tx=Pin(4), rx=Pin(5)) # uart1
    gps = MicropyGPS() #GPS
    
    # 请修改为对应 FootPrint
    i2c = I2C(0, scl=Pin(9), sda=Pin(8), freq = 400000)
    display = ssd1306.SSD1306_I2C(128, 64, i2c)

    # 载入字体
    #   使用字体制作工具:https://github.com/AntonVanke/MicroPython_BitMap_Tools
    font = ufont.BMFont("unifont-14-12917-16.v3.bmf")

    font.text(display, "你好,Pico W\n", 0, 0, font_size=16, show=True, clear=True)
    time.sleep(3)
     

    while True:
        if uart_gps.any() > 0:
            status = gps.update(uart_gps.read(1).decode("ascii"))
            if status:
                print("latitude:", gps.latitude_string())
                print("Longitude:", gps.longitude_string())
                print("Speed:",gps.speed_string("kph"),"or",gps.speed_string("mph"),"or", gps.speed_string("knot"),)  #读取速度信息
                print("Date (Long Format):", gps.date_string("long"))#读取时间信息
                print("Date (Short D/M/Y Format):", gps.date_string("s_dmy"))
                print("timestamp (Short [H,M,S] Format):", gps.timestamp)
                
                font.text(display, "纬度" + gps.latitude_string(), 0, 0, font_size=16, show=True, clear=True)
                font.text(display, "经度" + gps.longitude_string(), 0, 16, font_size=16, show=True, clear=False)
                font.text(display, "速度" + gps.speed_string("kph"), 0, 32, font_size=16, show=True, clear=False)

                stat = None
       
        
#         led.off()
#         # buzzer.value(0)
#         time.sleep(1)    # sleep 1s
#         led.on()
#         # buzzer.value(1)
#         time.sleep(1)    # sleep 1s

 

运行效果:

 

最新回复

这个界面设计,比较合理,用电池背上,百米冲刺,看能跑多快!   详情 回复 发表于 2023-7-2 08:30
点赞 关注
 
 

回复
举报

6841

帖子

11

TA的资源

版主

沙发
 

这个界面设计,比较合理,用电池背上,百米冲刺,看能跑多快!

点评

哈哈,屏太小还是不够显示  详情 回复 发表于 2023-7-3 18:57
 
 
 

回复

539

帖子

3

TA的资源

纯净的硅(初级)

板凳
 
lugl4313820 发表于 2023-7-2 08:30 这个界面设计,比较合理,用电池背上,百米冲刺,看能跑多快!

哈哈,屏太小还是不够显示


 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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