Amazonで安いGPSモジュールがあったのでArduinoに接続して時刻データを読んでみた。
このGPSモジュール、基板上にはGY-GPS6MV2と書いてある。主要なモジュールはblox NEO-6M、コイン電池とEEPROM、GPSアンテナ用コネクタが付いている。電源は3.3V、シリアル9600bpsで通信。衛星からの電波を安定して受信しているときは青色LEDが点滅する。
データシート:
NEO-6 u-blox 6 GPS Modules(PDF)
Hardware Inegration Manual(PDF)
u-blox 6 Receiver Description Including Protocol Specification(PDF)
NEO-6Mはシリアル接続の他にUSBでパソコンに直結できるらしいのだがこのモジュールにはそれらしき引き出しパターンなどはない。時刻取得程度だと特に設定もなく、モジュールのRXとマイコンのTXは接続しなくてもよさそう。

作例:
GY-GPS6MV2 – NEO6MV2 (Neo 6M) GPS Module with Arduino / USB TTL
(WEBSITE AND BLOG OF AYOMA WIJETHUNGA)
GY-GPS6MV2をArduinoでテスト(woosan900rrの日記)
マイコンはArduino Leonardo互換のSeeeduino Liteを使用した。5V/3.3Vの切り替えができて便利。モジュールとの接続は電源を3.3V、GND、モジュールのTXとArduinoのRX(D0)を接続する。
さて、GPSからのデータはNMEAフォーマットというカンマで区切られたテキストデータで取得できる。
NMEA 0183 フォーマット
このうち、GGAメッセージ(第1フィールドが$GPGGA)の行の第2フィールドが時刻データ(UTC)である。第14フィールドは補正時間らしいのだが今回は無視した。チエックサムも無視している。
スケッチはこちら:
https://gist.github.com/houmei/8fbc1e223611258204b071745722b071
ちょっとがんばってSerial.readStringUntil('\n')を使ってみた。一文字ずつ受信して処理するのは大変なのでStringクラスで全部やった。ついでに今後のためにString.toInt()で整数に変換して時刻もJSTに補正した。
こちらが参考になった:【prog】Arduino・シリアルで文字列受信するには(ゆうがたの特にコレと言って)
今後は座標やその他の情報が取得できるようカンマ区切りでデータを読み取るようにしたい。以下はそのためのメモ。
文字列を区切り文字で分割するsplit()関数 for Arduino(山形大学工学部ロボタスティクス)
Arduinoにつないだセンサからの値をパソコンで記録する(6)(Ukkari blog)
![]() | Rasbee GY-NEO6MV2 Flight コントローラー NEO-6M APM 2.5 GPSモジュール Arduino用 1個 [並行輸入品] Rasbee 売り上げランキング : 1072653 Amazonで詳しく見る by G-Tools |
このGPSモジュール、基板上にはGY-GPS6MV2と書いてある。主要なモジュールはblox NEO-6M、コイン電池とEEPROM、GPSアンテナ用コネクタが付いている。電源は3.3V、シリアル9600bpsで通信。衛星からの電波を安定して受信しているときは青色LEDが点滅する。
データシート:
NEO-6 u-blox 6 GPS Modules(PDF)
Hardware Inegration Manual(PDF)
u-blox 6 Receiver Description Including Protocol Specification(PDF)
NEO-6Mはシリアル接続の他にUSBでパソコンに直結できるらしいのだがこのモジュールにはそれらしき引き出しパターンなどはない。時刻取得程度だと特に設定もなく、モジュールのRXとマイコンのTXは接続しなくてもよさそう。

作例:
GY-GPS6MV2 – NEO6MV2 (Neo 6M) GPS Module with Arduino / USB TTL
(WEBSITE AND BLOG OF AYOMA WIJETHUNGA)
GY-GPS6MV2をArduinoでテスト(woosan900rrの日記)
マイコンはArduino Leonardo互換のSeeeduino Liteを使用した。5V/3.3Vの切り替えができて便利。モジュールとの接続は電源を3.3V、GND、モジュールのTXとArduinoのRX(D0)を接続する。
さて、GPSからのデータはNMEAフォーマットというカンマで区切られたテキストデータで取得できる。
NMEA 0183 フォーマット
このうち、GGAメッセージ(第1フィールドが$GPGGA)の行の第2フィールドが時刻データ(UTC)である。第14フィールドは補正時間らしいのだが今回は無視した。チエックサムも無視している。
スケッチはこちら:
https://gist.github.com/houmei/8fbc1e223611258204b071745722b071
ちょっとがんばってSerial.readStringUntil('\n')を使ってみた。一文字ずつ受信して処理するのは大変なのでStringクラスで全部やった。ついでに今後のためにString.toInt()で整数に変換して時刻もJSTに補正した。
こちらが参考になった:【prog】Arduino・シリアルで文字列受信するには(ゆうがたの特にコレと言って)
今後は座標やその他の情報が取得できるようカンマ区切りでデータを読み取るようにしたい。以下はそのためのメモ。
文字列を区切り文字で分割するsplit()関数 for Arduino(山形大学工学部ロボタスティクス)
Arduinoにつないだセンサからの値をパソコンで記録する(6)(Ukkari blog)
![]() | Seeeduino Lite Seeed Studio 売り上げランキング : Amazonで詳しく見る by G-Tools |
![Rasbee GY-NEO6MV2 Flight コントローラー NEO-6M APM 2.5 GPSモジュール Arduino用 1個 [並行輸入品]](https://images-fe.ssl-images-amazon.com/images/I/41vu%2BA1VG4L._SL160_.jpg)
