该项目在 Raspberry Pi 上为 ST VL53L0X API(ST 微电子)提供了一个简化的 python 接口。
以 cassou/VL53L0X_rasp 存储库为模式(https://github.com/cassou/VL53L0X_rasp.git)
为了能够与使用 i2c 总线的其他 python 代码共享 i2c 总线,该库通过回调 python smbus 接口来实现 VL53L0X 平台特定的 i2c 函数。
版本1.0.2:
添加对 TCA9548A I2C 多路复用器的支持。使用 https://www.adafruit.com/products/2717 突破进行测试。 (约翰·布莱恩摩尔)
添加使用 TCA9548A 多路复用器支持的 python 示例 (johnbryanmoore)
添加 pip 安装支持 (grantramsay)
添加 smbus2 支持 (grantramsay)
更新 pip install 支持 python2/3 (naisy)
更新 smbus/smbus2 支持(naisy)
添加 gcc -fPIC CFLAGS 以在 Ubuntu 上构建(naisy)
添加 I2C 地址更改支持(naisy)
版本1.0.1:
简化构建过程 (svanimisetti)
添加绘制传感器输出图形的 python 示例 (svanimisetti)
更新构建说明(svanimisetti、johnbryanmoore)
版本1.0.0:
添加对同一总线上多个传感器的支持,利用 ST API 调用来更改设备的地址。
添加对改进的错误检查的支持,例如 I2C 访问上的 I/O 错误检测。
版本0.0.9:
初始版本仅支持 1 个传感器,错误检查有限。
多传感器支持注意事项:
为了在同一总线上拥有多个传感器,您必须将每个传感器的关闭引脚绑定到各个 GPIO,以便可以单独启用它们并设置地址。
VL53L0X 的 Adafruit 和 Pololu 板均具有 I2C 上拉电阻。因此,在上拉变得太强之前,可以添加的板数量将仅限于大约 5 或 6 个。
对平台和 python_lib c 代码的更改允许最多 16 个传感器。
地址更改是不稳定的,因此将关闭引脚设置为低电平或断开电源会将地址更改回默认的 0x29。
使用 TCA9548A I2C 多路复用器的注意事项:
如果 GPIO 受到限制,需要为每个传感器设置新地址,那么使用 TCA9548A I2C 多路复用器是一个不错的选择,因为它允许在不使用 GPIO 的情况下使用最多 8 个传感器。
如果在同一 I2C 总线上使用多个板,并且所有组合的 I2C 上拉电阻总数会导致总线无法运行,那么 TCA9548A 也是一个不错的选择。
理论上,您可以连接多个 TCA9548A 多路复用器,每个多路复用器最多可连接 8 个传感器,只要每个 TCA9548A 具有不同的地址即可。这尚未经过测试,但理论上应该有效。
(请注意,虽然作者是一名嵌入式软件工程师,但这是扩展 python 的第一次尝试,并且作者绝不是 python 专家,因此欢迎任何改进建议)。
# Python2pip2 安装 git+https://github.com/pimoroni/VL53L0X-python.git# Python3pip3 安装 git+https://github.com/pimoroni/VL53L0X-python.git
要在树莓派上构建,首先确保您拥有正确的工具和开发库:
sudo apt-get install build-essential python-dev
然后使用以下命令克隆存储库并编译:
cd your_git_directory git 克隆 https://github.com/pimoroni/VL53L0X_rasp_python.gitcd VL53L0X-python 制作
Python目录中有以下python文件:
VL53L0X.py - 包含 ST 库的 python ctypes 接口
VL53L0X_example.py - 此示例使用默认地址访问单个传感器。
VL53L0X_example_livegraph.py - 此示例在实时图表中绘制来自单个传感器的距离数据。此示例需要 matplotlib。使用sudo pip install matplotlib
安装 matplotlib。
VL53L0X_multi_example.py - 此示例访问 2 个传感器,将第一个传感器设置为地址 0x2B,将第二个传感器设置为地址 0x2D。它使用连接到 2 个传感器上的关闭引脚的 GPIO 20 和 16 来控制传感器激活。
VL53L0X_TCA9548A_example.py - 此示例通过 TCA9548A I2C 多路复用器访问 2 个传感器,第一个连接到 TCA9548A 上的总线 1,第二个连接到总线 2。