LSM303D

An I2C driver for the LSM303D Accelerometer, Magnetometer.

Usage

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;

Initializing and reading from an LSM303D

```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.