繁体   English   中英

ANDROID上的磁场传感器校准

[英]Magnetic Field Sensor calibration on ANDROID

我正在制作一个作为指南针的应用程序..

我正在使用加速度计和磁场传感器来计算方位角,即sensor.getOrientation()

我正在寻找可以提高磁场传感器精度的东西,因为我的准确度已达到不可靠状态!

任何人都对此有所了解吗?我正在寻找可以硬编码的东西,或者只是物理移动手机直到它被校准!

只需几点

图8运动有时会起作用而不是其他运动,我不知道为什么,它们确实需要某种基于代码的方式来检查8运动是否有效(假设实际需要物理运动)

他们还需要一种方法来检测是否需要校准,我查看了准确输出的代码(不可靠的常数),一旦他们发送给你,他们就不会再发送它,所以例如如果你校准然后进来一个强大的磁场,它不会重新发送(不知道为什么他们这样做)

检测正在发生的问题的一种不完全可靠的方法是你也可以使用磁传感器输出并执行类似field = sqrt(x * x + y * y + z * z)的操作并检查该字段是否介于25和65之间然后要求用户校准,如果没有。

测试18部手机之后的底线是,我绝不会依赖基于Android的指南针和当前的手机,准确性总是有问题的。

我也发现,即使你很幸运并拥有一部相当可靠的手机,你也永远无法确定它是否经过校准而没有在真正的指南针上进行检查,这种目的无法实现。

注意:在很多行为不当的手机上,我们发现传感器会写一个校准文件和一个同名的tmp文件。 如果删除这些文件并重新启动电话,则会使用零值重新创建校准文件,冷启动和一般校准问题将自行解决。

坏消息是它们存储在/ data / misc中并且需要root权限才能获得(感谢Google和传感器制造商!)所以即使我怀疑这会为很多开发人员解决很多问题,但它不可行从市场应用程序的角度来看。

这不是最后的答案(我当然不知道任何事情),但我对在线帖子的理解是,在使用指南针的情况下,以8的数字挥动手机应该会触发自动重新校准。 例如,这就是谷歌地图应用程序建议的内容。 我不知道这是否依赖于应用程序功能(在地图中检测到加速度计挥动并触发重新校准的东西),或者在Android堆栈中的某些东西,或者特定于每个电话实现的东西。 试试看吧!

例如讨论: http//androidforums.com/epic-4g-support-troubleshooting/217317-cant-get-compass-calibrate.html

此参考似乎表明这个每轴/图8旋转过程是内置功能: http//m.eclipsim.com/gpsstatus/

在这里另一篇声称这是内置功能的文章,你甚至不需要运行一个消耗指南针的应用程序来重新校准工作: http//www.ichimusai.org/2009/06/20 /如何对校准最HTC魔法罗盘/

我正在为Android开发。 我正在使用Titanium Alloy作为Titanium Geolocation模块的开发工具。

我只针对商用磁罗盘测试了2个设备[Galaxy Note和S4]。 在校准过程[沿着3轴倾斜]并使用2个不同的指南针应用程序和我正在使用的应用程序之后,Android指南针看起来足够准确以便基本使用......无论如何,相关性已经足够我的目的了。 我还发现设备罗盘读数对其他磁场和电场干扰非常敏感...我犯的最初错误是使用罗盘功能,而设备在带有磁性闭合装置的设备保护器中[在标签上非常常见]。 ..这种干扰特别强烈。 因此,我需要向我的应用程序的用户建议删除设备保护器,使设备不受其他电子设备的影响,然后在初始化应用程序之前进行标准校准。

另一种选择是:

转到传感器菜单: #*0#*

然后,如果您在Magnetic Sensor部分看到红线并且Need for Calibration ,则应重新校准指南针。

怎么样;

那些家伙说 ;

将三星Galaxy Mini S5绕其所有轴旋转,直到黑色圆圈中的红线从红色变为蓝色。 您还可以按照8的形状运行。可能需要多次尝试来校准指南针......

暂无
暂无

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

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