78F0533のコーナー(2)

更新日:2007年5月1日


2CHデータロガーを作ろう

今回はデータロガーを作ります。ピン数が多いマイコンの応用を考えたことと、別件での必要性から今回の製作となりました。測定精度はそれなりですが、長時間の計測にも対応し、記憶したデータは電源を抜いても長時間保持します。測定場所からデータを吸い取る場所に移動する間電源が入っていなくても大丈夫です。今回は久々ぶりにPC側のアプリも作ってみました。それでは製作スタートしましょう。
2CHデータロガーを作ろうの基本仕様
1)5Vまでの電圧を2CH最大で16368カウント分を計測し記憶します。
2)計測の間隔は最小で10秒、最大で5分まで5種類の設定が可能です。
3)5分間隔の設定をすると1364時間の計測が出来ます。
4)計測したデータはS-RAMに記憶し、電源を抜いても長時間のバックアップが可能です。
5)計測したデータはPCと接続して吸い取ります。後でエクセルで処理が出来ます。

6)設定データや計測中データは4行の液晶に表示します。
2CHデータロガーを作ろうの全体構成図
まずは全体の構成図です。今回はマイコンのみですので簡単です。
(2CHデータロガーの構成図)
今回は大きく4つのブロックに分かれています。
@マイコンブロック
前回の製作より使用を始めました、uPD78F0533を使用します。ピン数が多いので今回のように外部にS-RAMを接続するような製作にはピッタリです。
Aデータ記憶ブロック
256kbitのS-RAMを使います。現在の流通は良く判りませんが私は手持ちの部品を使いました。海外メーカーはまだ製造していると思いますので、インターネットで探してみて下さい。電源を抜いてもS-RAMのデータを保持するようにスーパーキャパシタでバックアップします。
BPC接続ブロック
PCとシリアル接続をするためにRS232Cの変換回路を作っています。コネクタの配線はクロスのケーブルを想定していますので、独自なケーブルを使われる方は、注意して下さい。シリアル接続ですのでPCとの接続にUSB-シリアル変換ケーブルを使用しても全く問題はありません。
C表示ブロック
前回の製作と同様に16文字4行の液晶表示モジュールを使います。やっぱり4行もあると表現量が増えて大変便利です。
電源は5V系のみです。今回も特別には掲載しませんでした。皆さんで考えて下さい。
2CHデータロガーを作ろうのマイコンブロック
uPD78F0533のボードを入手して製作しました、。前回の製作にも記載しましたが、ボード上で電源系は次のように配線されています。A/Dコンバータの基準電圧は電源電圧と同じになります。
(マイコン側の電源とGNDの接続)
このボードにそれぞれの回路を接続して全体を構成します。
操作ボタンやスイッチ、LED表示などは特別な回路を付けずにマイコンが直接入力、駆動しています。計測のインターバル時間の基準はマイコンの内蔵タイマーを1秒割り込みに設定して行います。長時間の計測の時間のずれは測っていませんが、内蔵発振子の精度でしか時間を刻めませんのでご了解願います。
(操作ボタンとLED表示回路)
A/D入力の回路についても色々な書籍を参考に検討しましたが、余分な回路を付けると計測がうまくいかないことが判り、結局そのままマイコンに接続することとしました。A/D変換自体は10bitで行いますがS-RAMへの記憶効率を上げるために8bitにしてから記憶しています。測定精度もそこそこですので、それほど影響はないと思います。
(A/D入力回路)
(ポート割付と設定)
ポート設定は難しいことはありませんが、アナログ入力の設定が最初は戸惑いました。特に初期のアプリレットでは思うように設定出来ませんので、生成されたファイルに対して自分なりに修正が必要になります。現在は新しいアプリレットが公開されているので、修正をする必要は無いとは思います。ソースを公開しますので、後でじっくり眺めて下さい。
2CHデータロガーを作ろうのデータ記憶ブロック
測定データの記憶方法はいくつか考えられますが、私はS-RAMに記憶する方式を取りました。部品さえ入手出来れば駆動方法は極めて簡単です。
(データ記憶回路)
アドレスバス15本、データバス8本、制御3本で駆動します。電源が無い時にもデータを保持するためにCEをとトランジスタを介して制御しています。S-RAMのみの電源をダイオードを介してスーパーキャパシタで保持します。保持できなくなるまで試したことはありませんが1週間以上は可能です。S-RAMのスピードは気にすることはありません。入手出来るものを使用して下さい。面実装タイプしかありませんでしたので変換基板でDIPタイプにしています。
(S-RAMを変換基板に載せる)
S-RAM内部の使用状況は次の通りです。
(S-RAMマップ)
RAMの前半と後半にバックアップ判定用データを用意して、電源投入時に全てが保たれていればRAMの内容をクリアせずに起動します。最初に電源を投入した時はデータは入っていませんのでRAMの内容は初期化されます。
2CHデータロガーを作ろうのPC接続ブロック
記憶したデータをPCに吸い上げるためにシリアル接続します。定番のICを使って回路を構成します。
(PC接続回路)
最近のPCにはRS-232CのコネクタがついていませんがUSB-シリアル変換ケーブルで接続することが可能です。シリアルで直接する場合も変換ケーブルを使う場合も同じですがこの製作からはクロスケーブルで接続して下さい。
PCとのシリアル通信のマイコン側ソフトは「マイコン電子工作あれこれ - 78K0 横丁」の記事を参考にさせて頂きました。ありがとうございました。アプリレットから生成されるルーチンではどうしてもうまく動きませんでした。申し訳ございません。
2CHデータロガーを作ろうの表示ブロック
前回の製作と同じく4行の液晶モジュールを使います。マイコンとの接続は簡単です。
(液晶表示回路)
2CHデータロガーを作ろうの液晶表示説明
液晶モジュールに表示される内容について説明します。
(液晶表示内容)
インターバル時間、計測最大時間表示:5種類の切換えが可能です。
(インターバル時間切換え)
計測データ表示:2CH分の測定電圧を表示します。測定範囲は0V〜5Vです。
(測定電圧表示)
計測残り時間表示:計測可能な残り時間の目安を表示します。
(残り時間表示)
計測カウント数表示:累積の計測カウント値を表示します。
(計測カウント値表示)
転送ステップ表示:記憶データをPCに送る時のステップ数を表示します。
(PCデータ転送時のステップ数表示)
計測は最大で16368ステップの記憶が可能です。このデータを全てPCに送ってデータ処理することは可能ですが、測定の変化をグラフなどでビジュアル化する場合はデータが多すぎることがあります。その場合にPCへデータを送る時点で間引きして送ってしまおうということです。その間引きするステップが設定可能です。
2CHデータロガーを作ろうの操作パネル説明
簡単に操作パネルの説明をしておきます。
(操作パネルの説明)
インターバル時間表示は液晶画面にも表示されますが、なぜか前面にLED表示もしています。主要なモード中は表示LEDが点灯します。モードによって色を変えれば判りやすくなります。操作ボタンは3個しか用意しなかったので、一番右側は短押しと長押しで機能を変えています。データの記録は左側にあるトグルスイッチを入れるとスタートします。データ記録中はインターバル時間切換えなどのボタンは機能しません。測定記録に徹することになります。測定端子は2CH分ありますがGNDが共通になっています。原理的にGNDレベルが異なる電圧については測定出来ませんのでご了解願います。
2CHデータロガーを作ろうのPCへのデータ転送
データの吸い取りは専用のソフトで行います。何年か前まではVB6を駆使していたのですが、今回VB2005に変えました。結構難しかったです。後ほど専用ソフトを公開しますので、使って見て下さい。エラー処理などが完全でないため全て正しい動作とはなりませんがよろしくお願いいたします。
PCへ転送するデータは最終的にはエクセルで開ける内容にしてあります。(拡張子をCSVにしています)。エクセルでどのように開けるかを示しておきます。転送ステップの切換えにより内容を間引きして送ります。
(PCで吸い取ったデータをエクセルで開く)
データにはインターバル時間(秒表記)が埋め込まれていますので、経過時間などを処理する場合に使って下さい。S-RAMに記憶しているデータは8bit精度ですので、電圧測定データの表示内容はそれなりであることをご理解下さい。結局データをまとめてグラフなどでビジュアル化する分には全く問題は無いと思っています。
(転送ステップによってカウント値が異なる)
2CHデータロガーを作ろうのPC側データ読み込みアプリ
PC側のソフトはまだ未熟ですが、一応公開しておきます。簡単に操作方法を記します。
(PC側データ読み込みアプリ)
最初に接続するCOMポート番号を記入して下さい。USB変換コネクタを使用される方は特に番号に注意を払って下さい。COMポート番号は「マイコンピュータ」「プロパティ」「ハードウェア」「デバイスマネージャ」で内容を確認して下さい。記入後「接続」ボタンを押して下さい。この後データロガー側の「データ転送」を押せばPC側にデータが吸い込まれます。転送ステップが「1」の場合は完全受信するまでに数分掛かる場合があります。
受信が全て終了するとアプリのボタンを押せる状態となりますので「名前を付けて保存」を押して下さい。ファイルセーブのダイアログが現れるので好きなファイルネームで保存して下さい。そのファイルをエクセルで開けばデータが見れます。
このアプリを皆さんのPCで動かす場合には次のふたつのファイルをインストールする必要があります。
Microsoft .NET Framework Version 2.0 再頒布可能パッケージ (x86)
Microsoft .NET Framework 2.0 日本語 Language Pack (x86)

