Classiclll's Blog

an old boy

MyFirstWii - Proce55ing Library WRJ4P5 (Just Pre- Alpha Version)

イメージ 1

Processingライブラリー WRJ4P5(WiiRemoteJ For Proce55ing)


daniel shiffmanApple Sudden Motion Sensor Libraryレベルを、やっと抜けた。

P5のライブラリーに仕立てたし、計測値に加えて、押されたボタンの識別、LEDのオン/オフ、バイブレータのオン/オフも出来るもんね。(画像、動画参照)

(といっても、ごく限定機能–公開できるのはいつのことやら)

久しぶりに、MyFirstWii - WiiRemote Lib for Proce55ing - Sampleを ガラクタ置き場に置いた。
アプレットは当然のごとく動かないので、(下の)Y!ビデオキャストの映像をかわりに掲示させている。






●スケッチ(PApplet)には
 void buttonPressed(RimokonEvent ev, int rid) Wiiリモコンのボタンが押されたときに呼ばれる。

●Wii本体(class WRJ4P5)には
 WRJ4P5(PApplet) コンストラクタ。一つだけWiiリモコンを繋げる。
 int rCount 繋がっているWiiリモコンの数
 WiiRimokon rimokon 最初に繋がったWiiリモコン

●興味の対象、Wiiリモコン(class WiiRimokon)には
 Loc sensed センサー計測値(-256~+256)
 float getBatteryLevel() バッテリー残量を得る(0~1)
 boolean[] getLEDLights() (4本の)LEDライトの状態を得る。
 boolean isLEDIlluminated(int light) 指定されたLEDライトの点灯を確かめる。
 void setLEDIlluminated(int light, boolean illuminated) 指定されたLEDライトをOn/Offする。
 void setLEDLights(boolean[] lightStatus) (4本)全てのLEDライトをOn/Offする。
 boolean isVibrating() 振動が続いているか確かめる。
 void startVibrating() 現在の強さで振動を開始する。(止めるまで止まらない)
 void vibrateFor(long time) 現在の強さで指定時間のあいだ継続する振動を開始する。
 void stopVibrating() 振動を止める。

●Wiiリモコンの状態を表すクラス(class RimokonEvent)には
 static int A Aボタン
 static int B Bボタン
 static int DOWN ↓ボタン
 static int HOME HOMEボタン
 static int LEFT ←ボタン
 static int MINUS ?ボタン
 static int ONE 1ボタン
 static int PLUS +ボタン
 static int RIGHT →ボタン
 static int TWO 2ボタン
 static int UP ↑ボタン
 RimokonEvent() コンストラクター
 boolean isPressed(int button) 上のいずれかのボタンが【今】押されたか確かめる
 boolean wasPressed(int button) 上のいずれかのボタンが押されているか確かめる。
 boolean wasReleased(int button) 上のいずれかのボタンが放されているか確かめる。

このライブラリーを使う為には乗り越えなければならない、いくつかの大きなハードルがある。
0.Processingのインストール(フリー、ソース公開)
1.Wiiリモコンの購入。(正価3800円)
2.Bluetoothアダプタの購入。(私はヤフオクで500円で落札。ワイヤレスマウスのドングルが使えるかも)
3.Wiili.orgの[DownloadページにあるCha0sのpublic版WiiRemoteJ v1,0を入手。(フリー、ソース非公開)
4.avetana JSR82インプリメンテーションライブラリを入手。(有償、14日間試用、25ユーロ、3BTアダプターまで)
  • Windowsユーザーにはavetanaと等価な無償のBlueCoveがAug 27にリリースされている。bluecove-2.0.1.jarをavetanabluetooth.jarにリネームして使ったところ、手元のサンプルスケッチは全部動いた。(9/22/2007)
5.このライブラリが本当に安定するかどうかわからない。
これらハードルを乗り越えて人柱になろうという方がいれば、pre-alpha版のプライベートリリースを考えるかも。(ただ、サポートは期待しないこと)

かなり危険な人柱。


Processing については、
日本語サポートサイトからたどれるP5インフォメーション→言語が参考になる。
(解説してあるのは一昔前の版だから注意が必要だけど、loop()→draw()の読み替えだけで大抵OK)
・山本徹(thoru)さんがFunProce55ingで解説してくれている。(【簡潔】で【わかり易く】、【楽しい】解説)
例題集は習作集と区別するためにこちらに置いている。
・P5のスケッチからアプレットを作り、【ジオシティーズ】にアップする手順をまとめたので、参考に。