跳转到主要内容

CircuitPython GPS模块库。

项目描述

简介

Documentation Status Discord Build Status Code Style: Black

GPS解析模块。可以向串行和I2C GPS模块发送命令,并解析简单的NMEA数据句子以读取纬度、经度等信息。

依赖项

此驱动程序依赖于

请确保所有依赖项都可在CircuitPython文件系统中使用。这可以通过下载 Adafruit库和驱动程序捆绑包 来轻松实现。

从PyPI安装

在支持的GNU/Linux系统(如树莓派)上,您可以从PyPI 安装驱动程序。为当前用户安装

pip3 install adafruit-circuitpython-gps

为全局安装(在某些情况下可能需要)

sudo pip3 install adafruit-circuitpython-gps

在当前项目中的虚拟环境中安装

mkdir project-name && cd project-name
python3 -m venv .venv
source .venv/bin/activate
pip3 install adafruit-circuitpython-gps

使用示例

请参阅examples/gps_simpletest.py以了解解析和打印GPS位置的方法。

重要:Feather板和许多其他CircuitPython板会四舍五入到两位小数,如下所示

>>> float('1234.5678')
1234.57

这并不理想,因为这将GPS数据的精度从0.1m降低到11m。

可以通过在输出GPS数据时使用字符串格式化来修复此问题。

此实现的示例可以在 examples/gps_simpletest.py 中找到。

import time
import board
import busio

import adafruit_gps

RX = board.RX
TX = board.TX

uart = busio.UART(TX, RX, baudrate=9600, timeout=30)

gps = adafruit_gps.GPS(uart, debug=False)

gps.send_command(b'PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0')

gps.send_command(b'PMTK220,1000')

last_print = time.monotonic()
while True:

    gps.update()

    current = time.monotonic()
    if current - last_print >= 1.0:
        last_print = current
        if not gps.has_fix:
            print('Waiting for fix...')
            continue
        print('=' * 40)  # Print a separator line.
        print('Latitude: {0:.6f} degrees'.format(gps.latitude))
        print('Longitude: {0:.6f} degrees'.format(gps.longitude))

这两行代码实际上是解决问题的关键。

print('Latitude: {0:.6f} degrees'.format(gps.latitude))
print('Longitude: {0:.6f} degrees'.format(gps.longitude))

注意:在每次调用 gps.send_command() 之间没有足够的时间间隔时,使用 gps.send_command() 发送多个 PMTK314 数据包将不会工作。建议使用 1 秒或更长时间的 time.sleep() 来解决这个问题。

文档

此库的 API 文档可以在 Read the Docs 上找到。

有关构建库文档的信息,请参阅 本指南

贡献

欢迎贡献!在为此项目做出贡献之前,请阅读我们的 行为准则,以帮助保持项目的友好性。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

adafruit_circuitpython_gps-3.10.15.tar.gz (44.4 kB 查看哈希)

上传时间 源代码

构建分布

adafruit_circuitpython_gps-3.10.15-py3-none-any.whl (11.6 kB 查看哈希)

上传时间 Python 3

支持