T-Kernel 2.0リファレンスキット応用事例:タッチパネルによるUSB小物の制御
2011年7月28日(木)
パーソナルメディア株式会社 応用開発担当
目次
- ・概要
- ・本システムの機能と全体構成図
- ・機材一覧
- ・機材の製作
- ・プログラムの作成
- ・デモシステム全体の接続
- ・動作確認
概要
T-Kernel 2.0リファレンスキットの応用事例として、USBライト、USB扇風機、電気錠などの機器をタッチパネルから制御するシステムを作ってみました。
GUIおよび機器制御のプログラミングにはマイクロスクリプトを使っています。シンプルで簡単なシステムですが、T-Kernelを使った組込みシステムの構築例の1つとして、参考にしていただければ幸いです。
本レポートは、Teatouch用の事例「タッチパネルによるUSB小物の制御」を元に、リファレンスキットを使って作成し直したものです。マイクロスクリプトのプログラムも一部修正しています。
本システムの機能と全体構成図
リファレンスボードのタッチパネルから、次のような機器制御を行います。
- USBライトの電源オン/オフ
- USB扇風機の電源オン/オフ
- デモ用電気錠の施錠/解錠
※ なお、デモ用電気錠はソレノイドを使って自分で工作したものです。
システム全体の構成は以下のとおりです。
今回はハードウェアの製作を簡単にするために、パトライト社から販売されているシリアル制御のリレーユニットを利用しました。具体的には、リファレンスボードのシリアルポートをこのリレーユニットに接続し、シリアル経由でコマンドを送ることにより、リレーのオン/オフを制御します。このリレーにUSBライト等の電源供給線(VCCまたはGND線)を接続しておけば、リファレンスボードからのコマンドにより、USBライト等のオン/オフの制御ができます。
- ※
- USBライト等を制御するには、リファレンスボード上のデジタルI/O(GPIO)を使って、直接オン/オフを制御する方法もあります。こちらの方がシンプルな構成になり、必要な機器も少なくて済みますが、この場合はインタフェース部分の回路を自作する必要があります。
本システムでは「PMC T-Shell」を利用し、C言語ではなくマイクロスクリプトによるプログラミングを行っています。詳細は後述します。
機材一覧
制御対象機器
- USBライト
- パソコンショップなどで売られている通常の市販品です。
- USB扇風機
- こちらも、パソコンショップなどで売られている通常の市販品です。
- デモ用電気錠
- 電気錠付きのドアの動作を表現するデモ用の機材として、ソレノイドを使った電子工作により、電気的に扉の開閉ができる箱を作ってみました。
ソレノイドは、マルハ電機株式会社製 DCソレノイド MD-262-2 を購入しました。秋葉原のパーツショップ「マルツパーツ館」で 1,018円でした。
リレーユニット
- 株式会社パトライト製 PATLITE PHC-100A
- シリアルポートで受信した制御コマンドに対応して8系統のリレーをオン/オフできます。
制御プログラムの実行環境
- T-Kernel 2.0リファレンスキット
- USBライトなどの機器をオン/オフするための操作パネルが必要ですので、液晶画面とタッチパネルの付いたT-Kernel 2.0リファレンスキットを使います。
制御プログラムはマイクロスクリプトで作成します。
- シリアルポート0(UART0)はシステムがデバッグポートとして使用しています。リレーユニットはシリアルポート1(UART1)で利用したいので、シリアルポートのボード上のコネクタは CN3 から CN5 につなぎ換えておきます。
機器の電源
- USBハブ
- USB機器に5Vの電源を供給するため、ACアダプタ付きのUSBハブを使用します。
- 電池ボックス
- デモ用電気錠のソレノイドを駆動するための12V(単3電池×8本)の電源を供給します。
ケーブル類
- USB機器をリレーユニット経由で接続するための自作USBケーブル 2本
- デモ用電気錠をリレーユニット経由で接続するための自作電池接続ケーブル 1本
- リレーユニットとT-Kernel 2.0リファレンスキットを接続するためのシリアルケーブル(ストレート結線) 1本
機材の製作
デモ用電気錠
電磁石のコイル内に可動鉄芯を持ったソレノイドという部品を使い、電気錠の「解錠/施錠」の動作を扉の「開/閉」で示す機器を作ります。
ソレノイドは、マルハ電機株式会社製 DCソレノイド MD-262-2 (DC12V駆動) を使用しました。
その他の部品として、プラスチックケース、プラスチック板、ネジ・ナット類が必要です。
プラスチックケースにソレノイドを付け、ケースの蓋を扉に見立てて開閉するようにしました。
電源を入れたときには電磁石が鉄芯を吸引して扉が閉まり、電源を切ったときに鉄芯が開放されて輪ゴムの力で扉が開くようになっています。
ケーブル
リレーユニット接続用のUSBケーブル
「USBライト」と「USB扇風機」は、USB端子の5V電源のみを利用して動作するように作られていますので、リレーユニットを使ってこの電源供給をオン/オフすることにより、動作を制御できます。このためのケーブルを用意します。
自作パソコンのマザーボード上のピンにUSB端子を接続するためのケーブルが秋葉原の「千石通商」で販売されていますので、今回はこのケーブルを利用しました。このケーブルの一方の端はオスまたはメスの通常のUSBコネクタですが、もう一方の端はUSBの4本の線が別々のピンコネクタになっており、自分で配線することができます。
USBライトとUSB扇風機を制御するため、この2種類のケーブルを2本ずつ購入し、リレーユニットを間に挟んだ形のUSB延長ケーブルを2組作成します。
「USB(A)メスをマザーボード上のUSBコネクタに接続するケーブル」
![]()
「USB(A)オスをマザーボード上のUSBコネクタに接続するケーブル」
このケーブルのコネクタには、配線の信号名が刻印されているので便利です。また、マザーボード側のピンがオスでもメスでも接続できるよう、金属製のピン(以後、中継ピンと呼びます)も含まれています。中継ピンの利用により、コネクタのメス同士を接続できます。
上記2種類のケーブル(USB(A)オス付きおよびUSB(A)メス付き)の「VCC」「GND」「D+」「D-」の4本の線をすべて中継ピン経由で接続すれば、通常のUSB延長ケーブルになりますが、USBライトやUSB扇風機の場合は「D+」「D-」を使いませんので、「VCC」と「GND」の2本の線のみ中継ピンで接続すれば、USB扇風機などに使えるUSB延長ケーブルになります。
しかし、今回はリレースイッチで制御するため、「VCC」または「GND」のいずれか一方の線は直接接続せず、リレーユニット経由でオン/オフの制御ができるようにします。以下の写真では、「VCC」と「VCC」を中継ピンで直結していますが、「GND」の方はリレーユニットに接続するため、コネクタに中継ピンを挿した状態としています。
「GND」以外の線は、邪魔にならないように、ビニールテープやケーブルタイ(結束バンド)などでまとめ、以下のような形にします。
なお、上記のようなマザーボード接続用のUSBケーブルの入手が難しい場合には、市販のUSB延長ケーブルを適当なところで切断して、「+5V」か「グラウンド」の電線をリレーユニットに接続するようにしても結構です。この場合の注意点を以下に説明します。
まず、USBコネクタの形状とピン配置を確認してください。必ずテスターで結線を確認し、間違いのないように製作してください。USBコネクタ(オス)
USBのロゴマークを上にした状態でコネクタ内を見ると金属ピンが4つあり、左から
1番ピン : VBus (+5V、赤電線)
2番ピン : D- (-Data、白電線)
3番ピン : D+ (+Data、緑電線)
4番ピン : GND (グラウンド、黒電線)
となっています。今回は1番ピンと4番ピンを使用します。
電線が着色されている場合、通常は上記の配色になっていますので一応の目安にはなりますが、必ずテスターを使って結線に間違いがないことを確認してください。USBコネクタ(メス)
USBのロゴマークを下にした状態でコネクタ内を見ると金属ピンが4つあり、左から
1番ピン : VBus (+5V、赤電線)
2番ピン : D- (-Data、白電線)
3番ピン : D+ (+Data、緑電線)
4番ピン : GND (グラウンド、黒電線)
となっています。こちらも1番ピンと4番ピンを使用します。
4番ピンからの黒電線は半田メッキを施してリレーユニットへの接続用とし、1番ピンからの赤電線同士は半田付けし、使用しない他の電線といっしょにビニールテープとケーブルタイでまとめてください。
デモ用電気錠の電池接続ケーブル
デモ用電気錠では、ソレノイドという12Vの直流を使用する部品を使っています。この電源供給のために、今回は乾電池を利用しました。
12Vは1.5Vの電池8本分ですので、単3乾電池8本、単3乾電池8本用電池ボックス、電池スナップおよび延長用の赤と黒の電線を使用します。
USB延長ケーブルと同様に、電池からの電源供給をリレーユニット経由でオン/オフできるようなケーブルを作成します。
電池スナップの黒電線と延長用の黒電線をリレーユニットに接続するための線とし、電池スナップの赤電線は延長用赤電線と半田付けします。
黒電線2本は、リレーユニットの端子に挿入するため、半田メッキするか、金属ピンを半田付けして補強します。
延長用電線の反対側はソレノイドに接続します。
ソレノイドには極性があります。電池を接続したときに鉄芯を吸い込む動作をするようにします。
プログラムの作成
リレーユニット PATLITE PHC-100A をシリアルポート経由で制御するためのプログラムを作成します。
リファレンスキット付属の Eclipse 開発環境を使って、C 言語でプログラムを作成する方法もありますが、
この例のようにタッチパネルによる GUI を実現する場合には、
PMC T-Shell に付属する「マイクロスクリプト」というスクリプト言語を使う方が簡単です。今回も「マイクロスクリプト」を使って、次のような処理を行うプログラムを作成しました。
- まず最初に、RSINIT 文でシリアルポートの通信設定(ボーレートなど)を行います。
- 画面上の機器のアイコンにタッチされたことを ACTION 文で検出します。
- タッチされた機器に対応するコマンド文字列を、RSPUT 文でリレーユニットに送信します。例えば 2 番目の機器を「オン」にする場合は「@??102!」というコマンド文字列を送信します。
- リレーユニットからの応答を RSWAIT 文で待ちます。ACK(0x06) が返ってくれば正常応答です。NACK(0x15) が返ってきた場合はリトライを行う必要があります。
なお、詳細につきましてはプログラムのソースをご覧ください。
サンプルマイクロスクリプト
refkit1.bpk (書庫ファイル 674,815 bytes)
マイクロSDメモリカードに「PMC T-Shell」を含む起動用システムディスクを作成し、マイクロスクリプトのプログラムはマイクロSDメモリカードのUSRフォルダにコピーしておきます。
デモシステム全体の接続
部品とケーブル類を接続して全体を完成させます。
- リレーユニットとリファレンスボードをストレート結線のシリアルケーブルで接続します。
- 自作のUSB延長ケーブルをリレーユニットのリレー接点No.1とUSBハブに接続し、USBメス端子にUSBライトを接続します。
- 自作のUSB延長ケーブルをリレーユニットのリレー接点No.2とUSBハブに接続し、USBメス端子にUSB扇風機を接続します。
- 自作の電池接続ケーブルをリレーユニットのリレー接点No.3と電池ボックスに接続します。
- リファレンスボード、リレーユニット、USBハブのACアダプタを各機器に接続します。
- ACアダプタをテーブルタップのコンセントに接続します。
なお、スイッチ付きのテーブルタップを使用すれば、ACアダプタを接続したまま、まとめて全ての電源を入れることができます。
動作確認
テーブルタップの電源スイッチを入れ、システム全体に電源を供給します。
T-Shellが起動したら、マイクロスクリプトのプログラム「PATLITE機器制御」を起動します。
画面に表示された機器のアイコンをタッチし、各機器のオン/オフが正常に動作することを確認します。
⇔
⇔
⇔
各機器をランダムにオン/オフして、画面のオン/オフ表示と機器のオン/オフ動作が食い違わないこと、操作した機器以外の機器が誤動作しないことを確認して完成です。