HTC Touch Diamond の加速センサーから値を読み出してみました。
参考にさせていただいたのは下記サイトのプログラムです。
・Scott’s Weblog Fun with the Diamond’s tilt sensor
API は Touch Diamond に含まれている HTCSensorSDK.dll を呼び出しています。
取り出せる値は 3軸センサーのそれぞれの加速度 X Y Z。
ソースにはだいたい -1000~1000 程度の範囲で傾きと書かれていますが、
やはり重力加速度を表しているようです。
何もしない状態で ±1000 前後 (1G)。強く振ると ±2400 程度の値も取れます。
データの連続取得は 40msec 程度の間隔が必要です。
当初動かしたときは 1/30 や 1/60 sec でサンプリングしていたため、値が更新されず
少々悩みました。
使用しているセンサーはレジストリの DeviceVendor より Kionix KXSD9。
direction=5 液晶背面方向 -Z direction=4 液晶面方向 +Z direction=1 左サイド -X direction=0 右サイド +X direction=2 下 +Y direction=3 上 -Y struct SENSORDATA { short ax; short ay; short az; short zero; int AngleY; int AngleX; int direction; };
例えば机の上に水平に寝かせた状態だと、液晶背面方向が重力方向だから
az = -1000 前後に、direction が 5 になります。
SENSORDATA の最後の値はこのように、大まかな端末の向きをそのまま表して いるようです。
いるようです。
AngleX/AngleY はおそらく極座標か何かだと思いますが未調査。
関連エントリ
・HTC Touch Diamond のボタン部分とタッチセンサー