Viliv S5 - バッテリモニタプログラム更新2009/08/02 21:35

以前公開した、パッテリの残量をもっと細かい精度で推測するプログラムの更新です。

http://www.ne.jp/asahi/net/pockey/program/powerhook-1.6.4.zip

SSD バージョンだと、8時間は持つらしいですから、30 分間だけバッテリ残量をモニタしたのだと 10% 減ってくれないこともありそうなので、120分モニタして計算することにしました。

SSD 欲しい、と思っていたら、こんなサイトがあるんですね。
http://www.ssdfactory.com/en/product-service/zif/index-1.html
ここの、ZIF コネクタの 128GB の。
何とも魅力的なお値段....samsung の flash を使っていると書いていますが、そんなにポンと買える値段でもないので、速度とか感想をききたいです。とある UMPC のサイトでは、全く問題がないように書かれていましたが、外人がいう問題ないって、結構ザルだったりするし、S5 での使用での報告ではないので、二の足を踏んでます。5mm 圧だって事の確証もありませんし。

Windows Mobile 用の GPS 地図 - Part 12009/08/07 20:20

夏休み、旅の季節です。
レンタカーを借りて出掛ける機会があり、ポータブルナビがあると便利なので、Omnia か Viliv でナビ機能を実現しようと考えました。

まず、Viliv で実現するのはやめました。Viliv S5 の I-Log には GPS が無い、というのもあるのですが、いくら小さくて 6時間動くからといっても、運転しながら、さらに旅先で持ち運んで、というシナリオを考えると、開放的な旅が逆に面倒くさいことになりそうで、やめです。

よってターゲットは Omnia に決定。小さいし、いざというとき HSDPA できるし、電池はもっと持つし、こういうときは Windows Mobile です。

さて、ではどのソフトで実現するか。
HSDPA にて Google map をつかうのはお金的にも現実的ではありません。やはり offline でできるのが良い。電波は常に届くとも限らないし。

定番はスーパーマップルデジタル。全国版の地図で、Windows Mobile でも使え、PC でルート検索してそのデータを Windows Mobile に持って行けば Windows Mobile でルート案内をしてくれるという優れ物。しかも一万円ちょっとという魅力的なお値段。

でも、自家用車にはナビがついてるし、車以外でそんなにナビって頻繁に使わないし、一万円ちょっとはねぇ....
機能的にはすごく安いと思うんだけど。

さて、ロハなのを探すか、といろいろ探してみる。インターネットってすごいね、と思う。なので恩返しでこちらも経験談やプログラムでも書いて公開しようっていうのが motivation。

1) gm_lite
http://tera-cc.ddo.jp/blog/2008/09/29/gm_lite-0.1.4%E5%85%AC%E9%96%8B/

2) Terracrosser
http://terracrosser.com/

まず gm_lite。Google map から任意の場所の地図をいろいろな解像度でダウンロードしてローカルに貯めておき、Browser で見るための、script 中心のダウンロードツール群と、browser 用 HTML/Javascript 群。
地図データは PNG で保存されるため、きれいな地図を少ないサイズで保存できる優れ物。ちなみに 16GB の microSDHC にデータを保存すると、FAT32 ではデフォルトクラスタサイズが 32KB のため、タイル的にダウンロードされる多量の地図画像の多くは 4KB 程度もしくはそれ以下であり、多量の slack が出、本来のメモリの 8分の1程度の容量しか使えないことに。よって microSDHC のクラスタサイズを 4KB でフォーマットし直して使っている。

問題なのが、GPS との連動機能。
Zaurus で使う場合、このプログラムを使う Zaurus での支援者がおり、作者からの GPS との連動する仕組み実装、また支援者からの GPS 連動用ビューア(地図のダウンロードは gm_lite を使う)が提供されていたりするが、Windows Mobile で GPS と連動させているという例は見当たらなかった。唯一近かったのが、mortscript をつかって実現する例。アドエスでの例。

http://mortscript.blogspot.com/2008/12/gmlitemortscript.html

naviClip って別のプログラムを使ってアドエスの位置情報を得、このかたが提供する mortscript 用 script で gm_lite で読み込めるデータに加工する。トッリッキーだけど、良い素材を何とか使いこなそうとする試みには共感を覚える。
ただ、これは「W-SIMから取得した位置情報」を使用するもので、Omnia では使えそうにない。だいたい Omnia には SIM は刺さっているが、通信はさせたくないというケチケチ作戦が前提。

gm_lite だと、日本全国の大まかな地図と東京のある程度のところまで持たせても 300MB 程度。良い素材だが、GPS との連動は既存のものでは一筋縄では達成できそうにない。
------

次に Terracrosser。こちらも Google map から地図をダウンロードしておき、専用の viewer で見る。Yahoo map も使える。ただしダウンロードサイトの関係で英語の地図となる。地図のダウンロードは PC で行い、viewer は Windows Mobile 版もある。ここまでパッケージとして完成度の高い物がロハとは驚きである。

残念なのが、地図は jpeg で保存され、gm_lite よりも相当大きなストレージ容量を必要とする。10倍は軽く大きい感じ。
jpeg の圧縮率を高めることで gm_lite の容量に近づけることは出来るが、なにせ道路等の境界線がミジミジになるのがいただけない。

あと、操作性もいまひとつ。サポート forum もあるので、このソフトはまだこれから成長するものだと思われる。
------

さて、どうする....
gm_lite は捨てがたい。どうしても使いたい。この地図の quality でロハだと、何とかしたい気分が高まる。
だが GPS のデータをどうやって gm_lite に食わせるか。Javascript の知識は無いのでトリックは使えそうにないが、
x = 緯度;
y = 経度;
という内容の ll.js というファイル経由で逐次 x/y 情報を渡してやる仕組みは備わっている。

やはり作るしかないですね。せっかく iPAQ 212 と一緒に Windows Mobile 用の code が吐ける Visual Studio 買ったんだし。

そこそこ良い物が出来たので、近いうちにアップします。

Windows Mobile 用の GPS 地図 - Part 22009/08/08 22:05

GPS の情報を COM から読みだし、ll.js ファイルを吐き出すプログラムは何とか作りました。
下記からどうぞ、

ReadGPS v.1.0.2
http://www.ne.jp/asahi/net/pockey/program/readgps_1.0.2.zip

しかし Omnia は GPS の位置情報の読み出しを開始するまでに時間がかかりますね。5分はかかります。いちど読み出しが出来るようになると後は問題ないのですが。
あと衛星捕捉数もせいぜい 11 程度。11 でも多い方で、数個しか捕捉していないことも結構ある。
また、結構電池を食う。8 時間連続で使うのは厳しいかも。
ReadGPS はマルチスレッドを使い、COM 受信を待つあいだなど出来るだけ CPU パワーを食わないように作った(急ごしらえなのでまだ最適化の余地はあると思う)し、Process Monitor プログラムでもそんなに CPU パワーは食っていない。

ちなみに GPS から、各種情報を読み出すのに、下記のプログラムが便利です。

VisualGPSce
http://www.visualgps.net/VisualGPSce/default.htm
こいつはすごい。今捕まえている衛星の場所まで表示するかなりマニア心をくすぐるソフト。海外モノなのにフリーであることが信じられないくらい。

WMMiniGPS
http://www.flytrap.it/
これは上記より lite だが、シンプルで十分。おすすめ。

なので、GPS レシーバー、ポチってしまいました。
早く来ないかな。でも結局出費しているじゃないか。ケチケチ作戦はどこへ行った?

さて、readgps.exe ですが、添付の txt ファイルにも書きましたが、gm_lite に渡す ll.js ファイルは、RAM disk を使った方がよさそうです。
Windows Mobile 用の RAM disk はいろいろ他にもありましたが、私は下記のを使わせていただいてます。ロシアのかたの作品のようです。

http://www.amv007.narod.ru/
上記を良くさがすと見つかります。出典は下記、
http://forum.xda-developers.com/showthread.php?t=382944

さて、準備は整った。手順を整理すると、
1) gm_lite を所望のディレクトリに保存
2) map のダウンロード。必要に応じて ActivePerl を install
3) RAM disk のインストールと実行。サイズはデフォルトかつ最小の 1MB。それより小さくできればいいのに。
4) ReadGPS に添付の readgps.reg をいじり、GPS の COM 設定と、gm_lite に食わせる ll.js の path の設定。
5) gm_lite の、gm_lite.html の
/tmp/ll.js
と記述されているところを、例えば
/ramdisk/ll.js
に変更。
6) ReadGPS を動作させ、Opera か NetFront で gm_lite.html を読み、GPS 地図開始!

やった! 目的は達成された...が、
- 現在位置のマークは無い
- 更新頻度が 10秒間隔
- キーボードのない機種だと、若干つらい

gm_lite.html いじりは次回。

ReadGPS 1.0.42009/08/11 00:00

ReadGPS に不具合があったので update しました。
動作中に GPS が切断された場合に、プログラムが終了できなくなる現象です。

http://www.ne.jp/asahi/net/pockey/program/readgps_1.0.4.zip

Windows Mobile 用の GPS 地図 - Part 32009/08/15 23:24

初めに、ReadGPS を update し、Windows PC 版も追加しました。

http://www.ne.jp/asahi/net/pockey/program/readgps_1.2.2.zip

gm_lite.html の改造ですが、なにせ Javascript のたしなみが無いもので、苦戦しております。下記を改造点に進めております。

1) GPS 使用時の現在位置を表示する
2) 更新頻度の 10秒間隔を可変にする
3) 地図上のマークをもっと簡単にたくさん打てるようにする
4) 打ったマークをファイルに保存したり、読み込んだりする

要はナビとして使うことを考え、事前にランドマークを PC でたくさん打っておき、そのデータを Windows Mobile に入れて、分岐を分かりやすくするのが目的です。

ほぼ出来ましたが、いまだ予期せぬ動作と戦っております。
また、馴れない言語を無理矢理使うという無謀な状態ゆえ、いわゆるスパゲッティプログラミング状態です。

さらに、Javascript は、ファイルに出力する、という機能はないんですね。なので、Window を開いてそこに必要な情報を書き出し、自分でコピペしエディタで保存する、というちょっと面倒な方法を取っています。
頑張ると Javascript でも clipboard にコピーは出来るようですが、何かけっこうなトリックが必要なようで、すでにあきらめ状態です。

問題は公開方法。そのまま公開するのは著作権の問題がありますので、せめて diff で差分情報だけ公開する、事を考えています。
スパゲッティプログラミング状態のままとなりそうですが....だれか良いのを作ってくれることを願っております。

結構ハマっていろいろとやっておりますが、時間とそれにかかるコストを考えると、正直スーパーマップルデジタルが一万円というのは破格値だと思いました。
結構時間かかって小細工している割りには、どんなに頑張ったってルートの自動検索や、誘導はしてくれません。map の download だって時間を食います。

さらに分かったことが...
最近レンタカーって、ナビが無料で付いてくるんですね....
なんだ、いらないじゃん...

しかし、ロハの魅力と自作の楽しみが....