Vlastní kód ovladače ve VEXcode V5

Použití ovladače může usnadnit řízení a přesun robota, aby dokončil úkol. Používání programu Drive však má svá omezení a v závislosti na stavbě vašeho robota nebo aktuální úloze můžete chtít různé ovládací prvky. Kódování ovladače vám umožňuje optimalizovat ovladač tak, aby lépe vyhovoval vašemu robotovi a danému úkolu. Existuje několik způsobů, jak kódovat ovladač ve VEXcode V5. Každá má své výhody a omezení a některé metody jsou pro určité situace vhodnější v závislosti na požadovaném výsledku.

Tento článek vás provede třemi různými možnostmi vlastního kódování ovladače ve VEXcode V5. Každá metoda bude popsána s jejími výhodami, omezeními a příkladem použití, který vám pomůže při výběru metody. Pro účely tohoto článku byly všechny ukázky kódu vytvořeny pro Clawbot. Stejné koncepty by však mohly být aplikovány na řadu dalších sestavení, která se nacházejí na builds.vex.com, a na vlastní sestavení.

Možnost 1: Přiřazení tlačítek v konfiguraci zařízení

Tato možnost je skvělá, když používáte standardní sestavení, jako je Speedbot nebo Clawbot, a chcete se rychle zprovoznit.

Tato možnost vám umožňuje přiřadit motory, hnací ústrojí nebo skupiny motorů tlačítkům na ovladači v konfiguraci zařízení. Další informace o tom, jak přiřadit tlačítka k ovladači v konfiguraci zařízení, naleznete v tomto článku.

Screenshot 2023-07-27 v 12.37.20 PM.png

Shrnutí možnosti 1: Přiřazení tlačítek v konfiguraci zařízení

Výhody

Omezení

Příklad situace

  • Rychlé nastavení bez nutnosti kódování
  • Nejjednodušší metoda
  • Snadno nastavitelné
  • Tlačítkům lze přiřadit jednotlivé motory, standardní hnací ústrojí a skupiny motorů
  • Přiřazení tlačítek je omezeno počtem tlačítek na ovladači
  • Hnací ústrojí nesmí překročit 4 motory ani nemůže být přizpůsobeno (podporován je pouze standardní pohon, nikoli pohon H, holonomický nebo jiný vlastní pohon)
  • Manipulace se standardním sestavením, jako je Speedbot, Clawbot, nebo jednoduchá úprava těchto standardních sestavení. Například Speedbot se sáním připevněným vpředu ovládaným motorovou skupinou.
  • Rychlá manipulace s tlačítky, která odpovídají různému chování robota, bez velkého kódování

Možnost 2: Použití Forever Loop

Pokud místo standardního sestavení používáte vlastní sestavení nebo chcete mít v ovladači možnost více přizpůsobení, je tato možnost dobrá. Použití smyčky Forever je skvělý úvod k vytvoření vlastního kódu pro váš ovladač.

Tato možnost umístí všechny podmínky pro ovladač a jeho přidružená tlačítka do smyčky Forever. To poskytuje větší flexibilitu, zejména u vlastních návrhů sestavení, ale také vyžaduje určité zkušenosti s kódováním. Jednou z úvah při použití této možnosti je však délka a složitost vašeho projektu. Čím více podmínek je přidáno, tím delší může být zásobník kódů. To znamená, že musí být provedeno více bloků v daném pořadí, a když je bloků mnoho, může to zpomalit provádění projektu. Pomalejší provádění projektu může způsobit prodlevu mezi stisknutím tlačítek ovladače a sledováním chování robota.

Konkrétní příklad zobrazený níže je jedním ze způsobů, jak můžete použít smyčku Forever s robotem na zakázku (jako je robot s vlastním pohonem) k řízení robota a manipulaci s pařátem a paží za účelem interakce s předměty.

Screenshot 2023-07-27 v 12.51.23 PM.png

Stáhněte si soubor projektu VEXcode V5 "Option 2" >

Vysvětlení kódu možnosti 2.

Kus kódu

Vysvětlení

Screenshot 2023-07-27 v 12.53.38 PM.png

Pro tento příklad kódu byl použit Clawbot. Když jsou tlačítka na ovladači použita ke zvedání a spouštění ramene, jakmile je tlačítko uvolněno, vlivem gravitace rameno spadne zpět dolů. Nastavení ramene i drápu na „hold“ zajistí, že rameno i dráp zůstanou na svém místě i po uvolnění tlačítek na ovladači.

