38 releases
Uses old Rust 2015
0.25.0 | Jul 29, 2023 |
---|---|
0.24.1 | Aug 8, 2022 |
0.24.0 | Oct 14, 2020 |
0.22.2 | Jun 14, 2020 |
0.7.3 | Oct 7, 2018 |
#401 in Hardware support
Used in pixracer_bsp
140KB
2.5K
SLoC
mpu9250
no_std driver for the MPU9250 (and some MPU* devices) & onboard AK8963 (accelerometer + gyroscope + magnetometer IMU).
What works
- Reading the accelerometer, gyroscope, temperature sensor, and magnetrometer: both raw and scaled and converted values.
- Setting DLPF, reading scales, sample rate divisor.
- Reading the WHO_AM_I registers of mpu9250 and ak8963.
- Getting resolutions and factory sensitivities.
Supported chips
MPU9250
--Imu
andMarg
;MPU9255
--Imu
andMarg
;MPU6500
--Imu
only.
Notes
MPU9255 has some extra capability in the ASIC that allows some additional gesture control but otherwise this chip is identical to the MPU9250.
Basic usage
Include library as a dependency in your Cargo.toml :
[dependencies.mpu9250]
version = "<version>"
Use embedded-hal implementation to get SPI, NCS, and delay, then create mpu handle:
extern crate mpu9250; // or just use mpu9250; if 2018 edition is used.
// to create sensor with mag support and default configuration:
let mut _imu = Mpu9250::marg_default(spi, ncs, &mut delay)?;
// to create sensor without mag support and default configuration:
let mut marg = Mpu9250::imu_default(spi, ncs, &mut delay)?;
// to get all supported measurements:
let all = marg.all()?;
println!("{:?}", all);
More examples
Number of examples can be found in proving-ground repo. Examples include: reading temperature, calibrating magnetrometer, reading all sensors.
Experimental I2C support
Expiremntal I2C support is enabled via i2c
feature flag. When enabled, SPI support will be deactivated
and type of mpu9250 driver will change from Mpu9250<SpiDevice<SPI, NCS>, MODE>
will change to
Mpu9250<I2cDevice<I2C>, Imu>
.
The MPU9250 currently supports an IMU-only configuration. See the BeagleBone Blue example for a demonstration. Support for the AK8963 is a WPI.
Documentation
API Docs available on docs.rs.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Testimonials
Started off as a fork of japaric's mpu9250 repo.
Dependencies
~150–275KB