μTeaboard応用事例:PMC機器制御サーバによる機器の制御

2009年7月10日(金)
パーソナルメディア株式会社 応用開発担当

目次

概要
デモシステムの機能と全体構成図
機材一覧
機材の製作
プログラムの作成
デモシステム全体の接続
動作確認

概要

「μTeaboard/ARM7-AT91」の応用事例として、ウェブブラウザから機器を制御できるサーバソフト「PMC機器制御サーバ」を利用して、μTeaboard上のスイッチとLED、USB扇風機・USBライト・電気錠の外部接続機器を制御するデモシステムを作ってみました。
「PMC機器制御サーバ」での機器制御は、JavaScriptを利用したhtmlをウェブブラウザで実行します。シンプルで簡単なシステムですが、PMC機器制御サーバを利用したシステムの構築例として、参考にしていただければ幸いです。

デモシステムの機能と全体構成図

PMC機器制御サーバにて以下の機器制御を行います。

  • μTeaboard上のプッシュスイッチ(監視と状態表示)
  • μTeaboard上のディップスイッチ(監視と状態表示)
  • μTeaboard上のLEDのオン/オフ
  • USBライトの電源オン/オフ
  • USB扇風機の電源オン/オフ
  • デモ用電気錠の施錠/解錠
    なお、デモ用電気錠はソレノイドを使って自分で工作したものです。

デモシステム全体の構成は以下のとおりです。
USB機器とデモ用電気錠の制御には、パトライト社から販売されているシリアル制御のリレーユニットを利用しました。
μTeaboardのシリアルポートにリレーユニットを接続し、シリアル経由でコマンドを送ることにより、リレーのオン/オフを制御します。このリレーにUSBライト等の電源供給線(VCCまたはGND線)を接続しておけば、ウェブブラウザからの操作により、USBライト等のオン/オフの制御ができます。

リレーユニット周りの構成は、「Teatouch応用事例: タッチパネルによるUSB小物の制御」でご紹介したものと同じです。USB機器、自作USB延長ケーブル等の機材をお持ちの方は共用できます。

USBライト等を制御するには、μTeaboardのCPUボード(μTeaboard/ARM7-AT91)上のDIO(デジタルI/O,GPIO)を使って、直接オン/オフを制御する方法もあります。こちらの方がシンプルな構成になり、必要な機器も少なくて済みますが、この場合はインタフェース部分の回路を自作する必要があります。

構成図

機材一覧

リレーユニット

株式会社パトライト製 PATLITE PHC-100A
シリアルポートで受信した制御コマンドに対応して8系統のリレーをオン/オフできます。

PATLITE PHC-100A

リレーユニットに接続する機器

USBライト
パソコンショップなどで売られている通常の市販品です。

USBライト

USB扇風機
こちらも、パソコンショップなどで売られている通常の市販品です。

USB扇風機

デモ用電気錠
電気錠付きのドアの動作を表現するデモ用の機材として、ソレノイドを使った電子工作により、電気的に扉の開閉ができる箱を作ってみました。
ソレノイドは、マルハ電機株式会社製 DCソレノイド MD-262-2 を購入しました。秋葉原のパーツショップ「マルツパーツ館」で 1,018円でした。

デモ用電気錠

制御プログラムの実行環境

μTeaboard
T-KernelとTCP/IPが動く超安価な組み込み制御用実行ボード「μTeaboard/ARM7-AT91」を使います。
制御プログラムはPMC機器制御サーバを利用してブラウザ上で動作するJavaScriptで作成するため、ブラウザから組み込み機器を制御できるT-Kernel用サーバソフト「PMC機器制御サーバ/ARM7-AT91」が別途必要です。

μTeaboard/ARM7-AT91

機器の電源

USBハブ
USB機器に5Vの電源を供給するため、ACアダプタ付きのUSBハブを使用します。

USBハブ

電池ボックス
デモ用電気錠のソレノイドを駆動するための12V(単3電池×8本)の電源を供給します。

電池ボックス

ケーブル類

  • USB機器をリレーユニット経由で接続するための自作USBケーブル 2本
  • デモ用電気錠をリレーユニット経由で接続するための自作電池接続ケーブル 1本
  • μTeaboard接続用LANケーブル 1本
  • リレーユニットとμTeaboardを接続するためのシリアルケーブル(ストレート結線) 1本

    シリアルケーブル(ストレート結線)

