在我们开发的自定义Android设备中,磁力计非常靠近内置扬声器。扬声器中的永磁体会影响磁力计的值。 x,y,z值达到磁力计可以报告的最大值。
可以重新校准解决此问题吗? 硬铁校准技术应该用于此吗? 这可以在磁力计驱动器中处理,还是只能在固件中完成?
答案 0 :(得分:3)
是的,您可以在Android设备上补偿硬铁和软铁的影响。您需要确定哪一个(或两个)正在扭曲传感器周围的磁场。硬铁偏移很容易确定和补偿。将球体软铁倾斜成椭圆体可能要难得多。您的实施可能取决于您特别需要补偿的内容。好消息是你的传感器是固定的,你可以做一次大的计算然后只应用偏移量。
硬铁和软铁补偿有几种不同的方法。最简单的方法是:http://memsense.com/docs/MTD-0802_1.2_Magnetometer_Calibration.pdf。这里描述了使用最小二乘拟合的更困难的方法:http://cache.freescale.com/files/sensors/doc/app_note/AN4248.pdf。硬铁偏移并不困难,但软铁偏移需要将数据拟合到椭圆或椭圆体以及大量线性代数。我尝试了两种版本,它们都有效。每种方法都有优点和缺点,具体取决于您拥有多少处理能力以及磁场歪斜的程度。