Akihiro's Programmer Blog

Technology Notes for Personal

3軸加速度センサの利用方法

 windowsストアアプリ開発に役立つと思われる項目をメモとして書いていきます。



 1つ目は「3軸加速度センサの利用方法」です。
 
 まずWindows.Devices.Sensors名前空間の持つAccelerometerクラスのgetDefaultメソッドを使用します。

var accelerometer;

accelerometer = Windows.Devices.Sensors.Accelerometer.getDefault();


 デバイスの3軸加速度センサが利用可能である場合、デフォルトのaccelerometerオブジェクトを返します。利用不可の場合はNULL値を返します。

 
 次にaccelerometerオブジェクトにイベントリスナーを登録します。登録できるイベントリスナーは次の通りです。

  • "readingchanged"

  設定されたインターバルで呼び出されます。

  • "shaken"

  デバイスを振る(shake)ことで呼び出されます。


 "readingchanged"イベントが呼び出されるインターバルは、accelerometerオブジェクトが持つreportIntervalプロパティを設定することで変更できます。また、minimumReportIntervalプロパティから加速度センサがサポートする最小インターバルを取得できます。

以下に最小インターバルで3軸加速度センサの測定値を取得するコードを示します。

//accelerometerオブジェクトを取得します
var accelerometer;
accelerometer = Windows.Devices.Sensors.Accelerometer.getDefault();

//最小インターバルに設定します
var minimumReportInterval = accelerometer.minimumReportInterval;
accelerometer.reportInterval = minimumReportInterval;

//"readingchanged"イベントリスナーを登録します
accelerometer.addEventListener("readingchanged", onDataChanged);

//設定したインターバルで呼び出されます
function onDataChanged(e){
    var reading = e.reading;

    document.getElementById("eventOutputX").innerHTML = reading.accelerationX;
    document.getElementById("eventOutputY").innerHTML = reading.accelerationY;
    document.getElementById("eventOutputZ").innerHTML = reading.accelerationZ;
}


 自身に技術がなく、調べながらの執筆なので間違いがあるかもしれませんがご了承下さい。一個人の技術メモ程度に扱い下さい。