繁体   English   中英

Android加速度计:采样率?

[英]Android accelerometer: Sampling Rate?

我想要

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

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

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

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

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

PS:我读过

Android:如何提高加速度计采样率?

无法改变加速度计的速率

来自developer.android.com

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

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

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

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

[2] [简而言之]你不能在(这个)Android上获得完美的准确度 (读数之间的间隔)。

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

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

祝你好运,并询问是否有什么不清楚。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM