Egyéni vezérlőkód a VEXcode V5-ben

A Controller használata megkönnyítheti a robot vezetését és mozgatását a feladat végrehajtásához. A Drive program használatának azonban vannak korlátai, és a robot felépítésétől vagy az adott feladattól függően eltérő vezérlőkre lehet szükség. A vezérlő kódolása lehetővé teszi a vezérlő optimalizálását, hogy jobban illeszkedjen robotjához és az adott feladathoz. Számos módja van a Vezérlő kódolásának a VEXcode V5-ben. Mindegyiknek megvannak a maga előnyei és korlátai, és egyes módszerek jobban megfelelnek bizonyos helyzetekben a kívánt eredménytől függően.

Ez a cikk végigvezeti Önt a VEXcode V5 vezérlő egyéni kódolásának három különböző lehetőségén. Mindegyik módszer leírása az előnyeivel, korlátaival, valamint egy példa használati esettel segíti a módszer kiválasztását. Ebben a cikkben az összes bemutatott kódpélda a Clawbothoz készült. Ugyanezek a koncepciók azonban alkalmazhatók a builds.vex.comwebhelyen található számos más buildre és egyéni buildre is.

1. lehetőség: Gombok hozzárendelése az eszközkonfigurációban

Ez a lehetőség nagyszerű, ha szabványos összeállítást használ, például Speedbot vagy Clawbot, és gyorsan szeretne elindulni.

Ezzel az opcióval motorokat, hajtásláncot vagy motorcsoportokat rendelhet a Vezérlő gombjaihoz az Eszközkonfigurációban. További információért arról, hogyan rendelhet gombokat a vezérlőhöz az Eszközkonfigurációban, meg ezt a cikket.

A V5-ös blokkokat programozáshoz illusztráló diagram, amely különféle blokktípusokat és azok kapcsolatait vizuális formátumban mutatja be, hogy segítse a blokkalapú kódolási oktatóanyagok megértését.

Az 1. lehetőség összefoglalása: Gombok hozzárendelése az eszközkonfigurációban

Előnyök

Korlátozások

Példahelyzet

  • Gyors beállítás kódolás nélkül
  • A legegyszerűbb módszer
  • Könnyen állítható
  • Egyedi motorokat, szabványos hajtásláncot és motorcsoportokat rendelhet a gombokhoz
  • A gombok hozzárendelése a Vezérlő gombjainak számára korlátozódik
  • A hajtáslánc nem haladhatja meg a 4 motort, és nem lehet testreszabható (csak szabványos hajtás támogatott, H hajtás, holonomic vagy egyéb egyedi hajtáslánc nem)
  • Szabványos összeállítások, például Speedbot, Clawbot, vagy ezen szabványos buildek egyszerű módosítása manipulálása. Például egy Speedbot, amelynek elejére egy szívónyílás van csatlakoztatva, amelyet egy motorcsoport vezérel.
  • Gyorsan, sok kódolás nélkül manipulálni, hogy mely gombok feleljenek meg a robot különböző viselkedéseinek

2. lehetőség: Forever Loop használata

Ha egyéni összeállítást használ a szabványos build helyett, vagy szeretné, hogy több testreszabási lehetőség legyen a Controllerben, ez a lehetőség jó választás. A Forever hurok használata nagyszerű bevezetés a Vezérlő egyedi kódjának létrehozásához.

Ez az opció a Vezérlőre és a hozzá tartozó gombokra vonatkozó összes feltételt egy Forever ciklusba helyezi. Ez nagyobb rugalmasságot biztosít, különösen az egyedi építési tervek esetében, de némi kódolási tapasztalatot is igényel. Ennek az opciónak a használatakor azonban figyelembe kell venni a projekt hossza és összetettsége. Minél több feltételt ad hozzá, annál hosszabbá válhat a kódverem. Ez azt jelenti, hogy több blokkot kell sorrendben végrehajtani, és ha sok a blokk, ez lelassíthatja a projekt végrehajtását. A projekt lassabb végrehajtása késést okozhat a Vezérlő gombjainak lenyomása és a robot viselkedésének megtekintése között.

