此專案在 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。