[英]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:我读过
数据延迟(或采样率)控制传感器事件通过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.