Az alábbiakban bemutatott konkrét példa az egyik módja annak, hogy egy Forever hurkot egy egyedi tervezésű robottal (például egy egyedi hajtáslánccal rendelkező robottal) használjon a robot vezetésére, valamint a karom és a kar manipulálására, hogy interakcióba lépjen a tárgyakkal.

A V5 blokk oktatóprogramjait bemutató diagram, amely különböző blokktípusokat és azok kapcsolatait mutatja be világos és szervezett elrendezésben a VEX robotika programozásának jobb megértése érdekében.

Töltse le az "Option 2" VEXcode V5 projektfájlt >

A 2. lehetőség kódjának magyarázata.

Kóddarab

Magyarázat

A V5 blokk komponenseit és azok funkcióit bemutató diagram bemutató formátumban, különféle blokktípusokat és kapcsolatokat bemutató oktatási céllal.

Ehhez a kódpéldához Clawbotot használtak. Amikor a Vezérlő gombjait a kar felemelésére és leengedésére használjuk, amint a gombot elengedjük, a gravitáció hatására a kar visszaesik. Ha mind a kart, mind a karmot „tartásra” állítja, akkor a kar és a karom is a helyén marad még a vezérlő gombjainak elengedése után is.

A VEX Tudásbázis Blocks Tutorials részében használt V5 blokk komponenseket és azok funkcióit bemutató diagram, amely különféle blokktípusokat és azok kapcsolatait mutatja be oktatási célokra. A V5-ös blokkokat ábrázoló diagram címkézett komponensekkel és csatlakozásokkal, a VEX robotika blokkprogramozásának megértéséhez használt oktatóanyagokban.

Ehhez a kódpéldához Clawbotot használtak. Amikor a Vezérlő gombjait a kar felemelésére és leengedésére használjuk, amint a gombot elengedjük, a gravitáció hatására a kar visszaesik. Ha mind a kart, mind a karmot „tartásra” állítja, akkor a kar és a karom is a helyén marad még a vezérlő gombjainak elengedése után is.

Egy Forever hurkot használnak annak folyamatos ellenőrzésére, hogy melyik gombokat nyomják meg a Vezérlőn.

A [Set motor speed] (Motor sebességének beállítása) blokkokkal a motor sebességét a 2 és 3 tengely mentén a Vezérlő aktuális pozíciójára lehet beállítani. Ez egyenértékű egy autó hajtásba állításával. Ez nem feltétlenül mozgatja az autót, csak beállítja.

A joystick minden tengelye -100 és +100 közötti értéket ad vissza, középre állítva pedig nullát. Ez azt jelenti, hogy a joystick tengelyei, ha megnyomják, -100% és 100% közöttiek. Minél távolabb 100 vagy -100 felé tolják a tengelyeket, annál gyorsabban fog forogni a motor.

A [Spin] blokkot ezután a motor tényleges mozgatására használják. Ez megegyezik azzal, mintha az irány beállítása után megnyomnák a gázt az autón. Ez lehetővé teszi, hogy minden motort a négy Vezérlő tengely egyike vezéreljen.

A programozási oktatóanyagok V5-ös blokkjait bemutató diagram, amely bemutatja a különböző blokktípusokat és azok kapcsolatait, amelyek célja a kódolási fogalmak oktatási kontextusban történő megértésének javítása.

Ehhez a kódpéldához Clawbotot használtak. Amikor a Vezérlő gombjait a kar felemelésére és leengedésére használjuk, amint a gombot elengedjük, a gravitáció hatására a kar visszaesik. Ha mind a kart, mind a karmot „tartásra” állítja, akkor a kar és a karom is a helyén marad még a vezérlő gombjainak elengedése után is.

Az [If then else if then else] blokk bizonyos viselkedések leképezésére szolgál a vezérlőn megnyomott vagy felengedett gombokhoz. Ebben a kódrészben a feltételek a Fel vagy Le gombok megnyomására vonatkoznak. Ha igen, bizonyos viselkedések történnek, mint például a kar felemelése és leengedése. A feltételnek van egy másik része is, ha egyik gombot sem nyomják meg, a kar be van állítva, hogy megálljon.

Vegye figyelembe, hogy a Claw projekt kódjának következő szakasza ugyanezt a magyarázatot követi.

A 2. lehetőség összefoglalása: Forever Loop használata

Előnyök

Korlátozások

Példahelyzet

  • Egyedi építmények, különösen 4-nél több motoros hajtásláncok befogadására alkalmas
  • Több viselkedést is hozzárendelhet egyetlen gombhoz
  • Viselkedéseket tud hozzárendelni a Vezérlő különböző tengelyeihez (ellentétben az eszközkonfigurációban a Left Arcade, Right Arcade, Split Arcade és Tank Drive egyetlen lehetőségével)
  • Bizonyos mennyiségű kódolási ismeretet igényel (feltételek, hurkok és a vezérlő gombjainak/joystickjainak ismerete)
  • Lehetséges a projekt lassabb végrehajtása, vagy a gomb válaszidejének késése. Mivel az összes parancs egyetlen Forever ciklusban található, a kód végrehajtása a beállított feltételektől és a kód hosszától függően lassan futhat.
  • A Vezérlő használata egyedi építésű robottal, különösen nem szabványos hajtáslánccal
  • Ha több viselkedést szeretne hozzárendelni egyetlen gombhoz. Például, ha megnyomja a Fel gombot, a Claw kinyithat, előrehajthat, majd bezárhat egy tárgy körül.

3. lehetőség: Események használata

Ha sok testreszabási lehetőséget szeretne a vezérlőjén, az Események használata a legjobb megoldás az Ön számára. Egy gombnyomás többféle robot viselkedést válthat ki, például egy gomb megnyomásával kinyithatja a karmot, felemelheti a kart, és előre hajthat egy meghatározott távolságot. Ha egy Forever cikluson belül gombonként több viselkedést próbál kódolni, a projekt végrehajtása drámaian lelassulna – az Events használatával ezt hatékonyabban teheti meg.

Ez a beállítás az Események funkciót használja a projektfolyam felosztására. Ez hasonló a Forever ciklus használatához, de lehetővé teszi a kód rendszerezettebbé tételét, így a gomb végrehajtása gyorsabb válaszidővel rendelkezik. A gyorsabb válaszidő azt jelenti, hogy nem lesz késés a Vezérlő gombjainak lenyomása és a robot viselkedése között. Ez a példa ugyanazt a viselkedést mutatja, mint az előző projekt, de a Forever Loop helyett az Events használatával készült.

Az oktatóanyagokban használt V5 blokkok illusztrációja, bemutatva a különböző blokktípusokat és azok kapcsolatait, bemutatva a VEX V5 robotikával való építést és programozást.

Töltse le az "Option 3" VEXcode V5 projektfájlt >

A 3. lehetőség kódjának magyarázata.

Kóddarab

Magyarázat

A robotika oktatóanyagaiban használt különféle V5 blokkokat bemutató diagram, bemutatva azok funkcióit és kapcsolatait oktatási céllal.

Ehhez a kódpéldához Clawbotot használtak. Amikor a Vezérlő gombjait a kar felemelésére és leengedésére használjuk, amint a gombot elengedjük, a gravitáció hatására a kar visszaesik. Ha mind a kart, mind a karmot „tartásra” állítja, akkor a kar és a karom is a helyén marad még a vezérlő gombjainak elengedése után is.

