GPSで計測位置座標を記録する気温計
 

森下功啓製作所 ONLINE


このページでは、2008年ごろに作った温度と共にGPSの測位位置を記録する温度計の使い方について説明しています。
ガーミンの組み込み用GPS受信機とH8/Tinyマイコン、高精度ADコンバータ、高精度サーミスタ、 SDカードを組み合わせて長期間稼動する温度・位置ロガーを作りました。 都市の熱環境を測定するのに使えます。


GPS温度計の概要

ヒートアイランド現象とは、都心部の気温が郊外よりも高くなり、気温分布が島状となる現象です。 この調査を効率的に行うための観測装置として、気温・時刻・位置を同時に記録する車載型GPS付温度計測器を開発しました。

GPS温度計の開発目的は、 車載型GPS付温度計測器を開発することで、移動観測における労力を減らし、都市の詳細な気温分布を長期間にわたって観測可能にすることです。 小型のワンチップマイコンとGPS受信機を組み合わせることによって、気温と正確な時刻と位置を同時に記録し、小型で可搬性に優れ、特に長期間の観測が行える計測器の開発を目指しました。


開発したGPS温度計の使用形態と内部構造と仕様を以下に示します。ただし、2号機だけは気球に搭載できるよう、ケースを別物とし、バッテリーも軽い単4電池にしました。

使用形態 内部の構造
GPS温度計の使用形態 内部の構造

仕様
仕様一覧

従来のヒートアイランド現象の観測は、アメダス等の固定観測点の利用や自動車を使用した移動観測によって行われています。 前者は長期間の観測が行えるものの観測点の密度が低いため詳細な気温分布を得ることはできず、 後者では、詳細な気温分布を得ることができるが、気温を測定した時刻や地点,測定値の記録を人力に頼ることが多く、観測後のデータ整理においても労力がかかるため、連続的な観測が困難という問題がありました。

このGPS温度計の利点は、移動観測とすばやい情報処理によって詳細な気温分布情報を得られることです。 観測が自動で行われるため、データはパソコンに吸い出すだけですみます。また、10分に1回の観測では1ヶ月を超えて稼動します。

0号機 とんた 1号機 4Fで実験中 1号機からはこんなケース

0号機 「とんた」です。初めは金属製のケースに収めていました。とりあえず作ってみる事を目的にチャチャット作った作品。データの記録はEEPROMへ保存していた。EEPROMは消費電流が少ないが保存データ容量も少ないという特徴がありました。

1号機 「とんた」で養った経験を基に回路を完全に作り直しました。記録はSDカードへとる様に変更。専門棟4Fで実験中です。この後A/D変換の不具合に気がついたので、このとき取ったログは意味の無いことに・・・。さらにこの後、回路をいじっている最中にFET(電子スイッチ)が吹っ飛んだので1号機はバラバラの部品に戻しました。

1号機からはこの様にケースに収めました。2号機以降は若干1号機と回路の作りが違います。3号機以降も一部で変更しちゃいました。

防水性抜群 2号機

このケースは防水なので水洗いしてもOKです。じゃぶじゃぶ。

*ただし、使わない接続端子にはふたをきっちり閉めてください。

2号機はこのように、小さめのケースに収めました。バッテリーが小さい分、軽くなりました。ニッケル水素NiMH充電電池4本で6時間稼動します。


成果

製作したGPS温度計の実力を測るために、八代高専斎藤研究室では今までの手法と比較しました。以下はその結果を示しています。 下図が設定した測定コースで、2時間ほどで回れて検証がし易い様なコースが選ばれました。 そのさらに下には、コースのみを黒線で表しています。左が設定したコースで、右はGPSのトラッキングデータから描画したコースです。 八代ではGPSの受信を妨げるような大きな建物が少ないのでかなり良好なデータが得られました。他の実験データでも、測位点の飛びは僅かです。

八代の場所

八代市の場所 ・・・九州の熊本県の第2の都市です

