組み込み技術を向上したい!!

でも組み込み以外にも手を出し始めました・・・

GPS座標をGoogle先生に合わせる方法

GPSモジュールをいただいたので、適当に動かしてみた。いろいろ調べてみると、GPSモジュールはuartで、NMEA形式でデータを出力するやつやった。

1秒毎にいろいろデータを吐き出してくれるみたいで、必要な部分を任意に抜き取って利用する感じ。

RMCの情報を参考にして、デコードしてみるとやりやすかった。

RMCはこんな感じ。

$xxRMC,time,status,lat,NS,long,EW,spd,cog,date,mv,mvEW,posMode,navStatus*cs<CR><LF>

latが緯度ね。次のNSで北か南か。longが経度、次のEWで東か西か。良くできてるね。

spdで対地速度、cogで対地方位もわかるらしい。一つのモジュールでかなりいろいろやってくれる。

mvとかは地磁気関係みたい。

 

特に目的もなかったので、タラタラ流れてくるデータを見てたら、GoogleMapと照合したくなった。

データから得られた座標をGoogleMapで検索すると、結構ずれてる!!

解決しないとモヤモヤするので、一生懸命調べました。んで、見つけました。

データの座標形式がddmm.mmmmみたいになっとるんでddがdegreeで度やろう、んで、mmmとかは小数点以下やろうと思ってたけど違った!

GoogleMapはdegreeのみで表示してる。なんでか知らんけど途中からフォーマットを勘違いして、dd.mmmで考えとったんで、mmmの部分は0.6で割ってdegreeにしてあげて解決。

まぁ、これは俺が勝手にmmmの部分を小数点以下と思ってたからで、実際はmm.mmmなので、素直にmm.mmmを60で割ってやって、ddに足せばいいだけやね。