Pielāgots kontroliera kods VEXcode IQ

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 IQ. 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ā tiks parādītas trīs dažādas kontroliera kodēšanas iespējas VEXcode IQ. 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 Ierīces konfigurācija, skatiet šo rakstu.

VEXcode IQ ierīču izvēlne ar parādītajām kontrollera opcijām. Pogu vadības diagramma parāda, ka abas kursorsviras darbina robotu tvertnes piedziņas konfigurācijā. E ass pogas kontrolē ArmMotorGroup, bet R ass pogas kontrolē ClawMotor.

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.

VEXcode IQ darbvieta ar atvērtu 2. opcijas bloku projektu. Projektam ir bloku kaudze, un tajā ir konfigurētas ierīces. Sānos tiek atvērta ierīču izvēlne, kurā ir uzskaitītas šādas ierīces: IQ 2nd generation Brain, ClawMotor 4. portā, ArmMotor 10. portā, Controller, LeftMotor 1. portā un RightMotor 6. portā. Visbeidzot, ir bloku kaudze kontroliera ievades apstrādei. Stekā ir rakstīts: When started, set ArmMotor stopping to hold un set ClawMotor stopping to hold. Pārējā kaudze atrodas Forever cilpā. Tas rāda “Forever” (Mūžīgi), iestatiet kreisā motora ātrumu (LeftMotor velocity) uz kontrollera A pozīciju %, pagrieziet kreiso motoru (LeftMotor) uz priekšu, iestatiet labā motora ātrumu (RightMotor velocity) uz kontrollera D pozīciju % un pagrieziet labo motoru (RightMotor) uz priekšu. Pēc tam, ja nospiesta vadības ierīces E poga uz augšu, tad pagrieziet ArmMotor uz augšu, pretējā gadījumā, ja nospiesta vadības ierīces E poga uz leju, tad pagrieziet ArmMotor uz leju, pretējā gadījumā apturiet ArmMotor. Visbeidzot, ja nospiests kontroliera F uz augšu vērstais taustiņš, tad atveras ClawMotor, pretējā gadījumā, ja nospiests kontroliera F uz leju vērstais taustiņš, tad ClawMotor aizveras un aptur ClawMotor.

Lejupielādējiet "Option 2" VEXcode IQ (2. paaudzes) projekta failu >

piezīme. Ja izmantojat 1. paaudzes Clawbot, rokas motors būs jāmaina ierīces konfigurācijā, lai tas darbotos, kā paredzēts iepriekš minētajā projektā.

2. varianta koda skaidrojums.

Koda gabals

Paskaidrojums

2. opcijas VEXcode IQ projekta bloku kaudzes tuvplāns. Divi bloki ir iezīmēti un atrodas ārpus steka Forever cikla, tie nolasa "set ArmMotor stopping to hold" un "set ClawMotor stopping to hold".

Š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.

2. opcijas VEXcode IQ projekta bloku kaudzes tuvplāns. Steka Forever cilpas iekšpusē ir iezīmēti četri bloki. Viņi lasa “Forever” (Mūžīgi), iestata kreisā motora ātrumu (LeftMotor velocity) uz kontroliera A pozīciju %, griež kreiso motoru (LeftMotor) uz priekšu, iestata labā motora ātrumu (RightMotor velocity) uz kontroliera D pozīciju % un griež labo motoru (RightMotor) uz priekšu. IQ (2. paaudzes) kontrollera shēma ar apzīmētām pogām un kursorsvirām. Skats ir no kontroliera priekšpuses. Kreisās kursorsviras asis ir apzīmētas ar A un B. Kreisās kursorsviras vidējā poga ir apzīmēta ar L3. Divas apaļās pogas zem kreisās vadības sviras ir apzīmētas ar E Up un E Down. Labās kursorsviras asis ir apzīmētas ar C un D. Labās kursorsviras vidējā poga ir apzīmēta ar R3. Divas apaļās pogas zem labās vadības sviras ir apzīmētas ar F Up un F Down.

Š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ā 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.

2. opcijas VEXcode IQ projekta bloku kaudzes tuvplāns. Steka Forever cilpā ir iezīmēts bloks "if, else if, else". Tas nolasa, ja tiek nospiesta kontrollera E poga uz augšu, tad ArmMotor griežas uz augšu, pretējā gadījumā, ja tiek nospiesta kontrollera E poga uz leju, tad ArmMotor griežas uz leju un ArmMotor tiek apturēts.

Š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 E Up vai E Down. 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 F 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.

VEXcode IQ darbvieta ar atvērtu 3. opcijas bloku projektu. Projektā ir 11 mazas bloku kaudzes un konfigurētas ierīces. Sānos tiek atvērta ierīču izvēlne, kurā ir uzskaitītas šādas ierīces: IQ 2nd generation Brain, ClawMotor 4. portā, ArmMotor 10. portā, Controller, LeftMotor 1. portā un RightMotor 6. portā. Visbeidzot, ir 11 mazas bloku kaudzes, kas apstrādā kontroliera ievadi. Pirmajā kaudzē ir rakstīts: When started, set ArmMotor stopping to hold un pēc tam set ClawMotor stopping to hold. Otrajā kaudzē ir rakstīts: Kad tiek mainīta kontrollera ass A, iestatiet kreisā motora ātrumu uz kontrollera A pozīciju % un pēc tam grieziet kreiso motoru uz priekšu. Trešajā kaudzē ir rakstīts: Kad tiek mainīts kontrolieris D, iestatiet labā motora ātrumu uz kontroliera D pozīciju % un pēc tam grieziet labo motoru uz priekšu. Ceturtajā kaudzē ir rakstīts: Nospiežot kontrollera pogu E uz augšu, pagrieziet ArmMotor uz augšu. Piektajā stekā ir rakstīts: Kad kontrollera poga E uz augšu tiek atlaista, ArmMotor tiek apturēts. Sestajā kaudzē ir rakstīts: Nospiežot kontroliera pogu E uz leju, grieziet ArmMotor uz leju. Septītajā kaudzē ir rakstīts: Atlaižot kontrollera pogu E uz leju, ArmMotor apstājas. Astotajā kaudzē ir rakstīts: Nospiežot kontroliera pogu F uz augšu, atveras spīļu motors. Devītajā kaudzē ir rakstīts: Kad kontrollera poga F uz augšu tiek atlaista, ClawMotor tiek apturēts. Desmitajā kaudzē ir rakstīts: Nospiežot kontrollera F pogu uz leju, aizveriet spīļu motoru. Vienpadsmitajā un pēdējā kaudzē ir rakstīts: Kad kontrollera poga F uz leju tiek atlaista, ClawMotor tiek apturēts.

Lejupielādējiet "Option 3" VEXcode IQ (2. paaudzes) projekta failu >

 piezīme: ja izmantojat 1. Gen Clawbot, rokas motors būs jāmaina ierīces konfigurācijā, lai tas darbotos, kā paredzēts iepriekš minētajā projektā.

3. varianta koda skaidrojums.

Koda gabals

Paskaidrojums

VEXcode IQ projekta 3. opcijas vienas bloku kaudzes tuvplāns. Stekā ir rakstīts: When started, set ArmMotor stopping to hold un pēc tam set ClawMotor stopping to hold.

Š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.

Divu bloku kaudžu tuvplāns 3. opcijas VEXcode IQ projektā. Pirmajā kaudzē ir rakstīts: Kad tiek mainīta kontrollera ass A, iestatiet kreisā motora ātrumu uz kontrollera A pozīciju % un pēc tam grieziet kreiso motoru uz priekšu. Otrajā kaudzē ir rakstīts: Kad tiek mainīta kontrollera ass D, iestatiet labā motora ātrumu uz kontrollera D pozīciju % un pēc tam grieziet labo motoru uz priekšu. IQ (2. paaudzes) kontrollera shēma ar apzīmētām pogām un kursorsvirām. Skats ir no kontroliera priekšpuses. Kreisās kursorsviras asis ir apzīmētas ar A un B. Kreisās kursorsviras vidējā poga ir apzīmēta ar L3. Divas apaļās pogas zem kreisās vadības sviras ir apzīmētas ar E Up un E Down. Labās kursorsviras asis ir apzīmētas ar C un D. Labās kursorsviras vidējā poga ir apzīmēta ar R3. Divas apaļās pogas zem labās vadības sviras ir apzīmētas ar F Up un F Down.

Š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.

Četru bloku kaudžu tuvplāns 3. opcijas VEXcode IQ projektā. Pirmajā kaudzē ir rakstīts: Nospiežot kontrollera pogu E uz augšu, pagrieziet ArmMotor uz augšu. Otrajā kaudzē ir rakstīts: Kad kontrollera poga E uz augšu tiek atlaista, ArmMotor apstājas. Trešajā kaudzē ir rakstīts: Nospiežot kontrollera pogu E uz leju, grieziet ArmMotor uz leju. Ceturtajā kaudzē ir rakstīts: Atlaižot kontrollera pogu E uz leju, ArmMotor apstājas.

Š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 E Up vai E Down. 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).
  • Ja izmantojat 1. paaudzes VEX IQ Brain, ja projektā ir pārāk daudz notikumu, projekts var nedarboties smadzeņu apstrādes ierobežojumu dēļ.
  • 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 bez aizkaves. Piemēram, kad tiek nospiesta poga F 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: