加速度计:不同设备上的数值不同?

3
我需要实现一个摇晃识别器,我使用设备上的加速度计来实现这一点。然而,当我检查传感器得到的数据时,发现它们在不同设备上变化很大。例如,在某个设备上,经过一些计算后我得到的力值范围为0-8,而在另一个设备上则为0-4。
看起来它们有非常不同的范围。
有没有什么办法可以使这些范围相等?或者有一些变量可以用来计算出相当强烈的摇晃是什么?
3个回答

2
根据规范,加速度计应返回以m / s2为单位测量的加速度力。因此它应该校准。您可以检查的一件事是Sensor类的getMaximumRange()getResolution()

0
芯片在PCB上的物理位置、PCB在设备内的固定以及设备的构造都可能导致不同的阻尼效应,以响应您的震动输入力。
您没有说明如何处理传感器数据,可能与驱动程序级别执行的采样和过滤相关的影响。
您需要在代码中灵活处理您预期的值范围,并在多种设备上进行测试。

0

传感器应该进行校准。

显然它没有被校准。如果在不同方向(即x、y、z)上的增益没有显着差异,则足以寻找加速度计矢量长度^2的突然变化:x^2+y^2+z^2

如果增益也有显着差异,那么您别无选择,只能编写一个用于加速度计校准的应用程序...

顺便说一下,你不是第一个报告粗略不准确性的人,例如请参见Android:不同设备上加速度计传感器中z值的范围


我下载了一个g-force测量应用程序,它在两个设备上的功能基本相同,所以我需要想办法也得到它。 - Peterdk
@Peterdk 这个问题是:在x、y、z方向上的收益大致相同吗?如果是,那么你可以按照我写的方式去做。 - Ali
是的,我确实使用gX^2 + gY^2 + gZ^2来计算了,其中gX = sensorevent[x-index] / EarthGravity - Peterdk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接