Screenshot 2023-07-27 v 12.54.05 PM.png v5 ovladač.png

Pro tento příklad kódu byl použit Clawbot. Když jsou tlačítka na ovladači použita ke zvedání a spouštění ramene, jakmile je tlačítko uvolněno, vlivem gravitace rameno spadne zpět dolů. Nastavení ramene i drápu na „hold“ zajistí, že rameno i dráp zůstanou na svém místě i po uvolnění tlačítek na ovladači.

Smyčka Forever se používá pro nepřetržitou kontrolu, která tlačítka jsou na ovladači stisknuta.

Bloky [Set motor velocity] se používají k nastavení rychlosti motoru na aktuální pozici ovladače podél 2 a 3 os. To je ekvivalent k uvedení auta do jízdy. To nemusí nutně nutit auto do pohybu, jen to nastavuje.

Každá osa joysticku vrací hodnotu mezi -100 až +100 a při vystředění vrací hodnotu nula. To pak znamená, že osy joysticku, když jsou zatlačeny, se rovnají -100 % až 100 %. Čím dále směrem k 100 nebo -100 jsou osy posunuty, tím rychleji se motor bude točit.

Blok [Spin] se pak používá ke skutečnému pohybu motoru. To je ekvivalentní sešlápnutí plynu na autě, jakmile byl nastaven směr. To umožňuje, aby byl každý motor řízen jednou ze čtyř os ovladače.

Screenshot 2023-07-27 v 12.54.40 PM.png

Pro tento příklad kódu byl použit Clawbot. Když jsou tlačítka na ovladači použita ke zvedání a spouštění ramene, jakmile je tlačítko uvolněno, vlivem gravitace rameno spadne zpět dolů. Nastavení ramene i drápu na „hold“ zajistí, že rameno i dráp zůstanou na svém místě i po uvolnění tlačítek na ovladači.

Blok [If then else if then else] se používá k mapování určitého chování na tlačítka, která jsou stisknuta nebo uvolněna na ovladači. V této části kódu jsou nastaveny podmínky, zda jsou stisknuta tlačítka Nahoru nebo Dolů. Pokud ano, dojde k určitému chování, jako je zvedání a spouštění paže. Existuje také druhá část podmínky, pokud není stisknuto žádné tlačítko, rameno se zastaví.

Všimněte si, že následující část kódu v projektu pro Claw má stejné vysvětlení.

Shrnutí možnosti 2: Použití Forever Loop

Výhody

Omezení

Příklad situace

  • Může pojmout zakázkové sestavení, zejména hnací ústrojí s více než 4 motory
  • Jednomu tlačítku lze přiřadit více chování
  • Může přiřadit chování různým osám na ovladači (oproti jediným možnostem Levá arkáda, Pravá arkáda, Dělená arkáda a Tankový pohon v konfiguraci zařízení)
  • Vyžaduje určité znalosti kódování (podmínky, smyčky a znalost tlačítek/joysticků na ovladači)
  • Potenciál pro pomalejší provádění projektu nebo zpoždění v době odezvy tlačítka. Vzhledem k tomu, že všechny příkazy jsou obsaženy v jedné smyčce Forever, může provádění kódu probíhat pomalu v závislosti na nastavených podmínkách a délce kódu.
  • Použití ovladače s robotem vyrobeným na zakázku, zejména s nestandardním hnacím ústrojím
  • Když chcete jednomu tlačítku přiřadit více chování. Například, když je stisknuto tlačítko Nahoru, dráp se může otevřít, jet vpřed a pak se zavřít kolem předmětu.

Možnost 3: Použití událostí

Pokud chcete svůj ovladač hodně přizpůsobit, je pro vás použití událostí nejlepší volbou. Jedním stisknutím tlačítka lze spustit několik chování robota, jako je stisknutí tlačítka pro otevření drápu, zvednutí paže a jízda vpřed na nastavenou vzdálenost. Pokus o kódování více chování na tlačítko v rámci smyčky Forever by způsobil dramatické zpomalení provádění projektu – použití Events vám to umožní efektivněji.

