GPSモジュールで測定してみる [Arduino]
■目的
安価なGPSモジュールとArduinoで位置情報を取得してみた
■環境
・Windows 10 Pro
・OS Ver1709 /ビルド 16299.125
・Arduino IDE 1.●.●
・Arduino(互換)
GPSモジュール(NEO-6M NEO-6M-0-001)
・HiLetgo NEO6M U-blox MV2 Flight コントローラー NEO-6M APM 2.5 GPSモジュール Arduino EEPROMに対応
・NEO-6M GPSモジュール(NEO-6M-0-001)+アンテナ
・UART通信(シリアル通信)
・パワー:3~5V
・インタフェース:RS232 TTL
※https://www.amazon.co.jp/HiLetgo-%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%A9%E3%83%BC-GPS%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB-Arduino-EEPROM%E3%81%AB%E5%AF%BE%E5%BF%9C/dp/B01D1D0F5M
■配線
Arduino の GND - GPSモジュールの GND
Arduino の 3.3V - GPSモジュールの VCC
Arduino の 3ピン - GPSモジュールの RX
Arduino の 4ピン - GPSモジュールの TX
■分かったこと
・窓際でないと受信しませんでした。
・GPSモジュールの青色LEDが点滅すると、GPS信号を受信できているようです。
・GPS受信前はNMEAデータの最初の数行は出力内容が「***」となりますが、受信が確立するとボードの青色LEDが点滅し、「数字」が出力されるようになります。
・GPS衛星からの信号には、現在位置だけでなく現在時刻(日付・日時)を知ることができる。
・NMEA-0183は、GPSで最も一般的な通信フォーマット。
・NMEA-0183フォーマットのメッセージは、$GPで始まる。$GPに続く3文字の記号がメッセージの種類を表している。
・Googleマップでは、 http://maps.google.com/maps?q=緯度,経度 というURLにアクセスすると、その緯度経度座標にマーカーが立った地図が表示されるようになっている。つまり、GPSモジュールから取得した
緯度経度情報をこのURLに当てはめてしまえば、現在位置にマーカーが立った地図を Googleマップで表示するURLリンクを生成することができる。
・Googleマップについてよく調べてみると、GoogleマップのURLの座標は60進数ではなく10進数で表現しなければならないことがわかった。 つまり、GPSモジュールから出力されるNMEA-0183フォーマットの60進数表記の緯度経度座標を、Googleマップ用の10進数表記の緯度経度座標に変換する必要がある。
・みちびき(準天頂衛星システム)とは、準天頂軌道の衛星が主体となって構成されている日本の衛星測位システムのことで、英語ではQZSS(Quasi-Zenith Satellite System)と表記します。
・みちびきは3基打ち上げられていて、2017年に4基目も打ち上げられ。常に日本の上空には2基以上で測位することができるようになって、測位誤差は数cmの精度までになった。
・1PPS (Pulse Per Second) 出力はLED が接続されており、GPS Fix 時には1秒ごとにLEDが点滅します。
・GPS使って位置を知るだけでは寂しい。このGPS モジュールの最大の利点は1PPSです。
1PPS (Pulse Per Second) 出力はLED が接続されており、GPS Fix 時には1秒ごとにLEDがフラッシュします。
この1PPSはGPS衛星に搭載されている原子時計と同期しているので正確です。ただし、GPSモジュール内蔵クロックが48MHzなので
最大42nsぐらいのジッタはありそうです。長い目で見ると原子時計並に正確な1Hzが得られるというものです。
・衛星番号
みきびき1号 193番 みちびき2号 194番 みちびき3号 ?番 199 みちびき4号 ?番 195
・Lat / Long
■これから調べること
・NEO-6M は GPS(アメリカ)のみに対応していて、GLONASS (ロシア)やQZSS(日本)は対応していない? 本当か
■参考
http://www.ayomaonline.com/iot/gy-gps6mv2-neo6mv2-neo-6m-gps-module-with-arduino-usb-ttl/ ★/今回NMEA出力した、プログラム、回路図(配線)今回Nanoを使用
https://qiita.com/snumano/items/e03d16e232e4ee1e9d24 配線
http://www2.kaiyodai.ac.jp/~jtahar0/posts/activity9.html Google mapに表示する方法
http://www.hiramine.com/physicalcomputing/general/gps_nmeaformat.html GPS NMEAデータフォーマット
http://www.spa-japan.co.jp/tech_old/GM38m5.html GPS NMEAデータ
http://www2.nc-toyama.ac.jp/~mkawai/lecture/radionav/nmea0183.html GPS NMEAデータ
http://iot.keicode.com/arduino/arduino-gps.php
http://deviceplus.jp/hobby/entry060/ アルディーノ 11,10を使用した コードあり
https://ambidata.io/blog/2017/08/04/gps-2/ ESP8266 ArduinoとGPSモジュールでGPSロガーを作る
https://lowreal.net/2016/02/17/1 ublox NEO-6M GPS Module
http://mcommit.hatenadiary.com/entry/2016/09/07/233816 NMEAセンテンス説明/テラターム設定
https://support.garmin.com/faqSearch/ja-JP/faq/content/8Yi0K3KRw77vBMOP6srxK9 衛星番号http://www.ne.jp/asahi/nature/kuro/HGPS/principle_gps.htm 衛星番号
http://www.ne.jp/asahi/nature/kuro/HGPS/principle_gps.htm ★★★GPSの仕組み
安価なGPSモジュールとArduinoで位置情報を取得してみた
■環境
・Windows 10 Pro
・OS Ver1709 /ビルド 16299.125
・Arduino IDE 1.●.●
・Arduino(互換)
GPSモジュール(NEO-6M NEO-6M-0-001)
・HiLetgo NEO6M U-blox MV2 Flight コントローラー NEO-6M APM 2.5 GPSモジュール Arduino EEPROMに対応
・NEO-6M GPSモジュール(NEO-6M-0-001)+アンテナ
・UART通信(シリアル通信)
・パワー:3~5V
・インタフェース:RS232 TTL
※https://www.amazon.co.jp/HiLetgo-%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%A9%E3%83%BC-GPS%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB-Arduino-EEPROM%E3%81%AB%E5%AF%BE%E5%BF%9C/dp/B01D1D0F5M
■配線
Arduino の GND - GPSモジュールの GND
Arduino の 3.3V - GPSモジュールの VCC
Arduino の 3ピン - GPSモジュールの RX
Arduino の 4ピン - GPSモジュールの TX
■分かったこと
・窓際でないと受信しませんでした。
・GPSモジュールの青色LEDが点滅すると、GPS信号を受信できているようです。
・GPS受信前はNMEAデータの最初の数行は出力内容が「***」となりますが、受信が確立するとボードの青色LEDが点滅し、「数字」が出力されるようになります。
・GPS衛星からの信号には、現在位置だけでなく現在時刻(日付・日時)を知ることができる。
・NMEA-0183は、GPSで最も一般的な通信フォーマット。
・NMEA-0183フォーマットのメッセージは、$GPで始まる。$GPに続く3文字の記号がメッセージの種類を表している。
・Googleマップでは、 http://maps.google.com/maps?q=緯度,経度 というURLにアクセスすると、その緯度経度座標にマーカーが立った地図が表示されるようになっている。つまり、GPSモジュールから取得した
緯度経度情報をこのURLに当てはめてしまえば、現在位置にマーカーが立った地図を Googleマップで表示するURLリンクを生成することができる。
・Googleマップについてよく調べてみると、GoogleマップのURLの座標は60進数ではなく10進数で表現しなければならないことがわかった。 つまり、GPSモジュールから出力されるNMEA-0183フォーマットの60進数表記の緯度経度座標を、Googleマップ用の10進数表記の緯度経度座標に変換する必要がある。
・みちびき(準天頂衛星システム)とは、準天頂軌道の衛星が主体となって構成されている日本の衛星測位システムのことで、英語ではQZSS(Quasi-Zenith Satellite System)と表記します。
・みちびきは3基打ち上げられていて、2017年に4基目も打ち上げられ。常に日本の上空には2基以上で測位することができるようになって、測位誤差は数cmの精度までになった。
・1PPS (Pulse Per Second) 出力はLED が接続されており、GPS Fix 時には1秒ごとにLEDが点滅します。
・GPS使って位置を知るだけでは寂しい。このGPS モジュールの最大の利点は1PPSです。
1PPS (Pulse Per Second) 出力はLED が接続されており、GPS Fix 時には1秒ごとにLEDがフラッシュします。
この1PPSはGPS衛星に搭載されている原子時計と同期しているので正確です。ただし、GPSモジュール内蔵クロックが48MHzなので
最大42nsぐらいのジッタはありそうです。長い目で見ると原子時計並に正確な1Hzが得られるというものです。
・衛星番号
みきびき1号 193番 みちびき2号 194番 みちびき3号 ?番 199 みちびき4号 ?番 195
・Lat / Long
■これから調べること
・NEO-6M は GPS(アメリカ)のみに対応していて、GLONASS (ロシア)やQZSS(日本)は対応していない? 本当か
■参考
http://www.ayomaonline.com/iot/gy-gps6mv2-neo6mv2-neo-6m-gps-module-with-arduino-usb-ttl/ ★/今回NMEA出力した、プログラム、回路図(配線)今回Nanoを使用
https://qiita.com/snumano/items/e03d16e232e4ee1e9d24 配線
http://www2.kaiyodai.ac.jp/~jtahar0/posts/activity9.html Google mapに表示する方法
http://www.hiramine.com/physicalcomputing/general/gps_nmeaformat.html GPS NMEAデータフォーマット
http://www.spa-japan.co.jp/tech_old/GM38m5.html GPS NMEAデータ
http://www2.nc-toyama.ac.jp/~mkawai/lecture/radionav/nmea0183.html GPS NMEAデータ
http://iot.keicode.com/arduino/arduino-gps.php
http://deviceplus.jp/hobby/entry060/ アルディーノ 11,10を使用した コードあり
https://ambidata.io/blog/2017/08/04/gps-2/ ESP8266 ArduinoとGPSモジュールでGPSロガーを作る
https://lowreal.net/2016/02/17/1 ublox NEO-6M GPS Module
http://mcommit.hatenadiary.com/entry/2016/09/07/233816 NMEAセンテンス説明/テラターム設定
https://support.garmin.com/faqSearch/ja-JP/faq/content/8Yi0K3KRw77vBMOP6srxK9 衛星番号http://www.ne.jp/asahi/nature/kuro/HGPS/principle_gps.htm 衛星番号
http://www.ne.jp/asahi/nature/kuro/HGPS/principle_gps.htm ★★★GPSの仕組み
2018-01-07 10:06
nice!(0)
コメント(0)
コメント 0