USBセンサを使ってみよう 〜Phidgets活用講座 概要編 (1)〜 |
作成日: 2006/7/6 最終更新日: 2008/10/19 |
概要 | |
このページの内容は,Software Design 2005年12月号 pp.114-121に掲載された, 「USBセンサを使ってみよう Phidgets活用講座(1)」をHTML化したものです.分量が多いため,三つのページに分割してあります. ここでは,一般的なWindows PCから手軽に扱うことができる,USB接続のセンサー/アクチュエータ群「Phidgets」の基本について説明します.USBセンサを使ってみよう(PhidgetServer編)も参考にしてください. ※新しいPhidgetデバイスやドライバに対応したPhidgetServer2.0を公開しました.(2008/10/19) |
|
連載目次 |
|
Phigetsの基本 | |
1. はじめに | |
近年,ユビキタス・コンピューティングやセンサー・ネットワークといった言葉を,さまざまなところで目にするようになってきました.これ らは,さまざまなセンサー・アクチュエーター,小型コンピュータを生活空間に配置し,それらを組み合わせた新しいユーザ・インタフェースやサービスの構築 を目指しています. 現在のPCの入出力インタフェースは,マウス/キーボード/ディスプレイにほとんど固定されてしまっていますが,こうしたさまざまなデバイスを組み合わせることで,身体的な動作や周辺的な情報を活用した,より豊かなユーザ・インタフェースを構築できる可能性があります. その一方,こうしたユビキタス的な実世界システムはハードウェア/ソフトウェアの双方の開発を伴うため,個人が取り組むには敷居の高い領域でした. もし,日曜プログラミングのような形で,思い立った時に手軽にさまざまなセンサ・アクチュエータなどを組み合わせた実世界システムを製作できれば,プログラミングの世界は大きく広がるのではないでしょうか. 本連載は全3回(+α)を予定しており,Phidgetsというデバイス群を用いて,こうした「日曜ユビキタス環境」を実現する方法について説明します. まず今回は,Phidgetsの概要と,Phidgetsをさまざまな言語から手軽に扱うことができるPhidgetServerというソフトウェアを中心に紹介します. |
|
2. Phidgetsの概要 | ||||
Phidgets(Physical Widgets)は,一般的なWindows PCから手軽に扱うことができる,USB接続のセンサー/アクチュエータ群です.(筆者は試用していませんが,Mac/Linux用のドライバも用意されています.) センサーの種類もなかなか豊富で扱いやすいため,ちょっとした実世界指向システムを開発するのに適しています. Phidgetsはもともと,カルガリー大学のSaul Greenberg氏らによりはじめられたプロジェクトであり,物理的なデバイス(スライダー,スイッチ,LED,モーターなど)を,PC上のGUIと同じような感覚で利用 することを目標とした,デバイス&ツールキットの総称です.(製品化以前の論文/デモビデオなどがWebページ上で紹介されています.) なお,本稿では便宜的に,Phidgetsのデバイス群を「Phidgetデバイス」と呼ぶことにします。 ほとんどのPhidgetデバイスはUSBから給電されるため,PCとUSBケーブルさえあればどこでも利用できます.また,専用のライブ ラリ(COMやDLL)が用意されているため,Visual Basic, VC++, Javaなどの言語から比較的容易に扱うことが可能です. Phidgetデバイスには,たとえば以下のようなセンサー/アクチュエーターが用意されています.
ここではまず,これらのPhidgetデバイスの概要について説明します. |
||||
PhidgetInterfaceKit | ||||
PhidgetInterfaceKit(以下,InterfaceKit)は,各8ポートのアナログ入力/デジタル入力/デジタル出力を備えた,基本となるPhidgetデバイスです(図1). アナログ入力は10bitのA/Dコンバーターを搭載しており,電圧を出力とするさまざまなセンサーを接続できます.代表的なセンサーとし てはは次のようなものが挙げられます(図2).(これらは後述するInterfaceKit Package #2に付属しています.)
デジタル入力はOn/OFFを検出する1bitの入力端子であり,スライドスイッチ,プッシュスイッチなどを接続します. デジタル出力は,5Vの電圧をOn/Offすることで,LEDなどを制御します.リレーなどを介せば,電球など100V機器の制御も可能です. InterfaceKitは,国内代理店のぷらっとホームから購入するか,Phidgetsの公式サイトから直接購入することができます.(以下のPhidgetデバイスも同様です.) ぷらっとホームでは,InterfaceKitにいくつかのセンサーなどを組み合わせた形で,InterfaceKit Package#1,#2として販売しています.価格は#1が14800円,#2が24800円となっています(本稿執筆時点,以下同様).#2の方が付 属するセンサーが豊富で扱いやすいため,お勧めです. Phidgetsの公式サイトでは,InterfaceKitと各種センサーは別売されており,今回紹介した以外のセンサーも多数販売されています. |
||||
|
||||
PhidgetRFID |
||||
PhidgetRFIDは,USBに直結するRFIDリーダーと10個程度のタグのセットです(図3). 135KHzの周波数帯を利用しており,アンチコリジョン(タグの複数読み取り機能)には対応していません.価格は,ぷらっとホームで9800円, Phidgets公式サイトで90CDN(カナダドル)となっています.(1CDN = 97円前後,本稿執筆時点.)
PhidgetRFIDは,RFIDシステムとしてはごく基本的な性能ですが,安価で取り扱いが容易なため,小規模な試作には最適だと思います. なお,RFIDについては,筆者がSoftware Design2004年10月号〜2005年2月号に執筆した,「RFIDを使ってみよう」にて,詳しく紹介していますので,参考にしてください. |
||||
PhidgetAccelerometer | ||||
PhidgetAccelerometerは,USBに直結できる2軸の加速度センサーです(図4). AnalogDevices社のADXL202という有名な加速度センサーを利用しており,物体の移動にともなう加速度,および静止時の地軸に対する傾斜(重力加速度)を計測できます. 価格は,Phidgets公式サイトで75CDNとなっています.ぷらっとホームでは単体販売はされておらず,InterfaceKit #2などに同梱されているようです. PhidgetAccelerometerは,ヒト/モノのさまざまな動作/状態を取得できるため,使い勝手のよいセンサーといえます. |
||||
|
||||
PhidgetWeightSensor | ||||
PhidgetWeightSensorは,USBに直結できる体重計です(図5).市販の体重計をそのままハックしたような外観です が,体重を0.1kg単位でかなり正確に計測することができます.価格は,ぷらっとホームで19,800円,Phidgets公式サイトでは130CDN (カナダドル)となっています.
PhidgetWeightSensorは,体重を直接取得できる珍しいセンサーなので,アイデア次第で面白い使い方が出来るのではないかと思います. |
||||
PhidgetServoMotor | ||||
PhidgetServoMotorは,サーボモーターとコントローラーをセットにした,PCからサーボモーターを手軽に制御できるシス テムです(図6).1度以下の正確な単位で,サーボモーターの動作角度(最大約180度)を制御することができます.なお,給電はACアダプタから行いま す. PhidgetServoMotorには,1つのサーボモーターを制御する1-motorと,4つのサーボモーターを制御する4- motorの二つのラインナップが用意されています.4-motorの場合,価格はぷらっとホームでは24,800円,Phidgets公式サイトでは約 150CDNとなっています. PhidgetServoMotorは,PCから制御できるサーボモーターとしてはもっとも手軽で扱いやすいものの一つです. |
||||
|
||||
3. Phidgetsの問題点 | |
これまでみてきたように,Phidgetsには魅力的なセンサー/アクチュエータが多数用意されています. ここでソフトウェアの方に目を向けてみると,Visual Basic, VC++, Javaなどに対応したサンプルが用意されている反面,Rubyなどのスクリプト系言語やFlashなどからは利用できなかったり,.Net環境への対応 がやや貧弱であったりと,実際に使おうとすると不便な要素も散見されます. また,複数のPCに接続されたPhidgetデバイスを相互に連携させることは困難です. そこで,ここでは,主要なPhidgetデバイスをTCPサーバー経由で手軽に制御できる,PhidgetServerというソフトウェアを開発してみました. |
[デバイスぶらり旅]