<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Accelerometer Javascript Test</title> <meta name="viewport" content="width=device-width,user-scalable=yes" /> <style> body { font-family: helvetica, arial, sans serif; } </style> </head> <body> <div id="content"> <h1>Accelerometer Javascript Test</h1> <!--le texte qui s'affiche sur la page html et va chercher les données calculées ensuite--> <ul> <li>acceleration x: <span id="accelerationX"></span>g</li> <li>acceleration y: <span id="accelerationY"></span>g</li> <li>acceleration z: <span id="accelerationZ"></span>g</li> <li>n: <span id="n"></span>norm</li> <li>step: <span id="step"></span>step</li> <li>max: <span id="maxn"></span>maximum</li> </ul> <!--juste une ligne de test--> test: <span id="test"></span> </div> <script type="text/javascript"> //on déclare l'ensemble des variables ax et ay sont les données d'acceleration, n c'est la norme, maxn et minn les valeurs max et min de la norme, et step le nombre de pas var n=0, maxn = 0, minn = 0, step = 0, ax = 0, ay = 0, az = 0; //programme d'alberto desarullo qui va chercher les données de l'accelerometre if (window.DeviceMotionEvent != undefined) { window.ondevicemotion = function(e) { ax = event.accelerationIncludingGravity.x ; ay = event.accelerationIncludingGravity.y ; az = event.accelerationIncludingGravity.z ; // et les affiche dans la page html document.getElementById("accelerationX").innerHTML = e.accelerationIncludingGravity.x; document.getElementById("accelerationY").innerHTML = e.accelerationIncludingGravity.y; document.getElementById("accelerationZ").innerHTML = e.accelerationIncludingGravity.z; // on affiche également la norme sa valeur max et le nombre de pas document.getElementById("n").innerHTML = n; document.getElementById("step").innerHTML = step; document.getElementById("maxn").innerHTML = maxn; } setInterval( function() { // on calcule la norme c'est à dire la taille du vecteur qui est défini par les points d'accélération ax ay et az n0 = n; n=Math.sqrt (ax*ax + ay*ay + az*az); console.log(n); //on calcule un min et max pour la norme if (n < n0) { minn = n ; }else if (n > n0) { maxn = n ; } console.log(maxn); //on défini un seuil qui correspond à un pas if ((maxn - minn) > 10) {step = step+1; } console.log(step); // on vérifie cela chaque 25 milisecondes }, 25); } </script> </body> </html>