Pielāgota kontroliera kods VEXcode EXP

Izmantojot kontrolieri, var vieglāk vadīt un pārvietot robotu, lai izpildītu uzdevumu. Tomēr programmas Drive izmantošanai ir ierobežojumi, un atkarībā no jūsu robota uzbūves vai veicamā uzdevuma, iespējams, vēlēsities dažādas vadīklas. Kontrollera kodēšana ļauj optimizēt kontrolieri, lai tas labāk atbilstu jūsu robotam un veicamajam uzdevumam. Ir vairāki veidi, kā kodēt kontrolieri VEXcode EXP. Katrai no tām ir savas priekšrocības un ierobežojumi, un dažas metodes ir labāk piemērotas noteiktām situācijām atkarībā no vēlamā rezultāta.

Šajā rakstā ir aprakstītas trīs dažādas kontroliera pielāgotas kodēšanas opcijas VEXcode EXP. Katra metode tiks aprakstīta ar tās priekšrocībām, ierobežojumiem un lietošanas piemēru, lai palīdzētu jums izvēlēties metodi. Šī raksta vajadzībām visi parādītie kodu piemēri tika izveidoti Clawbot. Tomēr tos pašus jēdzienus var izmantot daudzām citām versijām, kas atrodamas vietnē builds.vex.com, un pielāgotajām būvēm.

1. iespēja: pogu piešķiršana ierīces konfigurācijā

Šī opcija ir lieliska, ja izmantojat standarta versiju, piemēram, BaseBot vai Clawbot, un vēlaties ātri sākt darbu.

Šī opcija ļauj piešķirt motorus, piedziņu vai motoru grupas kontrollera pogām sadaļā Device Configuration. Lai iegūtu papildinformāciju par pogu piešķiršanu kontrollerim sadaļā Ierīces konfigurācija, šo rakstu.

Ekrānuzņēmums 2023-07-26 plkst. 15.49.03.png

1. iespējas kopsavilkums: pogu piešķiršana ierīces konfigurācijā

Priekšrocības

Ierobežojumi

Situācijas piemērs

  • Ātra iestatīšana bez kodēšanas
  • Vienkāršākā metode
  • Viegli regulējams
  • Pogām var piešķirt atsevišķus motorus, standarta piedziņu un motoru grupas
  • Pogu piešķiršana ir ierobežota līdz kontrollera pogu skaitam
  • Piedziņa nedrīkst pārsniegt 4 motorus, vai arī to nevar pielāgot (tiek atbalstīta tikai standarta piedziņa, nevis H piedziņa, holonomiska vai cita pielāgota piedziņa)
  • Manipulēšana ar standarta būvējumu, piemēram, BaseBot, Clawbot vai vienkāršu šo standarta būvējumu modifikāciju. Piemēram, BaseBot ar ieplūdes atveri, kas piestiprināta priekšpusē, ko kontrolē motoru grupa.
  • Ātra manipulēšana ar to, kuras pogas atbilst dažādām robota darbībām, bez lielas kodēšanas

2. iespēja: Forever Loop izmantošana

Ja izmantojat pielāgotu būvējumu, nevis standarta būvējumu vai vēlaties, lai kontrolieris būtu vairāk pielāgojams, šī opcija ir laba. Forever cilpas izmantošana ir lielisks ievads, lai izveidotu pielāgotu kodu jūsu kontrolierim.

Šī opcija visus nosacījumus kontrolierim un ar to saistītajām pogām ievieto Forever cilpā. Tas nodrošina lielāku elastību, jo īpaši ar pielāgotiem konstrukcijas dizainiem, taču ir nepieciešama arī zināma kodēšanas pieredze. Tomēr viens no apsvērumiem, izmantojot šo opciju, ir jūsu projekta ilgums un sarežģītība. Jo vairāk nosacījumu tiek pievienots, jo garāka var kļūt kodu steks. Tas nozīmē, ka vairāki bloki ir jāizpilda secībā, un, ja bloku ir daudz, tas var palēnināt projekta izpildi. Lēnāka projekta izpilde var radīt aizkavi starp Controller pogu nospiešanu un robota uzvedības novērošanu.

Tālāk redzamais konkrētais piemērs ir viens no veidiem, kā jūs varat izmantot Forever cilpu ar pielāgota dizaina robotu (piemēram, robotu ar pielāgotu piedziņu), lai vadītu robotu un manipulētu ar spīlēm un roku, lai mijiedarbotos ar objektiem.

Ekrānuzņēmums 2023-07-26 plkst. 16.07.00.png

Lejupielādējiet "Option 2" VEXcode EXP projekta failu >

2. varianta koda skaidrojums.

Koda gabals

Paskaidrojums

Iestatiet ArmMotor apstāšanos, lai noturētu, un ClawMotor apstāšanos, lai tā turētos

Šim koda piemēram tika izmantots Clawbot. Kad vadības pults pogas tiek izmantotas, lai paceltu un nolaistu roku, tiklīdz poga tiek atlaista, gravitācijas ietekmē roka nokritīs atpakaļ. Iestatot gan roku, gan spīļu uz “turēšanu”, tiks nodrošināts, ka gan roka, gan spīle paliks savā vietā pat pēc tam, kad ir atlaistas vadības pults pogas.

