Koda po meri za Controller v VEXcode IQ
Uporaba Controller-ja lahko olajša vožnjo in premikanje robota pri opravljanju naloge. Vendar ima program Drive določene omejitve, in glede na zgradbo robota ali nalogo, ki jo je treba opraviti, boste morda želeli drugačne kontrole. Programiranje Controller-ja vam omogoča, da ga optimizirate tako, da bo bolje ustrezal vašemu robotu in nalogi. V VEXcode IQ obstaja več načinov programiranja Controller-ja. Vsak ima svoje prednosti in omejitve, nekateri pa so za določene situacije primernejši glede na želeni rezultat.
Ta članek vas vodi skozi tri različne možnosti za programiranje Controller-ja po meri v VEXcode IQ. Vsaka metoda je opisana s svojimi prednostmi, omejitvami in primerom uporabe, ki vam bodo pomagali pri izbiri. Za namene tega članka so bili vsi prikazani primeri kode ustvarjeni za Clawbot. Iste koncepte pa je mogoče uporabiti tudi za številne druge zgradbe, ki jih najdete na builds.vex.com, ter za zgradbe po meri.
Možnost 1: Dodelitev gumbov v konfiguraciji naprave
Ta možnost je odlična, kadar uporabljate standardno zgradbo, kot je BaseBot ali Clawbot, in želite hitro začeti z delom.
Ta možnost vam omogoča, da v konfiguraciji naprave dodelite motorje, pogonski sistem ali skupine motorjev gumbom na Controller-ju. Za več informacij o dodelitvi gumbov Controller-ju v konfiguraciji naprave si oglejte ta članek.
Povzetek možnosti 1: Dodelitev gumbov v konfiguraciji naprave
Prednosti | Omejitve | Primer situacije |
|---|---|---|
|
|
|
Možnost 2: Uporaba zanke Forever
Če namesto standardne zgradbe uporabljate zgradbo po meri ali želite večjo možnost prilagajanja Controller-ja, je ta možnost dobra izbira. Uporaba zanke Forever je odličen uvod v ustvarjanje kode po meri za Controller.
Ta možnost postavi vse pogoje za Controller in z njim povezane gumbe v zanko Forever. To zagotavlja večjo prilagodljivost, zlasti pri zgradbi po meri, zahteva pa tudi določene izkušnje s programiranjem. Ena od stvari, ki jo je treba upoštevati pri tej možnosti, je dolžina in kompleksnost projekta. Več pogojev kot dodamo, daljši bo lahko sklop kode. To pomeni, da je treba več blokov izvršiti zaporedoma, kar pri večjem številu blokov lahko upočasni izvajanje projekta. Počasnejše izvajanje projekta lahko povzroči zamik med pritiskom gumbov na Controller-ju in opaznim odzivom robota.
Spodaj prikazani primer je eden od načinov, kako lahko z zanko Forever in robotom z zgradbo po meri (npr. robotom z nestandardnim pogonskim sistemom) vozite robota ter upravljate klješče in roko za interakcijo s predmeti.
Prenesite projektno datoteko VEXcode IQ (2. generacija) »Možnost 2« >
Opomba: Če uporabljate Clawbot 1. generacije, bo treba motor roke obrniti v konfiguraciji naprave, da bo projekt deloval tako, kot je predvideno.
Razlaga kode za možnost 2.
Del kode | Razlaga |
|---|---|
Za ta primer kode je bil uporabljen Clawbot. Ko se gumbi na Controller-ju uporabljajo za dvigovanje in spuščanje roke, se ta takoj po sprostitvi gumba zaradi gravitacije spusti nazaj. Nastavitev zaustavitvenega načina za roko in klješče na »hold« zagotavlja, da oba ostaneta na mestu tudi po sprostitvi gumbov na Controller-ju. | |
| | Za ta primer kode je bil uporabljen Clawbot. Ko se gumbi na Controller-ju uporabljajo za dvigovanje in spuščanje roke, se ta takoj po sprostitvi gumba zaradi gravitacije spusti nazaj. Nastavitev zaustavitvenega načina za roko in klješče na »hold« zagotavlja, da oba ostaneta na mestu tudi po sprostitvi gumbov na Controller-ju. Zanka Forever se uporablja za neprekinjeno preverjanje, kateri gumbi so pritisnuti na Controller-ju. Bloki [Set motor velocity] se uporabljajo za nastavitev hitrosti motorja na trenutni položaj Controller-ja vzdolž osi A in D. To je enakovredno preklopa avtomobila v vožnjo. S tem se avto ne premakne, ampak se le nastavi. Vsaka os palice vrača vrednost med -100 in +100 ter vrne vrednost nič, ko je v sredinskem položaju. To pomeni, da osi palice, ko so potisnjene, ustrezajo vrednostim od -100 % do 100 %. Čim bolj je os potisnjena proti 100 ali -100, tem hitreje se bo vrtel motor. Blok [Spin] se nato uporablja za dejansko premikanje motorja. To je enakovredno pritisku na pedal za plin, ko je smer že nastavljena. To omogoča, da je vsak motor krmiljan z eno od štirih osi Controller-ja. |
Za ta primer kode je bil uporabljen Clawbot. Ko se gumbi na Controller-ju uporabljajo za dvigovanje in spuščanje roke, se ta takoj po sprostitvi gumba zaradi gravitacije spusti nazaj. Nastavitev zaustavitvenega načina za roko in klješče na »hold« zagotavlja, da oba ostaneta na mestu tudi po sprostitvi gumbov na Controller-ju. Blok [If then else if then else] se uporablja za dodelitev določenih vedenj pritisku ali sprostitvi gumbov na Controller-ju. V tem delu kode so nastavljeni pogoji za gumba E Up in E Down. Ob pritisku pride do določenih vedenj, kot sta dvigovanje in spuščanje roke. Prisoten je tudi del else: če noben gumb ni pritisnjen, se roka ustavi. Upoštevajte, da naslednji del kode v projektu za klješče sledi enaki razlagi. |
Povzetek možnosti 2: Uporaba zanke Forever
Prednosti | Omejitve | Primer situacije |
|---|---|---|
|
|
|
Možnost 3: Uporaba dogodkov
Če želite Controller zelo prilagoditi, je uporaba dogodkov najboljša možnost za vas. En pritisk gumba lahko sproži več vedenj robota hkrati, na primer pritisk gumba za odpiranje klešč, dvigovanje roke in vožnjo naprej za določeno razdaljo. Programiranje več vedenj na gumb znotraj zanke Forever bi močno upočasnilo izvajanje projekta – uporaba dogodkov vam to omogoča učinkoviteje.
Ta možnost uporablja dogodke za razporeditev poteka projekta. To je podobno uporabi zanke Forever, a omogoča bolj organizirano kodo, tako da je odzivni čas ob pritisku gumba hitrejši. Hitrejši odzivni čas pomeni, da ne bo prišlo do zamika med pritiskom gumbov na Controller-ju in opaznim odzivom robota. Ta primer prikazuje enaka vedenja kot prejšnji projekt, a z dogodki namesto zanke Forever.
Prenesite projektno datoteko VEXcode IQ (2. generacija) »Možnost 3« >
Opomba: Če uporabljate Clawbot 1. generacije, bo treba motor roke obrniti v konfiguraciji naprave, da bo projekt deloval tako, kot je predvideno.
Razlaga kode za možnost 3.
Del kode | Razlaga |
|---|---|
Za ta primer kode je bil uporabljen Clawbot. Ko se gumbi na Controller-ju uporabljajo za dvigovanje in spuščanje roke, se ta takoj po sprostitvi gumba zaradi gravitacije spusti nazaj. Nastavitev zaustavitvenega načina za roko in klješče na »hold« zagotavlja, da oba ostaneta na mestu tudi po sprostitvi gumbov na Controller-ju. | |
| | Za ta primer kode je bil uporabljen Clawbot. Ko se gumbi na Controller-ju uporabljajo za dvigovanje in spuščanje roke, se ta takoj po sprostitvi gumba zaradi gravitacije spusti nazaj. Nastavitev zaustavitvenega načina za roko in klješče na »hold« zagotavlja, da oba ostaneta na mestu tudi po sprostitvi gumbov na Controller-ju. Bloki za dogodke {When controller axis} se uporabljajo za sprožitev določenih vedenj, ko se ena od štirih osi na Controller-ju spremeni z uporabo palice. Bloki [Set motor velocity] se uporabljajo za nastavitev hitrosti motorja na trenutni položaj Controller-ja vzdolž osi A in D. To je enakovredno preklopa avtomobila v vožnjo. S tem se avto ne premakne, ampak se le nastavi. Vsaka os palice vrača vrednost med -100 in +100 ter vrne vrednost nič, ko je v sredinskem položaju. To pomeni, da osi palice, ko so potisnjene, ustrezajo vrednostim od -100 % do 100 %. Čim bolj je os potisnjena proti 100 ali -100, tem hitreje se bo vrtel motor. Blok [Spin] se nato uporablja za dejansko premikanje motorja. To je enakovredno pritisku na pedal za plin, ko je smer že nastavljena. To omogoča, da je vsak motor krmiljan z eno od štirih osi Controller-ja. |
Za ta primer kode je bil uporabljen Clawbot. Ko se gumbi na Controller-ju uporabljajo za dvigovanje in spuščanje roke, se ta takoj po sprostitvi gumba zaradi gravitacije spusti nazaj. Nastavitev zaustavitvenega načina za roko in klješče na »hold« zagotavlja, da oba ostaneta na mestu tudi po sprostitvi gumbov na Controller-ju. Bloki za dogodke {When controller axis} se uporabljajo za dodelitev določenih vedenj pritisku ali sprostitvi gumbov na Controller-ju. V tem delu kode so nastavljeni pogoji za gumba E Up in E Down. Ob pritisku pride do določenih vedenj, kot so dvigovanje, spuščanje ali zaustavitev roke. Upoštevajte, da zadnji del kode v projektu za klješče sledi enaki razlagi. |
Povzetek možnosti 3: Uporaba dogodkov
Prednosti | Omejitve | Primer situacije |
|---|---|---|
|
|
|
Potrebujete dodatne dele?
Originalni VEX deli, razširitveni seti in kompleti — vse za vaš naslednji robotski projekt na trgovina.robotech.si.