Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save brianleroux/59803 to your computer and use it in GitHub Desktop.
Save brianleroux/59803 to your computer and use it in GitHub Desktop.
var kAccelerometerFrequency = 25; //Hz
var kFilteringFactor = 0.1;
var kEraseAccelerationThreshold = 2.0;
var kMinEraseInterval = 0.5;
var lastTime = new Date().getTime();
var myAccelerometer = new Array(3);
myAccelerometer[0] = 0;
myAccelerometer[1] = 0;
myAccelerometer[2] = 0;
function gotAcceleration(x,y,z){
//Use a basic high-pass filter to remove the influence of the gravity
myAccelerometer[0] = x * kFilteringFactor + myAccelerometer[0] * (1.0 - kFilteringFactor);
myAccelerometer[1] = y * kFilteringFactor + myAccelerometer[1] * (1.0 - kFilteringFactor);
myAccelerometer[2] = z * kFilteringFactor + myAccelerometer[2] * (1.0 - kFilteringFactor);
// Compute values for the three axes of the acceleromater
var nx = x - myAccelerometer[0];
var ny = y - myAccelerometer[1];
var nz = z - myAccelerometer[2];
//Compute the intensity of the current acceleration
var length = Math.sqrt(nx * nx + ny * ny + nz * nz);
// If above a given threshold, then its a go!
if((length >= kEraseAccelerationThreshold) && (new Date().getTime() > lastTime + kMinEraseInterval)) {
///call your code or function here to handle the shake
}
return x + " " + y + " " + z;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment