トップ «前の日記(2025-04-01) 最新 編集

Cocoa練習帳

iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど

2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|02|03|04|05|

2025-05-02 [M5Stack] 位置情報を取得する

M5Stack Basicで位置情報を取得した手順を備忘録として残す。

M5Stack Basic v2.7にUnit GPS v1.1を繋げると位置情報が取得できる。ただし、Unit GPS v1.1はPORT Cで接続となるが、M5Stack Basic v2.7はPORT AのみなのでBase M5GO Bottomを繋げて、PORT Cを用意する。

Base M5GO BottomはM5Stackをバッテリー駆動できるという利点もある。

M5Stack関連のライブラリは、おそらく、整理が追いついていないのだと思われ、似たコードを別の方法で記述できるため、少々混乱したが、自分なりに整理してみた。

#include <M5Stack.h>
#include <TinyGPS++.h>
 
static const uint32_t GPSBaud = 115200;
TinyGPSPlus gps;
double latitude, longitude;
int altitude, speed;
 
static const int RXPin = 16, TXPin = 17;
HardwareSerial& gpsSerial = Serial2;
 
void initGPS() {
  gpsSerial.begin(GPSBaud, SERIAL_8N1, RXPin, TXPin); // PORT C
}
 
void setup() {
  M5.begin();               // M5Stackの初期化
  M5.Power.begin();         // 電源関係の初期化
  Serial.begin(115200);     // USB経由のシリアルモニター初期化
 
  initGPS();
 
  // LCDに初期メッセージを表示
  M5.Lcd.setTextSize(2);
  M5.Lcd.setCursor(0, 0);
  M5.Lcd.println("Starting GPS Read");
}
 
void loop() {
  M5.update();
  while (gpsSerial.available() > 0) {
    gps.encode(gpsSerial.read());
  }
  if (gps.location.isUpdated()) {
    M5.Lcd.clear(BLACK);
    M5.Lcd.setCursor(0, 0);
    M5.Lcd.println("gps.location.isUpdated");
    M5.Lcd.print("Lat: ");
    M5.Lcd.println(gps.location.lat(), 6);
    M5.Lcd.print("Lng: ");
    M5.Lcd.println(gps.location.lng(), 6);
    M5.Lcd.print("Sats: ");
    M5.Lcd.println(gps.satellites.value());
  }
}

トップ «前の日記(2025-04-01) 最新 編集