割り切ったモジュール、なのだ・・・。
(ホントはGPS microminiが欲しかったけど、間違えてしまった^^)
性能はEM-406aよりちょっと感度が劣るが、なかなか使い易い。 小ささと軽さを生かした方面に向いているだろう。
EM-406aと一緒に動作検証する中で、 一つ問題が上がった。
どうもXBee、ArduinoのNewSoftSerialを使った仮想シリアルと接続した場合に相性が発生。
NMEAセンテンスがところどころ欠落してしまう。
ここでいろいろ調べた。 Sparkfunの回路図をみると、FETで1.8V-3Vのレベル変換をしている。
…3.3Vレベルではないようだ。 arduino を3.3V動作させている場合は ポートのHiレベルに達しているみたいなので、そこは問題ではないらしい。 (5Vでも問題は無かった) 回路を改造したけど結論は出ず。 NewSoftSerialで仮想COMポートを作ってArduinoとPCをつなぎ、ハードウェアポートに割り当てると問題は無かったため、この問題からはちょっと離れることにする。
使われているチップはmicro modular technologiesのMN1010だが、Orion ソフトウェアプロトコルを採用している。 SiRFとは違うチップセットである。 回路的には1PPS出力等もあるので、勿体無い。
(チップセットには他にも、RTC,SDカード回路が接続できる、ソフトウェアを改造すればそのままGPSロガーになる、とあった)
コマンドデータシートを見た感じ、かなり細かい設定変更が出来る。ロボット用途には、sleepコマンドがあるのがとても便利そうだ。 チップへのコマンド送信手段を塞がれているのは面白くないので、ヘッダピンを交換して、1PPSとRxピンを追加してみた。
GPS-miniMod's mod |
感度向上になればと、LNA等がつながる1.8Vレギュレータの出力段にデータシート通りの4.7μFを追加。
改造前に検証していないのでなんともいえないけれど、窓辺だけでなく、2メートルほど室内に入っていても信号を得られるようになっていてびっくり。 電源を入れておくと、測位状態になった時点でLEDが点灯する。 だいぶ改善した気がする。
写真では1PPSを配線していない。 チップの出力が1.8V系らしいので、利用するには外部にレベル変換回路が要るだろう。
Rxはレベル変換していないので推奨出来ない。 3.3V程度のデバイスでのみ使用すること。
これでコマンド授受は正常に行えている。
ボーレート変換のほかに、Sleep,start,ホットスタート,センテンス変更 等ができる。
センテンスにはDTMも使える。 特定の測地系表示が可能になるようだ。
以上レシーバー改造でした。