0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

M5StickC Plus2の後継品であるM5 StickS3が2026年1月に発売されました。

M5 StickS3 公式Docs (https://docs.m5stack.com/ja/core/StickS3)

以前、M5StickC Plus2とUnit GPS v1.1というGPSモジュールを使って、GPSを捕捉するプログラムを書いたので、それを最新のM5 StickS3向けに書き直しました。
といっても、TXとRXのピン番号を変更するだけで、そっくりそのまま動きましたのでメモ。

Unit GPS v1.1について

使用するGPSユニットは、同じM5 Stack社シリーズから出ている「Unit GPS v1.1」になります。
GROVEケーブルでM5 StickS3と繋げることができます。

Unit GPS v1.1 公式Docs(https://docs.m5stack.com/en/unit/Unit-GPS%20v1.1)

裏面のGROVEソケットの部分を見ると、M5 StickS3とUnit GPS v1.1をGROVEケーブルで繋いだ場合、ピンの割り当ては以下のようになることが分かります。

KIMG0205.JPG

M5 StickS3 Unit GPS v1.1
G GND
5V 5V
RXD G9
TXD G10

Unit GPS v1.1からの信号はG9ピン、Unit GPS v1.1への信号はG10ピンで送受信されるので、このピン番号を指定してGPSシリアル通信を開始します。
以下がコードの全体です。

#include <M5Unified.h>
#include <TinyGPSPlus.h>

TinyGPSPlus gps;
HardwareSerial GPSserial(2);

void setup() {
  //GPSserial.begin(115200, SERIAL_8N1, 33, 32); // M5 StickC Plus2の場合
  GPSserial.begin(115200, SERIAL_8N1, 10, 9); // M5 StickS3
  delay(500);
  M5.begin();
  Serial.begin(9600);
  Serial.println("GPS Start");
}

void loop() {
  // GPSデータをTinyGPSPlusで解析
  while (GPSserial.available()) {
    gps.encode(GPSserial.read());
  }

  // 現在位置が有効な場合
  if (gps.location.isValid()) {
    double lat = gps.location.lat();
    double lng = gps.location.lng();
    
    Serial.print("lat:");
    Serial.print(lat);
    Serial.print(",");
    Serial.print("lng:");
    Serial.println(lng);
  }
}

今回は、TinyGPSPlusというライブラリを使いました。
ボーレート9600bpsでシリアル通信を、115200bpsでGPSシリアル通信を行っています。
そして、以下の部分でG10ピンをTXに、G9ピンをRXに指定してGPSシリアル通信を開始しています。

// G10ピンをTXに、G9ピンをRXに指定
GPSserial.begin(115200, SERIAL_8N1, 10, 9);

このコードを実行し、GPSユニットの青いLEDが点滅を開始したら、シリアルモニターに以下のような緯度・経度が出力されます。

lat: 35.71,lng:139.70
lat: 35.71,lng:139.70
lat: 35.71,lng:139.70
...

余談:M5 StickC Plus2のGROVEポート

先代のM5 StickC Plus2のGROVEピンの割り当ては以下です。

KIMG0208.JPG

M5 StickC Plus3 Unit GPS v1.1
G GND
5V 5V
RXD G32
TXD G33

なので、上記のコードをM5 StickC Plus2で動かす場合は、G33ピンをTXに、G32ピンをRXに指定してあげれば同様に動きます。

// G33ピンをTXに、G32ピンをRXに指定
GPSserial.begin(115200, SERIAL_8N1, 33, 32);

ピン番号を変えるだけでM5 StickC Plus2からM5 StickS3に移植できるので便利ですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?