2010年6月30日水曜日

NMEAを読む

とりあえず、GPSレシーバーが届いた。

コレ。
GR-300
やや太目のUSBメモリ(笑)
でも、GPSレシーバーも小さくなったなぁ~。

一般的なGPSレシーバーは、PCから見ればシリアルポート(いわゆるCOMポート)に接続され、衛星からの情報を元に位置情報をつぶやいてくれる装置だ。
USBのGPSも同じく内部にシリアルコンバータを持っているのでシリアルポートとして見える。
ひとまず、GPSレシーバーからの情報が取得できるか試してみた。

とりあえず、USBポートに刺す。
で、コンソールから、suになって、
# dmesg | grep pl2303

pl2303 1-1.4:1.0: pl2303 converter detected
usb 1-1.4: pl2303 converter now attached to ttyUSB0
/dev/ttyUSB0 にGPSレシーバーが接続されている。
pl2303はシリアル-USBコンバータチップ。
ファーム1.7.4のカーネルはpl2303をサポートしてるので同じチップのGPSレシーバーならいけるはず。

んで、GPS初期化
# stty -F /dev/ttyUSB0 4800
初期化に必要な情報はGPSの説明書に書いてあるハズ。
通信速度とかパリティビットとか、必要な項目を設定する。
あぁ懐かしいアナログモデム(´・ω・`)

これで、GPSレシーバーからのつぶやきが聞こえるはず。
20行ほど読んでみる。
# head -n 20 /dev/ttyUSB0

$GPGGA,.............hoghog.............

$GPGSA,.............foobar.............
と、意味不明の文字列が表示されればおk。
当たり前だけど、出るよー出るよー( ・ω・)

なーんか昔、
某GPSレシーバーを使ってNTPサーバー組んだなぁ~って思い出した罠。

んで、
ハードウェア的には問題なく認識できてるんだけど、肝心のAndroid側での接続がよくわからない。。。。
GPS関係の設定項目を出すにはどうするのだ?
あとたぶん、仮想マシン側でデバイスを接続しないといけないような気がする。
で、その方法が分からん。。。。(゜-゜)
Android1.6でGPS動いてる他のガジェットはどんな処理になってるんだろ?

いかーん、つまづいた~。

2 件のコメント:

  1. お疲れ様です(^^;
    やっぱり、そのまま繋げばOKってわけにはいきませんねGPS。
    個人的にはBluetoothとWEBCAM、あとはGPSが使えたらM001は十分かなって思ってますので期待しております(笑

    返信削除
  2. こんばんわ~(^^)
    そうですね~。
    ブート時の処理を眺めてて、GPS周りの手がかりがなかったので謎が多いです。
    他機種のブートイメージが覗けたらヒントが分かるかもしれないんですけどね。

    BTはプロトコルの初期化処理がまんま入ってたので核心はあったんですが、、、、
    3Gモデムの初期化処理も入ってるんですが、これはさすがに使えないだろうと(笑)

    ひとまず、GPSからのつぶやきは読めるので、昔ながらのシリアルGPSロガーとしては遊べます(笑)

    返信削除