« [N810]NOKIA N810上のEmacsでクリップボードを扱う | Main | [N810]強制USB HostモードでNOKIA N810にUSB機器をいろいろ接続 »

2008.01.27

[Mac OS X]単3電池1本で動くGPSロガー HOLUX m-241をMac OS Xで使う

GPSロガーのHOLUX m-241を購入しました。

i-Blue 747 / i-Blue 757 / Qstarz BT-Q1000 / i.Trek Z1 / Konet BGL-32などと同様、超高感度のMediatekのMTKチップを搭載した機種です。

m-241は、単3電池1本で約14時間駆動するのが特徴。

外見はKodakの35mmフィルムを模していて、ユニークですね。

みなさんの評では、「ちょっと大きい」とのことですが、単3電池で動くというのは、とにかく素晴らしいです。

NOKIA N810とのペアリング

NOKIA N810とのペアリングで困ったのが、マニュアルにpasscode (pairing code)の記載が無いこと。

マニュアルにあるWindows Mobileとのペアリングでは、SPP Slaveを選ぶように指定しているので、記載が回避されています。

しかし、NOKIA N810では、そのような指定ができません。

HOLUXはよくpairing codeに "0000" を使うとの記載を発見したので、それで試したら大丈夫でした。

Mac OS Xでの設定変更/ログの吸い出し:bt747編

Mac OS X Leopardを使っている自分にとっては、ログ取りできるのはいいものの、ログのダウンロードがやっかい。

純正のユーティリティは、Windowsで動くものしか提供されていないのです。

Java製のbt747が使えることが分かりました。

bt747は、ログのダウンロードだけでなく、m-241単体では不可能な、詳細な設定もできる優れものです。

Mac OS Xで動かすには若干の準備が必要です。

具体的な手順は、Levien van Zonさんが立てたスレッド「BT747 on MacOS X」に書いてあります。

むぁっく日記さんのエントリ、「MacOSX版GPSロガー用ソフトウェアの使い方」辺りに日本語の情報があります。

僕の場合、ドライバはこちらの業者が用意しているものを使いました。

http://www.gpsdgps.com/product/pr_holux_m-241.htm

デバイスファイル名が、上記の例とは違って「/dev/tty.SLAB_USBtoUART」となったので、その部分は修正しています。

HOLUX m-241との間で通信をする場合の要諦は、115200bpsでは動かず、38400bpsに設定する必要があるということです。

HOLUX m-241とbt747との接続は、以下の手順を踏む必要がありました。

  • 起動直後の「Con」タブで、ボーレートを「115200」から「38400」に変更
  • 「Connect Port Nbr」ボタンを押す

接続するとすぐ「Log」タブへ移動しますが、「Con」タブに戻って見てみると、接続が成功していれば、以下のような情報が表示されると思います。

そのほか「File」タブの「Output Dir:」には、既存のフォルダを指定する必要があります。デフォルトでは「/BT747」になっていますが、そのようなディレクトリは、作っていない限り無いはずですのでエラーが出ます。既にあるフォルダを指定して、「Apply&Set the above values」ボタンを押し、反映させます。

ログは、「Log」タブで「Get Log」ボタンを押せば取得が始まるはずです。

取得したログは、m-241のメモリイメージをダンプしたもののようで、バイナリです。 そのままでは使えません。

bt747には、このバイナリのログから各種フォーマットに変換する機能が付いています。 ログを取得した後で「Log」タブにある「To CSV」等のボタンを押せば変換が始まります。

(ログ変換がうまくいかないと書いていましたが、ログがうまく取得できていなかったのが原因でした。ログを取り直したら変換もうまくいきました。触った範囲の機能は完動です)

Mac OS Xでの設定変更/ログの吸い出し:MTKBabel編

ほかにソリューションは無いかと探してみると、i-Blue 747をはじめとしたMediatek MTKチップ搭載GPSの操作をする、MTKBabelというPerlスクリプトがあったので試してみました。

http://www.rigacci.org/wiki/doku.php/doc/appunti/hardware/gps_logger_i_blue_747

MTKBabelの実行にはDevice::SerialPortが必要ですので、CPANからインストールします。

$ sudo perl -MCPAN -e shell
cpan> install Device::SerialPort

CPANを実行したことが無ければ、Device::SerialPortのインストールの前にいろいろと聞かれるでしょう。適当にデフォルトで答えておけばOKです。

ダウンロードしてきたmtkbabel-0.5.tar.gz(現時点のバージョン)を解凍すると出てくる「mtkbabel」を編集します。115200bpsでつなごうとするので、m-241ではそのままでは動きません。以下のような行があるので、

$device->baudrate(115200) || die "fail setting parity";

以下のように書き換えます。

$device->baudrate(38400) || die "fail setting parity";

後は、mtkbabelのあるディレクトリで以下のように実行すればログがm-241から吸い出され、バイナリフォーマットと、XMLベースのGPXフォーマット(ってよく知らないんですが)でカレントディレクトリに書き出されます。

chmod +x mtkbabel
./mtkbabel -p /dev/tty.SLAB_USBtoUART  -f data -t -w

デバイスファイル名は、僕の場合です。bt747で推奨されているドライバを入れているなら、「/dev/cu.SLAB_USBtoUART」かもしれません。

その他の情報

mtk-gps-controlというPythonスクリプトがありました。

|

« [N810]NOKIA N810上のEmacsでクリップボードを扱う | Main | [N810]強制USB HostモードでNOKIA N810にUSB機器をいろいろ接続 »