地図への投影

測定コースをgoogle地図に投影した図
設定した計測コース GPSのログから求めた軌跡
設計した観測コース 実際にGPS受信機のログより得られた観測コース

下図が実験の結果得られた気温分布図です。実験は2008/2/16日の早朝と正午過ぎに行われました。早朝のデータでは丁度海より暖かな風が吹いて急激に温度変化がおきているのを確認できました。 正午過ぎのデータでは、市街地でヒートアイランドが起きていることが確認できます。

全般的にGPS温度計の方が測位密度が高い分より詳細な気温分布図を得られました。 また、観測データをこの様な図に起こすまでの作業量は、GPS温度計がデータをシリアルで読み出した後にプログラムで解析するだけに対して、 おんどとり&音声録音による位置記録を用いた従来の方法は、学生が1日掛けてデータに起こすという手間がかかりその差は歴然です。後は使い勝手さえもっとよければ・・・。

測定日 GPS温度計による観測データ デジタル温度計 おんどとりによる観測データ
2008/2/16 早朝 GPS温度計による観測データ 早朝 おんどとりによる観測データ 早朝
2008/2/16 正午過ぎ GPS温度計による観測データ 正午過ぎ おんどとりによる観測データ 正午過ぎ

測定器の詳細

内部の構造について少し詳細に示したのが左の図です。 計測器は耐候性のあるケースに収められており、マイコンがそれぞれのハードウェアを制御しつつデータをSDカードへ保存する様子を表しています。 バッテリーは通常はケース内部の物を使用しますが、室内での長時間実験に配慮して外部電源に接続できるようにしています。

全体の構成をもちっと詳細に示す図

ハードウェアに関して

回路
回路図の元データはここからダウンロードできます。使用している回路図エディタ(CAD)は水魚堂のBSch3Vです。

circuit_diagram.jpg(503419 byte)
実配線
実際の配線の様子を写真でごく大雑把に示します。

実際の写真その1
実際の写真その2
実際の写真その3

ソフトウェアに関して

開発環境

この測定器のプログラムの更新を行うための開発環境について紹介します。プログラムの開発に使用するのはベストテクノロジーよりダウンロードできる「GCC Developer Lite」です。 私が使用しているのはver1.9.1.9です。プログラムの更新に必要なものは計測器本体のほかにはこのソフトウェアと、計測器とパソコンをつなぐケーブルです。 プログラムの書き込みはSCI(シリアルコミュニケーションインターフェース)を通して行われるので測定器に実装されているシリアルインターフェースICの電源を入れておかねばなりません。 右写真にIC用の電源スイッチを示します。このスイッチの操作は指ではなく絶対に細目のピンセットを用いるようにしてください。 一度自分自身で指を用いてやったことがありましたが、スイッチが基板から取れそうになるなど危険でした。 プログラムの書き込みが終わったら、電池の消耗を抑えるためにこのスイッチはOFFにしてください。どっちにスライドするとONになるかは私も忘れました。 電流計に繋いだまま操作するとスイッチが入ったかどうかが分かりやすいですが・・・。

GDLの図 スライドスイッチの位置
プログラム

プログラムは2号機用と、3号~5号機用の2種類あります。これらの違いは使用するバッテリーの終止電圧ですので、 それに関した箇所(Battely_check関数)だけに差異があります。プログラムソースはここからダウンロードしてください。
2008/7/21現在の最新バージョンはver6.1.5です。最終更新は2008/7/21に行っています。
プログラムの依存関係を以下に示します。

gps2006mori_ver6.1.5forSmallBattely.c 又は gps2006mori_ver6.1.5.c
|___"3687.h"
|___<string.h>
|___"sci3_mori0.c"
|___"MMC.c"
......|___"MMC.h"
|___"gps2006mori.h"
|___"mo_string.h"
// H8 Tinyの内部I/O定義
// 文字処理関係の標準関数
// シリアル通信関連 統合ファイル
// SDカードアクセス用の自作関数
// 上のファイルが必要とするヘッダファイル
// 構造体などをまとめてあるファイル
// 文字処理を軽い関数でやるための自作関数

