Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

Arduino UNO R3 と秋月のGPS受信キット「AE-GYSFDMAXB」をつかう

Arduino UNO R3 と秋月のGPS受信キット「AE-GYSFDMAXB」をつかう方法です。

AE-GYSFDMAXBは2200円で購入可能ならくらくGPSキットです。
レギュレーターやバックアップ電池まわりが予め実装されておりお手軽。
f:id:shuzo_kino:20170704220021j:plain
画像は秋月公式よりお借りしましたakizukidenshi.com

実際のところ

ハードウェア

AE-GYSFDMAXBの資料にはD0/D1を使うパターンが書いてます。
が、これだと使い辛い事この上ないので、ソフトウェアシリアルを使うバージョンに変更。
正確に1秒のハートビートを出してくれる"1PPS"は今回は不要なのでオミット。
実体配線はこんなかんじ。

ソフトウェア

#include <SoftwareSerial.h>

#define SOFT_RX 10
#define SOFT_TX 11

SoftwareSerial mySerial(SOFT_RX, SOFT_TX);
char incomingByte = 0;

void setup() {
  mySerial.begin(9600);
  Serial.begin(115200);
  while (!mySerial && !Serial) {;}
  Serial.println("GPS Logging...");
}

void loop() {
  if (mySerial.available() > 0) {
      incomingByte = mySerial.read();
      Serial.write(incomingByte);
  }
}

以下のようなパケットが1秒ごとにまとめて出てきます。
実験開始時には台風3号の影響かまるでシグナルを拾いませんでしたが、
雨雲が行ったら同じ場所に置いてるのに拾うようになりました。
理屈で分かってることでも、体験すると色々感じるものがありますね。

$GPGGA,144037.000,3538.9244,N,13932.5461,E,1,4,1.49,99.4,M,39.3,M,,*66
$GPGLL,3538.9244,N,13932.5461,E,144037.000,A,A*56
$GPGSA,A,3,05,02,15,30,,,,,,,,,3.16,1.49,2.79*06
$GPGSV,3,1,12,13,72,353,16,05,61,086,30,20,60,323,,15,49,276,27*7B
$GPGSV,3,2,12,02,26,173,17,30,26,047,18,21,20,315,17,24,19,202,*7D
$GPGSV,3,3,12,29,11,250,,28,09,082,,193,,,,49,,,*49
$GPRMC,144037.000,A,3538.9244,N,13932.5461,E,0.68,357.01,040717,,,A*6A
$GPVTG,357.01,T,,M,0.68,N,1.26,K,A*36
$GPZDA,144037.000,04,07,2017,,*54