ST意法半导体
直播中

李春梅

7年用户 1795经验值
私信 关注
[问答]

LSM303AH - Z ax上的Mag field疑问求解

嗨,我已经使用仅在设备水平时才有效的简化航向计算实现了倾斜和航向计算,并且直到现在都忽略了 Z 轴上的磁场值。现在我正在尝试实现倾斜补偿航向,以便能够在设备不水平时计算航向,并且我开始尝试获取 Z 轴最大和最小磁场值以补偿其偏移,就像我之前所做的那样X 和 Y 轴,注意到最小值是电路板水平放在桌子上,元件朝上,最大值是电路板水平放在桌子上,元件朝下,我从来没有接近过这些最大值/min 值以任何其他方向旋转板。我垂直旋转木板,Z 值发生变化,但它在垂直位置时的最大/最小值小于水平放置在桌子上时的值的一半。这有意义吗?对于 Z ax 似乎更强的磁场在桌子下面,但这与我在其他轴上得到的测量结果不一致,X 和 Y 轴需要一些偏移补偿但它们的值随着它们的相对方向而变化北方所以他们的最大值指向北方而不是“向下”。任何帮助/澄清将不胜感激,我想我可能在这里遗漏了一些东西。与我在其他轴上获得的测量结果不一致,X 和 Y 轴需要一些偏移补偿,但它们的值随着它们与北方的相对方向而变化,因此它们的最大值指向北方而不是“向下”。任何帮助/澄清将不胜感激,我想我可能在这里遗漏了一些东西。与我在其他轴上获得的测量结果不一致,X 和 Y 轴需要一些偏移补偿,但它们的值随着它们与北方的相对方向而变化,因此它们的最大值指向北方而不是“向下”。任何帮助/澄清将不胜感激,我想我可能在这里遗漏了一些东西。
对于倾斜补偿航向,是否有可以使用的参考代码?我已经实现了,但是有一个参考代码来比较会很棒,代码在 STM32L4xx 上运行。

回帖(1)

吕聪

2023-1-12 11:10:02
非常感谢您的回答!对于倾斜,我只使用加速度计数据,它运行良好,对于航向,我只使用 X 和 Y 磁场的简化算法,当设备处于水平面时(如预期),它运行良好,但当有明显倾斜时它不起作用,这就是为什么我需要添加 Z 磁组件。我会看看你指给我看的 MotionC,谢谢。同时,对于标题,我实现了一种类似于 Pololu 库中用于 LSM303D 的算法 - https://github.com/pololu/lsm303-arduino它似乎工作得很好,即使在校准 Z 轴之前,我也只有 X 轴和 Y 轴的最大值和最小值,即使在这种情况下,结果对应用程序来说也是好的,从 0º 倾斜到 80º 倾斜航向变化不大,我观察到航向有大约 5º 的变化,但这可能是因为我的设置很难在不影响实际航向的情况下改变倾斜度。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分