ロボカップジュニアの帰り、アドエスを手から滑らせてしまい、結構傷がついて悲しんでいる今日この頃・・・。
そんな中、ひとつの発想が頭をよぎる。
W-ZERO3 シリーズや、その他の WILLCOM 端末に使われている通信ユニット "W-SIM" というのは意外と高機能だ。(上図参照)
小さいくせに、これだけで通信できるし、基地局情報を使って位置情報まで取得できる。
実際、W-SIM から取得できる位置情報を活用したソフトがいくつかある。
ただ、この類のソフト、なぜかみんな Windows Mobile 用のソフトばかり。
確かに、携帯で GPS 代わりになるのは便利だ。
しかし、ノート PC でモバイルしながら、周辺の地図とかも検索したい。
位置情報を、PC からでも取得できないのか?
なんて発想が。
さっそく行動に移してみる。
まあ、条件としては、Advanced/W-ZERO3[es] を USB で PC に接続して、そこから位置情報が取得できればいい。
要するに、W-ZERO3 を GPS 代わり (?) に使うと。
とにかく、位置情報が PC で見れればいいのだ!!
そのためには、まず位置情報を取得する方法を知らなければいけない。
前述した、Windows Mobile 上で位置情報を取得するソフトたち。
これ、どうやって取得してるんだろう?
携帯端末上では簡単に取得できたとしても、意外と PC 上からは難しそうか?
軽く、Google で調べてみる。
と、結果はすぐに出てきた。
どうも、"ATコマンド" を叩いて、取得しているらしい。
しかし、PC 側から AT コマンドを叩くには、どうすればいいだろうか・・・。
アドエスの USB 接続モードには、Active Sync モードとモデムモード 2 種類あるが。
Active Sync モードでは無理そうなので、モデムモードから探ってみる。
思いついたことが一つある。
モデムモードでつなぐと、COM ポートができる。
ということは、この COM ポートに対して、ハイパーターミナルなり、TeraTerm なりでコマンドを叩けばいけるのではないかと。
やってみた。
予想通り、成功。
ちなみに、位置情報を取得する際の AT コマンドはこちら。
AT@LBC1 - 位置情報取得 ON
AT@LBC? - 位置情報を取得
一度、ON にしてあげれば、あとは連続で取得できる。
取得できる情報は、郵便番号と緯度・経度。
AT@LBC1
OK
AT@LBC?
3100852
N36:20:45
E140:27:16OK
上の画像のように、こんな感じで帰ってくる。
GPS 代わりにするには十分な情報だ。
ちなみに、位置情報以外の AT コマンドももちろん OK。
上述したサイト に、いろいろな AT コマンドが記載されているので試してみるといい。
だけど、結構ヤバそうなコマンドもあるので、自己責任で。
壊れても知らない・・・。
電波状況の取得とかは、結構使えそう。
だけど、ひとつだけ問題が。
Google マップに使えねぇ~。
調べてみたところ、W-SIM から取得できる位置情報は "日本測地系" のものらしい。
Google マップに使われているのは "世界測地系" というもの。
どうも、若干違うらしい。
さらに、W-SIM は "度:分:秒" で取得してくるのに対して、Google マップは "度.少数" でアクセスしなければならない。
こりゃめんどくせぇ。
後者は、関数電卓で簡単に変換できるんだけど。
例えば・・・
W-SIM からの情報
N36:20:45
E140:27:16小数点表示へ変換
N36.34583333
E140.4544444世界測地系へ変換
N36.3490007428761
E140.451147396539
といった具合。
こちらのサイトを参考にした。
最初、関数電卓で小数点表示へ変換して、Google マップにアクセスして、変な所に移動するからおかしいなぁと思ってたんだけど。
こういった、規格の違いというか、乱立するのも良くないです。
これからは、世界標準の時代ですよ。
あ~ちなみに、Mapion とかは日本測地系の "度:分:秒" 表示なので、とっても簡単にアクセスできます。
というわけで、近々これに関連したプログラムでも作ってみようかと。
いや、もう作ったんですがwww
久しぶりに、まともなソフトウェア作りました。
でも、組み込み開発ばかりやってると、どうしても Windows アプリでも、同じような組かたしたくなるというか。
while(1) で break; を使った脱出を、使いたくなるというか。
while(1)
if(PADR != 0x00) break;
みたいなね。
マイコンならいいですが、PC だと if に入るまで CPU 使用率がね。
いや、これは組み込みといっても、センサー関係扱ってる場合しか使わないか。
まあ、この話題は後で・・・。
追記:
これを利用して、軽いプログラムを作りました
余談...
それと、これつないでる間は、電話かかってきても話し中になります。
(正確に言うと、5秒ぐらい通話になった後、勝手に切れる)
で、相手の電話番号がターミナルに表示されますw
いろいろいじってる途中に、担任から電話かかってきて気づきました。
なんか、W-SIM の仕組みがわかったような気がします・・・。
ちなみに、上の画像は電話を 2 回かけてみました。
1回目が家の電話から。2回目が非通知で。
非通知でも、これだと電話番号見えないか?って思ったけど。
ダメっぽいです。


コメントする