【问题标题】:Android accelerometer: Sampling Rate?Android 加速度计:采样率?
【发布时间】:2013-07-15 20:22:07
【问题描述】:

我想要

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

[2] 如果 [1] 不可能我可以让速率保持不变

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

以上代码不会给我 10 毫秒的延迟。我知道这只是对 Android 的建议。

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

P.S: 我读过

Android: How to increase Accelerometer Sampling Rate?

Impossibility to change the rate of the accelerometer

【问题讨论】:

    标签: android accelerometer android-sensors sampling rate


    【解决方案1】:

    来自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 的建议

    【讨论】:

    • 我知道这一点,但我想要一个完美的恒定采样率。
    【解决方案2】:

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

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

    [2] [in long] 你需要定义完美;也就是说,您必须定义您的精度。请注意,这永远不会是完美的 0;它从来都不是,即使在可以想象的最关键的应用程序中也是如此。根据我的经验,在 Android 上,这甚至可以达到 100 毫秒。

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

    祝你好运,有什么不清楚的地方问一下。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-18
        相关资源
        最近更新 更多