ArduinoでGPSモジュールGM-318をつかってみた

・はじめに

GPSモジュールが安売りされていた。

通常価格は3250円だそうだがなんと999円

ということで勢いで買ってしまった。

 

GPSとは

複数人工衛星から発射される電波受信し、その信号到達する時間差計算することで受信機位置を知ることができる。

というもの。GPSとは - 時事用語 Weblio辞書

から引用。

 

GPSが吐き出すデータはNMEAフォーマトの情報。

NMEAは音波探査機、ソナー、風速計

ジャイロコンパス、自動操舵装置、GPS受信機

などの海上電子装置における、電気的・データを

合わせた使用のこと。

 

NMEAはセンテンスの集まりで、1センテンスは

「$」ではじまり、「\r\n」(改行)で終わる。

 

・目的

Arduino でNMEAデータを受け取り

シリアル通信にてデータを表示する。

 

・使用したもの

GM-318

Arduino UNO 

ブレッドボード

ジャンパワイヤ

 

GM-318の特徴

シリアル通信可能(デフォルトでは4800bps)

NMEA0183 プロトコルをサポート

f:id:shangtian:20170923082314p:plain

図1 :ピンナンバー割り振り

 

表1:ピン説明

Pin

Name

機能

1

GND

Ground

2

VCC

電源供給3.3~3.5V

3

TX

シリアルデータ送信

4

RX

シリアルデータ受信

5

PWR_CTRL

パワーセーブピン

 

5ピンの機能を使わない時は

GNDに接続すること

 

・方法

(1)回路作成

回路図を図に示した

 

f:id:shangtian:20170923074932p:plain

図2:回路図

 

(2)プログラム作成

 図3にスケッチをしめした。 

今回はGPSモジュールから受け取った値

を単純にシリアルモニタで確認できるように

した。

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); //RX,TX

void setup() {

  Serial.begin(57600);

  while(!Serial){
    ;
  }
  mySerial.begin(4800); //4800bpsで指定
}

void loop() {
  if(mySerial.available()){
    Serial.write(mySerial.read());
  }

}

図3:スケッチ

 

・結果

結果は図4。室内で計測したため

位置情報は得られなかったが、

NMEAデータがどんどん吐き出されている

のがわかる。

f:id:shangtian:20170927104224p:plain

図4:NMEAデータ

 

ということで外へ行ってデータ収集。

f:id:shangtian:20170927104914j:plain

図5:データ収集

 

図5の状態でうろうろしてたんで

かなり変な人だと思われただろうw

周りの歩行者からの視線を感じた。

 

Tera Term を使いログをとった。

 

計測結果を示すことはできないが

うまく測定できた。

 

<参考文献>

GPSのNMEAフォーマット

NMEA 0183 - Wikipedia

deviceplus.jp