USBセンサを使ってみよう 〜Phidgets活用講座 概要編 (2)〜 |
作成日: 2006/7/6 最終更新日: 2008/10/19 |
概要 | |
このページの内容は,Software Design 2005年12月号 pp.114-121に掲載された, 「USBセンサを使ってみよう Phidgets活用講座(1)」をHTML化したものです.分量が多いため,三つのページに分割してあります. ここでは,さまざまなPhidgetsのセンサー/アクチュエーター群を手軽にネットワーク経由で操作できる,「PhidgetServer」というソフトウェアについて紹介します.USBセンサを使ってみよう(PhidgetServer編)も参考にしてください. ※新しいPhidgetデバイスやドライバに対応したPhidgetServer2.0を公開しました.(2008/10/19) |
|
連載目次 |
|
PhidgetServerの基本 | ||
1.PhidgetServerの概要 | ||
PhidgetServerは,Phidgetデバイスを手軽に制御できるGUIと,TCPサーバーを一体化したソフトウェアです(図 7).PhidgetServerを用いれば,GUIからPhidgetデバイスの動作テストを行ったり,TCPソケットを利用できる全ての言語から容易 にPhidgetsを制御することが可能です.たとえば,ローカルホストでPhidgetServerを起動して,Flashなどからソケット経由で Phidgetsを制御することができます. さらに,複数のPCに接続されたPhidgetsを連携して扱うことも可能になります.たとえば,遠隔地のPCに接続されたセンサーデータを定期的に取得 し,解析&描画するようなアプリケーションも容易に記述できるでしょう. PhidgerServerは,.Net Framework1.1 + C# + COM版のPhidgetライブラリを用いて実装されています.Phidgetsには.Netに対応したライブラリも用意されているのですが,本稿執筆時点では動作が不安定なため,COM版のライブラリを利用しています. ここではまず,PhidgetServerを利用するための準備について説明し,次に具体的な利用手順を紹介します. |
||
|
||
2. PhidgetServerを使う準備 |
PhidgetServerを起動するために必要なハードウェア/ソフトウェアは以下のようなものです.
|
3. 基本的な使い方 |
次に,PhidgetServerの基本的な使い方について説明します.PhidgetServerのGUIを直接利用し,Phidgetsの動作確認などを行います. |
1. デバイスの接続と切断(Attach/Detach) |
PhidgetServerを起動後,PCにPhidgetデバイスを接続すると,自動的に種別を認識し,確認メッセージ(Attach)を表示します.アプリケーション側で特別な操作は必要ありません. 同様に,PCからデバイスを取り外すと,確認メッセージ(Detach)を表示します.なお,デバイスは基本的にいつでも接続/切断(=抜き差し)できます. |
2. デバイスからの入力と閾値設定 |
入力系デバイス(Accelerometer, InterfaceKit, RFID, WeightSensor)のセンサーデータに閾値以上の変化があった場合,新しいデータを取得し,GUI表示を更新します.閾値は各センサー毎に指定で き,フォーム上の変更がリアルタイムに反映されます. なお,RFIDの場合は,閾値(秒)で指定された時間後に再度読み取りを行い,タグが除去されたかどうか確認しています.これは,PhidgetRFID にはタグが除去されたイベントを取得する機能が備わっていないためです. |
|
3. デバイスへの出力 |
フォーム上のチェックボックスやスライダーを操作することで,出力系デバイス(InterfaceKit, ServoMotor)を制御することができます.InterfaceKitの場合,0〜7のチェックボックスをOn/Offすることで,対応するポート をOn/Offすることができます.ServoMotorの場合,CH0〜3のスライダーを動かすことで,各サーボモーターの回転角度を180段階で制御 することができます. |
4. ネットワーク経由の使い方 |
それでは,PhidgetServerのメインとなるネットワーク経由の使い方について説明します.TCPソケットを介して,さまざまな言語からPhidgetデバイスを制御することができます. |
0. サーバーの開始/停止 |
サーバーを起動するためには,フォーム左上の「サーバー」において,任意のポートを指定し,「開始」ボタンを押します.
次に,開始に成功すると,確認メッセージが表示され,停止ボタンがアクティブになります.この状態で,クライアントの接続を待機します. 最後に,サーバーを停止する場合は,「停止」ボタンを押します.全てのクライアントとの接続を切断し,サーバーを終了します. |
1. PhidgetServerへの接続 |
ここでは,ネットワークを介したPhidgetServerの使い方を簡潔に説明します.まず,PhidgetServerの動作してい るIP/Portを確認します.たとえば,IP:127.0.0.1,ポート:4321で動作しているPhidgetServerにtelnetを用いて 接続する場合,以下のようにコマンドプロンプトから入力します.
|
2. デバイスの接続/切断 |
Phidgetデバイスが新たに接続/切断されると,以下のようなメッセージがPhidgetServer→クライアントへ送信されます.
詳細については,後述する「通信仕様」を参照してください(以下のコマンドも同様). |
3. デバイスからの入力 |
入力系デバイス(Accelerometer, InterfaceKit, RFID, WeightSensor)のセンサーデータに閾値以上の変化があった場合,以下のようなメッセージがPhidgetServer→クライアントへ送信されます.
|
4. デバイスへの出力と閾値の設定 |
出力系デバイス(InterfaceKit,ServoMotor)の制御,および入力系デバイスに対する閾値の設定は,以下のようなメッセージをクライアント→PhidgetServerに送信することで行います.
|
Phidgetsなどの複数のUSBデバイスを同時に扱う場合,複数のUSBケーブルとハブを持ち歩くことが多くなります.こうした場合,USBケーブル/ハブ自体がかさばると非常に不便です.
そこで,筆者は巻き取りタイプのUSBケーブル(ELECOM製 USB-RL08)+スティックタイプのハブ(SIGMA製 HBH4)を愛用しています(図8).特に,USB-RL08は通常のUSBケーブルよりはるかにコンパクトなので重宝します.価格も一つ1000円程度ですので,Phidgetsのお供に(?)購入を検討してみてはいかがでしょうか. (ただし,USB2.0には対応していません.高速通信が必要な用途には USB-RL15などを検討するとよいでしょう.) | ||
|
||
[次へ->PhidgetServerの詳細と応用]
[デバイスぶらり旅]