PICマイコンを使って測定ツールを作ってみよう(3) ―― Visual BasicでPICマイコンを制御する
前2回の記事(連載第1回,第2回)では,2,500円程度の低予算で作成できる計測基板を紹介した.今回はこの基板をパソコンと接続し,パソコンから制御する.ソフトウェア開発環境として,米国Microsoft社のVisual Basic 6(VB6)を利用する.VB6の販売はすでに中止されており,後継のVB.NETも使われているが,ここでは現場で今でも使用されているVB6を採用した.PIC基板単体で手軽に測定できるのが本システムのメリットだが,多くの情報を表示したり,取得したデータをファイルに保存するにはパソコンが必要となる.そのとき,今回紹介するVB6のアプリケーション・プログラムや設計のやり方が役立つだろう.
エレキ系DIY・連載「PICマイコンを使って測定ツールを作ってみよう」 バック・ナンバ
第1回 クロック周波数やモータの回転数を測れるカウンタを作る(前編)
第2回 クロック周波数やモータの回転数を測れるカウンタを作る(後編)
USBを介したPIC18Fマイコンとパソコンの間のデータのやりとりには,Windowsのクラスの一つであるCDC(Communication Device Class)を使います.パソコンから見ると,USBはバーチャルなシリアル・ポートとして見えます.CDCとして使えるようにするPICマイコンのドライバは,開発元である米国Microchip Technology社から提供されており,無料でダウンロードできます.これは,すでに公開した本基板のファームウェアの中に含まれています.
このままでもある種のコマンドは実行できますが,今回はこれをある程度使えるレベルまで作り込みます.大量のデータを扱う例としては,RS-485のモニタを取り上げます.TX(送信)とRX(受信)を切り替えながら通信するのがRS-232-Cとの大きな違いですが,ファームウェアについては大きな違いはありません.通常のシリアル通信と同じように作成できます.VBとPICマイコンをUSB(CDC)で接続し,PICマイコンと対象機器の間はRS-485で接続します.ここでは対象機器間のRS-485ネットワーク上のデータのやりとりを,パソコン上でモニタできるようにします.
●BASICとVisual Basic
プログラムはBASIC(Beginner's All-purpose Symbolic Instruction Code)で記述します.C言語とは文法が違いますが,作成は非常に簡単です.機能の追加は,マウスのクリックだけで済みます.操作は視覚的であり,対象がアイコンのようなものなので,クリックして選択し,キャンバスであるフレームの上でまたクリックするだけで,好きな位置に機能を配置できます.それに対するプログラムは,ダブルクリックするだけで自動的にエディタが開き,非常に巧妙に作られたツールが入力を容易にしています.
BASICは,もともと米国Dartmouth Collegeで学生のプログラミング学習用に開発されたコンパクトなプログラミング言語です.昔,マイコンが登場したころ,マイコンの非力な処理能力にマッチした,メモリが少なくて済む,初心者向けのプログラミング言語がないかと開発者たちは探し回り,このBASICを採用しました.
初期のBASICはインタープリタ方式で,一つ一つの文を解釈しながら実行していました.具体的には,ソースの記述が中間言語に変換され,実行時にコマンドとパラメータを解釈して逐次実行します.当時の高級言語だったFORTRANではソース・リストが機械語に変換されていたので高速に実行できましたが,BASICは1文ごとに解釈・実行するので,処理に時間がかかります.
VBでは,これがEXE(実行)形式にコンパイルできるようになっているので,初期のBASICと比べるとけっこう高速に実行できます.またシリアル・ポートとのインターフェースも用意されており,パソコン周辺機器を制御することも容易です.
図1にその初期画面を示します.左にツール・ボックスがあり,ラベルやテキスト・ボックス,コマンド・ボタン,シリアル・ポートなどが存在します.これらのツールを中央のフレームに貼り付けていきます.この基板の機能のすべてに対応するには,けっこういろいろなツールを用意しないといけませんが,今回はRS-485だけを対象とするので,比較的簡単に作成できます.