Kodavimas VEX IQ Smart Motors

VEX IQ Smart Motor turi daug funkcijų, kurias galima naudoti koduojant VEXcode IQ. Tai gali būti naudinga koduojant rankas, nagus ir įsiurbimo angas, taip pat pavarų dėžes ir kitus mechanizmus, sukurtus naudojant VEX IQ. Supratimas, kaip galima koduoti variklius, padės išspręsti tokias problemas kaip projektai stringa arba varikliai neveikia taip, kaip numatyta.

Variklio kodavimo įrenginys

VEX IQ Smart Motor ne tik paverčia elektros energiją mechanine energija, kaip tai daro dauguma variklių, bet ir turi funkcijų, kurių dauguma variklių neturi, todėl jis yra „protingas“. Viena iš pagrindinių jo savybių yra kvadratūros kodavimo įrenginys. Šis kodavimo įrenginys yra sumontuotas variklio viduje, kad būtų galima stebėti variklio veleno greitį ir (arba) padėtį.

Ataskaitos iš VEX IQ Smart Motor kodavimo leidžia sužinoti:

  • Variklio sukimosi kryptis (pirmyn/atgal arba atidaryta/uždaryta)
  • Variklio padėtis ir variklio apsisukimų skaičius bei padėtis (posūkiais arba laipsniais)
  • Variklio sukimosi greitis (remiantis kodavimo įrenginio padėtimi laikui bėgant)

Kadangi kodavimo įrenginys praneša apie variklio būsenas, jas galima naudoti atliekant užkulisinius skaičiavimus, kad daugelis judesio ir jutimo komandų veiktų VEXcode IQ.

Individualių variklių kodavimas

Prieš pradėdami koduoti atskirus išmaniuosius variklius VEXcode IQ, turite sukonfigūruoti variklį. Atskiri varikliai dažnai naudojami papildomiems mechanizmams, tokiems kaip įsiurbimo angos, rankos ir nagai. Tačiau visa informacija vis tiek taikoma kitiems mechanizmams, naudojantiems atskirus variklius.

image7.png

Atlikite šio straipsnio veiksmus, kad sukonfigūruotumėte savo atskirą variklį VEXcode IQ.

Sukonfigūravus vieną variklį, įrankių dėžėje bus rodomos komandos, skirtos valdyti tą variklį. Pastebėsite, kad yra įvairių tipų komandos: laukiančios ir nelaukiančios.

Laukimas ir nelaukiančios komandos

Atminkite, kad visi čia esantys vaizdai rodo blokus. Visi šie projektai gali būti perstatyti naudojant Python arba C++ ir turi tas pačias funkcijas kaip ir blokai.

image3.png

Laukiančios komandos neleidžia tęsti projekto, kol elgsena nebus baigta. Tai apima komandas, pvz., [Sukti] ir [Sukti į padėtį].

Čia parodytame projekte naudojamas Clawbot (2 variklių) šablonas ir visos komandos laukia. Taigi nuosekliai variklis užsidarytų 90 laipsnių kampu, robotas važiuotų atbuline eiga, tada ranka suktųsi aukštyn, kad pasiektų 180 laipsnių padėtį.

image6.png

Priešingai, yra nelaukiančių komandų. Nelaukianti komanda veiksmą vykdys neribotą laiką arba tol, kol bus liepta pakeisti elgesį. Tai apima komandas, tokias kaip [Spin].

Čia parodytame projekte naudojamas „BaseBot“ su pridėtu paėmimu. Čia įsiurbimo variklis pradės suktis. Komanda [Wait] yra laukimo komanda, todėl įsiurbimas toliau suktųsi, kol pasibaigs 2 sekundės, tada pereitų prie kitos projekto komandos, kuri yra komanda [Stop]. Tada variklis nustos suktis.

Variklio laikas

Koduojant variklį kaip rankos ar letenos dalį, svarbu atsiminti skirtumą tarp laukiančių ir nelaukiančių blokų ir kaip jie paveiks jūsų roboto judėjimą. Variklio skirtasis laikas leidžia nustatyti laiko limitą, per kurį variklis pasiekia numatytą tikslinę padėtį. Jei pasibaigus laikui jis nepasiekė šios padėties, variklis nustos bandyti suktis ir projektas pereis prie kitos komandos.

image2.png

Šiame pavyzdyje variklio skirtasis laikas nustatytas į 2 sekundes. Jei per 2 sekundes letena nepriartėja prie 90 laipsnių kampo, variklis nustos suktis ties 2 sekundžių žyma, tada pereis prie kitos komandos ir važiuos į priekį.

image4.png

Jei nesate tikri, kaip toli perkelti variklį, naudokite jutiklio prietaisų skydelį. Prietaisų skydelyje nurodoma variklio padėtis laipsniais ir apsisukimais, todėl judindami variklį (pvz., atidarydami ir uždarydami žnyplę), skaičiai keisis. Naudokite šį testą, kad nustatytumėte, kiek laipsnių ar apsisukimų reikia norint uždaryti leteną, pakelti ranką, pasukti įleidimo angą ir pan.

Norėdami sužinoti, kaip naudoti jutiklio prietaisų skydelį, žr. šiuos straipsnius.

Išmaniųjų variklių kodavimas kaip pavaros dalis

Prieš pradėdami koduoti pavarą VEXcode IQ, turite sukonfigūruoti pavarą, įskaitant naudojamus variklius. Varikliai sukonfigūruoti pavaros grandinėje, kad būtų užtikrinta, jog jie būtų valdomi tomis pačiomis komandomis, pvz., [Drive] ir [Drive for].

Laukiančios ir nelaukiančios komandos

Koduojant pavarą, roboto judėjimui valdyti yra prieinamos laukimo ir nelaukimo komandos.

vaizdas1.png

Laukiančios komandos neleidžia tęsti projekto, kol elgsena nebus baigta. Tai apima komandas, pvz., [Važiuoti] [Pasukti] ir [Pasukti į antraštę].

Čia parodytame projekte naudojamas Clawbot (2 variklių) šablonas ir visos komandos laukia. Taigi nuosekliai robotas važiuotų į priekį 200 milimetrų, o tada, naudodamas pavarą, suktų į dešinę.

image8.png

Priešingai, yra nelaukiančių komandų. Nelaukianti komanda veiksmą vykdys neribotą laiką arba tol, kol bus liepta pakeisti elgesį. Tai apima komandas, pvz., [Drive].

Čia parodytas projektas naudoja „BaseBot“. Čia robotas važiuodavo į priekį neribotą laiką, kol bus paspaustas buferio jungiklis. Tada projektas pereitų prie kitos komandos, o robotas nustotų važiuoti ir pasuktų į dešinę 90 laipsnių kampu.

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

Last Updated: