2010年7月15日木曜日

他のGPS

今まさにほげり中。

で、おおむね動作の概要をつかんだ。が、しかし。
色々とハードウェア依存の処理が入ってきて困った。

gps_freerunner.c はu-blox社のGPSチップを前提に組まれているっぽい。
初期化処理がそうなっている。

GPSレシーバーは基本的に電源が入れば衛星を補足してシリアルポートへNMEAメッセージを送り続ける仕組みになっている。
これはほぼ、どんなGPSレシーバーも共通。(メッセージプロトコルが特殊な場合もある)

で、レシーバーの動作をコントロールする場合、ホスト側からシリアルポート経由でコマンドを送ってやる仕組みになっているものがほとんどだ。
そのコントロールコマンドはGPSチップベンダーによって仕様が異なっている。

例えば、
レシーバーから送られてくるNMEAメッセージの送信間隔時間を変更するコマンド。
GGAメッセージを1秒間隔で送ってくるようにするには、
u-bloxの場合
$PUBX,40,GGA,0,01,0,0
私の使ってる、SiRF社 StarIIIと言うチップシリーズの場合
$PSRF103,00,00,01,01
とまぁ、全然違う。(ほんとは、メッセージのお尻にチェックサムが付く)
他のチップはもっと複雑なものもある。

GPSレシーバーのコントロールは、初期化やGPSアイドル時のメッセージの抑制などでどうしても必要になる。

困ったがな(´・ω・`)

GPSチップごとにコマンド切り替える仕組みなんか面倒くさくて入れる気にならん。
おまけにシリアルポートの向こうにあるチップの型番なんかできるだけ知りたく無い(ハードウェア依存の処理を埋めたくない)

う゛ーーーん。

gpsdevice.confみたいなコンフィグファイルを作るか・・・
( ゜Д゜)、、、、
それでも、特定のチップしか初期化できないよな。

てか、そもそも、GPS刺した時に /dev/ttyUSB0 になるなんて保証も無いんだよなw

環境に依存する部分は各自の責任ってことでいっか(笑)

9 件のコメント:

  1. よくわかってないBlogさんとこで
    Slatedroid.comでWindowsCEが動いたって話が。
    タッチパネルが使えんって書いてたけど、Slatedroid.comに貼られてたYoutube見ると使えてるような(笑
    OSがCEになった場合は、GPSはどうみえるんでしょうね?
    デュアルで使えたら面白そうです(^^

    返信削除
  2. ローテクさんこんばんは。
    みたいですねぇ~。
    動作的にどうなのかよく分からないのですが、CEはハックしにくいのでスルーしてます(^^ゞ
    GPSはどうでしょうね?ドライバがあれば動くような気もします。
    でも、WindowsでのGPSの扱いって単なるシリアルポート(COM)なのでアプリ側でもそれなりの対応が必要になってくると思われます。

    で、AndroidのGPSですが、こちらで改造したライブラリを人柱テスト用で準備できると思います。
    目的はGPSチップの違いによる動作の検証と初期化処理を収集するためです。
    もし気が向きましたらご参加ください(^^)

    ちなみに、RMapsを使ってオフラインgoogleマップナビして遊んでます。
    ちょっと出先の地図を入れとけば便利ですね。
    進行方向に対して地図も回ります。

    返信削除
  3. 是非、参加させてください・・・
    でも、どうも手持ちのGPS、アイテンドウで買ったんですが同じもののような(^^;
    ただ、私、Linuxって何?美味しいの?ってレベルなんですが、大丈夫でしょうか?
    じゃぁってんで本腰いれてUSBハブ内臓しようかと、今日注文しちゃったんですが・・・ドックからも取れるんですね。
    以前、電気屋にいったついでに適当に小さいハブは買ってあったんですが、コネクタ外さなきゃならないのに気づいてなくっての買い足しです・・・・ちゃんと見とけって(笑

    ドックからのUSB出しですが、アイテンドウで売ってる「iPodブレークアウト基板」どうでしょ?
    基盤出しされてるから細かい半田しなくて済みそうですが。

    返信削除
  4. ローテクさん、
    まさに、aitendoにある同型GPSですね。
    今のところの予定は、ライブラリ、Setting.apk、デバイス設定ファイル、初期化ファイルの4本をコピー、init.rcの書き換えが必要です。
    adb接続してリモートからコピーすればおkなレベルにはなると思います。

    Dockコネクタもソレでいけるでしょうけど、ちょっと邪魔かも(笑)
    根気が要りますが、コネクタ単体の方がすっきりしますよ。
    本体を開けなくてもイイと言うメリットもあります。
    DockコネクタはPCとの接続にも使われるから、他のデバイスを固定的に内蔵に近い形にするならHubは必須なんですけどね。
    どちらでもいいと思います。

    くれぐれも本体を壊さないように~(・∀・)

    返信削除
  5. >adb接続してリモートからコピーすれば
    やっぱり、SDカードに入れて一発上書きってわけにはいかないんですね(^^;

    USBハブはせっかく購入しましたし、便利そうなんで内臓しようと思ってます。

    Dockコネクタのあまってる部分に電源コネクタもってくれば、充電もスマートなんでしょうけど、それこそ、本体こわしちゃいそうですね。

    返信削除
  6. SDカードからコピーでもおkですよ。
    どっちにしろroot化が必要ですけど。

    ていうか、今ひらめいたんですが、
    GPS化したカスタムROM作っちゃえばいいという噂が( ゜Д゜)
    そっかー、うーん。
    んじゃSlateDroidベースで考えて見るかなぁー

    返信削除
  7. 是非是非(^^
    KYOUNO_GPS v1.0とか(笑

    返信削除
  8. kYOUNOのってかっこ悪いかな(笑
    Today's M001 GPS v1.0 う~~ん

    返信削除
  9. ローテクさんこんちわ( ´∀`)
    なんか命名されてるww
    うーん、イイカゲンなネタblogからこんな展開になるとは思ってなかったので、もう少しまじめにすればよかったと思いつつ、まぁいいか!っと(笑)

    で、
    GPSライブラリは固まったんですが、初期化処理が決まらずに悩んでます。
    結構、煮詰まってるのでエイヤァ!処理になるっぽい・・・(・ω・)

    返信削除