IronPythonでWiiリモコンから値を取得(WiimoteLib.dllを使う方法)

下の準備用スクリプトをsetup_wii.pyという名前で保存する。

import clr
clr.AddReferenceToFile("wiimotelib.dll")

from WiimoteLib import *

wii = Wiimote()
def get_value(sender, args):
    global a
    a = args 

wii.WiimoteChanged += WiimoteChangedEventHandler(get_value)

wii.Connect()
wii.SetReportType(wii.InputReport.IRAccel, True) 

wiimotelib.dllをManaged Library for Nintendo's Wiimote - Release: WiimoteLib v1.2からダウンロードして適当な場所に置く。

IronPythonの対話的コンソールで試してみる。

>>> import setup_wii
>>> setup_wii.a
<WiimoteChangedEventArgs object at 0x000000000000002B>
>>> setup_wii.a.WiimoteState
<WiimoteState object at 0x000000000000002C>
>>> setup_wii.a.WiimoteState.IRState
<WiimoteLib.IRState object at 0x000000000000002D [WiimoteLib.IRState]>
>>> setup_wii.a.WiimoteState.IRState.X1
0.379091

赤外線カメラでとらえた光点の座標が取れました。簡単だー。

参考文献