機材の製作

デモ用電気錠

電磁石のコイル内に可動鉄芯を持ったソレノイドという部品を使い、電気錠の「解錠/施錠」の動作を扉の「開/閉」で示す機器を作ります。
ソレノイドは、マルハ電機株式会社製 DCソレノイド MD-262-2 (DC12V駆動) を使用しました。
その他の部品として、プラスチックケース、プラスチック板、ネジ・ナット類が必要です。
プラスチックケースにソレノイドを付け、ケースの蓋を扉に見立てて開閉するようにしました。
電源を入れたときには電磁石が鉄芯を吸引して扉が閉まり、電源を切ったときに鉄芯が開放されて輪ゴムの力で扉が開くようになっています。

電気錠1

電気錠2

電気錠3

ケーブル

リレーユニット接続用のUSBケーブル

「USBライト」と「USB扇風機」は、USB端子の5V電源のみを利用して動作するように作られていますので、リレーユニットを使ってこの電源供給をオン/オフすることにより、動作を制御できます。このためのケーブルを用意します。
自作パソコンのマザーボード上のピンにUSB端子を接続するためのケーブルが秋葉原の「千石通商」で販売されていますので、今回はこのケーブルを利用しました。このケーブルの一方の端はオスまたはメスの通常のUSBコネクタですが、もう一方の端はUSBの4本の線が別々のピンコネクタになっており、自分で配線することができます。
USBライトとUSB扇風機を制御するため、この2種類のケーブルを2本ずつ購入し、リレーユニットを間に挟んだ形のUSB延長ケーブルを2組作成します。

USBケーブル

「USB(A)メスをマザーボード上のUSBコネクタに接続するケーブル」

USB(A)メスケーブル

「USB(A)オスをマザーボード上のUSBコネクタに接続するケーブル」

USB(A)オスケーブル

このケーブルのコネクタには、配線の信号名が刻印されているので便利です。また、マザーボード側のピンがオスでもメスでも接続できるよう、金属製のピン(以後、中継ピンと呼びます)も含まれています。中継ピンの利用により、コネクタのメス同士を接続できます。

コネクタ

上記2種類のケーブル(USB(A)オス付きおよびUSB(A)メス付き)の「VCC」「GND」「D+」「D-」の4本の線をすべて中継ピン経由で接続すれば、通常のUSB延長ケーブルになりますが、USBライトやUSB扇風機の場合は「D+」「D-」を使いませんので、「VCC」と「GND」の2本の線のみ中継ピンで接続すれば、USB扇風機などに使えるUSB延長ケーブルになります。

コネクタの接続1

しかし、今回はリレースイッチで制御するため、「VCC」または「GND」のいずれか一方の線は直接接続せず、リレーユニット経由でオン/オフの制御ができるようにします。以下の写真では、「VCC」と「VCC」を中継ピンで直結していますが、「GND」の方はリレーユニットに接続するため、コネクタに中継ピンを挿した状態としています。

コネクタの接続2

「GND」以外の線は、邪魔にならないように、ビニールテープやケーブルタイ(結束バンド)などでまとめ、以下のような形にします。

コネクタ完成品

デモ用電気錠の電池接続ケーブル

デモ用電気錠では、ソレノイドという12Vの直流を使用する部品を使っています。この電源供給のために、今回は乾電池を利用しました。
12Vは1.5Vの電池8本分ですので、単3乾電池8本、単3乾電池8本用電池ボックス、電池スナップおよび延長用の赤と黒の電線を使用します。

電池ボックス

USB延長ケーブルと同様に、電池からの電源供給をリレーユニット経由でオン/オフできるようなケーブルを作成します。
電池スナップの黒電線と延長用の黒電線をリレーユニットに接続するための線とし、電池スナップの赤電線は延長用赤電線と半田付けします。
黒電線2本は、リレーユニットの端子に挿入するため、半田メッキするか、金属ピンを半田付けして補強します。

電池接続ケーブル

延長用電線の反対側はソレノイドに接続します。
ソレノイドには極性があります。電池を接続したときに鉄芯を吸い込む動作をするようにします。

ソレノイド側結線

プログラムの作成

