ArduinoでGPS情報を取得する [Arduino]
SDカードシリーズはいろいろと物品調達の準備があるため、その間に別のことやりたいと思います。
”ArduinoでGPS情報を取得する”です。
これもいずれはやっておきたかったことなので、このタイミングで試してみたいと思います。
GPSモジュールは秋月電子のを使います。
ググると、たくさんの製作記事がヒットするので情報には困らないと思います。
GPS受信機キット 1PPS出力付き「みちびき」3機受信対応
"https://akizukidenshi.com/catalog/g/gK-09991/"
GPSモジュールの電源は5Vですが、データIOは3.3Vです。そのため今回はArduino Pro Mini(3.3V, 8MHz)を使います。
【配線図】
【スケッチ】
最初にGPSモジュールからの情報をコンソール画面に表示する、サンプルスケッチを試してみます。
Arduino IDEから
ファイル>スケッチ例>SoftwareSerial>SoftwareSerialExample
シアルポートのデータ転送レートを変更しています。
もちろん、シリアルモニタともデータ転送レートは一致させるのですが、9600以外では文字化けしてしまい、うまく表示することが出来ませんでした。
電源を入れるとLEDが点灯してGPSを捕捉し始めます。
コールドスタートと言って、まっさらな状態からだと40~90秒くらいでGPSを捕捉するようです。捕捉できたらLEDは1秒周期で点滅を始めます。
キットに付属のソフトウェア(MiniGPS)でデータを受けると、捕捉したGPSの数や緯度経度、時刻とかの情報を表示させることができます。
”ArduinoでGPS情報を取得する”です。
これもいずれはやっておきたかったことなので、このタイミングで試してみたいと思います。
GPSモジュールは秋月電子のを使います。
ググると、たくさんの製作記事がヒットするので情報には困らないと思います。
GPS受信機キット 1PPS出力付き「みちびき」3機受信対応
"https://akizukidenshi.com/catalog/g/gK-09991/"
GPSモジュールの電源は5Vですが、データIOは3.3Vです。そのため今回はArduino Pro Mini(3.3V, 8MHz)を使います。
【配線図】
【スケッチ】
最初に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 *******************************************************************************/ #includeSoftwareSerial 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の数や緯度経度、時刻とかの情報を表示させることができます。