[−][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 |