SSブログ

ArduinoでGPS情報を取得する [Arduino]

SDカードシリーズはいろいろと物品調達の準備があるため、その間に別のことやりたいと思います。
”ArduinoでGPS情報を取得する”です。
これもいずれはやっておきたかったことなので、このタイミングで試してみたいと思います。

GPSモジュールは秋月電子のを使います。
ググると、たくさんの製作記事がヒットするので情報には困らないと思います。

GPS受信機キット 1PPS出力付き「みちびき」3機受信対応
秋月電子 GPS受信機キット 1PPS出力付き 「みちびき」対応.JPG
"https://akizukidenshi.com/catalog/g/gK-09991/"

GPSモジュールの電源は5Vですが、データIOは3.3Vです。そのため今回はArduino Pro Mini(3.3V, 8MHz)を使います。

【配線図】
Arduino Pro Mini_GPSモジュール_ブレッドボード.jpg

Arduino Pro Mini-GPSモジュール配線.JPG
【スケッチ】
最初にGPSモジュールからの情報をコンソール画面に表示する、サンプルスケッチを試してみます。
Arduino IDEから
ファイル>スケッチ例>SoftwareSerial>SoftwareSerialExample
シアルポートのデータ転送レートを変更しています。
もちろん、シリアルモニタともデータ転送レートは一致させるのですが、9600以外では文字化けしてしまい、うまく表示することが出来ませんでした。
/*
  Software serial multple serial test

 Receives from the hardware serial, sends to software serial.
 Receives from software serial, sends to hardware serial.

 The circuit:
 * RX is digital pin 10 (connect to TX of other device)
 * TX is digital pin 11 (connect to RX of other device)

 Note:
 Not all pins on the Mega and Mega 2560 support change interrupts,
 so only the following can be used for RX:
 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69

 Not all pins on the Leonardo and Micro support change interrupts,
 so only the following can be used for RX:
 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

 created back in the mists of time
 modified 25 May 2012
 by Tom Igoe
 based on Mikal Hart's example

 This example code is in the public domain.

 */
/*******************************************************************************
GPSテスト用シリアル通信プログラム
++++++ note ++++++
・Arduino Pro Mini使用
・スケッチデフォルトのボーレートで動作させると、GPSからの信号が文字化けする。
⇒ボーレートを9600に変更(落とす)するとOK

*******************************************************************************/
#include 

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

void setup() {
  // Open serial communications and wait for port to open:
  //Serial.begin(57600);
  Serial.begin(9600); //ハードシリアルポートのデータ転送レートを9600bpsに設定
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  Serial.println("Goodnight moon!"); //ハードシリアルポートから文字列出力

  // set the data rate for the SoftwareSerial port
  //mySerial.begin(4800);
  mySerial.begin(9600); //ソフトシリアルポートのデータ転送レートを9600bpsに設定
  mySerial.println("Hello, world?"); //ソフトシリアルポートから文字列出力
}

void loop() { // run over and over
  if (mySerial.available()) { //もしソフトシリアルポートにデータあるならば
    Serial.write(mySerial.read());  //ソフトシリアルポートで読み込んだデータを
                                    //ハードシリアルポートに対して出力する
  }
  if (Serial.available()) { //もしハードシリアルポートにデータがあるならば
    mySerial.write(Serial.read()); //ハードシリアルポートで読み込んだデータを
                                    //ソフトシリアルポートに対して出力する
  }
}

電源を入れるとLEDが点灯してGPSを捕捉し始めます。
コールドスタートと言って、まっさらな状態からだと40~90秒くらいでGPSを捕捉するようです。捕捉できたらLEDは1秒周期で点滅を始めます。
キットに付属のソフトウェア(MiniGPS)でデータを受けると、捕捉したGPSの数や緯度経度、時刻とかの情報を表示させることができます。
MiniGPSモニタ.jpg


profile_picture_40×40.JPG
nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。