GPS Module

COM.GPS 是 M5Stack 堆叠模块系列中的卫星定位模块。它基于 NEO-M8N 模块开发。

支持以下产品:

GPSModule

COM.GPSModule

MicroPython 应用示例:

  1import os, sys, io
  2import M5
  3from M5 import *
  4from module import GPSModule
  5
  6
  7GPST = None
  8label0 = None
  9label1 = None
 10label2 = None
 11label3 = None
 12label4 = None
 13label5 = None
 14label6 = None
 15label7 = None
 16label8 = None
 17label9 = None
 18label10 = None
 19label11 = None
 20com_gps_0 = None
 21
 22
 23def setup():
 24    global \
 25        GPST, \
 26        label0, \
 27        label1, \
 28        label2, \
 29        label3, \
 30        label4, \
 31        label5, \
 32        label6, \
 33        label7, \
 34        label8, \
 35        label9, \
 36        label10, \
 37        label11, \
 38        com_gps_0
 39
 40    M5.begin()
 41    Widgets.fillScreen(0x222222)
 42    GPST = Widgets.Title(
 43        "             GPS Module Demo", 3, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu18
 44    )
 45    label0 = Widgets.Label(
 46        "Locate status:", 10, 27, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18
 47    )
 48    label1 = Widgets.Label(
 49        "Satellite nums:", 2, 52, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18
 50    )
 51    label2 = Widgets.Label("Longitude:", 40, 105, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 52    label3 = Widgets.Label("Latitude:", 56, 77, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 53    label4 = Widgets.Label("Date:", 85, 131, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 54    label5 = Widgets.Label("Time:", 83, 159, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 55    label6 = Widgets.Label("label6", 150, 28, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 56    label7 = Widgets.Label("label7", 150, 52, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 57    label8 = Widgets.Label("label8", 150, 79, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 58    label9 = Widgets.Label("label9", 150, 107, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 59    label10 = Widgets.Label("label10", 150, 134, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 60    label11 = Widgets.Label("label11", 150, 160, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
 61
 62    com_gps_0 = GPSModule(2, 13, 14)
 63    com_gps_0.set_time_zone(8)
 64
 65
 66def loop():
 67    global \
 68        GPST, \
 69        label0, \
 70        label1, \
 71        label2, \
 72        label3, \
 73        label4, \
 74        label5, \
 75        label6, \
 76        label7, \
 77        label8, \
 78        label9, \
 79        label10, \
 80        label11, \
 81        com_gps_0
 82    M5.update()
 83    if com_gps_0.is_locate_valid():
 84        label6.setText(str("OK"))
 85    else:
 86        label6.setText(str("False"))
 87    label7.setText(str(com_gps_0.get_satellite_num()))
 88    label8.setText(str(com_gps_0.get_latitude()))
 89    label9.setText(str(com_gps_0.get_longitude()))
 90    label10.setText(str(com_gps_0.get_date()))
 91    label11.setText(str(com_gps_0.get_time()))
 92
 93
 94if __name__ == "__main__":
 95    try:
 96        setup()
 97        while True:
 98            loop()
 99    except (Exception, KeyboardInterrupt) as e:
100        try:
101            from utility import print_error_msg
102
103            print_error_msg(e)
104        except ImportError:
105            print("please update to latest firmware")

UiFlow2 应用示例:

example.png

gps_core2_example.m5f2

class GPSModule

构造函数

class GPSModule(id, rx, tx)

初始化函数。

参数:
  • id (int) – UART 控制器 id,范围为 0 到 2。

  • rx (int) – UART 接收引脚。

  • tx (int) – UART tx 引脚。

UIFLOW2:

init.png

Methods

GPSModule.set_time_zone(value)

设置时区函数。

参数:

value (int) – timezone 值

UIFLOW2:

set_time_zone.png

GPSModule.get_time_zone()

获取时区函数。

Return (int):

timezone 值

UIFLOW2:

get_time_zone.png

GPSModule.get_satellite_num()

获取卫星数量。

Return (str):

卫星数量值。

UIFLOW2:

get_satellite_num.png

GPSModule.get_altitude()

获取海拔高度。

Return (str):

海拔单位为米。

UIFLOW2:

get_altitude.png

GPSModule.get_time()

获取时间。

Return (str):

time(hh:mm:ss)

UIFLOW2:

get_time.png

GPSModule.get_date()

获取日期。

Return (str):

date(dd/mm/yy)

UIFLOW2:

get_date.png

GPSModule.get_latitude()

获取纬度。

Return (str):

纬度,使用度分格式(ddmm.mmmmmN/S)。

UIFLOW2:

get_latitude.png

GPSModule.get_longitude()

获取经度。

Return (str):

经度,使用度分格式(ddmm.mmmmmE/W)。

UIFLOW2:

get_longitude.png

GPSModule.get_latitude_decimal()

获取纬度小数。

Return (float):

纬度十进制(dd.dddd)。

UIFLOW2:

get_latitude_decimal.png

GPSModule.get_longitude_decimal()

获取经度(十进制度)。

Return (float):

经度十进制度数(dd.dddd)。

UIFLOW2:

get_longitude_decimal.png

GPSModule.get_speed(type)

获取速度。

Return (str):

speed。

参数:

type (int) – 速度类型,0 表示 km/h,1 表示 knot/h。选项:- km/h:0 - knot/h:1。

UIFLOW2:

get_speed.png

GPSModule.get_course()

获取课程。

Return (str):

温度单位为 °。

UIFLOW2:

get_course.png

GPSModule.is_locate_valid()

获取定位状态。

Return (bool):

定位状态,true 表示已定位,false 表示未定位。

UIFLOW2:

is_locate_valid.png