コスパ最強のGPS受信モジュール (ATGM336H)を使ってみた‼
こんにちは!
現在値の測定をしたいって時なんかに使われるのがGPSセンサーです。
そのGPSセンサーの定番と言えば、u-blox社が提供しているNEOシリーズ(NEO-M8N/M9N/F9P等)でした!
しかし、ここ最近では中国の中科微電子社が開発したATGM336Hという新たなGPSセンサーが主流化しつつあるのです‼
その理由はズバリ、低コスパ、次世代の最強スペック、想像を絶するコンパクト差が上げられます‼
しかも、NEOシリーズと同じ配線、プログラムで使えちゃいますのでATGM336Hへの乗り換えが楽です‼
この記事ではそのすごさを説明しながら、早速使ってレビューしていきたいと思います‼
①「使う部品」
・GPS受信モジュール (ATGM336H) 1050円
・Arduino UNO R3互換ボード (Type-C) 1090円
・ジャンパーワイヤー 1セット(10色×1本)オス-メス 110円
②「配線図」
| ATGM336H | Arduino |
| VCC | 5V |
| GND | GND |
| TX | 2 |
| RX | 3 |
③「開発環境」
・Arduino IDEというソフトを使ってプログラムをArduinoに書き込みます!
※Arduino IDE導入済みの方はスキップしてOKです。
Arduino IDEをダウンロードされていない方は、こちらの①「Arudino IDEをダウンロード」参考に。
・次に、GPSセンサーで取得した値を見やすく表示するためのライブラリーを入れます‼
TinyGPS++というライブラリーで、これを入れることで、GPSデバイスから位置情報などを見やすく表示してくれます‼
Arduino IDEを開きツール→ライブラリーの管理→検索するところに「TinyGPS」と入力→「TinyGPSPlus by Mikal Hart バージョン」
というのが出てくるかと思いますので、それをインストール、これで準備完了です‼
④「プログラミング」
下記のコードをコピペして書き込んでみましょう‼
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
#include <TinyGPS++.h> #include <SoftwareSerial.h> // シリアル通信に使用するpinを指定。 int RXPin = 2; int TXPin = 3; int GPSBaud = 9600; // TinyGPS++オブジェクトを作成する TinyGPSPlus gps; // 「gpsSerial」というソフトウェアシリアルポートを作成します SoftwareSerial gpsSerial(RXPin, TXPin); void setup() { // シリアルポートを9600で起動します Serial.begin(9600); gpsSerial.begin(GPSBaud); } void loop() { while (gpsSerial.available() > 0) if (gps.encode(gpsSerial.read())) displayInfo(); // 5000ミリ秒が経過し、文字が入力されていない場合「No GPS detected」とエラーを表示します。 if (millis() > 5000 && gps.charsProcessed() < 10) { Serial.println("No GPS detected"); while(true); } } void displayInfo() { if (gps.location.isValid()) { Serial.print("Latitude: "); Serial.println(gps.location.lat(), 6); Serial.print("Longitude: "); Serial.println(gps.location.lng(), 6); Serial.print("Altitude: "); Serial.println(gps.altitude.meters()); } else { Serial.println("Location: Not Available"); } Serial.print("Date: "); if (gps.date.isValid()) { Serial.print(gps.date.month()); Serial.print("/"); Serial.print(gps.date.day()); Serial.print("/"); Serial.println(gps.date.year()); } else { Serial.println("Not Available"); } Serial.print("Time: "); if (gps.time.isValid()) { if (gps.time.hour() < 10) Serial.print(F("0")); Serial.print(gps.time.hour()); Serial.print(":"); if (gps.time.minute() < 10) Serial.print(F("0")); Serial.print(gps.time.minute()); Serial.print(":"); if (gps.time.second() < 10) Serial.print(F("0")); Serial.print(gps.time.second()); Serial.print("."); if (gps.time.centisecond() < 10) Serial.print(F("0")); Serial.println(gps.time.centisecond()); } else { Serial.println("Not Available"); } Serial.println(); Serial.println(); delay(1000); } |
GPSセンサー本体は、電源が入ると赤色LEDが点灯、位置情報の取得に成功すると赤色LEDが点滅します。
書き込み後、シリアルモニターを開き、こんな表示がでたら配線などが違うのでご確認ください。
⑤「結果」
現減を入れたGPSセンサーを窓際に置き、数分待つとLEDが点滅しだし、下記の様にシリアルモニターに表示されます‼
Latitude(緯度)の数値とLongitude(経度)をGoogleマップに入力すると、現在地が表示されます‼
入力の仕方は「Latitude,Longitude」の順で入力します。間に「, 」(カンマ)を入れるようにしましょう!
現在制作中。近々完成予定。