*使用できるSDカードについて*
SDカードの制御にはSPIモードを使用しています。 この制御方法では最大4Gbyteのメモリが使用できますが、本プログラムではアクセスできるページ数をソースコード中のdefine宣言中において1000000としていますので、512Mbyteの容量の物に特化していると言えます。 もちろん、defineで宣言したページ制限数を書き換えれば他の容量のものにも対応できることになります。


実際の使い方

GPS温度計の記録のとり方

GPS温度計を使って気温の記録をとらせるには、"write"コマンドを使用します。GPS温度計が起動するとまず起動メッセージが表示され、コマンドを入力するよう促されます。 そこで、"write"と入力してエンターキーを押すと測定器は観測&記録モードへ移行します。これをここではwriteモードと呼ぶことにします。 このモードではSDカードへ次のデータを保存します(プログラムバージョン6.1.5時点)。

で、実際に計測を始めるにはさらに測定条件を3つ入力します。

  1. 測定間隔(インターバル)

  2. 1秒間隔から1時間間隔まで
  3. インターバルの優先度

  4. インターバルを優先(interval priority):設定したインターバルでデータを定期的に保存するのでセンサーの校正にお勧め
    測定精度を優先(normal):基本的に、インターバルで設定した時間だけ待ってデータを保存しようとするが、GPSの補足衛星数(計算に試用できる衛星の数)が4未満と少ない場合には、4以上になるのを待ってからデータを保存する。
  5. 省電力モードを使用するかどうか

  6. 5分以上(だったと思う)の測定では、データの取得に必要な時間以外はGPSの電源を切ることによって、省電力にすることができます。 5分以下のインターバル設定では、省電力を選んだとしてもプログラムは無視して、実質はfullpowerと同じ動作をします。

以上の条件を入力すると測定が始まります。ですが、そのまま放って置いても始まりません。初めにGPSのから正確な時刻を得るまで待機します。 この間、省電力モードであってもGPSの電源は入りっぱなしです。しかも、GPSの受信状態が悪い室内であるといつまで経っても計測が始まりません。 その場合、温度センサーの校正の節で紹介しているGPS再放射アンテナ(又は中継アンテナとも言う)を使用すると非常に助かります。

温度センサーの校正

ここでは温度センサーの校正のために、GPS温度計の取り扱い上必要な事柄を説明します。 GPS温度計の動作モードとしてはwriteモードを選び、それで記録される観測データを校正データとして使用します。 このモードでのお勧めの動作設定は次の通りです。

また、実験データから温度センサーの校正関数を得ますが、お勧めは3次近似式で、有効桁を5~6位は取ってください。

再放射アンテナの薦め
再放射アンテナの写真
室内の様子

この実験は普通室内で行いますのでGPSの受信感度は悪くなります。感度が悪いと計測のデータ落ちが良く起こるし、計測開始時刻が大幅に遅れます。 実験を円滑に行うために、左の写真に示す様なGPSの再放射アンテナがあると非常に便利です。 通販で入手できるところはI.D.A Online です。価格は、安い奴で8000円位からあり、高級なので10万円位です。

野外での実験

***未編集


使用上の注意

鉛蓄電池の保管について

鉛蓄電池は放電したまま放って置くと、あっという間に劣化して充電も放電もあんまりできなくなってしまいます。なので、実験後や長期保存(2週間以上の場合)では満充電の状態にした上で保管してください。

データ処理に関して

*気温センサーが持つ時定数による気温の補正  
ここで言う時定数とは、温度センサーをある気温雰囲気(雰囲気1)から別の気温雰囲気(雰囲気2)へ移した際、気温センサーが、雰囲気2の気温値の約63%を出力するまでに掛かる時間です。例えば、ホームセンターで売られている赤い灯油入りの温度計ではパッケージの裏面に「5分お待ちになってください」と書いてあるので、時定数はおそらく2,3分位でしょう。この時定数が大きいと、現実の気温と測位した位置座標がズレてしまいますし、そのデータから作った気温分布図はやはり現実から外れた物になります。  

