我正在尝试构建一个应用程序,我想检测设备的运动。 基本上我需要检测设备的跌落。 任何人都可以帮助我如何使用加速计关于重力?
答案 0 :(得分:0)
这是加速度分量分解到每个轴的方式:
values[0] //acceleration on x axis
values[1] //acceleration on y axis
values[2] //acceleration on z axis
您需要找到重力运行的方向,然后将其分解为其组成部分。重力的大小总是为9.8,但方向,以及它如何分解成组成部分,将会改变。假设我们可以得到引力的值并将该向量存储在像引力这样的数组中[3]:
gravity[0] //gravity x axis
gravity[1] //gravity y axis
gravity[2] //gravity z axis
The total acceleration, T, on the phone is T = g + a. To get just a we would need a = T - g:
linear_acceleration[0] = event.values[0] - gravity[0];
linear_acceleration[1] = event.values[1] - gravity[1];
linear_acceleration[2] = event.values[2] - gravity[2];
注意这是如何逐个元素计算的,因为它是一个向量运算。 在提取所有值之后,我们必须应用高通滤波器并将linear_acceleration [2]与阈值进行比较(也许你可以将它保持在9左右)。