Použití senzoru vzdálenosti VEX IQ (1. generace).

Popis

Tento senzor hlásí vzdálenost mezi ním a nejbližším pevným předmětem (rozsah 50 mm - 1 m). Vypočítává vzdálenost pomocí času, který ultrazvukové vlny potřebují k odrazu od objektu a návratu k senzoru.

Senzor vzdálenosti VEX IQ (1. generace).

Jak funguje senzor vzdálenosti: Poslouchání vzdálenosti

Schéma senzoru vzdálenosti, který vysílá ultrazvuk, aby zasáhl zelenou krychli, a poté přijímá odražený zvuk.

Senzor vzdálenosti používá k měření zvuku stejné principy jako sonar. Vysílá malý ultrazvukový impulz s vysílačem na jedné straně senzoru a poté násobí, jak dlouho trvá, než se zvuk odrazí zpět k přijímači na druhé straně senzoru. Senzor vypočítává vzdálenost na základě toho, jak dlouho trvalo zvukovému impulsu urazit tam a zpět. Senzor vzdálenosti poté provede výpočet na základě rychlosti zvuku, aby sdělil mozku robota, jak daleko se nachází nejbližší objekt. 

Pokud povrch není rovný jako zakřivená stěna nebo koule, ultrazvuková vlna se neodráží od všech částí rovnoměrně nebo současně. Nejbližší povrch dostatečně velký na to, aby odrazil detekovatelné množství vlny, určuje detekovanou vzdálenost objektu.


Běžná použití snímače vzdálenosti:

Blok VEXcode IQ Object found, který čte Vzdálenost found an object?
Dva diagramy. Nahoře je senzor vzdálenosti označen zaškrtnutím a ukazuje na blízkou zelenou krychli. Níže uvedený senzor vzdálenosti neukazuje na nic v okolí a je označen symbolem X.

Tento senzor dokáže detekovat, zda se před ním nenachází nějaký předmět.

Vzdálenost VEXcode IQ od bloku, který čte Vzdálenost vzdálenost v mm.

Tento senzor dokáže měřit vzdálenost mezi ním a objektem.

  • Robot může pomocí tohoto senzoru ujet určitou vzdálenost od objektu. Podívejte se na níže uvedenou animaci, abyste viděli, jak se hodnota vzdálenosti mění, jak robot jede, dokud vzdálenost není pod 160 mm.

  • Robot může pomocí tohoto senzoru dojet k objektu, aniž by se ho dotkl. Podívejte se na tuto animaci a uvidíte dva roboty, kteří používají senzory vzdálenosti ke koordinaci své jízdy.

  • Hodnoty poskytované tímto senzorem lze použít k úpravě rychlosti robota v závislosti na tom, zda je blízko nebo daleko od objektu nebo povrchu. Prohlédněte si tuto animaci a uvidíte, jak se robot přizpůsobuje na základě vzdálenosti ke zdi.


Použití senzoru vzdálenosti na soutěžním robotu

  • Robot může použít senzor vzdálenosti k zahájení sekvence chování, když je na správném místě. Robot může například jet vpřed, dokud nezjistí, že je 150 mm od stěny, pak se otočit o 90 stupňů a pustit předmět do bodované zóny.  
  • Snímač vzdálenosti lze použít ke spouštění akcí robota, jako je zvednutí herního prvku, když je v dosahu detekován objekt.
  • Robot může pomocí senzoru vzdálenosti jet směrem k předmětu nebo povrchu, dokud se nedostane do určité vzdálenosti, aniž by se ho dotkl. Toho lze využít, abyste se ujistili, že robot nepřevrhne herní prvky.
  • Robot může pomocí senzoru vzdálenosti odjet od objektu nebo povrchu, dokud nedosáhne určité vzdálenosti. Toho lze využít k zamezení kolize s jinými roboty na hřišti.

Použití senzoru vzdálenosti ve VEXcode IQ

Přidání senzoru vzdálenosti jako zařízení do VEXcode IQ

Nabídka Zařízení VEXcode IQ po výběru tlačítka Přidat zařízení. Možnost Vzdálenost (1. gen) je zvýrazněna.

Chcete-li kódovat senzor vzdálenosti ve VEXcode IQ, musíte nejprve nakonfigurovat senzor vzdálenosti. V tomto článku se dozvíte více o konfiguraci senzoru ve VEXcode IQ.

Jakmile je senzor nakonfigurován, v panelu nástrojů se objeví příkazy, které můžete použít ve svém projektu.

Kódování snímače vzdálenosti v blocích

VEXcode IQ Objekt nalezen blok, který čte Vzdálenost7 našel objekt?