V5 blokkokat szemléltető diagram egy robotikai oktatóanyagban, bemutatva a különböző blokktípusokat és azok kapcsolatait programozási feladatokhoz. A V5-ös blokkokat ábrázoló diagram címkézett komponensekkel és csatlakozásokkal, a VEX robotika blokkprogramozásának megértéséhez használt oktatóanyagokban.

Ehhez a kódpéldához Clawbotot használtak. Amikor a Vezérlő gombjait a kar felemelésére és leengedésére használjuk, amint a gombot elengedjük, a gravitáció hatására a kar visszaesik. Ha mind a kart, mind a karmot „tartásra” állítja, akkor a kar és a karom is a helyén marad még a vezérlő gombjainak elengedése után is.

{When controller axis} Az eseményblokkok bizonyos viselkedések kiváltására szolgálnak, amikor a Vezérlő négy tengelyének egyikét megváltoztatják a joystickok segítségével.

A [Set motor speed] (Motor sebességének beállítása) blokkokkal a motor sebességét a Vezérlő aktuális helyzetére állíthatja be az A és D tengely mentén. Ez egyenértékű egy autó hajtásba állításával. Ez nem feltétlenül mozgatja az autót, csak beállítja.

A joystick minden tengelye -100 és +100 közötti értéket ad vissza, középre állítva pedig nullát. Ez azt jelenti, hogy a joystick tengelyei, ha megnyomják, -100% és 100% közöttiek. Minél távolabb 100 vagy -100 felé tolják a tengelyeket, annál gyorsabban fog forogni a motor.

A [Spin] blokkot ezután a motor tényleges mozgatására használják. Ez megegyezik azzal, mintha az irány beállítása után megnyomnák a gázt az autón. Ez lehetővé teszi, hogy minden motort a négy Vezérlő tengely egyike vezéreljen.

A programozási oktatóanyagokban használt V5 blokkokat bemutató diagram, amely bemutatja a VEX Robotics rendszeren belüli különböző blokktípusokat és azok funkcióit.

Ehhez a kódpéldához Clawbotot használtak. Amikor a Vezérlő gombjait a kar felemelésére és leengedésére használjuk, amint a gombot elengedjük, a gravitáció hatására a kar visszaesik. Ha mind a kart, mind a karmot „tartásra” állítja, akkor a kar és a karom is a helyén marad még a vezérlő gombjainak elengedése után is.

{When controller axis} Az eseményblokkok bizonyos viselkedések leképezésére szolgálnak a vezérlőn megnyomott vagy elengedett gombokhoz. Ebben a kódrészben a feltételek a Fel vagy Le gombok megnyomására vonatkoznak. Ha igen, akkor bizonyos viselkedések történnek, például a kar felemelése, leengedése vagy megállása.

Vegye figyelembe, hogy a Claw projekt utolsó kódrészlete ugyanezt a magyarázatot követi.

A 3. lehetőség összefoglalása: Események használata

Előnyök

Korlátozások

Példahelyzet

  • Egyedi építmények, különösen 4-nél több motoros hajtásláncok befogadására alkalmas
  • Több viselkedést is hozzárendelhet egyetlen gombhoz
  • Viselkedéseket tud hozzárendelni a Vezérlő különböző tengelyeihez (ellentétben az eszközkonfigurációban a Left Arcade, Right Arcade, Split Arcade és Tank Drive egyetlen lehetőségével)
  • Gyorsabb kódvégrehajtás, és ezáltal a gombok reagálása (mivel minden feltétel külön-külön hívható meg, és nincsenek egyetlen kódkötegbe ágyazva)
  • Megköveteli a legtöbb kódolási ismeretet az opciókról (feltételek, hurkok, események és a vezérlő gombjainak/joystickjainak ismerete)
  • A Vezérlő használata egyedi építésű robottal, különösen nem szabványos hajtáslánccal
  • Ha több viselkedést szeretne egyetlen gombhoz rendelni késés nélkül. Például, ha megnyomja a Fel gombot, a Claw kinyithat, előrehajthat, majd bezárhat egy tárgy körül.

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

Last Updated: