A View of Tanichu (たにちゅーの思惑)

This blog is about personal thoughts and views by Tanichu. Tanichu is a nickname of Tadahiro Taniguchi.

WindowsでのWiiリモコンの開発

WindowsでのWiiリモコンライブラリ使用方法の説明を行います.

wiilib.hlibWii.lib(Releaseビルド)又はlibWiid.lib(Debugビルド)を使います.

プロジェクトを作成してください.「Win32コンソール アプリケーション」を選び,プロジェクトを作成してください.作成できたらまずプロジェクトのプロパティを開き,ライブラリをマルチスレッド(/MT)又はマルチスレッド デバッグ(/MTd)に変更してください.

そして,プロジェクトの同じディレクトリにwiilib.hとlibWii.libとlibWiid.libを置いてください.

?

下記に使用例を載せておきます.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

// Wii_sample.cpp : コンソールアプリケーションのエントリポイントを定義します。

#include

#include

#include "wiilib.h"

#ifdef _DEBUG

#pragma comment(lib,"libWiid.lib")

#else

#pragma comment(lib,"libWii.lib")

#endif

int main(int argc, char* argv[])

{

WiiLib wii;

double x,y,z;

if(!wii.initWii()){//Wiiリモコンを認識&初期化

return 0;

}

while(1){

Sleep(100);

x = wii.getWiiAngle(Wii_X_AXIS); //加速度センサX軸の情報を取得

y = wii.getWiiAngle(Wii_Y_AXIS); //加速度センサY軸の情報を取得

z = wii.getWiiAngle(Wii_Z_AXIS); //加速度センサZ軸の情報を取得

printf("x:%lf y:%lf z:%lfn",x,y,z);

if(wii.getWiiState(Wii_BUTTON_B)){//Bボタンが押されたかどうか?

printf("キャリブレーションn");

wii.setWiiCalibrate(); //加速度センサを現在の位置で初期化

wii.setWiiRumble(Wii_Rumble_ON); //振動させる

Sleep(50); //振動させる期間スリープする必要あり

wii.setWiiRumble(Wii_Rumble_OFF); //振動をやめる

}

}

return 0;

}

まずWiiLibクラスを宣言したら,initWiiを呼び出してWiiリモコンを認識させてください.Wiiリモコンの認識に成功したらbool変数trueが帰ってきます.

初期化後に関数getWiiState使うとどのボタンが押されたか?がわかります.

引数に列挙体WiiStateをとり,これでボタンや加速度,IRセンサを指定します.

また,getWiiAngleを使うとWiiリモコンの加速度センサの値がラジアンでわかります.

メンバ関数の説明

// Wiiリモコンを探して接続し,初期化を行う

bool initWii(WiiInitType wit = Wii_ACCEL);

// Wiiリモコンとの通信を切る

void closeWii(void);

// どのボタンから入力があったかを得る

int getWiiState(WiiState Key);

// Wiiリモコンの傾きをラジアンで得る

double getWiiAngle(WiiState Axis);

// 現在のWiiリモコンの傾きを基点とする

void setWiiCalibrate(void);

//指定した LEDを点灯させる

static void setWiiLED(unsigned char LED_ID);

// Wiiリモコンを振動させる

void setWiiRumble(WiiRumble wr);

// Wiiリモコンが使えるかどうかを確認する

int isWiiEnable(void);

?

BlutoothWiiリモコンとの接続について

今回,学校の生協で販売しているSANWA SUPPLY MM-BTUD11というBluetoothアダプタを用いて動作実験しました.下記は一例です.

clip_image002

「新しい接続」をクリックする

clip_image004

「エクスプレスモード(おすすめ)」

を選び次へ進む.その時にWiiリモコンの1ボタンと2ボタンを同時押しして,青のLEDランプを点滅した状態にしておく.

clip_image006

Wiiリモコンを発見出来たら選択して次へすすむ.

clip_image008

最後にこのような画面になり,接続できれば完了です.

この状態で,サンプルプログラムを動かしてみてください.

サンプルプログラムのダウンロード

Wii_sample.lzh