我需要实现一个震动识别器,我正在使用设备上的加速度计。但是,当我检查从传感器获得的值时,看起来它们在不同设备之间变化很大。例如,我在一个设备上获得0-8的值范围(在一些计算之后),在另一个设备上获得0到4的值。
所以看起来它们的范围非常不同。
我能做些什么来使这些范围相等。或者是否有一些变量我可以用来以某种方式计算出一个相当难的震动?
答案 0 :(得分:2)
根据specification加速计应返回Measures the acceleration force in m/s2
。所以它应该校准。您可以检查的一件事是Sensor
班的getMaximumRange()
和getResolution()
答案 1 :(得分:0)
芯片在PCB上的物理位置以及pcb在设备内的固定以及设备的结构都可能导致不同的阻尼效应,以响应您的振动输入力。
您没有说明如何处理传感器数据可能会对驱动程序级别的采样和过滤产生影响。
您显然需要灵活使用您期望的值范围并在各种设备上进行测试。
答案 2 :(得分:0)
应校准传感器。
显然不是。如果不同方向上的增益(即x,y,z)没有显着差异,则足以查找加速度计矢量的长度^ 2的突然变化:x^2+y^2+z^2
。
如果增益也明显不同,那么你别无选择,只能为加速度计校准编写一个应用......
顺便说一句,您不是第一个报告严重错误的人,请参阅Android: the range of z-value in the accelerometer sensor are different on different devices。