You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/ru/4-manufacturing/lessons/4-trigger-fruit-detector/pi-proximity.md

7.6 KiB

Определение близости - Raspberry Pi

В этой части урока вы добавите датчик близости к вашему Raspberry Pi и будете считывать расстояние с него.

Оборудование

Для Raspberry Pi потребуется датчик близости.

Датчик, который вы будете использовать, — это Grove Time of Flight distance sensor. Этот датчик использует лазерный модуль для измерения расстояния. Диапазон измерений датчика составляет от 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

  1. Вставьте один конец кабеля Grove в разъем на датчике Time of Flight. Кабель вставляется только одной стороной.

  2. С выключенным Raspberry Pi подключите другой конец кабеля Grove к одному из разъемов I²C, обозначенных как I²C, на Grove Base Hat, установленном на Raspberry Pi. Эти разъемы находятся в нижнем ряду, на противоположной стороне от GPIO-пинов и рядом со слотом для кабеля камеры.

Датчик Grove Time of Flight, подключенный к разъему I²C

Программирование датчика Time of Flight

Теперь Raspberry Pi можно запрограммировать для работы с подключенным датчиком Time of Flight.

Задание - программирование датчика Time of Flight

Программируйте устройство.

  1. Включите Raspberry Pi и дождитесь его загрузки.

  2. Откройте код fruit-quality-detector в VS Code, либо непосредственно на Raspberry Pi, либо подключившись через расширение Remote SSH.

  3. Установите пакет rpi-vl53l0x через Pip. Это Python-библиотека для работы с датчиком расстояния VL53L0X. Установите его с помощью следующей команды pip:

    pip install rpi-vl53l0x
    
  4. Создайте новый файл в этом проекте с именем distance-sensor.py.

    💁 Легкий способ симулировать несколько IoT-устройств — это создать для каждого отдельный Python-файл, а затем запускать их одновременно.

  5. Добавьте следующий код в этот файл:

    import time
    
    from grove.i2c import Bus
    from rpi_vl53l0x.vl53l0x import VL53L0X
    

    Этот код импортирует библиотеку Grove I²C bus и библиотеку для работы с основным оборудованием датчика Grove Time of Flight.

  6. Далее добавьте следующий код для доступа к датчику:

    distance_sensor = VL53L0X(bus = Bus().bus)
    distance_sensor.begin()    
    

    Этот код объявляет датчик расстояния, используя шину Grove I²C, а затем запускает датчик.

  7. Наконец, добавьте бесконечный цикл для считывания расстояний:

    while True:
        distance_sensor.wait_ready()
        print(f'Distance = {distance_sensor.get_distance()} mm')
        time.sleep(1)
    

    Этот код ждет, пока значение будет готово для считывания с датчика, а затем выводит его в консоль.

  8. Запустите этот код.

    💁 Не забудьте, что этот файл называется distance-sensor.py! Убедитесь, что вы запускаете его через Python, а не app.py.

  9. Вы увидите измерения расстояния в консоли. Размещайте объекты рядом с датчиком, и вы увидите измеренные расстояния:

    pi@raspberrypi:~/fruit-quality-detector $ python3 distance_sensor.py 
    Distance = 29 mm
    Distance = 28 mm
    Distance = 30 mm
    Distance = 151 mm
    

    Дальномер находится на задней стороне датчика, поэтому убедитесь, что вы используете правильную сторону при измерении расстояния.

    Дальномер на задней стороне датчика Time of Flight, направленный на банан

💁 Этот код можно найти в папке code-proximity/pi.

😀 Ваше программирование датчика близости прошло успешно!


Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникающие в результате использования данного перевода.