1
Fork 0
no_std rust driver for the Analog Devices ADIS1647 family of IMUs
Find a file
2025-03-14 22:04:57 -04:00
src bus -> device 2025-03-14 21:02:28 -04:00
.gitignore initial commit 2025-03-12 00:12:09 -04:00
Cargo.lock delta velocity 2025-03-14 19:07:00 -04:00
Cargo.toml made name more generic 2025-03-14 20:57:55 -04:00
readme.md added a readme 2025-03-14 22:04:57 -04:00

adis1647x

no_std driver for the Analog Devices adis1647 family of IMUs. Currently only the adis16475 is implemented.

Usage

You need an embedded_hal_async spi driver


use adis1647x::*;
use adis1647x::delta::*;

async fn main() -> Result<(), SomeSpiError> {
    let bus = some_spi();
    
    let imu = ADIS1647X::new(bus).await?;
    
    let mut angle: DeltaAngle = Default::default();
    
    loop {
        data_ready_rising_edge().await;
        
        let (delta_angle, _) = imu.deltas().await?;
        
        angle += delta_angle;
        
        println!("yaw: {} degrees", angle.angles().y);
    }