Expand description
Generic embedded-friendly accelerometer support, including traits and types for representing readings from 2 or 3-axis accelerometers.
Also includes optional device position tracking support with statistical methods for smoothing out noisy accelerometer data.
§Writing an accelerometer driver
The accelerometer
crate is intended to provide a “HAL” for accelerometers
which allows several accelerometer-consuming crates to leverage a common
API and set of vector types for consuming accelerometer data.
Accelerometer drivers are intended to use embedded-hal
I2C or SPI
interfaces. The first task of writing a driver is to choose one of these
and write a driver which is able to communicate with the accelerometer and
obtain data.
Next, impl the Accelerometer
trait (providing normalized readings) and/or
the RawAccelerometer
trait (providing direct access to raw data) for
your driver (ideally the former, as it provides reuse across drivers).
For RawAccelerometer
, you will need to choose a Vector
type for
raw accelerometer data which best matches the output of your device.
This trait has a single method, RawAccelerometer::accel_raw
, which
returns a reading from the accelerometer or an error.
See the ADXL343 crate for an example.
Re-exports§
pub use crate::error::*;
pub use crate::orientation::*;
Modules§
- error
- Accelerometer errors - generic over an inner “cause” type (intended to be an underlying I2C or SPI error type, if applicable).
- orientation
- Orientation tracking for accelerometer-equipped devices.
- vector
- Algebraic vector types generic over a number of axes and a component type.
Traits§
- Accelerometer
- Accelerometer trait which provides g-normalized readings.
- RawAccelerometer
- Read raw acceleration vectors of type
V: Vector
. - Vector
- Vectors with numeric components