1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import smbus2
import time

I2C_ADDR = 0x70
bus = smbus2.SMBus(1) # Jetson 的 I2C1

def read_heading():
# 发送测量命令(可选,有些模块自动更新)
bus.write_byte_data(I2C_ADDR, 0x00, 0x31)
time.sleep(0.1)

# 读取高8位和低8位
high = bus.read_byte_data(I2C_ADDR, 0x01)
low = bus.read_byte_data(I2C_ADDR, 0x02)
angle_raw = (high << 8) | low # 合成16位
angle_deg = angle_raw / 10.0 # 转为度
return angle_deg

while True:
print(f"Heading: {read_heading():.1f}°")
time.sleep(0.5)