Blok <Object found> je logický reportovací blok, který hlásí podmínku jako pravdivou nebo nepravdivou. Booleovské bloky, jako je blok <Object found> , se vejdou do bloků s šestihrannými (šestistrannými) vstupy pro jiné bloky.

Booleovský blok <Object found> hlásí „true“, pokud senzor detekuje objekt, a „false“, pokud senzor nedetekuje. Chcete-li se dozvědět více o booleovských blocích, navštivte článek Help nebo Block Shapes and Meaning.

 

VEXcode IQ blokuje projekt, který používá senzor vzdálenosti k jízdě vpřed, dokud nenajde objekt. Projekt zní Po spuštění jeďte vpřed, počkejte, dokud Distance7 nenajde objekt, a poté zastavte jízdu.

V tomto příkladu je blok <Object found> použit s blokem [Čekat, dokud], aby robot jel vpřed, dokud senzor vzdálenosti nedetekuje objekt. Když senzor detekuje objekt, robot zastaví jízdu, jak je znázorněno na obrázku výše. 

VEXcode IQ Vzdálenost od bloku, který čte Vzdálenost7 vzdálenost v mm.

Blok (Vzdálenost od) hlásí vzdálenost nejbližšího objektu od snímače vzdálenosti. Uvádí rozsah od 24 mm do 1000 mm, neboli od 1 palce do 40 palců. Blok (Vzdálenost od) je reportérový blok, který se používá uvnitř bloků s kruhovými mezerami.

 

Projekt bloků VEXcode IQ, který využívá senzor vzdálenosti k jízdě vpřed, dokud jeho vzdálenost není menší než 50 mm. Projekt zní Po spuštění jeďte vpřed, vytiskněte vzdálenost Vzdálenost7 v mm na Brain, počkejte, dokud vzdálenost Vzdálenost7 v mm nebude menší než 50, a poté zastavte.

V tomto příkladu je blok (Vzdálenost od) použit s blokem [Tisk] k zobrazení vzdálenosti mezi senzorem vzdálenosti a objektem na obrazovce Mozek. Blok (Vzdálenost od) je také zobrazen uvnitř bloku <Less than> , který je uvnitř bloku {Wait until}. To způsobí, že robot pojede, dokud senzor vzdálenosti nezachytí objekt vzdálený méně než 50 milimetrů, a poté přestane jezdit. To je ukázáno v prvním videu výše.

Kódování senzoru vzdálenosti v Pythonu

Poznámka:Pro napsání senzoru vzdálenosti VEX IQ (1. generace) v Pythonu musí být tento senzor připojen k jádru VEX IQ (2. generace) Brain. Brain VEX IQ (1. generace) nepodporuje Python.

distance_7.je_detekován_objekt()

Příkaz distance.is_object_detected hlásí 'true', pokud je detekován objekt, a 'false', pokud objekt detekován není.

Poznámka:Název senzoru vzdálenosti, který se objeví v příkazu, odpovídá názvu, který je uveden v konfiguraci. 

drivetrain.drive(VPŘED)
while not distance_7.is_object_detected()
    wait(20, MSEC)
drivetrain.stop()
V tomto příkladu je použita smyčkaWhile s podmínkou not s příkazem distance.is_object_detected , aby se robot pohyboval vpřed, dokud senzor vzdálenosti nedetekuje objekt. Když senzor detekuje objekt, robot se zastaví, jak je znázorněno ve výše uvedeném kódu Pythonu.
vzdálenost_7.vzdálenost(MM)

Příkaz distance.distance hlásí vzdálenost nejbližšího objektu od senzoru vzdálenosti. Uvádí rozsah od 24 mm do 1000 mm, neboli od 1 palce do 40 palců.

drivetrain.drive(VPŘED)
brain.screen.print(vzdálenost_7.vzdálenost(MM)
while not vzdálenost_7.vzdálenost(MM) < 50:
    wait(20, MSEC)
drivetrain.stop()

V tomto příkladu je použita smyčka While s podmínkou not s příkazem distance.is_object_detected , aby se robot pohyboval vpřed, dokud senzor vzdálenosti nedetekuje objekt. Když senzor detekuje objekt, robot se zastaví.

V tomto příkladu je příkaz distance.distance použit s příkazem brain.screen.print k zobrazení vzdálenosti mezi senzorem vzdálenosti a objektem na obrazovce Brain. Příkaz distance.distance je také zobrazen uvnitř smyčky While s podmínkou nikoli . Díky tomu bude robot jet, dokud senzor vzdálenosti nezaznamená objekt vzdálený méně než 50 milimetrů, a poté se zastaví. To je ukázáno v prvním videu výše.

Chcete-li se dozvědět více o kódování senzoru vzdálenosti v Pythonu, podívejte se na 5. lekci kurzu informatiky úrovně 1 - Python. 

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: