micropython中的microbit指南针

时间:2018-07-03 08:27:19

标签: micropython bbc-microbit

我有一个微比特项目,其中将微比特垂直插入kiktronics机器人。

我想获得机器人的航向,但

compass.heading()

仅在微比特是水平的时才有效。我尝试使用get_x(),get_y(),get_z()读取指南针的x,y,z坐标

但是我得到的数字范围在z轴和x,y轴上的缩放比例不同。

有人知道不同传感器的量程是多少吗?

1 个答案:

答案 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))