5.0 KiB
Detekcia blízkosti - Wio Terminal
V tejto časti lekcie pridáte k Wio Terminalu senzor blízkosti a budete z neho čítať vzdialenosť.
Hardvér
Wio Terminal potrebuje senzor blízkosti.
Senzor, ktorý použijete, je Grove Time of Flight distance sensor. Tento senzor používa laserový modul na meranie vzdialenosti. Má rozsah od 10mm do 2000mm (1cm - 2m) a hodnoty v tomto rozsahu hlási pomerne presne, pričom vzdialenosti nad 1000mm hlási ako 8109mm.
Laserový diaľkomer sa nachádza na zadnej strane senzora, na opačnej strane ako Grove konektor.
Toto je I²C senzor.
Pripojenie senzora Time of Flight
Grove Time of Flight senzor je možné pripojiť k Wio Terminalu.
Úloha - pripojenie senzora Time of Flight
Pripojte senzor Time of Flight.
-
Zasuňte jeden koniec Grove kábla do konektora na senzore Time of Flight. Kábel sa dá zasunúť iba jedným spôsobom.
-
Keď je Wio Terminal odpojený od vášho počítača alebo iného zdroja napájania, pripojte druhý koniec Grove kábla do ľavého Grove konektora na Wio Terminale, keď sa pozeráte na obrazovku. Tento konektor je najbližšie k tlačidlu napájania. Ide o kombinovaný digitálny a I²C konektor.
- Teraz môžete pripojiť Wio Terminal k vášmu počítaču.
Naprogramovanie senzora Time of Flight
Wio Terminal je teraz pripravený na programovanie, aby mohol používať pripojený senzor Time of Flight.
Úloha - naprogramovanie senzora Time of Flight
-
Vytvorte úplne nový projekt pre Wio Terminal pomocou PlatformIO. Nazvite tento projekt
distance-sensor
. Pridajte kód do funkciesetup
na konfiguráciu sériového portu. -
Pridajte závislosť knižnice pre Seeed Grove Time of Flight distance sensor do súboru
platformio.ini
projektu:lib_deps = seeed-studio/Grove Ranging sensor - VL53L0X @ ^1.1.1
-
V
main.cpp
pridajte nasledujúci kód pod existujúce direktívyinclude
, aby ste deklarovali inštanciu triedySeeed_vl53l0x
na interakciu so senzorom Time of Flight:#include "Seeed_vl53l0x.h" Seeed_vl53l0x VL53L0X;
-
Pridajte nasledujúci kód na koniec funkcie
setup
, aby ste inicializovali senzor:VL53L0X.VL53L0X_common_init(); VL53L0X.VL53L0X_high_accuracy_ranging_init();
-
Vo funkcii
loop
prečítajte hodnotu zo senzora:VL53L0X_RangingMeasurementData_t RangingMeasurementData; memset(&RangingMeasurementData, 0, sizeof(VL53L0X_RangingMeasurementData_t)); VL53L0X.PerformSingleRangingMeasurement(&RangingMeasurementData);
Tento kód inicializuje dátovú štruktúru na čítanie údajov, potom ju odovzdá metóde
PerformSingleRangingMeasurement
, kde bude naplnená nameranou vzdialenosťou. -
Pod týmto kódom vypíšte nameranú vzdialenosť a potom pridajte oneskorenie 1 sekundu:
Serial.print("Distance = "); Serial.print(RangingMeasurementData.RangeMilliMeter); Serial.println(" mm"); delay(1000);
-
Zostavte, nahrajte a spustite tento kód. Budete môcť vidieť namerané vzdialenosti v sériovom monitore. Umiestnite objekty blízko senzora a uvidíte nameranú vzdialenosť:
Distance = 29 mm Distance = 28 mm Distance = 30 mm Distance = 151 mm
Diaľkomer sa nachádza na zadnej strane senzora, takže pri meraní vzdialenosti používajte správnu stranu.
💁 Tento kód nájdete v priečinku code-proximity/wio-terminal.
😀 Program pre váš senzor blízkosti bol úspešný!
Upozornenie:
Tento dokument bol preložený pomocou služby na automatický preklad Co-op Translator. Hoci sa snažíme o presnosť, upozorňujeme, že automatické preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre dôležité informácie odporúčame profesionálny ľudský preklad. Nezodpovedáme za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.