GPS V1.1(SMA) Unit

GPS Unit v1.1 是一款 GNSS 全球定位导航单元,集成高性能 CASIC 导航芯片 AT6668 和信号放大器芯片 MAX2659,内置陶瓷天线,可提供更精确、更可靠的卫星定位服务。

GPS SMA Unit 是一款 GNSS 全球定位导航单元,集成了高性能 CASIC 导航芯片 AT6668 和信号放大器芯片 MAX2659。它使用外置天线,可提供更准确、更可靠的卫星定位服务。

支持以下产品:

GPSV11Unit

MicroPython 应用示例:

 1# SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD
 2#
 3# SPDX-License-Identifier: MIT
 4
 5import os, sys, io
 6import M5
 7from M5 import *
 8from unit import GPSV11Unit
 9import time
10
11
12label0 = None
13title0 = None
14label1 = None
15label2 = None
16label3 = None
17label4 = None
18label5 = None
19label6 = None
20gpsv11_0 = None
21
22
23power_on_time = None
24
25
26def setup():
27    global label0, title0, label1, label2, label3, label4, label5, label6, gpsv11_0, power_on_time
28
29    M5.begin()
30    Widgets.fillScreen(0x222222)
31    label0 = Widgets.Label("Power On:", 1, 33, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
32    title0 = Widgets.Title(
33        "GPSV11Unit Core2 Example", 3, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu18
34    )
35    label1 = Widgets.Label(
36        "Satellite Num:", 1, 66, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18
37    )
38    label2 = Widgets.Label("Timestamp:", 1, 202, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
39    label3 = Widgets.Label("GPS Data:", -6, 526, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
40    label4 = Widgets.Label("Latitude:", 1, 104, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
41    label5 = Widgets.Label("Longitude:", 1, 140, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
42    label6 = Widgets.Label("Altitude:", 1, 170, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
43
44    gpsv11_0 = GPSV11Unit(2, port=(33, 32))
45    gpsv11_0.set_work_mode(7)
46    power_on_time = time.time()
47
48
49def loop():
50    global label0, title0, label1, label2, label3, label4, label5, label6, gpsv11_0, power_on_time
51    M5.update()
52    label0.setText(str((str("Power On:") + str(((time.time()) - power_on_time)))))
53    label1.setText(str((str("Satellite Num:") + str((gpsv11_0.get_satellite_num())))))
54    label2.setText(str((str("Timestamp:") + str((gpsv11_0.get_timestamp())))))
55    label4.setText(str((str("Latitude:") + str((gpsv11_0.get_latitude())))))
56    label5.setText(str((str("Longitude:") + str((gpsv11_0.get_longitude())))))
57    label6.setText(str((str("Altitude:") + str((gpsv11_0.get_altitude())))))
58    time.sleep(1)
59
60
61if __name__ == "__main__":
62    try:
63        setup()
64        while True:
65            loop()
66    except (Exception, KeyboardInterrupt) as e:
67        try:
68            from utility import print_error_msg
69
70            print_error_msg(e)
71        except ImportError:
72            print("please update to latest firmware")

UiFlow2 应用示例

example.png

gpsv11_core2_example.m5f2

class GPSV11Unit

Constructors

class GPSV11Unit(id, port)

使用指定的 UART id 和端口初始化 GPSV11Unit 以进行通信。

参数:
  • id (int) – 用于与 GPS 模块通信的 UART ID。可以是 0、1 或 2。

  • port – 包含用于 UART 通信的 TX 和 RX 引脚的列表或元组。

UiFlow2

init.png

Methods

GPSV11Unit.set_work_mode(mode)

设置 GPS 模块的工作模式。

参数:

mode (int) – 要设置的模式,由 GPS 模块定义。

UiFlow2

set_work_mode.png

GPSV11Unit.get_work_mode()

获取 GPS 模块当前的工作模式。

返回:

GPS 模块的当前工作模式。

UiFlow2

get_work_mode.png

GPSV11Unit.get_antenna_state()

获取天线的状态。

返回:

天线状态。

UiFlow2

get_antenna_state.png

GPSV11Unit.get_gps_time()

获取当前 GPS 时间。

返回:

GPS 时间,以字符串列表形式表示 [hour, minute, second]。

UiFlow2

get_gps_time.png

GPSV11Unit.get_gps_date()

获取当前 GPS 日期。

返回:

GPS 日期,以字符串列表形式表示:[day, month, year]。

UiFlow2

get_gps_date.png

GPSV11Unit.get_gps_date_time()

获取当前 GPS 合并后的日期和时间。

返回:

GPS 日期和时间,以字符串列表形式返回 [year, month, day, hour, minute, second]。

UiFlow2

get_gps_date_time.png

GPSV11Unit.get_timestamp()

获取当前 GPS 时间的时间戳。

返回:

表示当前 GPS 时间的时间戳。

UiFlow2

get_timestamp.png

GPSV11Unit.get_latitude()

获取当前纬度。

返回:

当前纬度的字符串格式。

UiFlow2

get_latitude.png

GPSV11Unit.get_longitude()

获取当前经度。

返回:

当前以字符串格式表示的经度。

UiFlow2

get_longitude.png

GPSV11Unit.get_altitude()

获取当前海拔。

返回:

当前海拔的字符串格式。

UiFlow2

get_altitude.png

GPSV11Unit.get_satellite_num()

获取用于定位的卫星数量。

返回:

卫星数量。

UiFlow2

get_satellite_num.png

GPSV11Unit.get_pos_quality()

获取 GPS 位置信息的质量。

返回:

位置质量指示器。

UiFlow2

get_pos_quality.png

GPSV11Unit.get_corse_over_ground()

获取地面航向(COG)。

返回:

以度为单位的地面航向。

UiFlow2

get_corse_over_ground.png

GPSV11Unit.get_speed_over_ground()

获取对地速度(SOG)。

返回:

对地速度,单位为节。

UiFlow2

get_speed_over_ground.png

GPSV11Unit.set_time_zone(value)

为 GPS 时间设置时区偏移量。

参数:

value – 要设置的时区偏移值。

UiFlow2

set_time_zone.png

GPSV11Unit.get_time_zone()

获取当前时区偏移量。

返回:

当前时区偏移量。

UiFlow2

get_time_zone.png

GPSV11Unit.deinit()

反初始化 GPS 单元,停止所有正在运行的任务并释放资源。

UiFlow2

deinit.png

GPSV11Unit._add_checksum(message)

为与 GPS 模块通信的消息添加校验和。

参数:

message (str) – 将添加校验和的消息。

返回:

带有校验和的消息。

GPSV11Unit._decode_gga(data)

解码 GGA 语句以提取 GPS 质量、卫星数量和海拔高度。

参数:

data (str) – 要解码的 GGA 语句。

GPSV11Unit._decode_rmc(data)

解码 RMC 语句以提取 GPS 时间、纬度、经度、速度、航向和日期。

参数:

data (str) – 要解码的 RMC 语句。

GPSV11Unit._decode_txt(data)

解码 TXT 语句以提取天线状态。

参数:

data (str) – 要解码的 TXT 句子。

GPSV11Unit._monitor()

监控 GPS 数据并解码传入的语句。