最近のスマートフォンには8軸センサー(9軸もある!?)が搭載されている。
加速度センサー3軸(XYZ)
ジャイロセンサー3軸(XYZ)
地磁気センサー2軸(XY) ※地面に対してどの向きに向けても方位が表示されれば3軸です
それをHTMLで簡単に利用しちゃおうって話しですが、本当に簡単に利用できます
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>センサー値を表示</title> <script> //デジタルコンパス情報取得&ジャイロセンサー情報 window.addEventListener("deviceorientation", function(evt){ //デジタルコンパス情報取得 var ch = evt.webkitCompassHeading; var chAcc = evt.webkitCompassAccuracy; var html =""; html += "方角:"+ch html += " 誤差:"+chAcc; document.getElementById("compass").innerHTML = html; //ジャイロセンサー情報取得 var alpha = evt.alpha; // z-axis var beta = evt.beta; // x-axis var gamma = evt.gamma; // y-axis var html =""; html += 'Z回転(alpha):' + alpha + "<br>"; html += "X回転(beta):" + beta + "<br>"; html += "Y回転(gumma):" + gamma; document.getElementById("gyroscope").innerHTML = html; }, false); //加速度センサー情報取得 window.addEventListener("devicemotion", function(evt){ //加速度 var x = evt.acceleration.x; var y = evt.acceleration.y; var z = evt.acceleration.z; //傾き var xg = evt.accelerationIncludingGravity.x; //左右 var yg = evt.accelerationIncludingGravity.y; //上下 var zg = evt.accelerationIncludingGravity.z; //前後 //回転値 var a = evt.rotationRate.alpha; //z方向 var b = evt.rotationRate.beta; //x方向 var g = evt.rotationRate.gamma; // y方向 var html =""; html += "x:"+x+"<br>"; html += "y:"+y+"<br>"; html += "z:"+z+"<br>"; html += "傾きx:"+xg+"<br>"; html += "傾きy:"+yg+"<br>"; html += "傾きz:"+zg+"<br>"; html += "alpha(z):"+a+"<br>"; html += "beta(x):"+b+"<br>"; html += "gamma(y):"+g+"<br>"; document.getElementById("rotation").innerHTML = html; }, true); </script> </head> <body> <h2>コンパス値を表示</h2> <div id="compass">0</div> <h2>ジャイロセンサー値を表示</h2> <div id="gyroscope">0</div> <h2>加速度センサー値を表示</h2> <div id="rotation">0</div> </body> </html>
WebAPIインタフェースのEventTarget.addEventListenerを使って
“deviceorientation”を引数にしてジャイロセンサー(+地磁気センサー)の情報を取得
“devicemotion”で加速度センサーの情報を取得できます
後はソースを見て下さい。って事でブラウザでセンサー情報を利用してモーションを使って色んな操作が可能になります
この記事へのコメントはありません。