7.4 KiB
Откриване на близост - Wio Terminal
В тази част от урока ще добавите сензор за близост към вашия Wio Terminal и ще четете разстояние от него.
Хардуер
Wio Terminal се нуждае от сензор за близост.
Сензорът, който ще използвате, е Grove Time of Flight сензор за разстояние. Този сензор използва лазерен модул за измерване на разстояние. Сензорът има обхват от 10mm до 2000mm (1cm - 2m) и ще отчита стойности в този диапазон доста точно, като разстояния над 1000mm се отчитат като 8109mm.
Лазерният измервател е разположен на задната страна на сензора, противоположната на Grove конектора.
Това е I²C сензор.
Свързване на сензора за разстояние
Grove Time of Flight сензорът може да бъде свързан към Wio Terminal.
Задача - свържете сензора за разстояние
Свържете сензора за разстояние.
-
Поставете единия край на Grove кабела в конектора на сензора за разстояние. Кабелът може да бъде поставен само в една посока.
-
С изключен Wio Terminal от компютъра или друг източник на захранване, свържете другия край на Grove кабела към левия Grove конектор на Wio Terminal, гледайки екрана. Това е конекторът, който е най-близо до бутона за захранване. Това е комбиниран цифров и I²C конектор.
- Сега можете да свържете Wio Terminal към вашия компютър.
Програмиране на сензора за разстояние
Wio Terminal вече може да бъде програмиран да използва свързания сензор за разстояние.
Задача - програмирайте сензора за разстояние
-
Създайте нов проект за Wio Terminal, използвайки PlatformIO. Наречете този проект
distance-sensor
. Добавете код във функциятаsetup
, за да конфигурирате серийния порт. -
Добавете зависимост за библиотеката Seeed Grove Time of Flight Distance Sensor в
platformio.ini
файла на проекта:lib_deps = seeed-studio/Grove Ranging sensor - VL53L0X @ ^1.1.1
-
В
main.cpp
, добавете следното под съществуващите директиви за включване, за да декларирате инстанция на класаSeeed_vl53l0x
, която ще взаимодейства със сензора за разстояние:#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.
😀 Вашата програма за сензор за близост беше успешна!
Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматичните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален превод от човек. Не носим отговорност за каквито и да било недоразумения или погрешни интерпретации, произтичащи от използването на този превод.