Crate mpu9250[][src]

no_std driver for the MPU9250 & onboard AK8963 (accelerometer + gyroscope + magnetometer IMU)

Connections

  • NCS
  • SCL = SCK
  • SDA = SDI = MOSI
  • AD0 = SDO = MISO

Usage

Use embedded-hal implementation to get SPI, NCS, and delay, then create mpu handle

// to create sensor with mag support and default configuration:
let mut mpu = Mpu9250::marg_default(spi, ncs, &mut delay)?;
// to create sensor without mag support and default configuration:
let mut mpu = Mpu9250::imu_default(spi, ncs, &mut delay)?;
// to get all supported measurements:
let all = mpu.all()?;
println!("{:?}", all);

More examples (for stm32) in [Proving ground] repo.

References

Structs

F32x3

Vector in 3D space

I16x3

XYZ triple of i16

Imu

Accelerometer + Gyroscope + Temperature Sensor

ImuMeasurements

Scaled IMU measurements converted to units

Marg

Magnetometer + Accelerometer + Gyroscope + Temperature Sensor

MargMeasurements

MARG measurements scaled with respective scales and converted to appropriate units.

Mpu9250

MPU9250 driver

UnscaledImuMeasurements

Unscaled IMU measurements (LSB)

UnscaledMargMeasurements

Unscaled MARG measurements (LSB)

Enums

AccelScale

Accelerometer reading full scale configuration, default: +2g.

Dlpf

Digital low pass filter configuration; default: Accelerometer = 41 Hz, Gyroscope: 41 Hz, Temperature sensor = 42 Hz.

GyroScale

Gyroscope reading full scale configuration; default: +250 dps.

MagScale

Gyroscope reading full scale configuration; default: 0.6 mG per LSB

Constants

MODE

SPI mode

Traits

FullScale

Sensor reading scale