Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

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