Naudodami valdiklį, galite lengviau vairuoti ir perkelti robotą, kad jis atliktų užduotį. Tačiau yra Drive programos naudojimo apribojimų ir, atsižvelgiant į jūsų roboto konstrukciją arba atliekamą užduotį, jums gali prireikti skirtingų valdiklių. Valdiklio kodavimas leidžia optimizuoti valdiklį, kad jis geriau atitiktų jūsų robotą ir atliekamą užduotį. Yra keli būdai koduoti valdiklį VEXcode V5. Kiekvienas iš jų turi savo privalumų ir apribojimų, o kai kurie metodai labiau tinka tam tikroms situacijoms, atsižvelgiant į norimą rezultatą.
Šiame straipsnyje bus pateiktos trys skirtingos pasirinktinio valdiklio kodavimo VEXcode V5 parinktys. Kiekvienas metodas bus aprašytas su jo pranašumais, apribojimais ir naudojimo atvejo pavyzdžiu, kuris padės jums pasirinkti metodą. Šiame straipsnyje visi rodomi kodo pavyzdžiai buvo sukurti „Clawbot“. Tačiau tos pačios sąvokos gali būti taikomos daugeliui kitų versijų, esančių builds.vex.com, ir pasirinktinėms versijoms.
1 parinktis: mygtukų priskyrimas įrenginio konfigūracijoje
Ši parinktis puikiai tinka, kai naudojate standartinę versiją, pvz., „Speedbot“ arba „Clawbot“, ir norite greitai pradėti veikti.
Ši parinktis leidžia priskirti variklius, pavarą arba variklių grupes valdiklio mygtukams įrenginio konfigūracijos dalyje. Norėdami gauti daugiau informacijos apie tai, kaip įrenginio konfigūracijos valdikliui priskirti mygtukus, peržiūrėkite šį straipsnį.
1 parinkties santrauka: mygtukų priskyrimas įrenginio konfigūracijoje
|
Privalumai |
Apribojimai |
Situacijos pavyzdys |
|---|---|---|
|
|
|
2 variantas: „Forever Loop“ naudojimas
Jei naudojate tinkintą, o ne standartinę kūrimo versiją arba norite turėti daugiau tinkinimo valdiklio, ši parinktis yra gera. „Forever“ ciklo naudojimas yra puiki įžanga kuriant pasirinktinį valdiklio kodą.
Ši parinktis įtraukia visas Valdiklio ir su juo susijusių mygtukų sąlygas į amžiną kilpą. Tai suteikia daugiau lankstumo, ypač naudojant pasirinktinius modelius, tačiau taip pat reikia tam tikros kodavimo patirties. Tačiau naudojant šią parinktį reikia atsižvelgti į projekto trukmę ir sudėtingumą. Kuo daugiau sąlygų bus pridėta, tuo ilgesnė kodo krūva gali tapti. Tai reiškia, kad keli blokai turi būti vykdomi eilės tvarka, o kai blokų yra daug, tai gali sulėtinti projekto vykdymą. Lėtesnis projekto vykdymas gali sukelti delsą tarp Valdiklio mygtukų paspaudimo ir roboto elgesio matymo.
Toliau pateiktas konkretus pavyzdys yra vienas iš būdų, kaip naudoti Forever kilpą su pasirinktinio dizaino robotu (pvz., robotu su pasirinktine pavara), kad vairuotumėte robotą ir manipuliuotumėte nagais bei ranka, kad galėtumėte sąveikauti su objektais.
Atsisiųskite „2 parinktis“ VEXcode V5 projekto failą >
2 varianto kodo paaiškinimas.
|
Kodo gabalas |
Paaiškinimas |
|---|---|
|
Šiam kodo pavyzdžiui buvo naudojamas „Clawbot“. Kai valdiklio mygtukai naudojami pakelti ir nuleisti ranką, kai tik mygtukas atleidžiamas, dėl gravitacijos ranka nukris atgal. Nustačius ir ranką, ir žnyplę į „laikymą“, tiek ranka, tiek žnyplė išliks savo vietose net ir atleidus valdiklio mygtukus. |
|
|
|
Šiam kodo pavyzdžiui buvo naudojamas „Clawbot“. Kai valdiklio mygtukai naudojami pakelti ir nuleisti ranką, kai tik mygtukas atleidžiamas, dėl gravitacijos ranka nukris atgal. Nustačius ir ranką, ir žnyplę į „laikymą“, tiek ranka, tiek žnyplė išliks savo vietose net ir atleidus valdiklio mygtukus. Forever kilpa naudojama norint nuolat tikrinti, kurie valdiklio mygtukai paspaudžiami. Blokai [Nustatyti variklio greitį] naudojami variklio greičiui nustatyti į esamą valdiklio padėtį išilgai 2 ir 3 ašių. Tai prilygsta automobilio paleidimui. Tai nebūtinai priverčia automobilį pajudėti, jis tiesiog jį nustato. Kiekviena vairasvirtės ašis grąžina reikšmę nuo -100 iki +100, o kai yra centre, grąžina vertę nuliui. Tai reiškia, kad vairasvirtės ašys, stumiamos, prilygsta nuo -100% iki 100%. Kuo toliau link 100 ar -100 ašys stumiamos, tuo greičiau variklis suksis. Tada [Spin] blokas naudojamas varikliui iš tikrųjų perkelti. Tai prilygsta dujų spaudimui ant automobilio, kai tik nustatyta kryptis. Tai leidžia kiekvieną variklį valdyti viena iš keturių valdiklio ašių. |
|
Šiam kodo pavyzdžiui buvo naudojamas „Clawbot“. Kai valdiklio mygtukai naudojami pakelti ir nuleisti ranką, kai tik mygtukas atleidžiamas, dėl gravitacijos ranka nukris atgal. Nustačius ir ranką, ir žnyplę į „laikymą“, tiek ranka, tiek žnyplė išliks savo vietose net ir atleidus valdiklio mygtukus. Blokas [If then else if then else] naudojamas tam tikroms elgsenoms susieti su valdiklio paspaudžiamais arba atleidžiamais mygtukais. Šioje kodo dalyje nustatytos sąlygos, jei paspaudžiami mygtukai Aukštyn arba Žemyn. Jei taip, atsitiks tam tikras elgesys, pavyzdžiui, rankos pakėlimas ir nuleidimas. Taip pat yra kita sąlygos dalis, jei nepaspaudžiamas nė vienas mygtukas, ranka nustoja judėti. Atkreipkite dėmesį, kad kita projekto „Claw“ kodo dalis atitinka tą patį paaiškinimą. |
2 varianto santrauka: Forever Loop naudojimas
|
Privalumai |
Apribojimai |
Situacijos pavyzdys |
|---|---|---|
|
|
|
3 parinktis: įvykių naudojimas
Jei norite daug tinkinti savo valdiklį, įvykių naudojimas yra geriausias pasirinkimas. Vienas mygtuko paspaudimas gali suaktyvinti kelis roboto veiksmus, pvz., paspaudus mygtuką, kad atidarytumėte nagą, pakeltumėte ranką ir nuvažiuotumėte į priekį tam tikrą atstumą. Bandant užkoduoti kelis vieno mygtuko veiksmus per Forever kilpą, projekto vykdymas smarkiai sulėtėtų – naudodami Events tai galite padaryti efektyviau.
Ši parinktis naudoja įvykius projekto srautui išskaidyti. Tai panašu į „Forever“ ciklo naudojimą, bet leidžia labiau organizuoti kodą, kad mygtuko vykdymo atsako laikas būtų greitesnis. Greitesnis atsako laikas reiškia, kad nematysite laiko tarpo tarp valdiklio mygtukų paspaudimo ir roboto elgesio matymo. Šiame pavyzdyje parodyta tokia pati elgsena, kaip ir ankstesniame projekte, bet atlikta naudojant įvykius, o ne amžiną kilpą.
Atsisiųskite „3 variantas“ VEXcode V5 projekto failą >
3 varianto kodo paaiškinimas.
|
Kodo gabalas |
Paaiškinimas |
|---|---|
|
Šiam kodo pavyzdžiui buvo naudojamas „Clawbot“. Kai valdiklio mygtukai naudojami pakelti ir nuleisti ranką, kai tik mygtukas atleidžiamas, dėl gravitacijos ranka nukris atgal. Nustačius ir ranką, ir žnyplę į „laikymą“, tiek ranka, tiek žnyplė išliks savo vietose net ir atleidus valdiklio mygtukus. |
|
|
|
Šiam kodo pavyzdžiui buvo naudojamas „Clawbot“. Kai valdiklio mygtukai naudojami pakelti ir nuleisti ranką, kai tik mygtukas atleidžiamas, dėl gravitacijos ranka nukris atgal. Nustačius ir ranką, ir žnyplę į „laikymą“, tiek ranka, tiek žnyplė išliks savo vietose net ir atleidus valdiklio mygtukus. {When controller axis} Įvykių blokai naudojami tam tikram elgesiui suaktyvinti, kai viena iš keturių valdiklio ašių pakeičiama naudojant vairasvirtes. Blokai [Nustatyti variklio greitį] naudojami variklio greičiui nustatyti į esamą valdiklio padėtį išilgai A ir D ašių. Tai prilygsta automobilio paleidimui. Tai nebūtinai priverčia automobilį pajudėti, jis tiesiog jį nustato. Kiekviena vairasvirtės ašis grąžina reikšmę nuo -100 iki +100, o kai yra centre, grąžina vertę nuliui. Tai reiškia, kad vairasvirtės ašys, stumiamos, prilygsta nuo -100% iki 100%. Kuo toliau link 100 ar -100 ašys stumiamos, tuo greičiau variklis suksis. Tada [Spin] blokas naudojamas varikliui iš tikrųjų perkelti. Tai prilygsta dujų spaudimui ant automobilio, kai tik nustatyta kryptis. Tai leidžia kiekvieną variklį valdyti viena iš keturių valdiklio ašių. |
|
Šiam kodo pavyzdžiui buvo naudojamas „Clawbot“. Kai valdiklio mygtukai naudojami pakelti ir nuleisti ranką, kai tik mygtukas atleidžiamas, dėl gravitacijos ranka nukris atgal. Nustačius ir ranką, ir žnyplę į „laikymą“, tiek ranka, tiek žnyplė išliks savo vietose net ir atleidus valdiklio mygtukus. {When controller axis} Įvykių blokai naudojami tam tikroms elgsenoms susieti su valdiklio paspaudžiamais arba atleidžiamais mygtukais. Šioje kodo dalyje nustatytos sąlygos, jei paspaudžiami mygtukai Aukštyn arba Žemyn. Jei taip, atsitiks tam tikras elgesys, pvz., rankos pakėlimas, nuleidimas ar sustojimas. Atkreipkite dėmesį, kad paskutinė projekto „Claw“ kodo dalis atitinka tą patį paaiškinimą. |
3 parinkties santrauka: įvykių naudojimas
|
Privalumai |
Apribojimai |
Situacijos pavyzdys |
|---|---|---|
|
|
|