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 VEXcode EXP-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 EXP 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 BaseBotot vagy Clawbotot, é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.
Az 1. lehetőség összefoglalása: Gombok hozzárendelése az eszközkonfigurációban
|
Előnyök |
Korlátozások |
Példahelyzet |
|---|---|---|
|
|
|
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.
Töltse le az "Option 2" VEXcode EXP projektfájlt >
A 2. lehetőség kódjának magyarázata.
|
Kóddarab |
Magyarázat |
|---|---|
|
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. |
|
|
|
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. |
|
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 |
|
|
|
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.
Töltse le az "Option 3" VEXcode EXP projektfájlt >
A 3. lehetőség kódjának magyarázata.
|
Kóddarab |
Magyarázat |
|---|---|
|
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. |
|
|
|
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. A kar és a karom „tartásra” állítása biztosítja, hogy a kar és a karom is a helyén maradjon 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. |
|
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 |
|
|
|