GPSロガーの製作 H20.5.25
GPSモニター&ロガーの製作
kunioのHPへ戻る
前回は、strawberry linuxで売られていたGPSモジュールを、使ってモニター付きのロガーを試作しました。
今回は、秋月電子で売られているGPSレシーバモジュールキットを使ったロガーを製作しました。
このキットは、ポジション社製GPSモジュールの他、RS232通信部品や電源用3端子レギュレータおよび
PC用測定ソフトもついています。
前回作成したものとの違いを中心に書きます。

ソース
回路説明
回路図の下側2つの枠内は、GPSレシーバモジュールキットの回路そのままで、電源・GNDとTx・Rxをコネクタとおして変換基盤(写真右上)接続し、
それをPCとRS232Cで接続します。
今回は、そのコネクタ部にATmega8とSDカードを接続しただけです。
GPSモジュール
データ出力は、 NMEA-0183 フォーマットに準拠しています。
前回のものはGPGGA,GPGSA,GPRMC,GPGSVセンテンスまででしたが、今回のものはこれに加えGPVTG,GPZDAも出力されます。
起動時の通信速度は、9600bpsで測地系は日本(tokyo)になっているので、Google
map等で活用するためには世界標準のWGS−84
に変更する必要があります。 ('$PSRF106,21*0F'を送信)
時間データは、1/000S単位まであります。
$GPGGA,023114.772,35xx.8276,N,137xx.1483,E,1,03,01.7,00779.7,M,0037.8,M,000.0,0000*41
$GPGSA,A,2,08,02,15,,,,,,,,,,02.0,01.7,01.0*08
$GPGSV,3,1,09,26,68,272,24,10,62,052,00,15,56,260,31,24,52,303,00*7B
$GPGSV,3,2,09,08,35,057,31,02,33,159,43,29,20,266,00,21,11,318,00*75
$GPGSV,3,3,09,27,11,038,00*4E
$GPRMC,023114.772,A,35xx.8276,N,137xx.1483,E,0000.00,000.00,100508,,*3B
$GPVTG,000.00,T,,M,0000.00,N,0000.00,K*50
$GPZDA,023115.772,10,05,2008,,*5E
CPU
ATMEGA8 4Mhz動作
SDカード・ソケット
128MBのminiSDで動作確認、カードソケットの手持ちがなかったので、余っていたminiSD用の変換アダプタをソケットとして使いました。
コンタクト部にうまくリード線(抵抗等パーツの足)が、半田付けできるか心配でしたが半田ののりもよく、簡単にできました。
動作の概要
GPSの初期化
先ほど書いたように、測地系の設定が必要なります。
起動して、SDカードを初期化したあと、3秒後(3データ確認後)に '$PSRF106,21*0F' 「CR」+「LF」 を送信
正常にコマンドが受付られたのを確認。 正常時 '$Ack
Input106.'を受信するので、簡略化して'ck'の受信確認をする。
200文字以内に、受信できない場合は10回までリトライし、だめな場合はエラー終了。
LED動作表示
起動からの動き 電源on→SDカードの初期化までOKでLED点灯 (約3秒) GPS測地系設定コマンド実施→正常ならGPSデータ受信毎(1秒間隔)
にLED点灯と消灯繰返し。
起動時を含めエラーが発生したら、300ms間隔でLED点滅
SDカードへのログ保存
前回と同様で3分周期で書き込み。ただし、ファイル名は日にちを加えてDDHHMMSS.LOGとしました。
感想
GPSモジュールは前回のものより小さいですが、精度は少しいいような気がします。
今回も起動時のSDの初期化を失敗でかなり悩みましたが、やっと原因がわかりました。SDカードのCS(チップセレクト信号)をマイコンのI/Oピン初期化時
にlow(アサート)としていたため不安定になっていたでした。初歩的なミスでした。(何でも初期値は0と思い込んではだめですね^^;)
(この件で、いろいろ勉強している中でRESET回路のプルアップ抵抗は、内部で既にあるため不要だと分かったの良かったです。)