gyuvl53l0x

Crates.iogyuvl53l0x
lib.rsgyuvl53l0x
version0.3.0
sourcesrc
created_at2019-10-15 19:27:09.171103
updated_at2021-05-20 19:58:42.839074
descriptionA rust driver for the VL53L0X (Time-of-Flight I2C laser-ranging module)
homepage
repositoryhttps://github.com/lucazulian/gyuvl53l0x
max_upload_size
id172778
size38,003
luca zulian (lucazulian)

documentation

README

gyuvl53l0x

no_std driver for VL53L0X (Time-of-Flight I2C laser-ranging module)

Build Status crates.io Docs

Basic usage

Include this library as a dependency in your Cargo.toml:

[dependencies.gyuvl53l0x]
version = "<version>"

Use embedded-hal implementation to get I2C handle and then create vl53l0x handle.

Single read:

extern crate gyuvl53l0x;

match gyuvl53l0x::VL53L0X::default(i2c) {
    Ok(mut u) => {
        // set a new device address
        u.set_device_address(0x39).unwrap();
        // set the measurement timing budget in microseconds
        u.set_measurement_timing_budget(20_000).unwrap();
        loop {
            match u.read_range_single_millimeters_blocking() {
                Ok(val) => {
                    println!("{:#?}", val).unwrap();
                }
                _ => {
                    println!("Not ready").unwrap();
                }
            }
        }
    }
    Err(gyuvl53l0x::VL53L0X::Error::BusError(error)) => {
        println!("{:#?}", error).unwrap();
        panic!();
    }
    _ => {
        panic!();
    }
};

Continuos read:

extern crate gyuvl53l0x;

match gyuvl53l0x::VL53L0X::default(i2c) {
    Ok(mut u) => {
        u.start_continuous(20_000).unwrap();
        loop {
            match u.read_range_continuous_millimeters_blocking() {
                Ok(val) => {
                    println!("{:#?}", val).unwrap();
                }
                _ => {
                    println!("Not ready").unwrap();
                }
            }
        }
    }
    Err(gyuvl53l0x::VL53L0X::Error::BusError(error)) => {
        println!("{:#?}", error).unwrap();
        panic!();
    }
    _ => {
        panic!();
    }
};

License

MIT license

Commit count: 43

cargo fmt