理屈の上では、この時定数が分かっていれば、実験で得られた気温データを時定数のズレた分だけ補正してやる事によって真の気温分布を得ることが出来ます。このページの最後に挙げている文献[1]では、この時定数分だけ計測時間と気温の計測値の間に遅れがあると仮定して補正を行っています。  

しかし、実際の時定数は2つの雰囲気の気温差(つまり、計測対象となる地域の気温勾配に相当)や、温度センサー周りの気流速度によって変化します。これを無視した補正データを使用して気温分布図を作ると、より誤差が悪化しかねません。よって、現実的には気温センサーの時定数を小さくするしか無いと思います。よって、補正は必要なし!


F&Q

ここでは、今まであったトラブルについてその対策をまとめたものを掲載しています。もし、他に質問したいことがあれば管理者までメールで連絡をお願いします。

No.
質問項目
回答
1 GPSが受信できない!!!
GPSのデータがおかしい!!!

今まで、回路はコマンドに対して応答するのにGPSのデータがおかしい、GPSが受信できないということが何度もありました。 考えられる原因は次のように複数あります。

  • 要因その1 GPS受信機と回路をつなぐコネクタが緩んでいる
  • 要因その2 GPS衛星を捕捉できない(室内環境では衛星の電波を受信できない)
  • 要因その3 GPS受信機の内部設定が必要なセンテンスを出力していない。
  • センテンスとは、GPS受信機が出力する、情報の種類によって分類されるデータの集合体の事。例えば、速度ベクトル情報、時刻・測位情報、誤差情報などがある。

  • 要因その4 マイコンのプログラムミス

これらの内、どれが原因か特定するには、次のようにします

  1. パソコンでTera Term Proなどのシリアル通信ができるソフトを使って、マイコンに"transfer"コマンドを送信、実行します。
  2. これを実行して、GPSの測位情報が画面に表示されない場合、または出力さているセンテンスが「$GPGGA」と「$PGRMF」で始まるもの以外だった場合は3.に進んでください。 以下のように表示されているならば、正常です。1秒ごとにパラパラとデータを受信して、表示するはずです。 図では途中で測位に成功している様子を示しています(初めは測位衛星数が0ですが途中からいきなり5になっています。このまま放って置けば測位衛星数が最大12まで増えるはずです)。

    $GPGGA,120724,3228.5577,N,13036.3849,E,0,00,,,M,,M,,*55
    $PGRMF,,,030807,120724,,3228.5577,N,13036.3849,E,A,0,,,,*2C
    $GPGGA,120725,3228.5577,N,13036.3849,E,0,00,,,M,,M,,*54
    $PGRMF,,,030807,120725,,3228.5577,N,13036.3849,E,A,0,,,,*2D
    $GPGGA,120726,3228.5595,N,13036.3831,E,0,00,,,M,,M,,*54
    $PGRMF,,,030807,120726,,3228.5595,N,13036.3831,E,A,0,,,,*2D
    $GPGGA,120727,3228.5591,N,13036.3830,E,1,05,2.2,46.9,M,28.4,M,,*7F
    $PGRMF,414,475661,030807,120727,14,3228.5591,N,13036.3830,E,A,2,0,0,6,4*1A
    $GPGGA,120728,3228.5592,N,13036.3833,E,1,05,2.2,39.4,M,28.4,M,,*75
    $PGRMF,414,475662,030807,120728,14,3228.5592,N,13036.3833,E,A,2,1,141,6,4*13
    $GPGGA,120729,3228.5596,N,13036.3836,E,1,05,2.2,38.4,M,28.4,M,,*74
    $PGRMF,414,475663,030807,120729,14,3228.5596,N,13036.3836,E,A,2,1,321,6,4*16

  3. GPS受信機と基盤をつなぐ配線が接触不良を起こしていることが考えられるので、指で少し押すなどしてやる。これでだめなら3.へ進む。
  4. マイコンに"sentence"コマンドを送信・実行し、GPS受信機が出力するセンテンスの種類を設定しなおします。本当は、GPS受信機は設定内容を電源を切っても覚えているはずですが時々忘れてしまうのです。。
