2011年4月22日金曜日

Androidスマートフォンに外部GPSを接続

昨日到着した外部GPSロガー「Trip Recorder747pro」を早速設定してみます。

更新レートは1Hz~5Hzまで5段階で設定可能で、付属のソフトをインストールすると簡単に設定できます。更新レートは”Fix Update-Rate"にて選択します。




とりあえず、せっかく5Hzまで設定できるので、5Hzにて設定します。

ちなみに、現在のGPSの各種データは同じソフトにて確認することができます。



室内でもしっかり衛星を捕捉している様子が分かります。Speedが0km/hでないのは、室内により精度が落ちているため、仕方が無いでしょう。

GPSロガーの設定はこれだけでとりあえず終了。

ただし、ASE Rally Monitor側でプログラムの修正が必要になってきます。というのは、今までの端末内蔵GPSを利用する際には、AndroidスマートフォンのGPS更新レートがMaxで1Hz、つまり1秒に1回でした。で、取得できる速度データというのが、”秒速”。つまり、更新レートが1秒に1回ならば、そのときの秒速をそのまま距離に加えてあげればよかったのです。

で、今回は1秒間に5回のデータ取得になります。つまり0.2秒ごとに取得するわけですが、その際に取得する速度も先ほどと同じように”秒速”になりますので、単純に加算してしまうと、1秒間に5秒速分の距離が加算されてしまいます。

ということで、取得した秒速の1/5を加算すれば良いのですが、実際には浮動小数点から整数へのキャストの際に、ちょっとした問題も発生します。まあ、この辺はそのうち機会があればということで。

早速プログラムを修正していよいよテストをスタート。

まずは、GPSロガーとスマートフォンをBluetooth接続します。一度設定してしまえば、あっけないくらい簡単に接続完了します。

いよいよASE Rally Monitorを起動。この際、スマートフォンのGPSをONにする必要はありません。
既にGPSロガーが接続されていれば、すぐにASE Rally Monitorもスタンバイ完了します。

実際に走行してみると、今までのこま切れ状態から、やたら目まぐるしく距離が動き始めました。

ただ、あまりに一生懸命更新するためか、スマートフォン側の処理が追いつかないような感じで、ある程度追いつかなくなってくると、表示がひっかっかるようになりました。一定間隔でひっかっかるので、処理速度の問題だと思われます。

ということで、今度は3Hzに落としてみてテストをしてみようと思います。

0 件のコメント:

コメントを投稿