Wiiリモコン(Wiimote)のSensor API対応ドライバ

こんなのめっけ(・∀・)
http://www.codeproject.com/KB/system/wiisensor.aspx
なにかと言えば、WiiリモコンをSensor API対応の3軸加速度センサーとして認識させるドライバ。
WiimoteLibはHIDを直接Read/Weiteしているけど、これを使えばWindows API Code Packを使ってSensor APIで値を取得できるようになりますね(・∀・)


っで、使ってみたので簡単にメモ。

インストール

まずはWiiリモコンBluetoothのデバイスとして認識させておいて。
その後、コマンドプロンプト(管理者から実行)から下記のようにコマンドを実行。

D:\Data\Desktop\src\bin\amd64>..\..\tools\devcon\amd64\devcon.exe install WiimoteSensor.inf "HID\{00001124-0000-1000-800
0-00805f9b34fb}_VID&0002057e_PID&0306"
Device node created. Install is complete when drivers are installed...
Updating drivers for HID\{00001124-0000-1000-8000-00805f9b34fb}_VID&0002057e_PID&0306 from D:\Data\Desktop\src\bin\amd64
\WiimoteSensor.inf.
Drivers installed successfully.

FAQの所に書いてあるけど、x64でdevcon.exe failedになる時はcode\Driver\install\フォルダにあるWUDFUpdate_01009.dllをbin\amd64フォルダにコピーして実行(・ω・)


ドライバとして認識できたら、コントロールパネルの[位置センサーとその他のセンサー]でセンサーを有効にしておきます。

プログラムからの使い方

3軸加速度センサー扱いなので、Windows API Code PackでAccelerometer3Dを使えばOK。
こんな感じで。

Accelerometer3D accel = sensor as Accelerometer3D;
Acceleration3D data = accel.CurrentAcceleration;

double x = data[ AccelerationAxis.X ]);
double y = data[ AccelerationAxis.Y ]);
double x = data[ AccelerationAxis.X ]);

ちなみに、Sensor APIの使い方についてはこちらも参考までに。

あと、WiimoteLibの使い方についてはこの辺もどぞ。


っで、このドライバのソース、UMDFを使ったSensorドライバの参考にもなるかも(・∀・)

Wiiリモコン (クロ) (「Wiiリモコンジャケット」同梱)

Wiiリモコン (クロ) (「Wiiリモコンジャケット」同梱)