2 電源が入らない

まず確認してほしいものは電源スイッチです。基板上にある、スライドスイッチをいじってみてください。GPS温度計2号機には、電池ボックスにもスイッチがあるのでこちらもONでなければいけません。
次に、バッテリー電圧をチェックしてください。バッテリー残量があまりにも少ないと回路が起動しません。2号機では3.9V以上、3号機以降では5.4V以上あることを確認してください。

これでもだめな時は、バッテリーからの電線が切れている可能性があります。テスターを使って回路の電圧を計測するとすぐに分かります

スイッチオン
図 基板上のスイッチ 矢印方向がON
(回路は最終形態と外見が少し違いますが、スイッチは同じです)
3 2号機と3号機以降って、何が違うんですか?

H20年5月25日現在、2号機は写真に示すような単4電池駆動品となっています。 3号機以降では鉛蓄電池を使用しています。回路上の違いはこれだけですが、それによって電池の保護電圧が異なっています。 2号機の保護電圧は、GPS受信機が動作する限界電源電圧である3.8~3.9V程度ですが、3号機以降は鉛蓄電池の放電保護のため5.4Vとなっています。 というのも、鉛蓄電池は放電しきってしまうと充電ができなくなってしまうためです。

2号機
図 2号機の写真
3Dプリンタで専用ケースを作成してその中に収めました。
4 non non

コマンド解説

ここでは、GPS温度計(プログラムバージョン 6.1.5)のコマンドについてまとめたものを掲載しています。もし、他に質問したいことがあれば管理者までメールで連絡をお願いします。

No.
コマンド(このまま入力してね)
解説
1
read -a

SDカードへ保存したデータを読み込みます read -gコマンドと違う点は、SDカードから読み込んだデータをそのまま送信する点です。これによって、SDカードに書き込まれた状況がより詳しく分かります。 SDカードへ書き込まれるデータのフォーマットに関しては、管理者の特別研究論文に詳しく掲載していますので、そちらをとりあえず参照してください。



図 コマンドの実行を行ったときの動画
2
read -g

SDカードへ保存したデータを読み込みます。 ターミナルソフト側でログを残すように設定していると、保存されるテキストデータがCSVファイル形式になるので、欲しい部分だけ後で切り取りしてやるとExcelなどのソフトで処理しやすくなっています。

read -gコマンド画面
図 read -gコマンドを実行した画面
実行後、ページ番号かファイル番号の指定を行ってからファイルの読み込みと出力が行われます。
3
write

観測を開始します。気温センサを使った気温計測には外部A/Dコンバータを使用し、単発A/D変換を使用します。

4
help

コマンド一覧を表示します。簡単な解説も載ってます。

5
gps test

GPS受信機のテストを行います。出力形式は文字処理されたものです。観測に必要なデータをここで表示します。もし、表示がおかしい場合はtransferコマンドを実行してみてください。

6
test all

GPS受信機のテストとA/D変換のテストを行い、その結果を出力します。温度計の校正に便利です。

7
a/d test

A/D変換のテストを行います。マイコン内臓のA/Dコンバータと外部ADコンバータ(22bit Δ-Σ型 A/D変換IC)のいずれかについて単発A/D変換テストを行います。 このモードで、バッテリ電圧測定や気温測定を行うことができます。

8
sentence

GPS受信機の出力するセンテンスの設定を行います。

9
battely

バッテリー電圧の推定値(誤差0.2V位)を表示します。

