Python library for using the VL53-400 laser rangerfinder via serial port
Project description
vl53-400 Library
Python Library and CLI for the VL53-400 laser rangefinder with Serial interface
NOTE: This is still a bit underconstruction. The Functions here do seem to work, but not all capabilities of the chipset is handled yet. You should be able to do measurements though.
This is for the MJ-VL53-400 unit Sold by MengJie.
Its basically a STMicroelectronics VL53L0X with a UART so you can use it via a USB -> TTL Serial adapter and not deal with IIC or Modbus.
It seems to actually be a WitMotion Laser Distance Sensor WT-VL53L0 Distance Module UART Output repackaged by MengJie
Library Functions
Class device_access.SerialAccess
contains all the methods for using it
Init
def __init__(self, serial_port: str, baud_rate: int, timeout: int = 1) -> None:
"""
This method initializes the class.
Args:
serial_port (str): The serial port to connect to.
baud_rate (int): The baud rate to use.
timeout (int): The timeout to use.
"""
Reset
def reset(self) -> None:
"""
This method resets the lidar.
"""
Set Sensor mode
def set_sensor_mode(self, mode: str) -> None:
"""
This method sets the sensor mode.
Args:
mode (str): The mode to set. (serial, modbus, iic)
Probably only want to use serial or modbus. modbus will stop the serial updates
"""
Get Return Rate
def get_return_rate(self) -> str:
"""
Gets the return rate setting
Returns:
str: The return rate in Hz
"""
Set Return Rate
def set_return_rate(self, rate: str) -> None:
"""
Gets the return rate from the lidar
Returns:
str: The return rate
"""
Stream Data
Only prints the data to stdout
``` python
def stream_data(self, loop: bool = True) -> None:
"""
This method streams data from the serial port.
Args:
loop (bool): Whether or not to loop forever.
Defaults to True. Set to false to exit after one loop (for testing)
"""
```
Get Distance
This is the main workhorse function to use
def get_distance(self) -> dict[str, str]:
"""
This method reads data from the serial port and returns a dictionary.
Returns:
dict: A dictionary containing the `distance` and `units`,
as well as the `state` and `state_code`.
"""
Main.py has a CLI for exercising all functions
Install and run cli
git clone
cd vl53_400_lib
poetry install
To run the cli:
> poetry run vl53 --help
Usage: vl53 [OPTIONS]
Options:
--serial-port TEXT The serial port to connect to.
--baud-rate INTEGER The baud rate to use.
--timeout INTEGER The timeout to use.
--return-rate [0.1|0.2|0.5|1|2|5|10|20|50|100]
Set Return Rate in Hz
--mode [serial|modbus|iic] Comm mode (modbus stops serial spew)
--op [stream|get_return_rate|lstream|reset]
The operation to perform.
--debug Enable debug logging.
--help Show this message and exit.
TODO:
- Calibration
- Publish to Pypi.org
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for vl53_400_lib-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 397947afc09f91ac6f3058ba2401ceb8e71313892eac85bb941862065c806c7f |
|
MD5 | e668c77678dc22219e40121ecdb2a5d1 |
|
BLAKE2b-256 | b32be8f5af5be2f6fb797b542c26c841913cafb129f0083bd9a8c47400991caf |