最大7本のWiiリモコンを同時に操る『Wiimote over HTTP』

同僚の根本さんと Wiimote over HTTP というプロジェクトを進めています。
Wiiリモコンを利用した、「リアルデバイス Web サービス」の仕組みです。
http://code.google.com/p/wiimote-over-http/

WiiリモコンをPCのHIデバイス、ローカルデバイスとして利用するアプリは
増えてきていますが、Wiimote over HTTP (WoH) では、Wiiリモコンの
情報や機能をWebサービスとして提供します。

 ・Wiiリモコンの各ボタンの押下状況取得
 ・傾きセンサー、pitch、poll 情報取得
 ・LED 点灯、消灯操作(タイムアウト付)
 ・バイブレーション操作(タイムアウト付)

といった機能がインターネット経由で利用できます。
双方向通信なので、LED・バイブレーションも操作可能。
しかし、Wii リモコンはこれだけ機能がついて4,000円というのは安い!

Wii本体では、最大4台までのWiiリモコンが同時利用可能ですが、
WoH では、Bluetooth の限界まで最大7台までのWiiリモコンを同時利用可能です。

XML・JSONP形式のレスポンスに対応したいわゆる広義のWebサービスの
形態になっています。Webサービスですから、インターネットを経由して
遠隔地の Wii リモコン情報も取得可能なのが、大きな特徴です。
APIの詳しい仕様はWikiを参照のこと。

XMLレスポンスの例:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <method>getStatus</method>
    <status>200</status>
    <data>
        <wiimote index="1">
            <xPos>0.113402</xPos>
            <yPos>-0.414141</yPos>
            <zPos>0.883495</zPos>
            <pitch>-0.426999</pitch>
            <roll>0.113647</roll>
            <a>1</a>
            <b>0</b>
            <down>0</down>
            <home>0</home>
            <left>0</left>
            <minus>0</minus>
            <nunchuk>
                <xPos>0.0</xPos>
                <yPos>0.0</yPos>
                <zPos>0.0</zPos>
                <pitch>0.0</pitch>
                <roll>0.0</roll>
                <c>0</c>
                <z>0</z>
                <xVec>0.0</xVec>
                <yVec>0.0</yVec>
            </nunchuk>
            <one>0</one>
            <plus>0</plus>
            <right>0</right>
            <two>0</two>
            <up>0</up>
        </wiimote>
    </data>
</response>


JSONPレスポンスの例:
callback({
  "response":{
    "method":"getStatus",
    "status":"200",
    "data":{
      "wiimote":[
        {
          "@index":"1",
          "xPos":"-0.14433",
          "yPos":"-0.212121",
          "zPos":"0.961165",
          "pitch":"-0.213745",
          "roll":"-0.144836",
          "a":"1",
          "b":"0",
          "one":"0",
          "two":"0",
          "minus":"0",
          "plus":"0",
          "home":"0",
          "up":"0",
          "down":"0",
          "left":"0",
          "right":"0",
          "nunchuk":{
            "xPos":"0.0",
            "yPos":"0.0",
            "zPos":"0.0",
            "pitch":"0.0",
            "roll":"0.0",
            "c":"0",
            "z":"0",
            "xVec":"0.0",
            "yVec":"0.0"
          }
        }
      ]
    }
  }
});

利用方法は簡単。

<使い方>
1.http://code.google.com/p/wiimote-over-http/downloads/list から最新の
  WiimoteOverHTTP-0.5-executable.zip をダウンロードして、展開する。
2.startup.bat バッチファイルを実行すると、8080 番ポートで
  Jetty ベースの Web サーバが起動する。
3.http://127.0.0.1:8080/WiimoteOverHTTP/ にアクセスすると、
  Wiimote over HTTP のコントロールパネル画面が表示される。
4.コントロールパネルで [findWiimote] Wiiリモコン探索・接続 を実行するか、
  http://127.0.0.1:8080/WiimoteOverHTTP/execute?method=findWiimote にアクセス。
5.Wii リモコンの1ボタン・2ボタンを同時に押す。
6.Wii リモコンのLEDが1番だけ点灯すれば認識成功。
7.コントロールパネルで [getStatus] Wiiリモコン操作情報取得 を実行するか、
  http://192.168.1.52:8080/WiimoteOverHTTP/execute?method=getStatus にアクセス。
8.Wii リモコンの傾きやボタン押下状況を XML で取得できるよ。

<コントロールパネル>
<ご注意>
・Bluetoothアダプタには、WIDCOMMドライバが必要です。
 MicrosoftのWindows標準のBluetoothスタックや、
 BlueSoleilでは、今のところ残念ながら利用できません。
 (BlueCoveの相性が悪いらしい・・・)
・WIDCOMMスタックが対応しているBluetoothアダプタとしては、USB-DO-BT/CL があります。
・WIDCOMMドライバと、BlueSoleilなど他のドライバは共存できません。
 
★USB-DO-BT/CL の購入はこちら⇒
 セレクト通販 ShopU【在庫販売】オフィス内のワイヤレス化に。<V2.0+EDR対応版>Bluetooth USBアダプタ

★Wiiリモコンの購入はこちら⇒
Amazon:Wiiリモコン(「Wiiリモコンジャケット」同梱)

 


[追記]WoH を利用したデモの記事を Wiiリモコン×7台対応の『リアルデバイスWebサービス』 に書きました。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 1

面白い

この記事へのコメント

この記事へのトラックバック