# Определение близости - 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.ru.png) 1. Вставьте один конец кабеля Grove в разъем на датчике Time of Flight. Кабель вставляется только одной стороной. 1. С выключенным Raspberry Pi подключите другой конец кабеля Grove к одному из разъемов I²C, обозначенных как **I²C**, на Grove Base Hat, установленном на Raspberry Pi. Эти разъемы находятся в нижнем ряду, на противоположной стороне от GPIO-пинов и рядом со слотом для кабеля камеры. ![Датчик Grove Time of Flight, подключенный к разъему I²C](../../../../../translated_images/pi-time-of-flight-sensor.58c8dc04eb3bfb57a7c3019f031433ef4d798d4d7603d565afbf6f3802840dba.ru.png) ## Программирование датчика Time of Flight Теперь Raspberry Pi можно запрограммировать для работы с подключенным датчиком Time of Flight. ### Задание - программирование датчика Time of Flight Программируйте устройство. 1. Включите Raspberry Pi и дождитесь его загрузки. 1. Откройте код `fruit-quality-detector` в VS Code, либо непосредственно на Raspberry 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. 1. Далее добавьте следующий код для доступа к датчику: ```python distance_sensor = VL53L0X(bus = Bus().bus) distance_sensor.begin() ``` Этот код объявляет датчик расстояния, используя шину Grove I²C, а затем запускает датчик. 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.ru.png) > 💁 Этот код можно найти в папке [code-proximity/pi](../../../../../4-manufacturing/lessons/4-trigger-fruit-detector/code-proximity/pi). 😀 Ваше программирование датчика близости прошло успешно! --- **Отказ от ответственности**: Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникающие в результате использования данного перевода.