マイクロソフトのHPにありますのでGoogleで検索するなどして探して下さい。
2CHデータロガーを作ろうの大完成の姿
それでは大完成した姿を披露いたします。
(2CHデータロガーの中身です。結構シンプル?)
(こんな感じです)
2CHデータロガーを作ろうのマイコン側ソースファイル
ソースファイル一式はこちらからダウンロードして下さい。フォルダごと圧縮しています。全てのファイルが入っています。ライタで書き込みする実行ファイルも含まれています。
2CHデータロガーを作ろうのPC側アプリ
実行ファイルはこちらからダウンロードして下さい。ダンロード後は適当なフォルダ上にて解凍後実行して下さい。
いかがでしたでしょうか。PCと接続するということでかなり苦労しましたが、やっと発表に漕ぎ着けたという感じです。PC側のソフトはまだまだ至らない部分も沢山ありますが、感想などありましたらよろしくお願いいたします。uPD78F0533ということで第二弾をおおくりしました。やはりピン数が多いと使い易いですね。プログラム領域も沢山あり(小ピンに対してということ)、ソフトが自由にいじれるのが毎日楽しいです。このマイコンまだまだ続きますよ。
これからも「NEC78K0/K0Sマイコン開発室」はどんどん楽しくなります。

NEC78K0/K0Sマイコン開発室へ戻る