7.1 KiB
Детектовање близине - Wio Terminal
У овом делу лекције, додаћете сензор близине на ваш Wio Terminal и читати растојање са њега.
Хардвер
Wio Terminal захтева сензор близине.
Сензор који ћете користити је Grove Time of Flight сензор растојања. Овај сензор користи ласерски модул за мерење растојања. Сензор има опсег од 10мм до 2000мм (1цм - 2м) и прилично прецизно ће пријављивати вредности у том опсегу, док ће растојања изнад 1000мм бити пријављена као 8109мм.
Ласерски мерач растојања налази се на задњој страни сензора, супротно од Grove прикључка.
Ово је IC сензор.
Повежите 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-у, гледајући екран. Ово је прикључак најближи дугмету за напајање. Ово је комбиновани дигитални и IC прикључак.
- Сада можете повезати 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
, додајте следеће испод постојећих директива за укључивање како бисте декларисали инстанцу класе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. Иако се трудимо да превод буде тачан, молимо вас да имате у виду да аутоматизовани преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.