ParallelServer: デジタルI/Oを安価に使おう

作成日: 2008/10/19  最終更新日: 2008/10/19



◆はじめに

PhidgetServerでは,PhidgetsというUSBセンサ・アクチュエータ群を手軽に操作する方法を提供しました.中でも汎用IOのPhidget InterfaceKitはアナログ入力/デジタル入力/デジタル出力が8ポートずつ用意されており便利なのですが,ちょっとしたスイッチをつけたり,ランプを点灯させたりといったシンプルな用途にはオーバースペックであり,価格も1台10000円弱と安価とはいえませんでした.

そこで,ここでは1台1000円程度で入手可能なUSBパラレル変換モジュール(FT245RL)を紹介します(図1).このモジュールは,合計8ポートのデジタル入力/出力をUSB経由で制御できるデバイスです.アナログ入力は備えていないので用途は限定されますが,前述したようなスイッチやランプの制御には十分です(図2).

ParallelServerは,USBパラレル変換モジュールの動作テストに便利なGUIと,TCPサーバーを一体化したソフトウェアです(図3).TCPソケット経由でシンプルなテキストメッセージを送信するだけで,USB経由でデジタルI/Oを手軽に制御することができます.

MobiServerで紹介するさまざまなミドルウェア群と組み合わせることで,実世界のさまざまな機器をシンプルな方法で手軽に操作することが可能です.

x10device x10control

図1USBパラレル変換モジュールの外観
(秋月電子 FT245RL)

図2 ユニバーサル基板に取り付けた様子.
基板からスイッチ用のコネクタを伸ばしています.

図3 ParallelServerのスクリーンショット
(左:初期状態,右:USBパラレルモジュールが検出された状態)





◆ダウンロード

  • ParallelServer.zip
    実行ファイルです.事前に.Net Framework2.0をインストールしておく必要があります.Windows2000/XP/Vista上で動作するはずです.詳しくは下記のインストールを参照してください.
  • ParallelServerSource.zip
    ソースコードです.Visual Studio .NET 2008 を用いて,C#で書かれています.
  • 感想・要望などは下記メールアドレスまでご連絡ください.

◆ライセンス

プログラムのソースコードは修正済みBSDライセンスに従って配布します.完全に無保証です.

◆インストール

ParallelServerを実行する前に,Microsoft .NET Framework再頒布パッケージ (23.7 MB)と,USBパラレル変換モジュール用ドライバをインストールしておく必要があります.

これらのインストールが完了後,ParallelServer.zipを解凍し,実行ファイル(ParallelServer.exe)をダブルクリックすればプログラムが起動します.



◆使い方

1. デバイスの検出

ParallelServerを起動後,PCにUSBパラレル変換モジュール(以下,パラレルモジュール)を接続します.そして,フォーム下部の「スキャン」ボタンを押します.正常にデバイスが検出されると,モジュール制御用のGUIが表示されます.

「起動時にスキャンする」をチェックしておくと,次回ParallelServer起動時には自動的にパラレルモジュールのスキャンが行われます.

※シリアルポートを常時スキャンするタイプの常駐ソフトウェアが起動していると,パラレルサーバーの検出に失敗します.この際「起動時にスキャンする」オプションがついているとParallelServerが起動されません.常駐ソフトウェアを終了/アンインストール後に実行してください.

-
-

2.パラレルモジュールの接続/切断

パラレルモジュールに接続するためには,「開く」ボタンをクリックします.なお,スキャンした直後は自動的に接続されます.切断するためには「閉じる」ボタンをクリックします.
また,パラレルモジュールからの入力周期は「ポーリング周期」で設定できます.

-

3.パラレルモジュールの制御

「ポート」内のコンボボックスで各ポートの入力/出力(In/Out)を切り替えます.
入力モードのときは,ポートがHighになるとチェックボックスがチェックされ,Lowになるとチェックが外れます.
出力モードのときは,チェックボックスを用いてポートの出力をHigh/Lowに切り替えます.

-
◇その他の使い方
ネットワーク経由の使い方はMobiServerのページや以下の通信仕様を参考にしてください.


◆通信仕様

ここでは,ParallelServerの基本的な通信仕様について説明します.
詳細な通信仕様(エクセル形式, PDF形式)も参照してください.

基本仕様(共通)

基本仕様は以下のようになります.(全てのMobiServerに共通です.)

  • 送受信文字列は全てASCIIテキスト形式.
  • コマンドは「デリミタ」で指定した行区切り子("\r\n","\r","\n","\0")のいずれかで区切られる.
  • コマンド内の各要素は指定した項目区切り子(",", "\t")のいずれか で区切られる.

また,クライアントからコマンドを送信する際の注意事項は以下のようになります.

  • コマンドにミスがあった場合は無視される.(エラーは返さない.)
  • 各コマンドは厳密に指定する必要がある.
    • 大文字/小文字は区別される.
    • スペースを入れない.
  • <Port>, <Data>は各コマンド毎に適切な範囲を指定する.

基本的なコマンド構成

ParallelServerの各コマンドの,基本的な構成は,以下のようになります.

Parallel,<CommandType>,<ID>,[,...]

  • <CommandType>は以下の4種類
    • Attach
    • Detach
    • In
    • Out
    • Set
  • <ID>は8桁の文字列(e.g..A4001WtG) or 0
ParallelServer→クライアント
  • Parallel,Attach,<ID>
    • Parallelモジュール<ID>が接続された.
    • e.g.) Parallel,Attach,A4001WtG
  • Parallel,Dettach,<ID>
    • Parallelモジュール<ID>が切断された.
    • e.g.) Parallel,Dettach,A4001WtG
  • Parallel,In,<ID>,<Port>,<Data>
    • Parallelモジュール<ID>のデジタル入力<Port>が<Data>へと変化した.
    • e.g.) Parallel,In,A4001WtG,3,1
クライアント→ParallelServer
  • Parallel,Out,<ID>,<Port>,<Data>
    • Parallelモジュール<ID>のデジタル出力<Port>を<Data>へと変更する.
    • ※<Port>は0 -- 7の整数,Dataは0 -- 1の整数.
    • e.g.) Parallel,Out,0,0,1
  • Parallel,Set,<ID>,<Port>,<Data>
    • Parallelモジュール<ID>のデジタルポート<Port>の入力/出力<Data>を変更する.
    • ※<Port>は0 -- 7の整数,Dataは0 -- 1の整数.(0=入力,1=出力)
    • e.g.) Parallel,Set,0,2,0





◆参考URL


[MobiServer]