我目前正在做一个带有树莓派 3b+ 和一些传感器的项目。其中一个传感器是 adafruit LMS303 三轴加速度计+磁力计(指南针),我尝试做一些基本的示例代码,一切正常。我现在要做的是从 mag.magnetic 中获取值并提取 x、y、z 值并将它们用作数字罗盘。
from time import sleep
import board
import busio
import adafruit_lsm303_accel
import adafruit_lsm303dlh_mag
import time
import math
i2c = busio.I2C(board.SCL, board.SDA)
time.sleep(1) #tiempo para que alcance a detectar el sensor
mag = adafruit_lsm303dlh_mag.LSM303DLH_Mag(i2c)
accel = adafruit_lsm303_accel.LSM303_Accel(i2c)
pi = 3.14159
while True:
print("Acceleration (m/s^2): X=%0.3f Y=%0.3f Z=%0.3f"%accel.acceleration)
heading=(math.atan2(mag.magnetic.y,mag.magnetic.x)*180)/pi
if heading <0:
heading=360+heading
print("Magnetometer (micro-Teslas)): X=%0.3f Y=%0.3f Z=%0.3f"%mag.magnetic)
print("Heading: %7.2f"%heading)
sleep(0.5)
该代码不起作用,因为 mag.magnetic.x 和 mag.magnetic.y 不存在(不是提取这些值的正确方法)。¿ 有人能指出提取 mag.magnetic.x 和 mag.magnetic.y 的正确方法是什么吗?