檢測接近 - 樹莓派
在本課程的這一部分,你將為樹莓派添加一個接近傳感器,並從中讀取距離。
硬體
樹莓派需要一個接近傳感器。
你將使用的傳感器是 Grove 飛行時間距離傳感器。該傳感器使用激光測距模塊來檢測距離。該傳感器的範圍為10毫米到2000毫米(1厘米 - 2米),並且在該範圍內報告的值相當準確,超過1000毫米的距離報告為8109毫米。
激光測距儀位於傳感器的背面,與Grove插座相對的一側。
這是一個I2C傳感器。
連接飛行時間傳感器
Grove飛行時間傳感器可以連接到樹莓派。
任務 - 連接飛行時間傳感器
連接飛行時間傳感器。
-
將Grove電纜的一端插入飛行時間傳感器上的插座。它只能以一種方式插入。
-
在樹莓派關機的情況下,將Grove電纜的另一端連接到樹莓派上Grove Base帽上的I2C插座之一。這些插座位於底排,與GPI引腳相對的一端,並且靠近相機電纜插槽。
編程飛行時間傳感器
現在可以編程樹莓派以使用連接的飛行時間傳感器。
任務 - 編程飛行時間傳感器
編程設備。
-
啟動樹莓派並等待其啟動。
-
在VS Code中打開
fruit-quality-detector
代碼,可以直接在樹莓派上打開,也可以通過Remote SSH擴展連接。 -
安裝rpi-vl53l0x Pip包,這是一個與VL53L0X飛行時間距離傳感器交互的Python包。使用以下pip命令安裝它
pip install rpi-vl53l0x
-
在此項目中創建一個名為
distance-sensor.py
的新文件。💁 模擬多個物聯網設備的一個簡單方法是將每個設備放在不同的Python文件中,然後同時運行它們。
-
將以下代碼添加到此文件中:
import time
from grove.i2c import Bus
from rpi_vl53l0x.vl53l0x import VL53L0X這將導入Grove I2C總線庫和Grove飛行時間傳感器內置的核心傳感器硬件的傳感器庫。
-
在此之下,添加以下代碼以訪問傳感器:
distance_sensor = VL53L0X(bus = Bus().bus)
distance_sensor.begin()此代碼使用Grove I2C總線聲明一個距離傳感器,然後啟動傳感器。
-
最後,添加一個無限循環來讀取距離:
while True:
distance_sensor.wait_ready()
print(f'Distance = {distance_sensor.get_distance()} mm')
time.sleep(1)此代碼等待傳感器準備好讀取值,然後將其打印到控制台。
-
運行此代碼。
💁 別忘了這個文件叫做
distance-sensor.py
!確保通過Python運行它,而不是app.py
。 -
你會在控制台中看到距離測量值。將物體放置在傳感器附近,你會看到距離測量值:
pi@raspberrypi:~/fruit-quality-detector $ python3 distance_sensor.py
Distance = 29 mm
Distance = 28 mm
Distance = 30 mm
Distance = 151 mm測距儀位於傳感器的背面,因此在測量距離時請確保使用正確的一側。
💁 你可以在code-proximity/pi文件夾中找到此代碼。
😀 你的接近傳感器程序成功了!