#磁力计 #I2C #Linux #接口

hmc5883l

Rust库,用于在Linux上通过I2C接口与HMC5883L磁力计交互

3个稳定版本

使用旧版Rust 2015

1.0.2 2016年9月19日
1.0.1 2016年9月18日

#19 in #磁力计

Apache-2.0

4KB

hmc5883l-rs

Version Docs

HMC5883L磁力计的Rust库

此代码允许您在Rust中从HMC5883L磁力计读取x、y、z值。此代码只能在Linux平台上运行,并且仅在Raspberry Pi 3上使用此HMC5883L模块进行了测试:[https://www.sparkfun.com/products/10530](https://www.sparkfun.com/products/10530)

此板的默认I2C地址为0x1E,但如果您有不同型号的板或裸IC,请查阅数据手册以获取适当的地址。

基本用法

let mut mag = HMC5883L::new("/dev/i2c-1", 0x1E).unwrap();

loop {
    let (x, y, z) = mag.read().unwrap();
    println!("x={}, y={}, z={}", x, y, z);
    thread::sleep(Duration::from_millis(100));
}

接线

您需要将Pi上的SDA和SCL连接到磁力计的相应引脚,以及连接3.3V和GND。

运行示例

目前有两个示例。`magnetometer`示例显示了原始的x、y、z值,而`compass`示例在此基础上还计算了大约的航向。

cargo run --example compass

您应该看到如下输出。值会随着您移动磁力计而改变。

x=7.0, y=19.9, z=-16.4 uT: heading=83.2
x=4.6, y=21.4, z=-15.8 uT: heading=90.4
x=4.0, y=21.8, z=-16.0 uT: heading=92.2
x=24.5, y=-21.3, z=-14.0 uT: heading=331.7
x=24.7, y=-9.5, z=-16.8 uT: heading=351.7
x=25.4, y=-8.5, z=-16.3 uT: heading=354.0

依赖项

~2–3MB
~58K SLoC