7.2 KiB
Детектовање близине - Raspberry Pi
У овом делу лекције, додаћете сензор близине на ваш Raspberry Pi и читати удаљеност са њега.
Хардвер
Raspberry Pi захтева сензор близине.
Сензор који ћете користити је Grove Time of Flight сензор удаљености. Овај сензор користи ласерски модул за мерење удаљености. Сензор има опсег од 10мм до 2000мм (1цм - 2м) и прилично прецизно ће пријављивати вредности у том опсегу, док ће удаљености изнад 1000мм бити пријављене као 8109мм.
Ласерски мерач удаљености налази се на задњој страни сензора, супротно од Grove прикључка.
Ово је I²C сензор.
Повежите сензор удаљености
Grove сензор удаљености може се повезати са Raspberry Pi.
Задатак - повежите сензор удаљености
Повежите сензор удаљености.
-
Уметните један крај Grove кабла у прикључак на сензору удаљености. Кабл ће ући само на један начин.
-
Са искљученим Raspberry Pi-јем, повежите други крај Grove кабла у један од I²C прикључака означених I²C на Grove Base хату који је прикључен на Pi. Ови прикључци се налазе на доњем реду, супротном крају од GPIO пинова и поред слота за камеру.
Програмирање сензора удаљености
Raspberry Pi сада може бити програмиран да користи повезани сензор удаљености.
Задатак - програмирајте сензор удаљености
Програмирајте уређај.
-
Укључите Pi и сачекајте да се покрене.
-
Отворите код
fruit-quality-detector
у VS Code-у, било директно на Pi-ју или се повежите преко Remote SSH екстензије. -
Инсталирајте rpi-vl53l0x Pip пакет, Python пакет који комуницира са VL53L0X сензором удаљености. Инсталирајте га користећи ову pip команду:
pip install rpi-vl53l0x
-
Направите нову датотеку у овом пројекту под називом
distance-sensor.py
.💁 Лак начин за симулацију више IoT уређаја је да сваки уређај буде у различитој Python датотеци, а затим их покренете истовремено.
-
Додајте следећи код у ову датотеку:
import time from grove.i2c import Bus from rpi_vl53l0x.vl53l0x import VL53L0X
Ово увози Grove I²C библиотеку и библиотеку сензора за основни хардвер сензора уграђеног у Grove сензор удаљености.
-
Испод овога, додајте следећи код за приступ сензору:
distance_sensor = VL53L0X(bus = Bus().bus) distance_sensor.begin()
Овај код декларише сензор удаљености користећи Grove I²C, а затим покреће сензор.
-
На крају, додајте бесконачну петљу за читање удаљености:
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 фасцикли.
😀 Ваш програм за сензор близине је успешно завршен!
Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако се трудимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.