がりらぼ

WindowsRuntimeの応援ブログ

傾斜計を利用するには

傾斜計

傾斜計とは、加速度センサーと同じようにデバイスの傾きを取得することができるセンサーです。

加速度センサーはとりうる値が0.0~1.0なので直感的ではありません。

傾斜計はX軸回転、Y軸回転、Z軸回転をそれぞれPitch、Roll、Yawとして表し、その回転角度を取得できるので非常に直感的です。

このような座標軸で考えた時、

6

 

 

Pitch値はこのような値をとります。

9

 

Roll値はこのような値をとります。

10

 

Yaw値はこのような値をとります。

11

 

 

Inclinometer

傾斜計を使うにはInclinometerクラスを使います。

 

このようなXAMLUIを作ります。

<Grid>
    <StackPanel>
        <TextBlock x:Name="text_pitch" FontSize="24" />
        <TextBlock x:Name="text_roll" FontSize="24" />
        <TextBlock x:Name="text_yaw" FontSize="24" />
    </StackPanel>
</Grid>

 

コンストラクタでinclinometerクラスを初期化し、ReportIntervalプロパティ値でセンサーの取得時間間隔を設定します。

ReadingChangedイベントで値を取得します。

このイベントは別スレッドから呼ばれるため、Dispatcher.RunAsyncでUIスレッドで実行結果を表示します。

Inclinometer meter = Inclinometer.GetDefault();
meter.ReportInterval = meter.MinimumReportInterval *10;
meter.ReadingChanged += async(s, ee) =>
{
    await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        text_pitch.Text = string.Format("Pitch={0}", ee.Reading.PitchDegrees.ToString("F1"));
        text_roll.Text = string.Format("Roll={0}", ee.Reading.RollDegrees.ToString("F1"));
        text_yaw.Text = string.Format("Yaw={0}", ee.Reading.YawDegrees.ToString("F1"));
    
    });
   
};

 

傾斜計を利用するには | garicchi.com