5.7 KiB
近接検知 - 仮想IoTハードウェア
このレッスンでは、仮想IoTデバイスに近接センサーを追加し、距離を読み取る方法を学びます。
ハードウェア
仮想IoTデバイスでは、シミュレーションされた距離センサーを使用します。
物理的なIoTデバイスでは、レーザー測距モジュールを備えたセンサーを使用して距離を検知します。
CounterFitに距離センサーを追加する
仮想距離センサーを使用するには、CounterFitアプリにセンサーを追加する必要があります。
タスク - CounterFitに距離センサーを追加する
CounterFitアプリに距離センサーを追加します。
-
VS Codeで
fruit-quality-detector
コードを開き、仮想環境が有効になっていることを確認します。 -
追加のPipパッケージをインストールして、距離センサーと通信するCounterFit shimをインストールします。このshimは、rpi-vl53l0x Pipパッケージをシミュレートします。このPythonパッケージは、VL53L0X飛行時間距離センサーと連携します。仮想環境が有効になっているターミナルからインストールしてください。
pip install counterfit-shims-rpi-vl53l0x
-
CounterFitウェブアプリが実行中であることを確認します。
-
距離センサーを作成します:
-
SensorsペインのCreate sensorボックスで、Sensor typeドロップダウンを開き、Distanceを選択します。
-
Unitsは
Millimeter
のままにします。 -
このセンサーはI²Cセンサーなので、アドレスを
0x29
に設定します。物理的なVL53L0Xセンサーを使用する場合、このアドレスはハードコードされています。 -
Addボタンを選択して距離センサーを作成します。
距離センサーが作成され、センサーリストに表示されます。
-
距離センサーをプログラムする
仮想IoTデバイスは、シミュレーションされた距離センサーを使用するようにプログラムできます。
タスク - 飛行時間センサーをプログラムする
-
fruit-quality-detector
プロジェクトに新しいファイルdistance-sensor.py
を作成します。💁 複数のIoTデバイスをシミュレーションする簡単な方法は、それぞれを別々のPythonファイルで作成し、同時に実行することです。
-
次のコードを使用してCounterFitへの接続を開始します:
from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
この下に次のコードを追加します:
import time from counterfit_shims_rpi_vl53l0x.vl53l0x import VL53L0X
これはVL53L0X飛行時間センサー用のセンサーライブラリshimをインポートします。
-
さらにその下に、センサーにアクセスするための次のコードを追加します:
distance_sensor = VL53L0X() distance_sensor.begin()
このコードは距離センサーを宣言し、センサーを開始します。
-
最後に、距離を読み取る無限ループを追加します:
while True: distance_sensor.wait_ready() print(f'Distance = {distance_sensor.get_distance()} mm') time.sleep(1)
このコードはセンサーから値を読み取る準備ができるのを待ち、コンソールに値を表示します。
-
このコードを実行します。
💁 このファイルは
distance-sensor.py
という名前です!app.py
ではなく、Pythonで実行してください。 -
コンソールに距離測定値が表示されます。CounterFitで値を変更すると、この値が変化するのがわかります。またはランダムな値を使用してください。
(.venv) ➜ fruit-quality-detector python distance-sensor.py Distance = 37 mm Distance = 42 mm Distance = 29 mm
💁 このコードはcode-proximity/virtual-iot-deviceフォルダーにあります。
😀 近接センサーのプログラムが成功しました!
免責事項:
この文書は、AI翻訳サービス Co-op Translator を使用して翻訳されています。正確性を追求しておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があることをご承知ください。元の言語で記載された文書が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の使用に起因する誤解や誤解釈について、当方は一切の責任を負いません。