7.5 KiB
Откриване на близост - Raspberry Pi
В тази част от урока ще добавите сензор за близост към вашия Raspberry Pi и ще четете разстояние от него.
Хардуер
Raspberry Pi се нуждае от сензор за близост.
Сензорът, който ще използвате, е Grove Time of Flight distance sensor. Този сензор използва лазерен модул за измерване на разстояние. Сензорът има обхват от 10mm до 2000mm (1cm - 2m) и ще отчита стойности в този диапазон доста точно, като разстояния над 1000mm се отчитат като 8109mm.
Лазерният далекомер се намира на задната страна на сензора, противоположната страна на Grove конектора.
Това е I²C сензор.
Свързване на сензора за измерване на разстояние
Сензорът Grove Time of Flight може да бъде свързан към Raspberry Pi.
Задача - свържете сензора за измерване на разстояние
Свържете сензора за измерване на разстояние.
-
Поставете единия край на Grove кабела в конектора на сензора за измерване на разстояние. Той ще влезе само в една посока.
-
С изключен Raspberry Pi, свържете другия край на Grove кабела към един от I²C конекторите, маркирани I²C, на Grove Base hat, прикрепен към 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 bus и библиотека за основния хардуер на сензора, вграден в Grove Time of Flight сензора.
-
Под този код добавете следния код за достъп до сензора:
distance_sensor = VL53L0X(bus = Bus().bus) distance_sensor.begin()
Този код декларира сензор за разстояние, използвайки Grove I²C bus, и след това стартира сензора.
-
Накрая добавете безкраен цикъл за четене на разстояния:
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.
😀 Вашата програма за сензор за близост беше успешна!
Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален превод от човек. Ние не носим отговорност за каквито и да е недоразумения или погрешни интерпретации, произтичащи от използването на този превод.