10
transfer

GPS受信機が出力しているデータをマイコンがリレーしてパソコンへ送信するモードです。GPS受信機の出力情報をそのまま観察することができます。

11
disp SDC

SDカードへ保存したファイルの数やファイルの大きさを表示します。

12
init SDC

SDカードへ保存したファイルの削除や新しいSDカードのフォーマットを行います。

13
sleep test

マイコンのsleepモード(省電力モード)のテストです。 初めはNMI割り込み復帰モード、次はRTC(リアルタイムクロック)による復帰を行うモードです。 メンテナンス以外に使用しないでください。 一度このモードに入ったら、リセットボタンを押すか、電源を入れ直さないと復帰しません。

14
adc test

外部ADコンバータ(22bit Δ-Σ型 A/D変換IC)の連続A/D変換テストを行います。

15
o

テスト用隠しコマンドその1。外部ADコンバータ(22bit Δ-Σ型 A/D変換IC)の連続A/D変換,インターバル動作テストを行います。 40回連続でA/D変換を行った後に一旦ADコンバータの電源を入れなおし、再度連続変換を行うというのを繰り返すモードです。 実際の計測では、時間節約のためにA/D変換を1回しかやりませんが、その変換値は連続変換値の平均に比べると低く出る傾向があります。 そこで、どんな特性があるのかを確認する意味でこの隠しコマンドを設けています。

16
d

テスト用隠しコマンドその2。マイコンのsleepモード(省電力モード)のテストです。一度このモードに入ったら、 リセットボタンを押すか、電源を入れなおすか、パソコンからシリアルで任意の文字を送信しないと復帰しません。

17
***特別なコマンド***
ESCキー
キーボード左上のこのキーは、各コマンドで実行される動作を途中で中止することができます。便利なので使ってみてください。

参考文献

[1]P440 ログ付小型GPS受信機及びサーミスター温度計を利用した気温の移動観測 : 愛知県岡崎市の例(1),田平 誠 他,社団法人日本気象学会,p.482,2003/5
入手先:CiNii「http://ci.nii.ac.jp/naid/10013699726/」


フォトギャラリー

P1000082.JPG
P1000082.JPG
78.04 KB
P1000084.JPG
P1000084.JPG
80.51 KB
P1000086.JPG
P1000086.JPG
88.52 KB
P1000092.JPG
P1000092.JPG
64.82 KB
P1000118.JPG
P1000118.JPG
96.86 KB
P1000122.JPG
P1000122.JPG
96.83 KB
P1000124.JPG
P1000124.JPG
95.32 KB
P1000131.JPG
P1000131.JPG
182.53 KB
P1000143.JPG
P1000143.JPG
124.10 KB
P1000150.JPG
P1000150.JPG
219.81 KB
P1000151.JPG
P1000151.JPG
109.60 KB
P1000162.JPG
P1000162.JPG
119.02 KB
P1000169.JPG
P1000169.JPG
76.83 KB
P1010409.JPG
P1010409.JPG
109.24 KB
P1010433.JPG
P1010433.JPG
227.62 KB
P1010474.JPG
P1010474.JPG
107.35 KB
P1010476.JPG
P1010476.JPG
75.08 KB
P1010480.JPG
P1010480.JPG
74.85 KB
P1010488.JPG
P1010488.JPG
189.33 KB
P1010494.JPG
P1010494.JPG
75.28 KB
P1010516.JPG
P1010516.JPG
65.09 KB
P1010578.JPG
P1010578.JPG
156.67 KB
P1010580.JPG
P1010580.JPG
105.34 KB
P1010586.JPG
P1010586.JPG
138.97 KB
P1010589.JPG
P1010589.JPG
54.19 KB
P1010592.JPG
P1010592.JPG
56.00 KB
P1010593.JPG
P1010593.JPG
69.81 KB
P1010598.JPG
P1010598.JPG
79.85 KB
inserted by FC2 system