ここからは、実際にWiimoteLibを用いてプログラミングを行っていきます。
ここでは、FormボタンによってWiiRemoteのバイブレーターのONとOFFを行います。
1.接続、切断ボタンの追加
1.フォームにボタン2つ張り付けてください。
2.貼り付けたら、「button1」のプロパティのTextを「接続」に、「button2」のプロパティのTextを「切断」に設定する。
2.接続、切断ボタンイベントの追加
1.接続をボタンをダブルクリックし、以下のプログラムを追加する。
2.切断をボタンをダブルクリックし、以下のプログラムを追加する。//接続ボタンが押されたら private vo button1_Click(object sender, EventArgs e) { this.wm.Connect(); //Wiimoteの接続 this.wm.WiimoteChanged += wm_WiimoteChanged; //イベント関数の登録 this.wm.SetReportType(InputReport.IRExtensionAccel, true);//レポートタイプの設定 }
//切断ボタンが押されたら private vo button2_Click(object sender, EventArgs e) { this.wm.Disconnect(); //Wiimote切断 }
2.ボタンの作成
1.フォームにボタンを2つ貼り付けてください。以上で終了です。これだけのプログラムでWiiRemoteのバイブレーター制御が可能になります。
2.貼り付けたら「button3」のプロパティのTextを「ON」に、「button4」のプロパティのTextを「OFF」に、設定する。![]()
3.ONをダブルクリックし、下記のように追加する4.OFFをダブルクリックし、下記のように追加するprivate vo button1_Click(object sender, EventArgs e) { wm.SetRumble(true); //バイブーションON }private vo button1_Click(object sender, EventArgs e) { wm.SetRumble(false); //バイブーションOFF }
Form1.csのソース
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using WiimoteLib; //WimoteLib namespace Wii { public partial class Form1 : Form { Wiimote wm = new Wiimote(); //Wiimoteの宣言 public Form1() { InitializeComponent(); //他スレッドからのコントロール呼び出し許可 Control.CheckForIllegalCrossThreadCalls = false; InitializeComponent(); } //接続ボタンが押されたら private vo button1_Click(object sender, EventArgs e) { this.wm.Connect(); //Wiimoteの接続 } //切断ボタンが押されたら private vo button2_Click(object sender, EventArgs e) { this.wm.Disconnect(); //Wiimote切断 } } }
実行
1.WiiRemoteを接続してください。
2.F5キーを押して実行してください。
実行すると下図のようなアプリケーションが起動します。
3.接続ボタンを押してください。
※もし下図のようなエラーが発生する場合はWiiRemoteが正しく接続されているか確認してください。
4.ONボタンをクリックすると、バイブレーターがONになりWiiRemoteが振動します。
5.OFFボタンをクリックすると、バイブレーターがOFFNになりWiiRemoteの振動が止まります。
解説
非常に簡単にWiiRemoteのバイブレーター制御プログラムが作れたと思います。このようにWiimoteLibには簡単にWiiRemoteが制御できるような関数がたくさん揃っています。
Connect()関数でWiiRemoteとの接続を行います。このときWiiRemoteが正しく接続、認識されていなかった場合、例外(Exception)が発生します。今回は例外処理を行っていません。必要に応じて例外処理を追加してください。
SetRumble()関数でWiiRemoteのバイブレーターを制御します。()の引数にtrueを入れると、バイブレーターが振動します。falseを入れるとバイブレーターが停止します。PWM制御(パルス幅変調:Pulse With Modulation)を用いることによってバイブレーターに強弱を付けることができます。簡単に説明すると高速にONとOFFを繰り返すことによってバイブレーターに強弱をつける制御方法です。ここではあえて説明しませんが、余力のある人はチャレンジしてみてください。
● using WiimoteLib;
C#でWiimoteLibを使うための宣言を行う。
WiimoteLibを用いるためには必ず宣言する必要がある。● Wiimote wm = new Wiimote();
Wiimoteクラス wmを宣言し初期化を行う。
Wiimoteを用いるためには必ず宣言する必要がある。● wm.Connect();
WiiRemotoに接続をおこなう。
WiiRemoteが正しく接続していないとエラーになる。● wm.SetRumble(true);
WiiRemotoの バイブレーターを振動させる。● wm.SetRumble(false);
WiiRemotoの バイブレーターの振動をストップする。










