PhidgetRFID Kitで遊ぼう


岡田 大助
@IT編集部
2007年6月22日
RFIDシステムの勉強用に開発キットが欲しい。比較的、安価に入手できるこんな開発キットはどうでしょう?(編集部)

 2007年2月に実施した「@IT RFID+IC」フォーラムの読者調査によると、約20%の読者がすでに何らかの形でRFID関連業務に携わっており、また約36%が「今後、手掛けたい」と思っていることが分かりました。ところが、「現在、RFIDシステム開発を行ううえで感じている課題や問題点」を聞くと、「SDKの価格がまだまだ高く、システム普及の妨げになっている」「勉強用途で開発機器を簡単に揃えることが難しい」といった回答が寄せられました。

 そこで今回は、比較的安価に入手できるRFID開発キット「PhidgetRFID Kit」を紹介したいと思います。これは、カナダのPhidgets社が提供しているRFID開発キットです。Phidgets社は、USB接続のタッチセンサーや光センサーなどの各種センサーやサーボモータ制御用キットなど、日曜大工ならぬ“日曜プログラミング”向きの開発キットを提供しています。

 PhidgetRFID Kitは、USB接続のRFIDリーダとカード型RFIDタグ2枚、ボタン型RFIDタグ6個、キーホルダー型RFIDタグ2個のセットとなっており、90カナダドル(約1万円)で入手できます。国内では、ぷらっとホームのオンラインショッピングサイトで取り扱っているようです。

 Phidget社のWebサイトの記述によれば、リーダの読み取り範囲は約3インチ(約8センチ)。対応OSはWindows 2000とXPで、Phidget社のWebサイトからライブラリとサンプルプログラムがダウンロードできます。開発には、VisualBasic、C++、Delphi、Javaなどが利用できます。

●サンプルプログラムを体験してみよう

 それでは、PhidgetRFIDをセットアップして、サンプルプログラムを体験してみましょう。まず、ライブラリをインストールします。これは、PhidgetRFID Kit専用ではなく、すべてのPhidgets社の開発キット共通のものなので、過去にインストールしてあれば、そのまま利用できます。

 現在、Phidget社のWebサイト内にある「Downloads」には、「Phidget20」「Phidget21」という2つの系統が用意されています。今回は、PhidgetRFID Kitで使えるサンプルプログラムが多いPhidget20系統をインストールしようと思います。最新版であるPhidget21系統を試したい場合は、コントロールパネルの「プログラムの追加と削除」からインストール済みのライブラリを削除して、改めてPhidget21用のライブラリをインストールしてください。

 まず、「Phidget20.msi」をダウンロードし、実行します。次に、サンプルプログラム集の「Phidget20Examples.zip」をダウンロードし、任意のフォルダに解凍します。言語ごとに分かれたフォルダの中に多くのサンプルプログラムが入っていますが、PhidgetRFID Kit用のものは3つです(ファイル名に「RFID」という文字列があるもの)。

 では、リーダをUSBポートに接続してサンプルプログラムを試してみましょう。ここでは、VisualBasic用のサンプルプログラムを紹介します。

 「rfid-simplest」は、リーダにかざしたRFIDタグのIDを読み取り、画面上に表示するだけの、文字通り“超シンプル”なサンプルプログラムです。

 「rfid-simple」は、リーダにRFIDタグをかざしている間、連続してIDを読み取り続け、読み取り回数を表示します。リーダにRFIDタグを近づけると読み込む、リーダから離すと読み込まないといった単純な動作の確認ができます。

 「rfid-colorchips」は、読み取ったRFIDタグのIDに応じて、画面の色を変更するサンプルプログラムです。上記2つのサンプルプログラムに比べると、少しRFIDタグを利用したシステム開発に近づいた気になりますね。

●RFIDタグでPCをロックするプログラムを作ってみた

 せっかくなので、サンプルプログラムを参考にしながら、簡単なプログラムを開発してみました(@IT Java Solutionフォーラムの担当編集者が開発したので、Javaのプログラムです)。

 弊社でも情報セキュリティ対策の一環として、離席時にはPCにパスワードロックをかけることが義務になりました。PCロックは「Windows」キー+「L」で一発なのですが、筆者が利用しているThinkPadには「Windows」キーがありません。「Ctrl」+「Alt」+「Del」で表示されるセキュリティダイアログから「コンピュータのロック」を選べばいいのですが、不精なので一発ロック用のデスクトップショートカットを作成、利用しています。

【関連記事】
離席時に簡単にコンピュータをロックする方法(Windows Tips)
Ctrl+Alt+Delでセキュリティ・ダイアログを表示させる(Windows Tips)

【関連リンク】
コンピュータをロックするデスクトップショートカットを作成する
http://www.microsoft.com/japan/windowsxp/expertzone/tips/april/foumberg1.mspx

 今回、作成したPhidgetRFID Kit用プログラムは、RFIDタグをリーダにかざすと上記のデスクトップショートカットを実行するというものです。以下のソースコードをJava用のサンプルプログラムが入ったフォルダに保存して、コンパイルしてください。

import java.io.IOException;

import Phidgets._IPhidgetRFIDEventsAdapter;
import Phidgets._IPhidgetRFIDEvents_OnDetachEvent;
import Phidgets._IPhidgetRFIDEvents_OnTagEvent;
import Phidgets.PhidgetRFID;

public class RFIDDeskLock extends _IPhidgetRFIDEventsAdapter{

  public void OnTag(_IPhidgetRFIDEvents_OnTagEvent ke) {
    //ランタイムの取得
      Runtime exe = Runtime.getRuntime();
      try {
        //デスクトップ・ロック実行
        System.out.println("デスクトップ・ロック実行");
        exe.exec("C:\\WINDOWS\\System32\\rundll32.exe user32.dll,LockWorkStation");
      } catch (IOException e) {
        e.printStackTrace();
      }
  }
  public void OnDetach(_IPhidgetRFIDEvents_OnDetachEvent ke) {
    //何もしない
  }

    public static void main(String[] args) {
      new RFIDDeskLock();

    }
    public RFIDDeskLock(){
      PhidgetRFID phid = new PhidgetRFID();
      phid.add_IPhidgetRFIDEventsListener(this);
      if (phid.Open(false) == false)
    {
        System.out.println("PhidgetRFIDが見つかりません");
        return;
    }
    System.out.println(phid.GetDeviceType());
    System.out.println("シリアル・ナンバー " + phid.GetSerialNumber());
    System.out.println("デバイス・バージョン " + phid.GetDeviceVersion());
    System.out.println("アタッチド " + phid.GetIsAttached());
    phid.SetOutputState(3, true);
    phid.run();
  }
}
RFIDDeskLock.java

 classファイルを実行すると以下のような画面が表示され、準備完了です。RFIDタグをかざすとコンピュータが一瞬でロックされましたか?

 実は、このプログラムには、RFIDタグの「1枚読み」が実装されていません。そのため、RFIDタグをリーダにかざしてからコンピュータがロックされるまでの間、リーダはタグを読み込み続けています。あまりスマートではありません。まだまだ開発(の勉強)をする余地が残されているようです。

RFID+ICフォーラム トップページ


RFID+IC フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

Master of IP Network 記事ランキング

本日 月間
ソリューションFLASH