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.

VEX IQ (1. gen) Snímač vzdálenosti kus.


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

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

Snímač vzdálenosti používá k měření zvuku stejné principy jako sonarové zařízení. Vysílá malý puls ultrazvuku svým emitorem na jedné straně senzoru a poté změří, jak dlouho trvá, než se zvuk odrazí zpět od přijímače na druhé straně senzoru. Snímač vypočítá vzdálenost na základě toho, jak dlouho trvalo zvukovému pulzu, než se uskutečnila cesta tam a zpět. Snímač vzdálenosti pak provede výpočet na základě rychlosti zvuku, aby řekl mozku robota, jak daleko je nejbližší objekt. 

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


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

VEXcode IQ Objekt nalezen blok, který čte Vzdálenost nalezena objekt?

Dva diagramy. Snímač vzdálenosti nahoře ukazuje na blízkou zelenou kostku a je označen zaškrtnutím. Snímač vzdálenosti dole nesměřuje na nic v blízkosti a je označen symbolem X.

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

VEXcode IQ Vzdálenost 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. Hlásí rozsah od24 mm do 1 000 mm nebo 1 palec až 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:Chcete-li kódovat senzor vzdálenosti VEX IQ (1. generace) v Pythonu, musí být připojen k mozku VEX IQ (2. generace). VEX IQ (1. generace) Brain nepodporuje Python.

distance_7.is_object_detected()

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(FORWARD)
while not distance_7.is_object_detected()
wait(20, MSEC)
drivetrain.stop()
V tomto příkladu se smyčkaWhile s podmínkou ne používá s příkazem distance.is_object_detected , aby robot jel dopředu, dokud senzor vzdálenosti nedetekuje objekt. Když senzor detekuje objekt, robot přestane řídit, jak je znázorněno v kódu Pythonu výše.
vzdálenost_7.vzdálenost(MM)

Příkaz distance.distance hlásí vzdálenost nejbližšího objektu od senzoru vzdálenosti. Hlásí rozsah od24 mm do 1 000 mm nebo 1 palec až 40 palců.

drivetrain.drive(FORWARD)
brain.screen.print(distance_7.distance(MM)
while not distance_7.distance(MM) < 50:
wait(20, MSEC)
drivetrain.stop()

V tomto příkladu je smyčka While s podmínkou ne použita s příkazem distance.is_object_detected , aby robot jel dopředu, dokud senzor vzdálenosti nedetekuje objekt. Když senzor detekuje předmět, robot zastaví jízdu.

V tomto příkladu je příkaz distance.distance použit s příkazem brain.screen.print k zobrazení vzdálenosti mezi snímačem vzdálenosti a objektem na obrazovce Brain. Příkaz distance.distance je také zobrazen uvnitř smyčky While s podmínkou ne . To způsobí, že robot pojede, dokud senzor vzdálenosti nezaznamená objekt vzdálený méně než 50 milimetrů, a poté přestane jezdit. 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 lekce 5 v kurzu Computer Science Level 1 – Python. 

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

Last Updated: