iPhone/iPadで加速度センサー(重力加速度)の値を取得する

説明

iPhone/iPad (iOS4.2以降) を傾けた際にdevicemotionイベントが発生します。イベントが発生すると呼び出されるイベントハンドラにはイベントオブジェクトが渡されます。このイベントオブジェクト内のaccelerationIncludingGravityオブジェクトのxプロパティが重力加速度を加味した横方向の加速度、yプロパティが縦方向の加速度、zプロパティが上下方向の加速度を示します。左や奥に傾けると負数に、右や手前に傾けると正数になります。いずれも小数値になります。約9.8が1Gになります。素早く動かすとGがより強くかかるため値も大きくなります。

サンプルプログラム

【HTML】
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Sample</title>
<link rel="stylesheet" href="css/main.css" type="text/css" media="all">
<script type="text/javascript" src="js/sample.js"></script>
</head>
<body>
<h1>iPhone/iPadで加速度センサーの値を取得する</h1>
<div id="result"></div>
</body>
</html>

【スクリプト】
window.addEventListener("devicemotion", function(evt){
var x = evt.accelerationIncludingGravity.x; // 横方向の傾斜
var y = evt.accelerationIncludingGravity.y; // 縦方向の傾斜
var z = evt.accelerationIncludingGravity.z; // 上下方向の傾斜
document.getElementById("result").innerHTML = "x:"+x+"<br>y:"+y+"<br>z:"+z;
}, true);
サンプルを実行
[戻る]