Android加速度计:采样率?

时间:2013-07-15 20:22:07

标签: android accelerometer android-sensors sampling rate

我想

[1]提高手机加速度计的采样率。    (SENSOR_DELAY_FASTEST在Nexus4上的Xperia / 180Hz上给出最大 100Hz,     我希望延迟工作时间约为1毫秒或更短。

[2]如果[1]不可能我可以使速率恒定

mSensorManager.registerListener(this, mAccelerometer,10000);//10000 in microsec

以上代码给我10ms延迟。我知道这只是Android的一个建议。

我知道手机内部的这些加速度计能够提供更小的延迟。它在数据表中提到过。他们的任何方法或驱动器/ ADC编程也是如此[1]或[2]。 我正在使用ADT工具。还有其他任何工具吗?

P.S:我读过

Android: How to increase Accelerometer Sampling Rate?

Impossibility to change the rate of the accelerometer

3 个答案:

答案 0 :(得分:5)

来自developer.android.com

  

数据延迟(或采样率)控制间隔   传感器事件通过onSensorChanged()发送到您的应用程序   回调方法。默认数据延迟适用于监视   典型的屏幕方向更改并使用200,000的延迟   微秒。您可以指定其他数据延迟,例如   SENSOR_DELAY_GAME(延迟20,000微秒),SENSOR_DELAY_UI(60,000   微秒延迟),或SENSOR_DELAY_FASTEST(0微秒延迟)。的作为   在Android 3.0(API等级11)中,您还可以将延迟指定为   绝对值(以微秒为单位)。

但是你应该知道你指定的绝对值(以微秒为单位)只是Android的建议

答案 1 :(得分:1)

https://github.com/dantasse/AccelerometerTest - 在这里,您可以下载应用程序的源代码,以测试您的实际采样率。我不认为你在实践中可以实现100Hz或更高......我现在正在测试采样率。 所以现在的答案不是 - 你不能达到1毫秒的延迟(即使在理论上)。

答案 2 :(得分:1)

根据我的经验,这是你能做的。让我们从最简单的开始:

[2] [简而言之]在(此)Android上,您无法获得完美的准确度(读数之间的间隔)。

[2] [长]你需要定义完美;也就是说,您必须定义精度。注意,这永远不会是完美的0;它永远不会,甚至不是在可以想象的最关键的应用程序中。根据我的经验,在Android上,这甚至可以完全爆发100毫秒。

[1]如果您的应用程序不重要,即您只想分析一些历史数据,可以尝试以下操作:使用时间戳保存每个读数;然后,以固定的间隔插入;你将有一个完美的时间分布,但也是一个估计。

祝你好运,并询问是否有不明确的事情。