このプロジェクトは、Raspberry Pi 上の ST VL53L0X API (ST Microelectronics) への簡素化された 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 を更新 (ナイジー)
smbus/smbus2 サポートの更新 (ナイジー)
Ubuntu でのビルドに gcc -fPIC CFLAGS を追加 (ナイジー)
I2C アドレス変更サポートを追加 (ナイジー)
バージョン 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 個のセンサーが可能になります。
アドレスの変更は揮発性であるため、シャットダウン ピンを Low に設定するか電源を切断すると、アドレスがデフォルトの 0x29 に戻ります。
TCA9548A I2C マルチプレクサの使用に関する注意:
各センサーに新しいアドレスを設定するために必要な GPIO が制限されている場合は、GPIO を使用せずに最大 8 つのセンサーを使用できるため、TCA9548A I2C マルチプレクサーを使用するのが良い選択肢です。
TCA9548A は、同じ I2C バス上で複数のボードを使用し、すべての I2C プルアップを合計するとバスが機能しなくなる場合にも適した選択肢です。
理論的には、各 TCA9548A のアドレスが異なる限り、それぞれに最大 8 個のセンサーを備えた複数の TCA9548A マルチプレクサーを接続できます。これはテストされていませんが、理論上は機能するはずです。
(著者は組み込みソフトウェアエンジニアですが、これは Python を拡張する初めての試みであり、著者は決して Python の専門家ではないため、改善に関する提案は歓迎されることに注意してください)。
# Python2pip2 インストール git+https://github.com/pimoroni/VL53L0X-python.git# Python3pip3 インストール git+https://github.com/pimoroni/VL53L0X-python.git
Raspberry pi 上に構築するには、まず適切なツールと開発ライブラリがあることを確認します。
sudo apt-get install build-essential python-dev
次に、次のコマンドを使用してリポジトリのクローンを作成し、コンパイルします。
cd your_git_directory git clone 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 に設定し、2 番目のセンサーをアドレス 0x2D に設定します。 2 つのセンサーのシャットダウン ピンに接続された GPIO 20 および 16 を使用して、センサーのアクティブ化を制御します。
VL53L0X_TCA9548A_example.py - この例では、TCA9548A I2C マルチプレクサを介して 2 つのセンサーにアクセスします。1 つ目は TCA9548A のバス 1 に接続され、2 つ目はバス 2 に接続されます。