Android中用于加速度计的模拟数据转换为数字数据?

时间:2017-06-24 05:25:29

标签: java android analog-digital-converter

我在我的Android应用程序中使用了加速计传感器,并将SensorEventListener实现为我的活动

    public void onSensorChanged(SensorEvent event) {
    //acceleration.x,.y,.z is the input from the sensor
    //result.x,.y,.z is the filtered result
    //high pass filter to eliminate gravity
    accel[0]= event.values[0]*kFilteringFactor+accel[0]*(1.0f-kFilteringFactor);
    accel[1]= event.values[1]*kFilteringFactor+accel[1]*(1.0f-kFilteringFactor);
    accel[2]= event.values[2]*kFilteringFactor+accel[2]*(1.0f-kFilteringFactor);
    X=event.values[0]-accel[0];
    Y=event.values[1]-accel[1];
    Z=event.values[2]-accel[2];
    accel[0]=X;
    accel[1]=Y;
    accel[2]=Z;

    double result=X+Y+Z;

    readingData.setText("Data :"+ result);
    }

我以模拟波形获取数据,我想要数字形式的数据。如何将这些数据转换为如果存在振动并且我绘制数据,那么图形应该是方波形式。

谢谢。

1 个答案:

答案 0 :(得分:0)

你想要的工作类似于计步器,它根据动作计算用户的步数,你可以使用那里使用的相同概念。

您需要设置加速度计幅度值(x,y,z值的笛卡尔和)以及幅度超过阈值时的阈值。您可以将值设置为' 1'即,在运动中,否则为零。在计步器中,我们仅使用z轴读数来跟踪沿z轴的运动。

我使用过它们的室内定位系统。请在此处找到室内跟踪应用程序:https://github.com/ramakanthd92/IndoorMagMap

可以在http://ieeexplore.ieee.org/document/7106948/

找到相同的出版物

希望这有帮助