[][src]Crate mpu6050

Mpu6050 sensor driver.

Register sheet here, Data sheet here

To use this driver you must provide a concrete embedded_hal implementation.//! This example uses linux_embedded_hal

let i2c = I2cdev::new("/dev/i2c-1")
    .map_err(Mpu6050Error::I2c)?;

let delay = Delay;

let mut mpu = Mpu6050::new(i2c, delay);
mpu.init()?;
mpu.soft_calib(Steps(100))?;
mpu.calc_variance(Steps(50))?;

println!("Calibrated with bias: {:?}", mpu.get_bias().unwrap());
println!("Calculated variance: {:?}", mpu.get_variance().unwrap());

// get roll and pitch estimate
let acc = mpu.get_acc_angles()?;

// get roll and pitch estimate - averaged accross n readings (steps)
let acc = mpu.get_acc_angles_avg(Steps(5))?;

// get temp
let temp = mpu.get_temp()?;

// get temp - averages across n readings (steps)
let temp = mpu.get_temp_avg(Steps(5))?;

// get gyro data, scaled with sensitivity 
let gyro = mpu.get_gyro()?;
 
// get gyro data, scaled with sensitivity - averaged across n readings (steps) 
let gyro = mpu.get_gyro_avg(Steps(5))?;
 
// get accelerometer data, scaled with sensitivity
let acc = mpu.get_acc()?;
 
// get accelerometer data, scaled with sensitivity - averages across n readings (steps)
let acc = mpu.get_acc_avg(Steps(5))?;

Modules

registers

All constants used in the driver, mostly register addresses

Structs

Bias

Used for bias calculation of chip in mpu::soft_calib

Mpu6050

Handles all operations on/with Mpu6050

Steps

Helper struct used as number of steps for filtering

Enums

AccelRange

Defines accelerometer range/sensivity

GyroRange

Defines gyro range/sensitivity

Mpu6050Error

All possible errors in this crate

Constants

AFS_SEL

Calcelerometer Sensitivity

FS_SEL

Gyro Sensitivity

PI

pi, taken straight from C

Traits

Access

Helpers for sensor readings

MutOps

Operations trait for sensor readings

UnitConv

Trait for conversion from/to radians/degree

Type Definitions

Variance

Reuse Bias struct for Variance calculation