qpegps に関する Tips

[戻る]

はじめに

以前 書いたように, ちょっと前に転居しました. 最近は多少は土地勘で出てきましたが, GPS ナビがあると便利だろうと想像できます. かと言って, 市販のハンディ GPS は結構なお値段ですので買えません.

まぁ GPS 付き携帯電話という手もありますし, 実際持っているのですが,

ので, その機能は全然使っていません.

私は外出先でのメールの読み書きや WEB ページの編集, ひまつぶしの プログラム製作のため, Linux Zaurus (SL-C700) を持っているので, GPS レシーバを買ってハンディ GPS を作ってみることにしました.

GPS レシーバ

早速見つけた このページによると,

ようです.

という訳で, cf タイプの GPS レシーバはいろいろありましたが, 地図データが要るので, 少々高かったですが, 地図がある方が便利だろと (上記ページでは, 付属地図は若干ずれてると書いてましたが, まぁ許容範囲だと考えました), 地図付きの IO-DATA CFGPS2 を購入しました.

早速 qpegps をインストールし, CFGPS2 を SL-C700 に取り付け, 初期設定をします (gpsd Settings の Args を [ttyS3] にして Enter). そして外に出てみてみるものの衛星を全然捉えません. 「あちゃ〜初期不良品だったか」と思ったものの, ネットで調べてみると 画面が 640x480 だとノイズで電波を拾わないとのこと. ためしに 320x240 モードにすると電波を拾うようになりました. めでたしめでたし.

地図のインポート

めでたく電波を拾うようになったので, 次は地図をインポートしようと思います. っが, 上述のページには 「Fetch タブで import.map」すべしと書いているのですが 私がダウンロードした qpegps (0.9.2.3.1pre) にはそんなタブはありません.

最新のバージョンだと違うのかな〜と, qpeGPS のページでマニュアルを 読むと, 最新版では map というディレクトリがあってその下に png ファイルを 網羅し, どの png がどの座標かという情報を羅列して maps.txt というファイルに 手で編集していく形式になったらしいということが分かりました.

さらなる情報をもとめてネットをさまようと こんな ページを発見しました. これによると MapFan から地図を かっぱらって, maps.txt も生成してくれる qpegps_from_mapfan.pl という悪魔のスクリプトがあるようです.

早速ダウンロードして近場の座標で試した所, 筆者の環境では 358 行目の

open (GIF, ">:raw", $filename)....
print GIF $res->content;
と書かれた所がエラーになって動きませんでしたが, 安直に
open (GIF, ">", $filename)....
binmode(GIF);
print GIF $res->content;
と修正してみたら動きました.

追記: 最新版では binmode を使うようになったようです.

すばらしい! こんなことなら, 高い CFGPS2 じゃなくて, アンテナのみの安い製品買えばよかった...

取得, および生成したファイル群を SD メモリの適当な領域にコピーし, map でそのディレクトリを指定すると, 無事現在位置を中心とした地図が 出てきました. うんすばらしい.

フロントエンド

qpegps_from_mapfan.pl は非常にすばらしいんですが, 例えばドライブのためある道路に沿って地図群を収集しようとすると, 一枚取っては, 道路がどの方向に延びているか確認し, 次はどういう緯度経度を指定すればいいか計算し, 取得する を繰り返す作業はめんどくさいです.

まぁ何も考えず大きな領域を指定すればいいのかもしれませんが, 容量を食いますし, 良心が痛みます. っというわけで, Windows 用のフロントエンドを作ってみました. 2,3 時間でペペッと作ったものなので, 結構いい加減ですがそれなりに 便利です.

使い方は,

  1. mapget.exe と同じディレクトリに qpegps_from_mapfan.pl を置く.

  2. 既に qpegps_from_mapfan.pl で取得済みの png ファイル群, および maps.txt があるのなら, その下に map というディレクトリを掘って入れておく.

  3. mapget.exe と同じディレクトリに config.txt というファイルを作り,

    縮尺
    初期経度
    初期緯度
    経度移動量
    緯度移動量
    という形で書いておく. なお config.txt が無い場合のデフォルトは
    8
    139.45.36.0
    35.42.0.0
    0.3.12.0
    0.4.0.0
    になっている.

    ちなみに, めんどうくさかったので設定ファイルの読み込みでは エラーチェックをしていません. 正しく入っていることを前提にしています. 縮尺の数値は qpegps_from_mapfan.pl 内のコメントを参照してください. 初期の緯度経度ですが, まずは手動で qpegps_from_mapfan.pl を動かし, 新しく得たファイル名から入れるといいと思います. また移動量は, デフォルトにした 1/25000 の縮尺の場合は 3 分 12 秒および 4 分でした. おそらく 1/50000 の場合はその倍, 1/12500 の場合は半分だと思いますが, 不安なら手動で 4 枚ほど得られる領域を取得し, それらのファイル名から 判断してください (余計なお世話かもしれませんが, 緯度経度は度, 分, 秒ですから, 第二および第三の数値は 60 で桁が上がることに注意してください).

  4. 起動すると, 既に png ファイルを持っていた場合はそれが表示されます. 「東/西/南/北」ボタンで移動できます.

  5. png ファイルを持ってない場所まで移動すると, 「取得」ボタンが有効に なります. ボタンを押すと qpegps_from_mapfan.pl が呼び出され, 地図がダウンロードされます.

  6. 開発や地殻変動で手持ちの地図が古くなった場合「再取得」ボタンで 最新のものを取得します.

  7. たまに地図を持っているにも関わらず表示されないことがあります. 「実害ない」とほっといていますので, 「再描画」ボタンを押して 我慢してください.

まぁ (大本が) 結構凶悪なツールなので節度を持って利用してもらえればと思います.

自動車への取り付け

せっかく作ったんですから, 車に取り付けてカーナビとして使えればと思います. というか, 私の SL-C700 は電池が腐っているせいか電源を付けないと, GPS 付きでは 1 時間くらいしか持たないので, 車内でしか本領発揮できないでしょう.

そうなると, どうやって取り付けるかが悩み所です. 私の車は Vitz なんですが, こいつはダッシュボードに物が置けません. また, センターパネルなのでその辺りにも置けません. もちろん, 万一のためにエアバックが開く部分にも置けません. っというわけで結構置ける所が限られてきます.

結局センターパネル下に, 粘着テープで取り付けるフックを付けて, そこにぶら下げることにしました. なお, 万一にそなえて, フックの向きは進行方向側にかなり向けてます. となると, ひも付きのケースを作らないといけないのですが, ビデオカセットのケースを使うことにしました.

具体的にはビデオカセットのケースを SL-C700 に合わせて切り取ります.

気合で曲げてボンドで固定します.

ヒモを通し, 適当にスポンジを詰め込むと出来上がりです. 下の写真ではヒモは見えませんが, 丁度センターパネルの下あたりに フックを付けてぶら下げています. その下の小物入れや空気取り入れスライダが使い難いという欠点がありますが, 視認性もよく概ね満足しています.

問題は電源ですが, 車内に DC12V から AC100V を作る装置を置いているので 安直にそこから引っ張ってます. 100 円ショップでシガーソケットから携帯電話に 充電する機器が 300 円で売っているので, 先を切って EJAI-2 のコネクタ (MP-202 : 千石で売っている) を取り付けるといいのではと思います.

Tips


2005.12