An I2C driver for the LSM303D Accelerometer, Magnetometer.
Add the following to your Cargo.toml
:
toml
[dependencies]
i2csensors = "0.1.*"
i2cdev-lsm303d = "0.1.*"
Next, add this to your crate root:
rust
extern crate i2cdev_lsm303d;
extern crate i2csensors;
```rust use i2cdev_lsm303d::*; use i2csensors::{Magnetometer,Accelerometer};
fn main() { let settings = LSM303DSettings { continuousupdate: true, accelerometerdatarate: LSM303DAccelerometerUpdateRate::Hz400, accelerometerantialiasfilterbandwidth: LSM303DAccelerometerFilterBandwidth::Hz194, azen: true, ayen: true, axen: true, accelerometersensitivity: LSM303DAccelerometerFS::g2, magnetometerresolution: LSM303DMagnetometerResolution::Low, magnetometerdatarate: LSM303DMagnetometerUpdateRate::Hz100, magnetometerlowpowermode: false, magnetometermode: LSM303DMagnetometerMode::ContinuousConversion, magnetometersensitivity: LSM303DMagnetometerFS::gauss2 };
let mut i2cdev = get_linux_lsm303d_i2c_device().unwrap();
let mut lsm303d_accel_mag = LSM303D::new(i2cdev, settings).unwrap();
let acceleration = lsm303d_accel_mag.acceleration_reading().unwrap();
let magnetism = lsm303d_accel_mag.magnetic_reading().unwrap();
} ```
Settings can be adjusted according to the datasheet.