作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我们正在开发的定制 Android 设备中,磁力计放置在非常靠近内部扬声器的位置。扬声器中的永磁体会影响磁力计的值。
x、y、z 值已达到磁力计可以报告的最大值。
重新校准可以解决这个问题吗?
是否应该为此使用硬铁校准技术?
这可以在磁力计驱动程序中处理还是只能在固件中完成?
最佳答案
是的,您可以在 Android 设备上补偿硬铁和软铁的影响。您需要确定哪一个(或两个)正在扭曲传感器周围的磁场。硬铁偏移很容易确定和补偿。软铁将球体倾斜成椭圆体可能更难处理。您的实现可能取决于您特别需要补偿的内容。好消息是你的传感器是固定的,你可以做一次大的计算,然后只应用偏移量。
硬铁补偿和软铁补偿有几种不同的方法。最简单的方法是这样的:http://memsense.com/docs/MTD-0802_1.2_Magnetometer_Calibration.pdf .此处描述了使用最小二乘拟合的更困难的方法:http://cache.freescale.com/files/sensors/doc/app_note/AN4248.pdf .硬铁偏移并不难,但软铁偏移需要将数据拟合到椭圆或椭球和大量线性代数。我已经尝试了两者的版本,它们都可以工作。每个都有优点和缺点,具体取决于您拥有多少处理能力以及磁场偏斜的严重程度。
关于calibration - 存在永磁场的磁力计校准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13856042/
我是一名优秀的程序员,十分优秀!