10 个版本
使用旧的 Rust 2015
0.6.8 | 2020 年 9 月 28 日 |
---|---|
0.6.7 | 2020 年 9 月 28 日 |
0.6.6 | 2019 年 3 月 24 日 |
0.6.5 | 2019 年 2 月 27 日 |
0.5.0 | 2018 年 11 月 22 日 |
#8 in #校准
46KB
710 行
mpu9250-i2c
此软件包/存储库不再维护。 考虑使用 mpu9250 软件包
MPU9250 驱动程序,用于嵌入式设备和 Linux,用 Rust 编写。一个与 MPU9250 通过 I2C 交互的平台无关驱动程序。此驱动程序使用 embedded-hal
特性构建。
特性
- 3 轴陀螺仪
- 3 轴罗盘(磁力计)
- 3 轴加速度计
- 温度设备
- AHRS(姿态和航向参考系统)- 包含 Magwick 滤波器示例
- 测试
示例
示例代码位于 /src/bin 文件夹中,这些示例在具有 I2C 总线的 Linux 设备上运行,例如树莓派和 BeagleBone。 示例包括
- calibrate.rs - 校准 MPU9250 设备的代码。
- mpu9250.rs - 从设备读取所有数据的简单示例。
- ahrs.rs - 完全功能的 AHRS 算法,使用 Magwick 滤波器。
Linux 示例
extern crate linux_embedded_hal as hal;
extern crate mpu9250_i2c as mpu9250;
use hal::{Delay, I2cdev};
use mpu9250::{calibration::Calibration, Mpu9250};
use std::time::Duration;
use std::thread;
fn main() {
// Linux device
let dev = I2cdev::new("/dev/i2c-2").unwrap();
// Set the calibration to the default setting. This can
// be set to a custom value specific for the device.
let cal = Calibration {
..Default::default()
};
let mpu9250 = &mut Mpu9250::new(dev, Delay, cal).unwrap();
// Initialise with default settings
mpu9250.init().unwrap();
// Probe the temperature
loop {
let temp = mpu9250.get_temperature_celsius().unwrap();
println!("Temp: {} °C", temp);
thread::sleep(Duration::from_millis(500));
}
}
}
实用提示:使用以下命令为 BeagleBone / Raspbery Pi 编译。
cargo build --target=armv7-unknown-linux-musleabihf --release
校准
这些设备中使用的技术在很大程度上很嘈杂。每个组件都需要不同的校准方法。编译 calibrate.rs
文件,这将生成一个名为 calibrate
的可执行文件。运行时,calibrate
将为您提供校准说明。然后在每个组件的校准步骤之后,将特定于该设备的校准设置打印到控制台。这些值可以用于您的代码中。校准对温度敏感。因此,如果您想非常精确,您应该在不同的温度下重复校准。在高级别上,校准执行以下操作
- 陀螺仪:取平均值,这称为偏差。
- 加速度计:静止时的加速度计刻度应从 -1.0g 到 1.0g 范围内,其中 g 是 9.81 m/s。校准将考虑这一点。以及正交轴上的噪声。
- 磁力计:这个组件对每个设备可能都大不相同。此校准将确保发现其极限。您需要将设备在所有方向上旋转。
MPU9250 文档
https://www.invensense.com/products/motion-tracking/9-axis/mpu-9250/
https://www.invensense.com/wp-content/uploads/2015/02/MPU-9250-Datasheet.pdf
https://www.invensense.com/wp-content/uploads/2015/02/MPU-9250-Register-Map.pdf
许可证
版权所有 © 2018 Simon M. Werner
本文件遵循Apache License 2.0(以下简称“许可证”);除非遵守许可证,否则不得使用此文件。
您可以在以下地址获取许可证副本:http://www.apache.org/licenses/LICENSE-2.0。除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言、权限和限制,请参阅许可证。
依赖项
~71KB