5.0 KiB
Detekce blízkosti - Wio Terminal
V této části lekce přidáte k Wio Terminalu senzor blízkosti a budete z něj číst vzdálenost.
Hardware
Wio Terminal potřebuje senzor blízkosti.
Senzor, který použijete, je Grove Time of Flight distance sensor. Tento senzor využívá laserový modul pro měření vzdálenosti. Má rozsah od 10 mm do 2000 mm (1 cm - 2 m) a v tomto rozsahu poskytuje poměrně přesné hodnoty. Vzdálenosti nad 1000 mm jsou hlášeny jako 8109 mm.
Laserový dálkoměr se nachází na zadní straně senzoru, na opačné straně než Grove konektor.
Toto je I²C senzor.
Připojení senzoru Time of Flight
Grove senzor Time of Flight lze připojit k Wio Terminalu.
Úkol - připojte senzor Time of Flight
Připojte senzor Time of Flight.
-
Zasuňte jeden konec Grove kabelu do konektoru na senzoru Time of Flight. Kabel lze zasunout pouze jedním způsobem.
-
S Wio Terminalem odpojeným od počítače nebo jiného zdroje napájení připojte druhý konec Grove kabelu do levého Grove konektoru na Wio Terminalu, když se díváte na obrazovku. Tento konektor je nejblíže k tlačítku napájení. Jedná se o kombinovaný digitální a I²C konektor.
- Nyní můžete připojit Wio Terminal k počítači.
Naprogramování senzoru Time of Flight
Wio Terminal nyní může být naprogramován pro použití připojeného senzoru Time of Flight.
Úkol - naprogramujte senzor Time of Flight
-
Vytvořte nový projekt pro Wio Terminal pomocí PlatformIO. Nazvěte tento projekt
distance-sensor
. Přidejte do funkcesetup
kód pro konfiguraci sériového portu. -
Přidejte závislost na knihovnu Seeed Grove Time of Flight Distance Sensor do souboru
platformio.ini
projektu:lib_deps = seeed-studio/Grove Ranging sensor - VL53L0X @ ^1.1.1
-
V souboru
main.cpp
přidejte následující řádek pod stávající direktivyinclude
, abyste deklarovali instanci třídySeeed_vl53l0x
pro práci se senzorem Time of Flight:#include "Seeed_vl53l0x.h" Seeed_vl53l0x VL53L0X;
-
Přidejte následující kód na konec funkce
setup
pro inicializaci senzoru:VL53L0X.VL53L0X_common_init(); VL53L0X.VL53L0X_high_accuracy_ranging_init();
-
Ve funkci
loop
přečtěte hodnotu ze senzoru:VL53L0X_RangingMeasurementData_t RangingMeasurementData; memset(&RangingMeasurementData, 0, sizeof(VL53L0X_RangingMeasurementData_t)); VL53L0X.PerformSingleRangingMeasurement(&RangingMeasurementData);
Tento kód inicializuje datovou strukturu pro čtení dat, poté ji předá metodě
PerformSingleRangingMeasurement
, která ji naplní naměřenou vzdáleností. -
Pod tento kód zapište naměřenou vzdálenost a poté nastavte zpoždění na 1 sekundu:
Serial.print("Distance = "); Serial.print(RangingMeasurementData.RangeMilliMeter); Serial.println(" mm"); delay(1000);
-
Sestavte, nahrajte a spusťte tento kód. Na sériovém monitoru budete moci vidět naměřené vzdálenosti. Umístěte objekty blízko senzoru a uvidíte naměřené hodnoty vzdálenosti:
Distance = 29 mm Distance = 28 mm Distance = 30 mm Distance = 151 mm
Dálkoměr se nachází na zadní straně senzoru, takže při měření vzdálenosti používejte správnou stranu.
💁 Tento kód najdete ve složce code-proximity/wio-terminal.
😀 Program pro váš senzor blízkosti byl úspěšný!
Prohlášení:
Tento dokument byl přeložen pomocí služby pro automatický překlad Co-op Translator. Ačkoli se snažíme o přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace se doporučuje profesionální lidský překlad. Neodpovídáme za žádné nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.