7.4 KiB
Обнаружение близости - Wio Terminal
В этой части урока вы добавите датчик близости к вашему Wio Terminal и будете считывать расстояние с него.
Оборудование
Для Wio Terminal потребуется датчик близости.
Датчик, который вы будете использовать, — это Grove Time of Flight distance sensor. Этот датчик использует лазерный модуль для измерения расстояния. Диапазон измерений датчика составляет от 10 мм до 2000 мм (1 см - 2 м), и он довольно точно передает значения в этом диапазоне. Расстояния выше 1000 мм будут отображаться как 8109 мм.
Лазерный дальномер находится на задней стороне датчика, противоположной стороне от разъема Grove.
Это I²C датчик.
Подключение датчика Time of Flight
Датчик Grove Time of Flight можно подключить к Wio Terminal.
Задание - подключите датчик Time of Flight
Подключите датчик Time of Flight.
-
Вставьте один конец кабеля Grove в разъем на датчике Time of Flight. Кабель вставляется только в одном направлении.
-
С отключенным от компьютера или другого источника питания Wio Terminal подключите другой конец кабеля Grove к левому разъему Grove на Wio Terminal, если смотреть на экран. Это разъем, который находится ближе всего к кнопке питания. Этот разъем поддерживает цифровой и I²C интерфейсы.
- Теперь вы можете подключить Wio Terminal к компьютеру.
Программирование датчика Time of Flight
Теперь Wio Terminal можно запрограммировать для работы с подключенным датчиком Time of Flight.
Задание - запрограммируйте датчик Time of Flight
-
Создайте новый проект для Wio Terminal с использованием PlatformIO. Назовите проект
distance-sensor
. Добавьте код в функциюsetup
для настройки последовательного порта. -
Добавьте зависимость библиотеки для датчика расстояния Seeed Grove Time of Flight в файл
platformio.ini
проекта:lib_deps = seeed-studio/Grove Ranging sensor - VL53L0X @ ^1.1.1
-
В
main.cpp
добавьте следующий код ниже существующих директив include, чтобы объявить экземпляр классаSeeed_vl53l0x
для взаимодействия с датчиком Time of Flight:#include "Seeed_vl53l0x.h" Seeed_vl53l0x VL53L0X;
-
Добавьте следующий код в конец функции
setup
для инициализации датчика:VL53L0X.VL53L0X_common_init(); VL53L0X.VL53L0X_high_accuracy_ranging_init();
-
В функции
loop
считайте значение с датчика:VL53L0X_RangingMeasurementData_t RangingMeasurementData; memset(&RangingMeasurementData, 0, sizeof(VL53L0X_RangingMeasurementData_t)); VL53L0X.PerformSingleRangingMeasurement(&RangingMeasurementData);
Этот код инициализирует структуру данных для считывания информации, затем передает её в метод
PerformSingleRangingMeasurement
, где она будет заполнена измерением расстояния. -
После этого выведите измерение расстояния, затем сделайте задержку на 1 секунду:
Serial.print("Distance = "); Serial.print(RangingMeasurementData.RangeMilliMeter); Serial.println(" mm"); delay(1000);
-
Соберите, загрузите и выполните этот код. Вы сможете увидеть измерения расстояния в последовательном мониторе. Размещайте объекты рядом с датчиком, и вы увидите измерение расстояния:
Distance = 29 mm Distance = 28 mm Distance = 30 mm Distance = 151 mm
Дальномер находится на задней стороне датчика, поэтому убедитесь, что используете правильную сторону при измерении расстояния.
💁 Вы можете найти этот код в папке code-proximity/wio-terminal.
😀 Программа для датчика близости успешно выполнена!
Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.