PhidgetServer2.0: USBセンサを手軽に使おう

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



◆はじめに

Phidgetsは,一般的なPC(Windows/Mac/Linux)などから手軽に扱うことができる,USB接続のセンサ/アクチュエータ群です (図1).センサの種類も豊富で扱いやすいため,ちょっとした実世界指向システムを開発するのに適しています.PhidgetServerは,Phidgetデバイスの動作テストに便利なGUIと,TCPサーバーを一体化したソフトウェアです(図2).TCPソケット経由でシンプルなテキストメッセージを送信するだけで,Phidgetデバイスを手軽に制御することができます.

ここでは,PhidgetServer を2008年10月時点で最新のPhidgetsのドライバ(version 2.1)とさまざまな新しいPhidgetデバイスに対応させたPhidgetServer2.0を紹介します.MobiServerで紹介するさまざまなミドルウェア群と組み合わせることで,実世界のさまざまな機器をシンプルな方法で手軽に操作することが可能です.

図1 Phidget InterfaceKitの外観

図2 PhidgetServerのスクリーンショット
(左:初期状態,右:Phidget InterfaceKit + TextLCDを接続した状態)


◆対応デバイス
PhidgetServer2.0で対応しているデバイスを図3に示します. デバイス名はPhidgetsの製品ページにリンクしており,直接購入することができます. なお,以下に記載のないデバイスに関しては現時点では対応していませんが,利用機会があれば追加していきます.
- -

[PhidgetInterfaceKit]

[PhidgetInterfaceKit Sensors]
(Vibration Sensor, Touch Sensor, Force Sensor, Slider)
- -
[PhidgetAccelerometer] [Phidget LV Motor Kit]
- -
[PhidgetRFID Kit] [PhidgetServoMotor Kit]
- -
[PhidgetTextLCD + InterfaceKit]
- -
[PhidgetTemperature Sensor] [PhidgetWeightSensor]
図3 対応するPhidgetデバイス一覧




◆ダウンロード

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

  • PHIDGET.msi
    -Phidgetドライバなどを含むインストーラーです. 上記サイトに接続できない場合は,こちらからもダウンロード可能です.

◆ライセンス

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

◆インストール

PhidgetServerを実行する前に,Microsoft .NET Framework再頒布パッケージ (23.7 MB) と,上述のPHIDGET.msiをインストールしておく必要があります.

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



◆使い方

◇デバイスの接続
PhidgetServer2.0を起動後,Phidgetデバイスを接続することで,デバイスに応じたGUIが表示されます(図4).これらのGUIを用いて,Phidgetデバイスの動作テストを行ったり,閾値などの設定を変更したりすることができます.
-
- -
-
-

図4 PhidgetServerのGUI.
(1段目: Phidget InterfaceKit, 2段目: Phidget Accelerometer & PhidgetRFID,
3段目: Phidget TextLCD, 4段目: Phidget Servo)

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


◆通信仕様

ここでは,PhidgetServer2.0の通信仕様を抜粋して説明します.
詳細については,通信仕様(エクセル形式, PDF形式)を参照してください.

基本仕様(共通)

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

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

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

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

コマンド構成

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

Phidgets,<CommandType>,<PhidgetType>,<PhidgetID>[,...]

  • <CommandType>は以下の5種類
    • Attach
    • Detach
    • In
    • Out
    • Set
  • <PhidgetType>は以下の8種類
    • Accel
    • InterfaceKit
    • Motor
    • RFID
    • Servo
    • Temperature
    • TextLCD
    • Weight
  • <PhidgetID>は任意のPhidgetデバイスのID or 0
    • 0のときは接続されているすべてのデバイスを対象とする.
  • [ ]内はデバイスの種別により省略される.
PhidgetServer→クライアント
  • Phidgets,Attach,<PhidgetType>,<ID>
    • デバイス<ID>が接続された.
    • e.g.) Phidgets,Attach,InterfaceKit,27249
  • Phidgets,Detach,<PhidgetType>,<ID>
    • デバイスが切断された.デバイス<ID>が切断された.
    • e.g.) Phidgets,Detach,InterfaceKit,27249
  • Phidgets,In,InterfaceKit,<ID>,Analog,<Port>,<Data>
    • InterfaceKitのアナログ入力<Port>が<Data>へと変化した.
    • e.g.) Phidgets,In,InterfaceKit,27249,Analog,0,512
    • ※<Port>は0--7の整数.
        <Data>は0--1024の整数.
クライアント→PhidgetServer
  • Phidgets,Out,InterfaceKit,<ID>,Digital,<Port>,<Data>
    • InterfaceKit<ID>のデジタル出力<Port>を<Data>に変更する.
    • e.g.)Phidgets,Out,InterfaceKit,27249,Digital,0,1
    • ※<Port>は0--7の整数.
        <Data>は0 or 1の整数.
  • Phidgets,Out,Servo,<ID>,<Port>,<Data>
    • ServoMotor<ID>のチャンネル<Port>のモータ角度を<Data>に変更する.
    • e.g.) Phidgets,Out,Servo,3633,0,230
    • ※<Port>は0--3の整数.
        <Data>は0--180の整数.
  • Phidgets,Set,InterfaceKit,<ID>,Threshold,<Port>,<Data>
    • InterfaceKit<ID>のアナログ入力<Port>の閾値を<Data>に変更する.
    • e.g.)Phidgets,Set,InterfaceKit,27249,Threshold,0,50
    • ※<Port>は0--7の整数.
        <Data>は0--1024の整数.





◆参考URL
  • Phidget Inc. HomePage
    - 本家Phidgetsのサイトです.Phidgetデバイスを通信販売で購入できます.ソフトウェアやドキュメントのダウンロードも可能です.
  • ぷらっとホーム
    - Phidgetの日本国内のディストリビューターです.上記公式サイトより割高になりますが,通信販売でPhidgetを購入できます. たとえば,InterfaceKit Package #2はこちらから購入できます.
  • USBセンサを使ってみよう
    - 筆者が以前Software Design誌に短期連載した記事をHTML化したものです.少々内容は古くなってしまいましたが,ある程度参考になると思います.


[MobiServer]