Tako can fry!

とほほ・・・

pcDuino で簡易 GPS ロガー

以前買った GPS 基板(MARY-GB基板)を遊ばせたままで、かと言ってマイコン使って SD カードにログを書き出すプログラムを書くのも面倒だ。
そこで、この pcDuino。
もともと MARY-GB 基板には GPS ユニットから出力される UART 信号を USB に変換して出してくれるようになっているので、PC に挿せばそのまま GPS のデータが読めてしまう。
pcDuino もモバイルバッテリーで動きそうだったし、ちょっと繋いでみたら簡単に GPS ロガーができてしまったのでご紹介。

~/Public のディレクトリを samba で他の PC から見れるようにしているので、電源を入れたときに、そこへ GPS のログを掃き出すようにしておく。
ちなみに、上書きしないように電源投入の都度、ログの番号を進めておくようにした。
cu コマンドはインストールする必要があるかもしれないけど、rc.local に次のスクリプトを追加しただけで、簡単に GPS ロガーになってしまった。
あとは外出したときに電源を入れて、帰ってきたら LAN ケーブルにつなげてログファイルを取り出すだけ。

USBPORT0="/dev/ttyUSB0"

if [ -e "$USBPORT0" ]; then
    chmod a+rw "$USBPORT0"

    LOG_PREFIX="/home/ubuntu/Public/gps"
    for i in `seq 1 100`
    do
        LOG_FILE="$LOG_PREFIX$i.log"
        if [ ! -e "$LOG_FILE" ]; then
            break
        fi
    done

    echo "GPS Log to $LOG_FILE"

    cu -s 9600 -l "$USBPORT0" > "$LOG_FILE"
fi


データは NMEA と呼ばれる形式で出力されていて、緯度、経度、海抜からの高さの他に、捕捉した衛星の数や進行方向やスピードまでわかるらしい。
Google Earth がこの NMEA 形式に対応しているので、ログファイルを Google Earth にドラッグ & ドロップするだけで、移動した軌跡がマップに表示されてしまう。
KML 形式に変換して Google Map に取り込むこともできるので、写真と合わせて旅の記録なんてのも作れそう。


とりあえず 2 回くらいカバンに入れて持ち運んでみたけど、衛星を捕捉するまで 10 分くらいかかったり、屋内や高い建物に囲まれると位置を見失ったりするものの、オープンなスペースでは結構いい精度で位置情報を記録してくれた。
久々に山歩きでもして、この簡易 GPS ロガーの評価を続けたいところ。


GPS ロガーとして使うには重いしかさばるし値段も高いしオーバースペックで燃費も悪いけど、無線 LAN ドングルを挿してアクセスポイント化できればもっとおもしろいことができるんじゃないかなあと思う次第。
持ち運べる Web サーバーってのも何か便利なことがありそうな気がするんだよね。