# Виявлення близькості - Raspberry Pi У цій частині уроку ви додасте датчик близькості до вашого Raspberry Pi і зчитуватимете відстань із нього. ## Апаратне забезпечення Для Raspberry Pi потрібен датчик близькості. Датчик, який ви використовуватимете, — це [Grove Time of Flight distance sensor](https://www.seeedstudio.com/Grove-Time-of-Flight-Distance-Sensor-VL53L0X.html). Цей датчик використовує лазерний модуль для визначення відстані. Він має діапазон від 10 мм до 2000 мм (1 см - 2 м) і досить точно передає значення в цьому діапазоні, причому відстані понад 1000 мм відображаються як 8109 мм. Лазерний далекомір розташований на зворотному боці датчика, на протилежному боці від роз'єму Grove. Це датчик I²C. ### Підключення датчика Time of Flight Датчик Grove Time of Flight можна підключити до Raspberry Pi. #### Завдання - підключення датчика Time of Flight Підключіть датчик Time of Flight. ![Датчик Grove Time of Flight](../../../../../translated_images/grove-time-of-flight-sensor.d82ff2165bfded9f485de54d8d07195a6270a602696825fca19f629ddfe94e86.uk.png) 1. Вставте один кінець кабелю Grove у роз'єм на датчику Time of Flight. Він вставляється лише в одному напрямку. 1. З вимкненим Raspberry Pi підключіть інший кінець кабелю Grove до одного з роз'ємів I²C, позначених **I²C**, на Grove Base Hat, підключеному до Pi. Ці роз'єми розташовані на нижньому ряду, на протилежному кінці від контактів GPIO і поруч із роз'ємом для кабелю камери. ![Датчик Grove Time of Flight, підключений до роз'єму I²C](../../../../../translated_images/pi-time-of-flight-sensor.58c8dc04eb3bfb57a7c3019f031433ef4d798d4d7603d565afbf6f3802840dba.uk.png) ## Програмування датчика Time of Flight Тепер Raspberry Pi можна запрограмувати для використання підключеного датчика Time of Flight. ### Завдання - програмування датчика Time of Flight Програмуйте пристрій. 1. Увімкніть Pi і зачекайте, поки він завантажиться. 1. Відкрийте код `fruit-quality-detector` у VS Code, безпосередньо на Pi або підключившись через розширення Remote SSH. 1. Встановіть пакет rpi-vl53l0x через Pip — це Python-бібліотека для взаємодії з датчиком відстані VL53L0X. Встановіть його за допомогою цієї команди pip: ```sh pip install rpi-vl53l0x ``` 1. Створіть новий файл у цьому проєкті під назвою `distance-sensor.py`. > 💁 Простий спосіб імітувати кілька IoT-пристроїв — створити для кожного окремий Python-файл, а потім запускати їх одночасно. 1. Додайте до цього файлу такий код: ```python import time from grove.i2c import Bus from rpi_vl53l0x.vl53l0x import VL53L0X ``` Цей код імпортує бібліотеку Grove I²C bus і бібліотеку для основного апаратного забезпечення датчика, вбудованого в Grove Time of Flight Sensor. 1. Нижче додайте такий код для доступу до датчика: ```python distance_sensor = VL53L0X(bus = Bus().bus) distance_sensor.begin() ``` Цей код оголошує датчик відстані, використовуючи Grove I²C bus, а потім запускає датчик. 1. Нарешті, додайте нескінченний цикл для зчитування відстаней: ```python while True: distance_sensor.wait_ready() print(f'Distance = {distance_sensor.get_distance()} mm') time.sleep(1) ``` Цей код чекає, поки значення буде готове для зчитування з датчика, а потім виводить його в консоль. 1. Запустіть цей код. > 💁 Не забудьте, що цей файл називається `distance-sensor.py`! Переконайтеся, що ви запускаєте його через Python, а не `app.py`. 1. Ви побачите вимірювання відстані в консолі. Розміщуйте об'єкти біля датчика, і ви побачите вимірювання відстані: ```output pi@raspberrypi:~/fruit-quality-detector $ python3 distance_sensor.py Distance = 29 mm Distance = 28 mm Distance = 30 mm Distance = 151 mm ``` Далекомір розташований на зворотному боці датчика, тому переконайтеся, що ви використовуєте правильну сторону під час вимірювання відстані. ![Далекомір на зворотному боці датчика Time of Flight, спрямований на банан](../../../../../translated_images/time-of-flight-banana.079921ad8b1496e4525dc26b4cdc71a076407aba3e72ba113ba2e38febae92c5.uk.png) > 💁 Ви можете знайти цей код у папці [code-proximity/pi](../../../../../4-manufacturing/lessons/4-trigger-fruit-detector/code-proximity/pi). 😀 Ваше програмування датчика близькості пройшло успішно! --- **Відмова від відповідальності**: Цей документ був перекладений за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникають внаслідок використання цього перекладу.