【发布时间】:2019-08-18 01:56:36
【问题描述】:
我想使用磁力计获得一个“指南针航向”(我想知道北方的角度)。我在几个教程中看到,首先,我需要校准它。当我查看如何做到这一点时,我看到了有和没有校准的磁力计值的图形比较。
两个链接都显示未校准的磁力计应在图表上显示几个集群,如下所示:
校准后的磁力计应该有两个 3 轴在零附近的同一点,如下所示:
我正在使用 Adafruit LSM9DS1。我尝试使用以下 python 代码获得相同的图形:
def save_mag_values():
f = open("magnetometer.csv","w")
for i in range(10000):
value = sensor.magnetic
f.write(",".join(map(str,value)))
f.write("\n")
然后我使用下面的 gnuplot 命令来打印:
gnuplot> plot "magnetometer.csv" using 1:2 title "XY" pointsize 2 pointtype 7, \
"magnetometer.csv" using 1:3 title "XZ" pointsize 2 pointtype 7, \
"magnetometer.csv" using 2:3 title "YZ" pointsize 2 pointtype 7
正如教程中所写,我只是慢慢移动传感器,1 分钟后打印值。这是我未校准的磁力计的内容:
如您所见,全局形状不是圆形,我不知道为什么。我试图校准它,这就是我所拥有的:
谁能告诉我我做错了什么,为什么我不能拥有应有的“圆形”值? 或者形状必须像我在教程上看到的那样是完美的圆形还是我的很好? 谢谢
【问题讨论】:
-
如果您要问为什么磁力计读数集中在图案的一侧,我无能为力。如果你问如何使绘图坐标的纵横比为 1:1,gnuplot 命令是
set size ratio -1 -
我想知道我的形状是否正常。它应该是一个圆圈,显然不是,我不知道为什么。感谢 gnuplot 命令,但我认为问题不在于它。
-
您确定您的磁力计工作正常吗?
-
我在两个不同的传感器(都是来自 adafruit 的 lsm9ds1)上测试了这个实验,我得到了大致相同的结果。我不知道它们是否都不起作用,或者问题可能来自环境(我的意思是磁场或其他东西)或我使用的代码。
-
在捕获样本数据时,您确定要在所有三个轴(x、y、z)上移动它吗?乍一看,您似乎没有获得足够多样的样本数据。
标签: python calibration magnetometer