Tato možnost používá Události k rozdělení toku projektu. Je to podobné jako při použití smyčky Forever, ale umožňuje to, aby byl kód organizovanější, takže spouštění tlačítka má rychlejší dobu odezvy. Rychlejší doba odezvy znamená, že neuvidíte prodlevu mezi stisknutím tlačítek ovladače a sledováním chování robota. Tento příklad ukazuje stejné chování jako předchozí projekt, ale provede se pomocí Events namísto Forever Loop.

Snímek obrazovky 2023-07-27 v 13.17.23.png

Stáhněte si soubor projektu VEXcode V5 "Option 3" >

Vysvětlení kódu možnosti 3.

Kus kódu

Vysvětlení

Snímek obrazovky 2023-07-27 v 13:18:55.png

Pro tento příklad kódu byl použit Clawbot. Když jsou tlačítka na ovladači použita ke zvedání a spouštění ramene, jakmile je tlačítko uvolněno, vlivem gravitace rameno spadne zpět dolů. Nastavení ramene i drápu na „hold“ zajistí, že rameno i dráp zůstanou na svém místě i po uvolnění tlačítek na ovladači.

Snímek obrazovky 2023-07-27 v 1.19.06 PM.png v5 ovladač.png

Pro tento příklad kódu byl použit Clawbot. Když jsou tlačítka na ovladači použita ke zvedání a spouštění ramene, jakmile je tlačítko uvolněno, vlivem gravitace rameno spadne zpět dolů. Nastavení ramene i drápu na „hold“ zajistí, že rameno i dráp zůstanou na svém místě i po uvolnění tlačítek na ovladači.

{When controller axis} Bloky událostí se používají ke spuštění určitého chování, když se jedna ze čtyř os na ovladači změní pomocí joysticků.

Bloky [Set motor velocity] se používají k nastavení rychlosti motoru na aktuální pozici ovladače podél os A a D. To je ekvivalent k uvedení auta do jízdy. To nemusí nutně nutit auto do pohybu, jen to nastavuje.

Každá osa joysticku vrací hodnotu mezi -100 až +100 a při vystředění vrací hodnotu nula. To pak znamená, že osy joysticku, když jsou zatlačeny, se rovnají -100 % až 100 %. Čím dále směrem k 100 nebo -100 jsou osy posunuty, tím rychleji se motor bude točit.

Blok [Spin] se pak používá ke skutečnému pohybu motoru. To je ekvivalentní sešlápnutí plynu na autě, jakmile byl nastaven směr. To umožňuje, aby byl každý motor řízen jednou ze čtyř os ovladače.

Snímek obrazovky 2023-07-27 v 13:19:20.png

Pro tento příklad kódu byl použit Clawbot. Když jsou tlačítka na ovladači použita ke zvedání a spouštění ramene, jakmile je tlačítko uvolněno, vlivem gravitace rameno spadne zpět dolů. Nastavení ramene i drápu na „hold“ zajistí, že rameno i dráp zůstanou na svém místě i po uvolnění tlačítek na ovladači.

{When controller axis} Bloky událostí se používají k mapování určitého chování na tlačítka, která jsou stisknuta nebo uvolněna na ovladači. V této části kódu jsou nastaveny podmínky, zda jsou stisknuta tlačítka Nahoru nebo Dolů. Pokud ano, dojde k určitému chování, jako je zvednutí, spuštění nebo zastavení paže.

Všimněte si, že poslední část kódu v projektu pro Claw má stejné vysvětlení.

Shrnutí možnosti 3: Použití událostí

Výhody

Omezení

Příklad situace

  • Může pojmout zakázkové sestavení, zejména hnací ústrojí s více než 4 motory
  • Jednomu tlačítku lze přiřadit více chování
  • Může přiřadit chování různým osám na ovladači (oproti jediným možnostem Levá arkáda, Pravá arkáda, Dělená arkáda a Tankový pohon v konfiguraci zařízení)
  • Rychlejší provádění kódu, a tím i odezva tlačítka (protože každá podmínka je volána samostatně a není vložena do jednoho balíčku kódu)
  • Vyžaduje maximální znalost kódování možností (podmínky, smyčky, události a znalost tlačítek/joysticků na ovladači)
  • Použití ovladače s robotem vyrobeným na zakázku, zejména s nestandardním hnacím ústrojím
  • Když chcete jednomu tlačítku přiřadit více chování bez zpoždění. Například, když je stisknuto tlačítko Nahoru, dráp se může otevřít, jet vpřed a pak se zavřít kolem předmětu.

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

Last Updated: