$(document).ready(function(){ var has_accel = false $('#left-bits').css({ width: '50vw', height: '50vh', background: '#fff' }) console.log("-- ready --"); //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 pas le nombre de pas var n=0, maxn = 0, minn = 0, pas = 0, ax = 0, ay = 0, az = 0, pass=0; function report_status() { // console.log('ax', ax, 'ay', ay, 'az', az) // et les affiche dans la page html document.getElementById("accelerationX").innerHTML = ax; document.getElementById("accelerationY").innerHTML = ay; document.getElementById("accelerationZ").innerHTML = az; // on affiche également la norme sa valeur max et le nombre de pas document.getElementById("n").innerHTML = n; document.getElementById("pas").innerHTML = pas; document.getElementById("maxn").innerHTML = maxn; } function odmHandler(e) { has_accel = true ax = event.accelerationIncludingGravity.x ; ay = event.accelerationIncludingGravity.y ; az = event.accelerationIncludingGravity.z ; report_status() } function fakeAccel() { var min = -12, max = 12 return Math.random() * (max - min) + min; } function mockAccelerometer() { has_accel = false ax = fakeAccel() ay = fakeAccel() az = fakeAccel() report_status() } function accel_norm(ax, ay, az) { return Math.sqrt (ax*ax + ay*ay + az*az); } //programme d'alberto desarullo qui va chercher les données de l'accelerometre if (window.DeviceMotionEvent != undefined) { window.ondevicemotion = odmHandler var ev = new Event("requestMove"); function pollAccelerometer() { setInterval(makeStep, 250) } function makeStep() { if (!has_accel) { mockAccelerometer() } // 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 = accel_norm(ax,ay,az) // on calcule un min et max pour la norme if (n < n0) { minn = n ; } else if (n > n0) { maxn = n ; } // on définit un seuil qui correspond à un pas if ((maxn - minn) > 10) { pas = pas+1; document.dispatchEvent(ev); } } pollAccelerometer(); } });