| Crates.io | gyuvl53l0x |
| lib.rs | gyuvl53l0x |
| version | 0.3.0 |
| created_at | 2019-10-15 19:27:09.171103+00 |
| updated_at | 2021-05-20 19:58:42.839074+00 |
| description | A rust driver for the VL53L0X (Time-of-Flight I2C laser-ranging module) |
| homepage | |
| repository | https://github.com/lucazulian/gyuvl53l0x |
| max_upload_size | |
| id | 172778 |
| size | 38,003 |
gyuvl53l0xno_std driver for VL53L0X (Time-of-Flight I2C laser-ranging module)
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!();
}
};