M5StackでModule GNSS を使う

Using the Module GNSS ・ 使用 Module GNSS

M5StackのModule GNSSをコントローラーに接続する最小構成。配線とBOMつき。

この構成をエディタで開く・編集する →

部品リスト(BOM)

部品役割ポートリンク・価格
M5Stack CoreS3Controllergrove_i2c, grove_analog, grove_uart, mbus, usb_c, sdcardofficial page — $59.9
Module GNSSmodulembus, grove_i2c, grove_uartofficial page — $45

配線

作り方

M5Stack CoreS3とModule GNSSを組み合わせて、GPS/GNSS測位を始めるための最小構成ガイドです。Module GNSSはCoreS3のM-Busにスタックするだけで配線不要。I2C通信で位置情報を取得できます。

  1. 部品を用意する — 用意するもの:M5Stack CoreS3本体、Module GNSS、CoreS3とパソコンをつなぐUSB-Cケーブル。
  2. Module GNSSをCoreS3にスタックする — CoreS3の底面にあるM-Busコネクタに、Module GNSSのM-Busコネクタを合わせて重ねます。コネクタの向きを確認し、しっかりと押し込んで固定します。ネジは不要です。
  3. パソコンにつないでMicroPythonを書き込む — USB-CケーブルでCoreS3をパソコンにつなぎます。UIFlowやThonnyなどのツールで、CoreS3にMicroPythonファームウェアが入っていることを確認し、下のコードをデバイスにコピーして実行します。
  4. GNSSデータを確認する — コードを実行すると、シリアルモニタにGNSSの生データ(NMEAセンテンス)が表示されます。初回は衛星を捕捉するまで数分かかることがあります。窓辺や屋外で試してください。

サンプルコード(micropython)

# M5Stack CoreS3 + Module GNSS (via M-Bus, I2C)
# Module GNSS uses I2C address 0x42 (default)
# Wiring: Module GNSS stacked on CoreS3 M-Bus (no cables)

import time
from machine import Pin, I2C

# CoreS3 I2C bus (Port.A / M-Bus I2C)
i2c = I2C(0, scl=Pin(1), sda=Pin(2), freq=100000)

# GNSS module I2C address
GNSS_ADDR = 0x42

# Check if GNSS module is detected
def scan_i2c():
    devices = i2c.scan()
    if GNSS_ADDR in devices:
        print("GNSS module found at 0x{:02X}".format(GNSS_ADDR))
    else:
        print("GNSS module not found! Check connection.")

# Read raw NMEA data from GNSS module (example: read 64 bytes)
def read_gnss():
    try:
        data = i2c.readfrom(GNSS_ADDR, 64)
        print(data.decode('utf-8', errors='ignore'))
    except Exception as e:
        print("Read error:", e)

scan_i2c()

while True:
    read_gnss()
    time.sleep(1)

コツ・安全上の注意

この作り方はAIが構成から生成したものです(未検証)。通電前に配線とコードをご確認ください。

この構成はAIが実在するM5Stack部品から設計し、ポート互換をサーバで検証したものです。編集・共有できます。

エディタで開く →

UnitKit は M5Stack® 製品向けの非公式ツール。作りたいものを書くと、部品リストと配線図が出ます。