次にWiiリモコンの加速度センサを使ったプログラミングを行っていきます。WiiリモコンにはX軸、Y軸、Z軸に対応した3軸の加速度センサが内蔵されています。

ここでは、Wiiリモコンの加速度を取得するプログラムを作成します。
1.ラベルの作成
1.フォームにラベルを3つ貼り付けてください。
2.WiimoteLibの宣言と加速度センサ取得プログラム
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 WiimoteLib_Sample { public partial class Form1 : Form { Wiimote wm = new Wiimote(); //Wiimoteの宣言 public Form1() { InitializeComponent(); wm.WiimoteChanged += wm_WiimoteChanged; //イベント関数の登録 wm.SetReportType(InputReport.IRExtensionAccel, true); //レポートタイプの設定 wm.Connect(); //Wiimoteの接続 } //Wiiリモコンの値が変化したときに呼ばれる関数 void wm_WiimoteChanged(object sender, WiimoteChangedEventArgs args){ WiimoteState ws = args.WiimoteState; //WiimoteStateの値を取得 try { if (this.IsHandleCreated) { this.Invoke((MethodInvoker)delegate() { this.DrawForms(ws); //フォーム描写関数へ }); } } catch { } } //フォーム描写関数 public void DrawForms(WiimoteState ws) { this.label1.Text = "X軸:" + (ws.AccelState.Values.X); //加速度 X this.label2.Text = "Y軸:" + (ws.AccelState.Values.Y); //加速度 Y this.label3.Text = "Z軸:" + (ws.AccelState.Values.Z); //加速度 Z } } }実行
1.WiiRemoteを接続してください。
2.F5キーを押して実行してください。
※もしエラーが発生する場合はWiiRemoteが正しく接続されているか確認してください。3.Wiiリモコンを振りまわしてください。
※飛んでいくと危険なので必ずストラップをしてください。![]()
解説
Wiiリモコンの三軸の加速度センサの値を表示します。
wm.SetReportType(InputReport.IRExtensionAccel, true); //レポートタイプの設定Wiiリモコンのレポートタイプを設定します。
ws.AccelState.Values.XWiiリモコンのX軸の値を取得します。
実際にどれだけの値が出力されるか実測してみると、-5.04 ~ 5.16 の値が計測されました。
ws.AccelState.Values.YWiiリモコンのY軸の値を取得します。
実際にどれだけの値が出力されるか実測してみると、-4.95 ~ 5.25 の値が計測されました。
ws.AccelState.Values.ZWiiリモコンのZ軸の値を取得します。
実際にどれだけの値が出力されるか実測してみると、-4.8 ~ 4.96 の値が計測されました。


