【问题标题】:How to set 50 Hz sampling rate of accelerometer and gyroscope on android?如何在android上设置加速度计和陀螺仪的50 Hz采样率?
【发布时间】:2023-03-29 09:02:02
【问题描述】:

我想存储 Android 手机的加速度计和陀螺仪收集的数据。具体来说,我想以 50 Hz 的频率对它们进行采样,不多也不少。

如何在 Android Java 上指定这个?

我看过他们使用的其他帖子:

 mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_FASTEST);

这将作为传感器可以采样的最大数量。虽然有时传感器的容量可以达到50hz以上,我怎么能只取50hz呢?

【问题讨论】:

    标签: java android accelerometer sampling gyroscope


    【解决方案1】:

    根据the documentation,可以指定“所需的事件之间的延迟,以微秒为单位”,所以应该是:

     mSensorManager.registerListener(this, mAccelerometer, 20000); // 20000 = 50Hz in microseconds
    

    编辑:根据文档:

    速率传感器事件的发送时间为。这只是对系统的提示。事件的接收速度可能比指定的速率快或慢。通常会更快地接收到事件。该值必须是 SENSOR_DELAY_NORMAL、SENSOR_DELAY_UI、SENSOR_DELAY_GAME 或 SENSOR_DELAY_FASTEST 之一,或者是所需的事件之间的延迟(以微秒为单位)。

    似乎没有办法精确,至少对于这个 API。

    【讨论】:

    • 但是这个延迟会与每个传感器设备的采样能力成正比吗?
    • 我的意思是,我将在通用设备上运行应用程序,它的采样能力也可能是 50 Hz,这意味着如果将延迟设置为 20000,采样率将是 25Hz?
    • @RabbitBadger 它是事件之间所需的延迟,因此它应该是一个绝对值,但正如文档所述,它“只是一个提示”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    • 1970-01-01
    相关资源
    最近更新 更多