我有一个微比特项目,其中将微比特垂直插入kiktronics机器人。
我想获得机器人的航向,但
compass.heading()
仅在微比特是水平的时才有效。我尝试使用get_x(),get_y(),get_z()读取指南针的x,y,z坐标
但是我得到的数字范围在z轴和x,y轴上的缩放比例不同。
有人知道不同传感器的量程是多少吗?
答案 0 :(得分:2)
我使用了下面的测试代码。即使我先将磁力计垂直运行,也可以先执行指南针校准功能,以获得准确的指南针读数。
在注释掉指南针_校准()线之后,在自由空间中沿3轴移动板时,我可以看到z值的变化不如x和y那样大。所以我有一块小磁铁。绕磁力计移动该值会使x,y,z值似乎在大致相同的范围内变化-这是一个粗略的眼球实验。
查看MAG3110磁力计的数据表,我看不到3磁力计轴不同的任何迹象。那么,为什么在没有外部场的情况下z读数会有所不同呢?我假设PCB上有一个接地层。这在PCB构造中很常见。这可以充当z轴的屏蔽。
from microbit import *
# compass.calibrate()
while True:
sleep(250)
# c = compass.heading()
x = compass.get_x()
y = compass.get_y()
z = compass.get_z()
print('x:{} y:{} z: {}'.format(x,y,z))