たにちゅーの思惑|谷口忠大Home Page(たにちゅー・どっと・こむ)

2023 年 12 月
« 1 月    
 123
45678910
11121314151617
18192021222324
25262728293031

新着記事

最近のコメント

HOME > たにちゅーの思惑 >  研究 > WindowsでのWiiリモコンの開発

WindowsでのWiiリモコンの開発

2009-06-06 (sat)|カテゴリー:

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 <stdio.h>

#include <windows.h>

#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

コメントの投稿




*


下記のタグが使用できます。
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt=""> <pre lang="" line="" escaped="">

インフォメーション



tanichuの著作

copyright © Tadahiro Taniguchi All Right Reserved.