2016年10月30日 星期日

Android - Accelerometer remove gravity using high-pass filter

var low_x = parseFloat(0);
var low_y = parseFloat(0);
var low_z = parseFloat(0);

function motion(event){

    //Popular filtering value.
    var FILTERING_VALUE = parseFloat(0.1);

    var x = parseFloat(event.accelerationIncludingGravity.x);
    var y = parseFloat(event.accelerationIncludingGravity.y);
    var z = parseFloat(event.accelerationIncludingGravity.z);

    //Low-Pass Filter
    low_x = eval(x * FILTERING_VALUE + low_x * (1.0 - FILTERING_VALUE));
    low_y = eval(y * FILTERING_VALUE + low_y * (1.0 - FILTERING_VALUE));
    low_z = eval(z * FILTERING_VALUE + low_z * (1.0 - FILTERING_VALUE));

    //High-Pass Filter
    var high_x = eval(x - low_x);
    var high_y = eval(y - low_y);
    var high_z = eval(z - low_z);

    //Your Action start IF method.
    if(high_y <= 3 && high_x > 1.8 && high_z <= 3){
        //Do You Action Method (Event).
    }
}

沒有留言:

張貼留言