Ekrānuzņēmums 2023-07-26, 16.07.59 PM.png EXP kontrolieris ar Labels.png

Šim koda piemēram tika izmantots Clawbot. Kad vadības pults pogas tiek izmantotas, lai paceltu un nolaistu roku, tiklīdz poga tiek atlaista, gravitācijas ietekmē roka nokritīs atpakaļ. Iestatot gan roku, gan spīļu uz “turēšanu”, tiks nodrošināts, ka gan roka, gan spīle paliks savā vietā pat pēc tam, kad ir atlaistas vadības pults pogas.

Forever cilpa tiek izmantota, lai nepārtraukti pārbaudītu, kuras pogas tiek nospiestas uz kontrollera.

Blokus [Iestatīt motora ātrumu] izmanto, lai iestatītu motora ātrumu pašreizējā kontrollera pozīcijā pa 2 un 3 asīm. Tas ir līdzvērtīgs automašīnas iedarbināšanai. Tas ne vienmēr liek automašīnai kustēties, tas tikai nosaka to.

Katra kursorsviras ass atgriež vērtību no -100 līdz +100 un atgriež vērtību nulli, kad tā ir centrēta. Tas nozīmē, ka kursorsviras asis, kad tās tiek nospiestas, ir vienādas ar -100% līdz 100%. Jo tālāk virzienā uz 100 vai -100 tiek virzītas asis, jo ātrāk motors griezīsies.

Pēc tam [Spin] bloks tiek izmantots, lai faktiski pārvietotu motoru. Tas ir līdzvērtīgs gāzes nospiešanai automašīnai, kad ir iestatīts virziens. Tas ļauj katru motoru vadīt ar vienu no četrām kontroliera asīm.

Ekrānuzņēmums 2023-07-26, 16.09.52 PM.png

Šim koda piemēram tika izmantots Clawbot. Kad vadības pults pogas tiek izmantotas, lai paceltu un nolaistu roku, tiklīdz poga tiek atlaista, gravitācijas ietekmē roka nokritīs atpakaļ. Iestatot gan roku, gan spīļu uz “turēšanu”, tiks nodrošināts, ka gan roka, gan spīle paliks savā vietā pat pēc tam, kad ir atlaistas vadības pults pogas.

Bloks [If then else if then else] tiek izmantots, lai noteiktu noteiktu darbību kartēšanu ar kontrollera nospiestajām vai atlaistajām pogām. Šajā koda sadaļā tiek iestatīti nosacījumi, ja tiek nospiesta poga Uz augšu vai Uz leju. Ja tā, tad notiks noteikta uzvedība, piemēram, roku pacelšana un nolaišana. Ir arī cita nosacījuma daļa, ja neviena poga netiek nospiesta, roka tiek iestatīta, lai apturētu kustību.

Ņemiet vērā, ka nākamajā Claw projekta koda sadaļā ir ievērots tas pats skaidrojums.

2. iespējas kopsavilkums: Forever Loop izmantošana

Priekšrocības

Ierobežojumi

Situācijas piemērs

  • Var pielāgot pielāgotas konstrukcijas, īpaši piedziņas ar vairāk nekā 4 motoriem
  • Vienai pogai var piešķirt vairākas darbības
  • Var piešķirt darbības dažādām kontroliera asīm (pretstatā vienīgajām opcijām Left Arcade, Right Arcade, Split Arcade un Tank Drive ierīces konfigurācijā)
  • Nepieciešamas zināmas zināšanas par kodēšanu (nosacījumi, cilpas un zināšanas par kontrollera pogām/kursorsvirām)
  • Iespējama lēnāka projekta izpilde vai pogas reakcijas laika nobīde. Tā kā visas komandas ir ietvertas vienā Forever cilpā, koda izpilde var darboties lēni atkarībā no iestatītajiem nosacījumiem un koda garuma.
  • Vadības pults izmantošana ar pielāgotu robotu, īpaši ar nestandarta piedziņu
  • Ja vēlaties vienai pogai piešķirt vairākas darbības. Piemēram, kad tiek nospiesta poga Up, Claw var atvērties, braukt uz priekšu un pēc tam aizvērties ap objektu.

3. iespēja: notikumu izmantošana

Ja vēlaties daudz pielāgot savu kontrolieri, notikumu izmantošana ir jums vislabākā iespēja. Viena pogas nospiešana var izraisīt vairākas robota darbības, piemēram, pogas nospiešanu, lai atvērtu nagu, paceltu roku un brauktu uz priekšu noteiktu attālumu. Mēģinot kodēt vairākas darbības katrai pogai Forever cilpas ietvaros, projekta izpilde ievērojami palēnināsies — izmantojot notikumus, varat to paveikt efektīvāk.

Šī opcija izmanto notikumus, lai sadalītu projekta plūsmu. Tas ir līdzīgs Forever cilpas izmantošanai, taču ļauj kodam būt sakārtotākam, lai pogas izpildei būtu ātrāks reakcijas laiks. Ātrāks reakcijas laiks nozīmē, ka jūs neredzēsit aizkavi starp Controller pogu nospiešanu un robota uzvedības novērošanu. Šajā piemērā ir parādīta tāda pati darbība kā iepriekšējā projektā, taču tas tiek darīts, izmantojot notikumus, nevis Forever Loop.

Ekrānuzņēmums 2023-07-26 plkst. 16.31.57.png

Lejupielādējiet "Option 3" VEXcode EXP projekta failu >

3. varianta koda skaidrojums.

Koda gabals

Paskaidrojums

Iestatiet ArmMotor apstāšanos, lai noturētu, un ClawMotor apstāšanos, lai tā turētos

Šim koda piemēram tika izmantots Clawbot. Kad vadības pults pogas tiek izmantotas, lai paceltu un nolaistu roku, tiklīdz poga tiek atlaista, gravitācijas ietekmē roka nokritīs atpakaļ. Iestatot gan roku, gan spīļu uz “turēšanu”, tiks nodrošināts, ka gan roka, gan spīle paliks savā vietā pat pēc tam, kad ir atlaistas vadības pults pogas.

Ekrānuzņēmums 2023-07-26 plkst. 16.33.05.png EXP kontrolieris ar Labels.png

Šim koda piemēram tika izmantots Clawbot. Kad vadības pults pogas tiek izmantotas, lai paceltu un nolaistu roku, tiklīdz poga tiek atlaista, gravitācijas ietekmē roka nokritīs atpakaļ. Iestatot gan roku, gan spīļu uz “turēšanu”, tiks nodrošināts, ka gan roka, gan spīle paliks savā vietā pat pēc tam, kad ir atlaistas vadības pults pogas.

{When controller axis} Notikumu bloki tiek izmantoti, lai aktivizētu noteiktas darbības, kad viena no četrām vadības ierīces asīm tiek mainīta, izmantojot kursorsviras.

Blokus [Iestatīt motora ātrumu] izmanto, lai iestatītu motora ātrumu pašreizējā kontrollera pozīcijā gar A un D asīm. Tas ir līdzvērtīgs automašīnas iedarbināšanai. Tas ne vienmēr liek automašīnai kustēties, tas tikai nosaka to.

Katra kursorsviras ass atgriež vērtību no -100 līdz +100 un atgriež vērtību nulli, kad tā ir centrēta. Tas nozīmē, ka kursorsviras asis, kad tās tiek nospiestas, ir vienādas ar -100% līdz 100%. Jo tālāk virzienā uz 100 vai -100 tiek virzītas asis, jo ātrāk motors griezīsies.

Pēc tam [Spin] bloks tiek izmantots, lai faktiski pārvietotu motoru. Tas ir līdzvērtīgs gāzes nospiešanai automašīnai, kad ir iestatīts virziens. Tas ļauj katru motoru vadīt ar vienu no četrām kontroliera asīm.

Ekrānuzņēmums 2023-07-26 plkst. 16.33.30.png

Šim koda piemēram tika izmantots Clawbot. Kad vadības pults pogas tiek izmantotas, lai paceltu un nolaistu roku, tiklīdz poga tiek atlaista, gravitācijas ietekmē roka nokritīs atpakaļ. Iestatot gan roku, gan spīļu uz “turēšanu”, tiks nodrošināts, ka gan roka, gan spīle paliks savā vietā pat pēc tam, kad ir atlaistas vadības pults pogas.

{When controller axis} Notikumu bloki tiek izmantoti, lai kartētu noteiktas darbības ar kontrollera nospiestajām vai atlaistajām pogām. Šajā koda sadaļā tiek iestatīti nosacījumi, ja tiek nospiesta poga Uz augšu vai Uz leju. Ja tā, tad notiks noteikta uzvedība, piemēram, rokas pacelšana, nolaišana vai apstāšanās.

Ņemiet vērā, ka Claw projekta pēdējā koda sadaļa atbilst tam pašam skaidrojumam.

3. iespējas kopsavilkums: notikumu izmantošana

Priekšrocības

Ierobežojumi

Situācijas piemērs

  • Var pielāgot pielāgotas konstrukcijas, īpaši piedziņas ar vairāk nekā 4 motoriem
  • Vienai pogai var piešķirt vairākas darbības
  • Var piešķirt darbības dažādām kontroliera asīm (pretstatā vienīgajām opcijām Left Arcade, Right Arcade, Split Arcade un Tank Drive ierīces konfigurācijā)
  • Ātrāka koda izpilde un līdz ar to arī pogu reakcija (jo katrs nosacījums tiek izsaukts atsevišķi un nav iegults vienā koda kaudzē)
  • Nepieciešamas vislielākās kodēšanas zināšanas par opcijām (nosacījumi, cilpas, notikumi un zināšanas par kontrollera pogām/kursorsvirām).
  • Kontroliera izmantošana ar pielāgotu robotu, īpaši ar nestandarta piedziņu
  • Ja vēlaties vienai pogai piešķirt vairākas darbības bez aizkaves. Piemēram, kad tiek nospiesta poga Up, Claw var atvērties, braukt uz priekšu un pēc tam aizvērties ap objektu.

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

Last Updated: