【得捷电子Follow me第1期】任务4:实现定位功能
[复制链接]
本次使用到的外设有OLED显示屏,GPS定位模块。其中OLED显示屏的驱动在外设篇有所讲解,本次重点侧重于GPS模块的使用。
在测试GPS模块时小伙伴们记得移动到户外较空旷的环境,有利于更快的找到卫星实现定位功能。
这次的GPS模块是seeed的GPS定位模块,GPS模组型号是Air530z。
模块采用了射频基带一体化设计,集成了 DC/DC、 LDO、射频前端、低功耗应用处理器、RAM、Flash 存储、RTC 和电源管理,可通过纽扣电池或法拉电容给 RTC、备份 RAM 供电,减少首次定位时间,可广泛应用于车载定位与导航设备、高精度授时、安全监测、测量测绘、精准农业等对导航/定位/授时有需求的领域。
在使用方面经过查找可以发现已经有大佬开源了Air530z的驱动库,不需要再造轮子了。下面是开源地址的链接:
下面我们将使用串口实现GPS模块定位信息的采集,通过电脑连接PicoW实现串口打印的功能。
from machine import Pin, UART
from micropyGPS import MicropyGPS
import utime, time
gps_module = UART(0, baudrate = 9600, tx = Pin(0), rx = Pin(1))
my_gps = MicropyGPS()
while True:
if gps_module.any():
utime.sleep_ms(100)
bin_data = gps_module.readline()
str_bd = str(bin_data)[1:]
if str_bd[1:7] == '$GNRMC':
my_sentence = str_bd
for x in my_sentence:
my_gps.update(x)
print("my_gps.latitude", my_gps.latitude)
print("my_gps.longitude", my_gps.longitude)
print("my_gps.date", my_gps.date)
print("my_gps.timestamp", my_gps.timestamp)
|