Bloky specifické pro robota#
Zavedení#
Hrdinský robot Flex obsahuje motor ClawMotor, motor ArmMotor, senzor AI Vision, senzor vzdálenosti a senzor GPS (Game Positioning System).
Všechny standardní bloky VR kódu VEX jsou k dispozici pro použití na hřišti V5 26-27 Override.
Níže je uveden seznam všech dostupných bloků specifických pro roboty:
Pohon – Pohyb a otáčení robota.
Akce
drive — Pohybuje robota vpřed nebo vzad natrvalo.
drive for — Pohybuje robota vpřed nebo vzad o určitou vzdálenost.
turn — Otočí robota doleva nebo doprava natrvalo.
otoč se o — Otočí robota doleva nebo doprava o určitý počet stupňů.
otočit se do směru — Otočí robota směrem k určitému směru.
otočení do rotace — Otočí robota do určité rotace.
zastavit jízdu — Zastaví pohyb robota.
Nastavení
nastavit rychlost jízdy — Říká robotovi, jak rychle má jet.
nastavit rychlost otáčení — Říká robotovi, jak rychle se má otáčet.
nastavit směr jízdy — Změní aktuální směr robota na nový směr.
nastavit rotaci pohonu — Změní aktuální rotaci robota na novou rotaci.
set drive timeout — Nastaví, po kolik sekund se bude robot pokusit dokončit pohyb.
Hodnoty
pohon dokončen — Hlásí, zda robot dokončil pohyb.
pohon se pohybuje — Hlásí, zda se robot pohybuje.
směr jízdy — Ukazuje aktuální směr robota od 0 do 359,99 stupňů.
rotace pohonu — Hlásí aktuální rotaci robota.
rychlost pohonu — Udává, jak rychle se robot pohybuje.
Pohyb – Pohybujte a sledujte motory robota.
Akce
spin motor – Roztočí motor dopředu nebo dozadu navždy.
spin motor for – Roztočí motor o určitou vzdálenost ve stupních nebo otáčkách.
roztočit motor do požadované polohy – Roztočí motor do určité polohy.
zastavit motor – Zastaví otáčení motoru.
Nastavení
nastavit rychlost motoru – Říká motoru, jak rychle se má otáčet.
nastavit časový limit motoru – Nastavuje, jak dlouho se bude motor pokoušet dokončit pohyb.
nastavit polohu motoru – Změní aktuální polohu motoru na novou hodnotu.
Hodnoty
motor je hotový – Hlásí, zda se motor rozhýbal.
motor se točí – Hlásí, zda se motor točí.
poloha motoru – Hlásí aktuální polohu motoru.
rychlost motoru – Udává rychlost otáčení motoru v procentech od -100 % do 100 %.
AI Vision – Zachycujte a analyzujte objekty pomocí senzoru AI Vision.
Akce
get object data – Zachytí data pro konkrétní podpis, například detekovanou klasifikaci umělé inteligence.
Nastavení
set object item – Vybere konkrétní objekt ze seznamu.
Hodnoty
objekt existuje – Vrací, zda byla detekována nějaká klasifikace.
objekt je – Vrátí, pokud je detekována klasifikace.
objekt je AprilTag – Vrací, zda detekovaný objekt je AprilTag odpovídající specifickému ID.
počet_objektů – Vrátí, kolik objektů bylo detekováno.
vlastnost objektu – Vrátí podrobnosti, jako například:
Snímání – Využijte různé senzory robota.
Vzdálenost
Vzdálenost nalezena k objektu – Hlásí, zda senzor vzdálenosti detekoval objekt v dosahu.
vzdálenost objektu – Udává vzdálenost mezi senzorem vzdálenosti a nejbližším detekovaným objektem.
GPS
Pozice GPS – Vrátí pozici X nebo Y ze senzoru GPS.
GPS směr – Vrátí směr, kterým se robot aktuálně nachází.
Příklady na této stránce používají výchozí pozici C z kontrolního seznamu před zápasem na hřišti.
Hnací ústrojí#
Pohon řídí, jak se VR robot řídí a zatáčí. Pohon se může pohybovat vpřed nebo vzad, zatáčet doleva nebo doprava, otáčet se do směru a sledovat svou rotaci.
Akce#
řídit#
Blok drive pohybuje robotem vpřed nebo vzad donekonečna. Robot se bude pohybovat, dokud nedostane další akci, například otočení nebo zastavení.
jet [dopředu v]
Parametry |
Popis |
|---|---|
směr |
Směr pohybu robota: vpřed nebo vzad. |
Příklad
při spuštění :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v]
čekat (0.5) sekund
zastavit jízdu
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
jet pro#
Blok drive for pohybuje robotem vpřed nebo vzad o určitou vzdálenost. Projekt počká, dokud se robot nedokončí s pohybem, než se spustí další blok v zásobníku.
jet [dopředu v] na (200) [mm v] ▶
Parametry |
Popis |
|---|---|
směr |
Směr pohybu robota: vpřed nebo vzad. |
vzdálenost |
Vzdálenost, kterou robot urazí. Může to být celé číslo nebo desetinné číslo. |
jednotka |
Jednotka vzdálenosti: mm (milimetry) nebo palce |
a nečekej |
Vyberte šipku (▶) pro rozbalení bloku s textem a nečekejte, takže další blok v zásobníku se spustí ihned. |
Příklad
při spuštění :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit#
Blok turn otáčí robota doleva nebo doprava navždy. Robot se bude otáčet, dokud nedostane další akci, například jízdu nebo zastavení.
otočit [vpravo v]
Parametry |
Popis |
|---|---|
směr |
Směr otáčení robota: doleva nebo doprava. |
Příklad
při spuštění :: hat events
[Score a Pin in a Neutral Goal.]
otočit [vlevo v]
čekat (0.78) sekund
zastavit jízdu
otáčet [ArmMotor v] [nahoru v] na (800) [stupně v] ▶
jet [dopředu v] na (25) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit se pro#
Blok turn for otočí robota doleva nebo doprava o určitý počet stupňů. Otočení je relativní vzhledem k aktuální poloze robota. Projekt počká, dokud robot nedokončí otáčení, než se spustí další blok v zásobníku.
otočit [vpravo v] o (90) stupňů ▶
Parametry |
Popis |
|---|---|
směr |
Směr otáčení robota: doleva nebo doprava. |
úhel |
Počet stupňů, o které se robot otočí. Může to být celé číslo nebo desetinné číslo. |
a nečekej |
Vyberte šipku (▶) pro rozbalení bloku s textem a nečekejte, takže další blok v zásobníku se spustí ihned. |
Příklad
při spuštění :: hat events
[Score a Pin in a Neutral Goal.]
otočit [vlevo v] o (110) stupňů ▶
otáčet [ArmMotor v] [nahoru v] na (800) [stupně v] ▶
jet [dopředu v] na (25) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit k nadpisu#
Směr je směr, kterým je robot otočen, měřený ve stupních. Blok zásobníku otoč se do směru otočí robota tak, aby směřoval v určitém směru, od -359 do 359 stupňů. Robot se otočí nejkratším směrem, aby dosáhl cílového směru.
Výchozí směr je 0 stupňů.
Projekt počká, dokud robot nedokončí otáčení, než se spustí další blok v zásobníku.
otočit na kurz (90) stupňů ▶
Parametry |
Popis |
|---|---|
záhlaví |
Směr, kterým by se měl robot otočit, od -359 do 359 stupňů. |
a nečekej |
Vyberte šipku (▶) pro rozbalení bloku s textem a nečekejte, takže další blok v zásobníku se spustí ihned. |
Příklad
při spuštění :: hat events
[Score a Pin in a Neutral Goal.]
otočit na kurz (-110) stupňů ▶
otáčet [ArmMotor v] [nahoru v] na (800) [stupně v] ▶
jet [dopředu v] na (25) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit se k rotaci#
Blok zásobníku otoč se na rotaci otočí robota do určité rotace.
Rotace udává, o kolik se robot otočil, měřeno ve stupních. Na začátku projektu je hodnota rotace nastavena na 0 stupňů. Rotaci lze také nastavit pomocí bloku set drive rotation.
Hodnoty rotace jsou absolutní. To znamená, že směr otáčení závisí na aktuální rotaci robota. Otočení doprava rotaci zvyšuje a otáčení doleva snižuje.
Například pokud robot začne na 0 stupních a otočíte se o 720 stupňů, otočí se dvakrát doprava. Pokud se poté otočíte o 360 stupňů, otočí se jednou doleva, protože 360 je menší než 720.
Projekt počká, dokud robot nedokončí otáčení, než se spustí další blok v zásobníku.
otočit na rotaci (90) stupňů ▶
Parametry |
Popis |
|---|---|
otáčení |
Hodnota rotace ve stupních, na kterou se robot otočí. Může to být celé číslo nebo desetinné číslo. |
a nečekej |
Vyberte šipku (▶) pro rozbalení bloku s textem a nečekejte, takže další blok v zásobníku se spustí ihned. |
Příklad
při spuštění :: hat events
[Score a Pin in a Neutral Goal.]
otočit na rotaci (-110) stupňů ▶
otáčet [ArmMotor v] [nahoru v] na (800) [stupně v] ▶
jet [dopředu v] na (25) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
přestaň řídit#
Blok stop driving zastaví pohyb robota.
zastavit jízdu
Parametry |
Popis |
|---|---|
Tento blok nemá žádné parametry. |
Příklad
při spuštění :: hat events
[Score a Pin in a Neutral Goal.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v]
čekat (0.5) sekund
zastavit jízdu
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
Nastavení#
nastavená rychlost pohonu#
Blok set drive velocity říká robotovi, jak rychle má jet. Vyšší procento způsobí, že robot jede rychleji, a nižší procento, že robot jede pomaleji.
Každý projekt začíná s robotem, který se standardně pohybuje rychlostí 50 %.
Poznámka: Vyšší rychlost zrychluje pohyb robota, ale může být méně přesný. Nižší rychlost zpomaluje pohyb robota, ale může být přesnější.
nastavit rychlost jízdy na (50) [% v]
Parametry |
Popis |
|---|---|
rychlost |
Rychlost jízdy od 0 % do 100 %. |
jednotka |
Jednotka rychlosti: % |
Příklad
při spuštění :: hat events
[Score a Pin in a Neutral Goal.]
otočit [vlevo v] o (110) stupňů ▶
otáčet [ArmMotor v] [nahoru v] na (800) [stupně v] ▶
nastavit rychlost jízdy na (100) [% v]
jet [dopředu v] na (25) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
nastavená rychlost otáčení#
Blok set turn velocity říká robotovi, jak rychle se má otáčet. Vyšší procento způsobí, že se robot bude otáčet rychleji, a nižší procento způsobí, že se robot bude otáčet pomaleji.
Každý projekt začíná s robotem, který se standardně otáčí rychlostí 50 %.
Poznámka: Vyšší rychlost způsobí, že se robot otáčí rychleji, ale může být méně přesný. Nižší rychlost způsobí, že se robot otáčí pomaleji, ale může být přesnější.
nastavit rychlost otáčení na (50) [% v]
Parametry |
Popis |
|---|---|
rychlost |
Rychlost otáčení od 0 % do 100 %. |
jednotka |
Jednotka rychlosti: % |
Příklad
při spuštění :: hat events
[Turn to face the Neutral Goal faster.]
nastavit rychlost otáčení na (100) [% v]
otočit [vlevo v] o (110) stupňů ▶
nastavit směr jízdy#
Směr je směr, kterým je robot otočen, měřený ve stupních. Blok zásobníku set drive heading změní aktuální směr robota na novou hodnotu směru.
Například pokud se robot otočil čelem doprava, nastavením směru na 0 stupňů se tato poloha směřující doprava stane novými 0 stupni. Robot se pak může na základě tohoto nového směru otáčet do jiných pozic.
nastavit kurz jízdy na (0) stupňů
Parametry |
Popis |
|---|---|
záhlaví |
Hodnota směru ve stupních, která se má nastavit pro robota. |
Příklad
při spuštění :: hat events
[Make facing the Neutral Goal the new heading.]
nastavit kurz jízdy na (110) stupňů
otočit na kurz (0) stupňů ▶
nastavení otáčení pohonu#
Rotace udává, o kolik se robot otočil, měřeno ve stupních. Na začátku projektu je hodnota rotace nastavena na 0 stupňů. Blok zásobníku set drive rotation změní aktuální rotaci robota na novou hodnotu.
Například pokud robot provedl dvě plné otáčky doprava, jeho hodnota rotace bude 720 stupňů. Nastavením rotace na 0 stupňů se tato hodnota resetuje ze 720 na 0 stupňů. Robot se pak může otáčet na základě této nové hodnoty.
nastavit rotaci jízdy na (0) stupňů
Parametry |
Popis |
|---|---|
otáčení |
Hodnota rotace ve stupních, která se má nastavit pro robota. Může to být celé číslo nebo desetinné číslo. |
Příklad
při spuštění :: hat events
[Make facing the Neutral Goal the new rotation.]
nastavit rotaci jízdy na (110) stupňů
otočit na rotaci (0) stupňů ▶
nastavit časový limit disku#
Blok set drive timeout nastavuje, po kolik sekund se robot pokusí dokončit pohyb. Pokud robot nedokončí pohyb v tomto čase, přestane se snažit a přesune se k dalšímu bloku v zásobníku. Tím se zabrání tomu, aby se robot zasekl na pohybu.
nastavit časový limit jízdy na (1) sekund
Parametry |
Popis |
|---|---|
čas |
Počet sekund, po které se robot může pokusit dokončit pohyb. Může se jednat o celé číslo nebo desetinné číslo. |
Příklad
při spuštění :: hat events
[Turn to face the Neutral Goal.]
nastavit časový limit jízdy na (0.8) sekund
otočit [vlevo v] o (180) stupňů ▶
Hodnoty#
jízda je hotová#
Logický blok drive is done hlásí, zda robot dokončil pohyb. To lze použít k řízení načasování dalších chování na základě pohybu robota.
Pravda – Robot dokončil pohyb.
Nepravda — Robot se stále pohybuje.
Tento blok spolupracuje s bloky hnacího ústrojí, které mají parametr a nečekat.
<jízda dokončena?>
Parametry |
Popis |
|---|---|
Tento blok nemá žádné parametry. |
Příklad
při spuštění :: hat events
[Score a Pin in a Neutral Goal.]
otočit [vlevo v] o (110) stupňů ▶
otáčet [ArmMotor v] [nahoru v] na (800) [stupně v] ▶
jet [dopředu v] na (25) [palce v] ◀ a nečekat
čekat dokud <jízda dokončena?>
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
pohon se pohybuje#
Logický blok pohon se pohybuje hlásí, zda se robot pohybuje. To lze použít k řízení načasování dalších chování na základě pohybu robota.
Pravda – Robot se pohybuje.
Nepravda — Robot se nepohybuje.
Tento blok spolupracuje s bloky hnacího ústrojí, které mají parametr a nečekat.
<jede?>
Parametry |
Popis |
|---|---|
Tento blok nemá žádné parametry. |
Příklad
při spuštění :: hat events
[Raise the Arm once stopped near the Goal.]
otočit [vlevo v] o (110) stupňů ▶
jet [dopředu v] na (25) [palce v] ◀ a nečekat
dokud <jede?>
čekat (0.005) sekund
konec
otáčet [ArmMotor v] [nahoru v] na (800) [stupně v] ▶
směr jízdy#
Směr otáčení je směr, kterým je robot otočen, měřený ve stupních. Blok hlášení směrování otáčení hlásí tento směr od 0 do 359,99 stupňů.
Výchozí směr robota je 0 stupňů.
(kurz jízdy ve stupních)
Parametry |
Popis |
|---|---|
Tento blok nemá žádné parametry. |
Příklad
při spuštění :: hat events
[Turn to the Goal, then show heading.]
otočit [vpravo v] o (450) stupňů ▶
tisk (kurz jízdy ve stupních) na obrazovce ◀ a přesunout kurzor na další řádek
otáčení pohonu#
Rotace udává, o kolik se robot otočil, měřeno ve stupních. Na začátku projektu je hodnota rotace nastavena na 0 stupňů. Blok hlášení rotace pohonu hlásí aktuální rotaci robota.
Otočení doprava zvětšuje rotaci a otočení doleva ji snižuje. Například provedení dvou celých otoček doprava bude znamenat rotaci o 720 stupňů.
(rotace jízdy ve stupních)
Parametry |
Popis |
|---|---|
Tento blok nemá žádné parametry. |
Příklad
při spuštění :: hat events
[Spin to find a Pin, then show rotation.]
otočit [vpravo v] o (450) stupňů ▶
tisk (rotace jízdy ve stupních) na obrazovce ◀ a přesunout kurzor na další řádek
rychlost pohonu#
Blok drive velocity hlásí, jak rychle robot jede.
(rychlost jízdy v [% v])
Parametry |
Popis |
|---|---|
jednotka |
Jednotka rychlosti: % |
Příklad
při spuštění :: hat events
[Show speed while driving to the Goal.]
jet [dopředu v] na (150) [mm v] ▶
tisk (rychlost jízdy v [% v]) na obrazovce ◀ a přesunout kurzor na další řádek
Pohyb#
Flex používá ArmMotor ke zvedání a spouštění ramene a ClawMotor k otevírání a zavírání čelistí.
Každý motor má své vlastní možnosti směru. Názvy směrů popisují, jak se motor pohybuje na Flexu.
Akce#
rotační motor#
Blok spin motor roztáčí motor donekonečna v jednom ze dvou směrů. Motor se bude otáčet, dokud nedostane další akci, například se roztočí jiným směrem nebo se zastaví.
otáčet [ArmMotor v] [nahoru v]
Parametry |
Popis |
|---|---|
motor |
Motor, který se má otáčet: ArmMotor nebo ClawMotor. |
směr |
Směr otáčení motoru:
|
Příklad
při spuštění
[Raise the Arm before driving toward a Pin.]
otáčet [ArmMotor v] [nahoru v]
čekat (1) sekund
zastavit [ArmMotor v]
rotační motor pro#
Blok spin motor for roztočí motor o určitou vzdálenost. Otáčení je relativní vzhledem k aktuální poloze motoru. Projekt počká, dokud se motor nedotočí, než se spustí další blok v zásobníku.
otáčet [ArmMotor v] [nahoru v] na (90) [stupně v] ▶
Parametry |
Popis |
|---|---|
motor |
Motor, který se má otáčet: ArmMotor nebo ClawMotor. |
směr |
Směr otáčení motoru:
|
vzdálenost |
Vzdálenost, o kterou se motor otočí. Stupně používají celá čísla. Otáčky mohou používat celá nebo desetinná čísla. |
jednotka |
Jednotka vzdálenosti: stupně nebo otáčky. |
a nečekej |
Vyberte šipku (▶) pro rozbalení bloku s textem a nečekejte, takže další blok v zásobníku se spustí ihned. |
Příklad
při spuštění
[Raise the Arm to carry the Pin to the Goal.]
otáčet [ArmMotor v] [nahoru v] na (800) [stupně v] ▶
otočte motor do požadované polohy#
Blok zásobníku spin motor to position roztočí motor do určité polohy.
Poloha motoru udává, o kolik se otočil, měřeno ve stupních nebo otáčkách. Jedna otáčka se rovná 360 stupňům. Na začátku projektu je poloha ArmMotoru nastavena na 0 stupňů. ClawMotor je výjimkou – začíná na 467 stupních (plně zavřeno). Polohu motoru lze také nastavit pomocí bloku set motor position.
Hodnoty polohy jsou absolutní. To znamená, že směr otáčení závisí na aktuální poloze motoru.
Například pokud se motor spustí při 0 stupních a otočí se do polohy 720 stupňů, otočí se o dvě otáčky dopředu. Pokud se poté otočí do polohy 360 stupňů, otočí se o jednu otáčku dozadu, protože 360 je menší než 720.
otáčet [ArmMotor v] na polohu (90) [stupně v] ▶
Parametry |
Popis |
|---|---|
motor |
Motor, který se má otáčet: ArmMotor nebo ClawMotor. |
pozice |
Hodnota polohy, do které se motor otočí. Stupně používají celá čísla. Otáčky mohou používat celá nebo desetinná čísla. |
jednotka |
Jednotka polohy: stupně nebo otáčky. |
a nečekej |
Vyberte šipku (▶) pro rozbalení bloku s textem a nečekejte, takže další blok v zásobníku se spustí ihned. |
Příklad
při spuštění
[Raise the Arm, then release the Pin.]
otáčet [ArmMotor v] na polohu (800) [stupně v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
zastavit motor#
Zásobníkový blok zastavit motor zastaví vybraný motor.
zastavit [ArmMotor v]
Parametry |
Popis |
|---|---|
motor |
Motor, který se má zastavit: ArmMotor nebo ClawMotor. |
Příklad
při spuštění
[Raise the Arm partway to hold the Pin.]
otáčet [ArmMotor v] [nahoru v]
čekat (1) sekund
zastavit [ArmMotor v]
Nastavení#
nastavená rychlost motoru#
Zásobníkový blok set motor velocity říká motoru, jak rychle se má otáčet. Vyšší procento způsobí, že se motor otáčí rychleji, a nižší procento způsobí, že se motor otáčí pomaleji.
Každý projekt začíná s tím, že se každý motor standardně otáčí rychlostí 50 %.
Poznámka: Vyšší rychlost způsobí, že se motor otáčí rychleji, ale může to být méně přesné. Nižší rychlost způsobí, že se motor otáčí pomaleji, ale může to být přesnější.
nastavit rychlost [ArmMotor v] na [50] [% v]
Parametry |
Popis |
|---|---|
motor |
Motor pro nastavení rychlosti: ArmMotor nebo ClawMotor. |
rychlost |
Rychlost, s jakou se bude motor otáčet. Procenta používají celá čísla od 0 % do 100 %. |
jednotka |
Jednotka rychlosti: %. |
Příklad
při spuštění
[Raise the Arm fast to release the Pin.]
nastavit rychlost [ArmMotor v] na [100] [% v]
otáčet [ArmMotor v] [nahoru v] na (800) [stupně v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
nastavení časového limitu motoru#
Blok zásobníku set motor timeout nastavuje, jak dlouho se bude motor pokoušet dokončit pohyb. Pokud motor nedokončí pohyb v tomto čase, přestane se snažit a přesune se k dalšímu bloku v zásobníku. Tím se zabrání tomu, aby se motor zasekl na určitém pohybu.
nastavit časový limit [ArmMotor v] na [1] sekund
Parametry |
Popis |
|---|---|
motor |
Motor pro nastavení časového limitu: ArmMotor nebo ClawMotor. |
čas |
Počet sekund, po které se motor může pokusit dokončit pohyb. Může se jednat o celé nebo desetinné číslo. |
Příklad
při spuštění
[Score a Pin in a Neutral Goal.]
otočit [vlevo v] o (110) stupňů ▶
nastavit časový limit [ArmMotor v] na [1] sekund
otáčet [ArmMotor v] [nahoru v] na (1800) [stupně v] ▶
jet [dopředu v] na (25) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
Pozice#
poloha motoru#
Poloha motoru udává, o kolik se otočil, měřeno ve stupních nebo otáčkách. Jedna otáčka se rovná 360 stupňům. Blok hlášení polohy motoru hlásí aktuální polohu motoru.
Na začátku projektu je poloha ArmMotoru nastavena na 0 stupňů. ClawMotor je výjimkou – začíná na 467 stupních (plně zavřeno). Pokud se motor otočí o jednu celou otáčku dopředu, poloha se zvýší. Pokud se motor otáčí opačným směrem, poloha se sníží.
(poloha [ArmMotor v] v [stupně v])
Parametry |
Popis |
|---|---|
motor |
Motor, který má hlásit polohu: ArmMotor nebo ClawMotor. |
jednotka |
Jednotka pro hlášení polohy motoru ve stupních nebo otáčkách. |
Příklad
při spuštění
[Raise the Arm, then release the Pin.]
dokud <(poloha [ArmMotor v] v [stupně v]) < (800)>
otáčet [ArmMotor v] [nahoru v]
čekat (0.002) sekund
konec
zastavit [ArmMotor v]
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
nastavení polohy motoru#
Poloha motoru udává, o kolik se otočil, měřeno ve stupních nebo otáčkách. Jedna otáčka se rovná 360 stupňům. Blok zásobníku set motor position změní aktuální polohu motoru na novou hodnotu.
Například pokud se motor otočil o 180 stupňů, nastavení polohy na 0 stupňů resetuje tuto polohu ze 180 na 0 stupňů. Motor se pak může otáčet do pozic na základě této nové hodnoty.
nastavit polohu [ArmMotor v] na (0) [stupně v]
Parametry |
Popis |
|---|---|
motor |
Motor pro nastavení polohy: ArmMotor nebo ClawMotor. |
pozice |
Hodnota polohy, která se má nastavit pro motor. Stupně používají celá čísla. Otáčky mohou používat celá nebo desetinná čísla. |
jednotka |
Jednotka polohy: stupně nebo otáčky. |
Příklad
při spuštění
[Reset encoder, raise Arm, place Pin.]
nastavit polohu [ArmMotor v] na (0) [stupně v]
otáčet [ArmMotor v] na polohu (800) [stupně v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
Hodnoty#
motor je hotový#
Logický blok motor je hotový hlásí, zda se motor dokončil. To lze použít k řízení načasování dalších funkcí na základě pohybu motoru.
True – Motor se roztočil.
Nepravda — Motor se stále točí.
Tento blok spolupracuje s následujícími bloky Motion, které mají parametr a nečekat: spin motor for a spin motor to position.
<[ArmMotor v] dokončen?>
Parametry |
Popis |
|---|---|
motor |
Motor, který má hlásit, zda je dokončen jeho pohyb: ArmMotor nebo ClawMotor. |
Příklad
při spuštění
[Raise the Arm while driving to the Goal.]
otáčet [ArmMotor v] na polohu (800) [stupně v] ◀ a nečekat
čekat (0.1) sekund
dokud <ne <[ArmMotor v] dokončen?>>
jet [dopředu v]
čekat (0.005) sekund
konec
zastavit jízdu
motor se točí#
Logický blok motor se točí hlásí, zda se motor točí. To lze použít k řízení načasování dalších chování na základě pohybu motoru.
Pravda – Motor se točí.
Nepravda – Motor se netočí.
Tento blok spolupracuje s následujícími bloky Motion, které mají parametr a nečekat: spin motor for a spin motor to position.
<[ArmMotor v] se otáčí?>
Parametry |
Popis |
|---|---|
motor |
Motor, který má hlásit, zda se otáčí: ArmMotor nebo ClawMotor. |
Příklad
při spuštění
[Raise the Arm while driving to the Goal, then release the Pin.]
otáčet [ArmMotor v] na polohu (800) [stupně v] ◀ a nečekat
čekat (0.1) sekund
dokud <[ArmMotor v] se otáčí?>
jet [dopředu v] na (20) [mm v] ▶
konec
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
rychlost motoru#
Blok hlášení motor rate hlásí, jak rychle se motor otáčí, v procentech od -100 % do 100 %.
(rychlost [ArmMotor v] v [% v] :: custom-motion)
Parametry |
Popis |
|---|---|
motor |
Motor, který má hlásit rychlost: ArmMotor nebo ClawMotor. |
jednotka |
Jednotka pro hlášení rychlosti motoru v: %. |
Příklad
při spuštění
[Show Arm Motor velocity while raising.]
nastavit rychlost [ArmMotor v] na [100] [% v]
otáčet [ArmMotor v] na polohu (800) [stupně v] ◀ a nečekat
čekat (0.2) sekund
tisk (rychlost [ArmMotor v] v [% v] :: custom-motion) na obrazovce ◀ a přesunout kurzor na další řádek
Vize umělé inteligence#
Akce#
získat data objektu#
Blok get object data filtruje data z rámce AI Vision Sensor do jediného podpisu – uloženého popisu něčeho, co senzor dokáže rozpoznat, například herního prvku na hřišti.
Datová sada ukládá objekty seřazené od největší po nejmenší podle šířky, počínaje indexem 0. Vlastnosti každého objektu lze zobrazit pomocí bloku AI Vision object property. Pokud nejsou detekovány žádné odpovídající objekty, vrátí se prázdná datová sada.
získat data [AI klasifikace v] z [AIVision v]
Parametr |
Popis |
|---|---|
podpis |
Filtruje datovou sadu tak, aby zahrnovala pouze data daného podpisu. Dostupné podpisy jsou:
|
Příklad
při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
[Turn to face the Pin.]
nastavit rychlost otáčení na (30) [% v]
navždy
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
if <(objekt [AIVision v] [středX v]) < (140)> then
otočit [vlevo v]
else if <([AIVision v] object [centerX v]) > (180)> then
otočit [vpravo v]
jinak
zastavit jízdu
přerušit
konec
konec
konec
Nastavení#
položka nastaveného objektu#
Blok set object item nastavuje, která položka v datové sadě se má použít.
nastavit položku objektu [AIVision v] na [1]
Parametry |
Popis |
|---|---|
položka |
Číslo položky v datové sadě, která se má použít. |
Příklad
při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
získat data [AI klasifikace v] z [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
pokud <objekt [AIVision v] existuje?> pak
[If any AI Classification is detected, check if any of them are a specific game element.]
pokud <objekt [AIVision v] je [RedBluePin v]?> pak
tisk [RedBluePin detected.] ▶
jinak
tisk [No RedBluePin detected.] ▶
konec
konec
Hodnoty#
objekt existuje#
Blok object exists vrací booleovskou hodnotu, která indikuje, zda je v datové sadě detekován nějaký objekt.
True – Datová sada obsahuje detekovaný objekt.
False – Datová sada neobsahuje žádné detekované objekty.
<objekt [AIVision v] existuje?>
Parametry |
Popis |
|---|---|
Tento blok nemá žádné parametry. |
Příklad
při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
získat data [AI klasifikace v] z [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
pokud <objekt [AIVision v] existuje?> pak
tisk (počet objektů [AIVision v]) ◀ a přesunout kurzor na další řádek
konec
objekt je#
Blok object is vrací booleovskou hodnotu, která označuje, zda detekovaný objekt odpovídá specifické klasifikaci.
True – Položka v datové sadě je daný objekt.
False – Položka v datové sadě není daným konkrétním objektem.
<objekt [AIVision v] je [RedBluePin v]?>
Parametr |
Popis |
|---|---|
objekt |
S jakým objektem porovnat položku:
|
Příklad
při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
pokud <objekt [AIVision v] je [RedBluePin v]?> pak
tisk [RedBluePin detected.] ▶
jinak
tisk [No RedBluePin detected.] ▶
konec
konec
objekt je AprilTag#
Blok object is AprilTag vrací booleovskou hodnotu, která označuje, zda detekovaný objekt je AprilTag, který odpovídá specifickému ID.
True – Detekovaný objekt je AprilTag s daným ID.
False – Detekovaný objekt není AprilTag s daným ID.
<objekt [AIVision v] je AprilTag [0]?>
Parametr |
Popis |
|---|---|
ID značky AprilTag |
Číslo ID, které se má porovnat s detekovanou hodnotou AprilTag. |
Příklad
při spuštění
[Report if AprilTag 3 is detected.]
získat data [AprilTags v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
pokud <objekt [AIVision v] je AprilTag [3]?> pak
tisk [That is 3!] ▶
jinak
tisk [That isn't 3!] ▶
konec
konec
počet objektů#
Blok object count vrací počet detekovaných objektů v datové sadě jako celé číslo.
(počet objektů [AIVision])
Parametry |
Popis |
|---|---|
Tento blok nemá žádné parametry. |
Příklad
při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
tisk (počet objektů [AIVision v]) ◀ a přesunout kurzor na další řádek
konec
vlastnost objektu#
Každý objekt (zobrazený níže) ukládá po použití bloku get object data šest vlastností, které jsou součástí každého objektu.
(objekt [AIVision v] [šířka v])
Všechny hodnoty vlastností popisují polohu a velikost detekovaného objektu v zobrazení senzoru AI Vision v okamžiku použití bloku get object data. Tyto hodnoty se měří v pixelech na základě rozlišení senzoru 320 x 240 pixelů.
Parametr |
Popis |
|---|---|
vlastnictví |
Which property of the detected object to use: |
šířka#
Vlastnost width udává šířku detekovaného objektu v pixelech jako celé číslo od 1 do 320.
(objekt [AIVision v] [šířka v])
Příklad
při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
[Approach the next Cup and Pin.]
nastavit rychlost jízdy na (30) [% v]
navždy
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
if <([AIVision v] object [width v]) > (140)> then
zastavit jízdu
přerušit
jinak
jet [dopředu v]
konec
konec
konec
výška#
Vlastnost height udává výšku detekovaného objektu v pixelech jako celé číslo od 1 do 240.
(objekt [AIVision v] [výška v])
Příklad
při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
[Approach the next Cup and Pin.]
nastavit rychlost jízdy na (30) [% v]
navždy
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
if <([AIVision v] object [height v]) > (200)> then
zastavit jízdu
přerušit
jinak
jet [dopředu v]
konec
konec
konec
centrumX#
Vlastnost centerX udává souřadnici x středu detekovaného objektu v pixelech jako celé číslo od 0 do 320.
(objekt [AIVision v] [středX v])
Příklad
při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
[Turn and approach the next Cup and Pin.]
nastavit rychlost otáčení na (30) [% v]
navždy
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
if <(objekt [AIVision v] [středX v]) < (140)> then
otočit [vlevo v] o (5) stupňů ▶
jinak
jet [dopředu v] na (25) [palce v] ▶
přerušit
konec
konec
konec
centrumY#
Vlastnost centerY udává souřadnici y středu detekovaného objektu v pixelech jako celé číslo od 0 do 240.
(objekt [AIVision v] [středY v])
Příklad
při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
[Approach the next Cup and Pin.]
nastavit rychlost jízdy na (30) [% v]
navždy
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
if <([AIVision v] object [centerY v]) > (230)> then
zastavit jízdu
přerušit
jinak
jet [dopředu v]
konec
konec
konec
původX#
Vlastnost originX udává souřadnici x levého horního rohu ohraničovacího rámečku detekovaného objektu v pixelech jako celé číslo od 0 do 320.
(objekt [AIVision v] [počátekX v])
Příklad
při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
[Turn and approach the next Cup and Pin.]
nastavit rychlost otáčení na (30) [% v]
navždy
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
if <(objekt [AIVision v] [počátekX v]) < (100)> then
otočit [vlevo v] o (5) stupňů ▶
jinak
jet [dopředu v] na (25) [palce v] ▶
přerušit
konec
konec
konec
původY#
Vlastnost originY udává souřadnici y levého horního rohu ohraničovacího rámečku detekovaného objektu v pixelech jako celé číslo od 0 do 240.
(objekt [AIVision v] [počátekY v])
Příklad
při spuštění
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
otočit [vlevo v] o (70) stupňů ▶
[Approach the next Cup and Pin.]
nastavit rychlost jízdy na (30) [% v]
navždy
získat data [AI klasifikace v] z [AIVision v]
pokud <objekt [AIVision v] existuje?> pak
if <([AIVision v] object [originY v]) > (140)> then
zastavit jízdu
přerušit
jinak
jet [dopředu v]
konec
konec
konec
Snímání#
Vzdálenost#
Vzdálenost nalezeného objektu#
Logický blok Vzdálenost nalezena při detekci objektu hlásí, zda senzor vzdálenosti aktuálně detekuje objekt do vzdálenosti 2000 mm.
True – Senzor vzdálenosti detekuje objekt.
Nepravda – Senzor vzdálenosti nedetekuje objekt.
<[FrontDistance v] našel objekt?>
Parametry |
Popis |
|---|---|
senzor vzdálenosti |
Snímač vzdálenosti, který chcete použít. Vyberte si z dostupných snímačů vzdálenosti pro Flex. |
Příklad
při spuštění :: hat events
[Turn until something is detected, then release the Pin.]
otočit [vpravo v]
čekat dokud <[FrontDistance v] našel objekt?>
zastavit jízdu
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
vzdálenost objektu#
Blok hlášení vzdálenosti objektu hlásí vzdálenost mezi senzorem vzdálenosti a nejbližším detekovaným objektem.
(vzdálenost [FrontDistance v] v [mm v])
Parametry |
Popis |
|---|---|
senzor vzdálenosti |
Snímač vzdálenosti, který chcete použít. Vyberte si z dostupných snímačů vzdálenosti pro Flex. |
jednotka |
Jednotka vzdálenosti: mm nebo palce. |
Příklad
při spuštění :: hat events
[Drive until 200 mm from the Goal, then release the Pin.]
jet [dopředu v]
čekat dokud <(vzdálenost [FrontDistance v] v [mm v]) < (200)>
zastavit jízdu
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
GPS#
GPS pozice#
Blok GPS position vrací polohový posun referenčního bodu otáčení robota od středu pole pomocí senzoru GPS (Game Positioning System™).
(poloha [GPS v] [X v] v [mm v])
Parametry |
Popis |
|---|---|
osa |
Kterou osu hlásit:
|
jednotky |
Jednotka pro vyjádření polohy: mm nebo palce |
Příklad
při spuštění :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v]
wait until <([GPS v] position [X v] in [mm v]) > (-1370)>
zastavit jízdu
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
GPS kurz#
Blok GPS heading vrací směr, kterým se robot aktuálně nachází, na základě údajů ze senzoru GPS (Game Positioning System™) z kódu pole VEX GPS od 0,00 do 359,99 stupňů.
(kurz [GPS v] ve stupních)
Parametry |
Popis |
|---|---|
Tento blok nemá žádné parametry. |
Příklad
při spuštění :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
otáčet [ArmMotor v] [nahoru v] na (300) [stupně v] ▶
jet [dopředu v] na (10) [palce v] ▶
otáčet [ClawMotor v] [OTEVŘENO v] na (180) [stupně v] ▶
[Turn left to face the Neutral Goal.]
nastavit rychlost otáčení na (30) [% v]
otočit [vlevo v]
čekat dokud <(kurz [GPS v] ve stupních) < (18)>
zastavit jízdu