若松ネットガイガー Mark2 に GPS を繋ぐ

 本記事には古い情報が含まれている場合があります。まとめページ を作成しましたので併せて御覧下さい。


 設定ファイルの解説 にありますように、GPSが接続できる旨の記述があります。
 GT-723F は常に予備をストックしている状態なので、さっそく接続してみます。


http://dl.ftrans.etr.jp/?52abb57443344121897eb6f2a8b8f9b78b5b213b.png


 回路図を書くほどのものではないですが・・・

Mbed GT-723F 説明
1 1 GND(電源のマイナス)
13 5 端末→GPS、現ソースではGPSにコマンド送信してないので未接続でもOK
1 5 浮かせておくより GND に落としたほうがノイズ耐性的に有利ぽい
14 6 GPS→端末、この線は必須です
40 2 VCC(Mbedで作られている3.3V定電圧)

(追記:2011/10/18)Mbed:13とGPS:5とを接続するとノイズの影響でGPSの感度が大幅に低下するぽい感じですので接続しないで、GND に落としたほうがいいです。


 ちょうど LAN コネクタの上が GT-723F にとって定位置のようです。
 両面テープで貼っちゃいましょう。


http://dl.ftrans.etr.jp/?19a2d709d5d541dcb838fef761243e325507a960.jpg http://dl.ftrans.etr.jp/?ee51342fefff400db122252c7056541c0975244e.jpg http://dl.ftrans.etr.jp/?a734e339208a45ecbe920bbbc544caae180e72c0.jpg


と繋いで、env.ini の中に mode:2 を記述するだけでは上手くいきません。
 設定ファイルの解説 の後半に記述がありますが、GPSの速度を4800bpsにしないといけないぽいのです。


 GT-723FをPCに繋いで設定を変更するよりも、若松ガイガーのほうを4800bps→9600bpsにしてしまったほうが早そうですね。
 このくらいなら簡単ぽいので、さっそくソース弄ってしまいましょう。

こばさんバージョン・ファームウェア(2011/09/12版)

  • GT-723FやGT-720Fのデフォルトに合わせて GPS との通信速度を 9600bps に変更(もともとは4800bps)
  • 経緯度の計算が間違えていたぽい点を修正 ← 勘違いでした。結果は一緒でした。 ← 勘違いが勘違いでした。詳しくはこちらの記事を
  • いちお一晩テストして大丈夫だったので公開に踏み切りました。


ダウンロードはこちらの記事の末尾から



 お急ぎでない方は、今週末?までに作る予定の下記バージョンまでお待ち下さい。
 バージョン番号とか、正しく直すつもりなので。(上のは必要最小限の修正しかやってない)


注意
 GPS を繋いで(mode:2)、かつツィートモード(updatetype:1)にすると、もれなく経緯度情報のついた測定線量を呟き始めます。(元々の仕様)
 測定場所がピンポイントで公開されることになりますので、取り扱いに厳重注意が必要です。
 こんな感じでツィートされました。

 [経度],[緯度]:[西暦/月/日],[時:分:秒],[cpm],[μSV/h]
 136.XXXXXX,35.XXXXXX:2011/09/12,19:35:36, 16cpm,0.098uSv

今後の予定(上から順に、目標、今週中)

  • env.ini 内に gpsBaud を追加し、GPS との通信速度を自由に指定できるようにする。
  • env.ini 内に ntpServer を追加し、好きなサーバーを指定できるようにする。
  • TWITTER.CFG 内に hashTag を追加し、つぶやきにハッシュタグを自動付加するようにする。
  • 測定線量や経緯度(GPS接続時)を mbed 内蔵フラッシュディスクにログ保存するようにする。
  • NTP以外にGPSからも時刻を取得する。
  • バックアップ用CR2032電池を付けてRTCを永続化(NTPやGPSなしの単体でも時計を刻むよう)
  • 指定した閾値を超えたときにブザーを鳴らす機能も追加。
  • (できたら)呟くときの経緯度をぼやかす機能(ミリ秒を四捨五入するなど)を追加したい。
  • (できたら)syslog サーバー(514/udp)にデータを飛ばしたい。
  • (できたら)Pachube に位置情報(GPSデータ)も飛ばしたい。

追記
 C言語は大学生だった頃に少しだけ弄っていたのですが、9600bps化のツイデに、ntpserverの指定、ツイート時のハッシュタグ追加、を組み込もうとしたら意図しないことが多発・・・
 ntp.setTime が突然うごかなくなって、fwupdate の前に実行するようにしたら動いたり、HTTPMap h_msg の宣言をした行でフリーズしたり・・・
(printfを散りばめて分かった)


 いろんな公開ライブラリーを詰め込みすぎて、変数用のメモリーが足りなくなり、かなり際どいところでギリギリ動作している(少し弄ると挙動不審を起こす)気がとてもします。
 char[256] を2つくらい増やすと足りなくなるとか、そーいう際どさで。。


 もう少し頑張ります。


追記(2011/09/12)
 C言語、意外に体が覚えてましたよ。
 こんな関数あったはず〜で細かい使い方(引数)はググらないといけませんけど、何とかなりそうな予感です。


追記(2011/09/13)
 仕事で移動中に、少しばかりリアルタイムツイートさせてみました。
 通信機材は CTR350 + NS001U + 黒耳 で、地上高約1m・車内(ダッシュボード上)、5分おき です。
 名古屋市内なので、PHSでも全く途切れずにツイートされてますね。


http://dl.ftrans.etr.jp/?20ba701ebdc444d4af3a5045eb018b2dcd1dc473.png


 世の中には車載パソコンで所在地をリアルタイムにツィートして走ってる人がいると聞きますが、小心者の私にはちょっと真似できませんわ。


追記(2011/09/15)
 9/16の朝早くまで、オリジナルにあった経度バグが残ったままのプログラムを公開してしまってました。
 いきさつ及び修正プログラムについて書きました。
 ごめんなさい。


追記(2011/09/20)
 ソースの8割を書き直した機能改善ファームウェア(20110920版)を公開しました。