【得捷电子Follow me第1期】+任务4 GNSS模块(Air530)定位
[复制链接]
本帖为任务四,使用GPS模块进行定位,模块手册我上传上来,使用的是合宙的Air530模块,感觉算是比较低成本的那种。
定位模块输出是标准的NMEA-0183协议,TTL串行接口,这里我插在Grove底板UART0接口上。协议解析这里借助micropyGPS软件包,这也是python非常大的优势,有各种开源软件包。
这里把 下载下来并导入到pico里,具体导入方法参考我另一个帖子 https://bbs.eeworld.com.cn/thread-1245131-1-1.html
然后只需要写主程序代码行了,源代码如下:
from machine import UART, Pin
import time
from micropyGPS import MicropyGPS
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:
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
运行截图如下:
|