μTeaboard上のスイッチとLED、およびリレーユニット PATLITE PHC-100A をシリアルポート経由で制御するためのプログラムを作成します。
PMC機器制御サーバのサンプル「test.html」のスイッチ類、LED、シリアルポートの制御部分を参考に、JavaScriptで次のような処理を行うプログラムを作成します。

  • io_init 文でμTeaboardのI/Oデバイスを初期化し、状態監視するデバイスの指定と、状態変化時のコールバック関数を登録します。
  • ブラウザ上でチェックボックスや画像がクリックされたら、該当の機器をオン/オフする関数を呼びます。
  • μTeaboard上のLEDは、機器制御サーバの機能でオン/オフを制御します。
    リレーユニット(シリアルポート)を利用する場合、最初の1回目のみ rs_init 文でシリアルポートの通信設定(ボーレートなど)を行います。
    リレーユニットに接続された機器は、対応するコマンド文字列をリレーユニットに送信します。
    例えば2番目のリレー接点に接続された機器を「オン」にする場合は「@??102!」というコマンド文字列を rs_send 文で送信します。
  • リレーユニットからの応答を rs_read 文で待ち、ACK(0x06) が返ってくれば正常で、それ以外は送信のリトライを行います。(リレーユニットの応答「ACK」は制御コードですので、機器制御サーバの関数で '%06' という文字列に変換されてブラウザに通知されますのでご注意ください。)
  • μTeaboard上のスイッチが操作された場合はコールバック関数が呼ばれますので、現在の状態を判別して画面の表示を更新します。

なお、詳細につきましては以下の圧縮ファイルをダウンロードして解凍し、作成された「mtb-dio」フォルダ内の test-dio.html のソースをご覧ください。(解凍した全ファイルは、後ほどμTeaboardに転送します。)

サンプルプログラム
mtb-dio.zip (ZIP圧縮ファイル 20,371 bytes)

PMC機器制御サーバのPDFマニュアル「取扱説明書」の「2 セットアップ」-「2.1 インストール」の手順に従って、μTeaboardに機器制御サーバをインストールします。
必要に応じて「取扱説明書」にあるμTeaboardの起動方法、ネットワークの設定をします。実行時は、他のパソコンからμTeaboardにネットワーク経由でアクセスしますので、IPアドレスを控えておいてください。
先ほど解凍した「mtb-dio」フォルダ内の全ファイルを「取扱説明書」の「2.3 ファイルのアップロード」の手順に従って、μTeaboardに転送します。

デモシステム全体の接続

部品とケーブル類を接続して全体を完成させます。

  • リレーユニットとμTeaboardをストレート結線のシリアルケーブルで接続します。
  • μTeaboardをネットワークケーブルでLANに接続します。
  • 自作のUSB延長ケーブルをリレーユニットのリレー接点No.1とUSBハブに接続し、USBメス端子にUSBライトを接続します。
  • 自作のUSB延長ケーブルをリレーユニットのリレー接点No.2とUSBハブに接続し、USBメス端子にUSB扇風機を接続します。
  • 自作の電池接続ケーブルをリレーユニットのリレー接点No.3と電池ボックスに接続します。
  • μTeaboard、リレーユニット、USBハブそれぞれのACアダプタのコネクタを接続します。
  • ACアダプタをテーブルタップのコンセントに接続します。

なお、スイッチ付きのテーブルタップを使用すれば、ACアダプタを接続したまま、まとめて全ての電源を入れることができます。

全体写真

動作確認

テーブルタップの電源スイッチを入れ、デモシステム全体に電源を供給します。
パソコンでウェブブラウザを起動し、μTeaboardの test-dio.html を読み込みます。
(画面例のIPアドレス部分は、お使いのμTeaboardの設定に合わせて変更してください。)
ウェブブラウザに表示された各機器をクリックし、オン/オフが正常に動作することを確認します。

ブラウザ画面例

スイッチ類は、μTeaboard上のプッシュスイッチ(SW1、SW2)、ディップスイッチ(DSW1の1~4)を操作して、ブラウザの画面表示が変化することを確認します。

ボード上のLED、USB機器、デモ用電気錠は、ブラウザのチェックボックスまたは画像アイコンをクリックして動作を確認します。

LED-オフLED-オン

USBライト-オフUSBライト-オン

USB扇風機-オフUSB扇風機-オン

電気錠-オフ電気錠-オン

各機器をランダムにオン/オフして、ブラウザのオン/オフ表示と機器のオン/オフ動作が食い違わないこと、操作した機器以外の機器が誤動作しないことを確認して完成です。