Pasirinktinis valdiklio kodas VEXcode IQ

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 keletas būdų, kaip koduoti valdiklį VEXcode IQ. 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 IQ 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 yra puiki, kai naudojate standartinę versiją, pvz., „BaseBot“ 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į.

„VEXcode IQ“ įrenginių meniu su rodomomis valdiklio parinktimis. Mygtukų valdymo diagramoje parodyta, kad du valdymo svirtys valdo robotą bako pavaros konfigūracijoje. E ašies mygtukai valdo „ArmMotorGroup“, o R ašies mygtukai – „ClawMotor“.

1 parinkties santrauka: mygtukų priskyrimas įrenginio konfigūracijoje

Privalumai

Apribojimai

Situacijos pavyzdys

  • Greitas nustatymas be kodavimo
  • Paprasčiausias būdas
  • Lengvai reguliuojamas
  • Gali mygtukams priskirti atskirus variklius, standartinę pavarą ir variklių grupes
  • Mygtukų priskyrimas ribojamas valdiklio mygtukų skaičiumi
  • Pavaros mechanizmas negali būti didesnis nei 4 varikliai arba gali būti pritaikytas (palaikoma tik standartinė pavara, ne H pavara, holonominė ar kita pasirinktinė pavara)
  • Manipuliavimas standartine konstrukcija, pvz., „BaseBot“, „Clawbot“, arba paprastu tų standartinių versijų modifikavimu. Pavyzdžiui, „BaseBot“ su įsiurbimo anga, pritvirtinta priekyje, valdoma variklio grupės.
  • Greitas manipuliavimas, kurie mygtukai atitinka skirtingą roboto elgesį, be daug kodavimo

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.

„VEXcode IQ“ darbo sritis su atidarytu 2 parinkties blokų projektu. Projekte yra blokų krūva ir sukonfigūruoti įrenginiai. Šone atidaromas įrenginių meniu, kuriame išvardyti šie įrenginiai: „IQ 2nd generation Brain“, „ClawMotor“ 4 prievade, „ArmMotor“ 10 prievade, „Controller“, „LeftMotor“ 1 prievade ir „RightMotor“ 6 prievade. Galiausiai yra blokų krūva, skirta valdiklio įvesčiai tvarkyti. Steke rodoma: „When started, set ArmMotor stopping to hold“ ir „ClawMotor stopping to hold“. Likusi steko dalis yra „Forever“ cikle. Rodoma „Amžinai“, nustatykite „LeftMotor“ greitį į A valdiklio padėtį %, pasukite „LeftMotor“ pirmyn, nustatykite „RightMotor“ greitį į D valdiklio padėtį % ir pasukite „RightMotor“ pirmyn. Toliau, jei paspaustas valdiklio E mygtukas „Up“, pasukite „ArmMotor“ aukštyn, kitu atveju, jei paspaustas valdiklio E mygtukas „Down“, pasukite „ArmMotor“ žemyn, kitu atveju sustabdykite „ArmMotor“. Galiausiai, jei paspaustas valdiklio F mygtukas aukštyn, „ClawMotor“ atidaromas, kitu atveju, jei paspaustas valdiklio F mygtukas žemyn, „ClawMotor“ uždaromas ir „ClawMotor“ sustabdomas.

Atsisiųskite „2 varianto“ VEXcode IQ (2 kartos) projekto failą >

pastaba: jei naudojate 1-osios kartos „Clawbot“, svirties variklis turės būti pakeistas įrenginio konfigūracijoje, kad jis veiktų taip, kaip numatyta aukščiau pateiktame projekte.

2 varianto kodo paaiškinimas.

Kodo gabalas

Paaiškinimas

Blokų krūvos stambus planas 2-osios „VEXcode IQ“ projekto variante. Du blokai yra paryškinti ir yra už steko „Forever“ ciklo ribų, juose skaitoma „set ArmMotor stopping to hold“ ir „set ClawMotor stopping to hold“.

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

Blokų krūvos stambus planas 2-osios „VEXcode IQ“ projekto variante. Steko „Forever“ ciklo viduje paryškinti keturi blokai. Jie perskaito „Amžinai“, nustato „LeftMotor“ greitį į A valdiklio padėtį %, suka „LeftMotor“ pirmyn, nustato „RightMotor“ greitį į D valdiklio padėtį % ir suka „RightMotor“ pirmyn. IQ (2-osios kartos) valdiklio schema su paženklintais mygtukais ir valdymo svirtimis. Vaizdas yra iš valdiklio priekio. Kairiojo valdymo svirties ašys pažymėtos A ir B. Kairiojo valdymo svirties centrinis mygtukas pažymėtas L3. Du apvalūs mygtukai po kairiuoju valdymo svirtimi yra pažymėti „E Up“ ir „E Down“. Dešiniojo valdymo svirties ašys pažymėtos C ir D. Dešiniojo valdymo svirties centrinis mygtukas pažymėtas R3. Du apvalūs mygtukai po dešiniuoju valdymo svirtimi yra pažymėti „F Up“ ir „F Down“.

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

Blokų krūvos stambus planas 2-osios „VEXcode IQ“ projekto variante. Steko „Forever“ ciklo viduje yra paryškintas blokas „if, else if, else“. Rodoma, jei paspaustas valdiklio E mygtukas „Up“, „ArmMotor“ sukasi aukštyn, kitu atveju, jei paspaustas valdiklio E mygtukas „Down“, „ArmMotor“ sukasi žemyn, o kitu atveju „ArmMotor“ sustoja.

Š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 E aukštyn arba E ž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

  • Galima pritaikyti pagal užsakymą pagamintas konstrukcijas, ypač pavarų dėžes su daugiau nei 4 varikliais
  • Vienam mygtukui galima priskirti kelis veiksmus
  • Gali priskirti elgseną skirtingoms valdiklio ašims (priešingai nei vienintelės įrenginio konfigūracijos kairiosios arkados, dešiniosios arkados, padalintos arkados ir talpyklos diskų parinktys)
  • Reikia tam tikrų kodavimo žinių (sąlygų, kilpų ir valdiklio mygtukų / kreiptukų išmanymo)
  • Galimas lėtesnis projekto vykdymas arba mygtuko reakcijos laikas. Kadangi visos komandos yra vienoje Forever kilpoje, kodo vykdymas gali vykti lėtai, atsižvelgiant į nustatytas sąlygas ir kodo ilgį.
  • Valdiklio naudojimas su pagal užsakymą pagamintu robotu, ypač su nestandartine pavara
  • Kai vienam mygtukui norite priskirti kelis veiksmus. Pavyzdžiui, kai paspaudžiamas F aukštyn mygtukas, letena gali atsidaryti, važiuoti į priekį ir užsidaryti aplink objektą.

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

„VEXcode IQ“ darbo sritis su atidarytu 3 parinkties blokų projektu. Projekte yra 11 mažų blokų krūvelių ir sukonfigūruoti įrenginiai. Šone atidaromas įrenginių meniu, kuriame išvardyti šie įrenginiai: „IQ 2nd generation Brain“, „ClawMotor“ 4 prievade, „ArmMotor“ 10 prievade, „Controller“, „LeftMotor“ 1 prievade ir „RightMotor“ 6 prievade. Galiausiai yra 11 mažų blokų krūvelių, kurios tvarko valdiklio įvestį. Pirmame steke parašyta: „When started, set ArmMotor stopping to hold“ (paleidus, nustatykite „ArmMotor stopping“ į „hold“), o tada „ClawMotor stopping“ nustatykite „hold“ (laikyti). Antrajame steke rašoma: Kai keičiama valdiklio A ašis, nustatykite „LeftMotor“ greitį į valdiklio A padėtį % ir tada sukite „LeftMotor“ pirmyn. Trečiajame steke rašoma: Kai keičiamas valdiklis D, nustatykite dešiniojo variklio greitį į valdiklio D padėtį % ir tada sukite dešinįjį variklį į priekį. Ketvirtoje stekoje parašyta: Paspaudus valdiklio E mygtuką aukštyn, pasukite „ArmMotor“ aukštyn. Penktame steke rašoma: Atleidus valdiklio mygtuką E aukštyn, sustabdomas „ArmMotor“. Šeštajame stulpelyje parašyta: Paspaudus valdiklio E mygtuką žemyn, „ArmMotor“ sukasi žemyn. Septintajame stulpelyje rašoma: Atleidus valdiklio mygtuką E žemyn, sustabdomas „ArmMotor“. Aštuntame sluoksnyje rodoma: Paspaudus valdiklio F mygtuką aukštyn, atsidaro kumštelių variklis. Devintame stulpelyje parašyta: Atleidus valdiklio F mygtuką aukštyn, sustabdomas kumštelių variklis. Dešimtajame stulpelyje parašyta: Paspaudus valdiklio F mygtuką žemyn, užsidaro kumštelių variklis. Vienuoliktas ir paskutinis stulpelis rodo: „Atleidus valdiklio F mygtuką žemyn, sustabdomas letenų variklis“.

Atsisiųskite „Option 3“ VEXcode IQ (2-osios kartos) projekto failą >

pastaba: jei naudojate 1-osios kartos „Clawbot“, svirties variklis turės būti pakeistas įrenginio konfigūracijoje, kad jis veiktų taip, kaip numatyta aukščiau pateiktame projekte.

3 varianto kodo paaiškinimas.

Kodo gabalas

Paaiškinimas

Vienos blokelių krūvelės stambaus plano planas „VEXcode IQ“ projekte, skirtame 3 parinktiai. Steke rodoma: „When started, set ArmMotor stopping to hold“ (paleidus, nustatykite „ArmMotor stopping“ į „laikyti“), o tada „ClawMotor stopping“ nustatykite „laikyti“.

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

Dviejų blokų krūvelių stambus planas „VEXcode IQ“ projekte, 3 parinktyje. Pirmame steke rašoma: Kai keičiama valdiklio A ašis, nustatykite kairiojo variklio greitį į valdiklio A padėtį % ir tada sukite kairįjį variklį pirmyn. Antrajame steke rašoma: Kai keičiama valdiklio D ašis, nustatykite dešiniojo variklio greitį į valdiklio D padėtį % ir tada sukite dešinįjį variklį į priekį. IQ (2-osios kartos) valdiklio schema su paženklintais mygtukais ir valdymo svirtimis. Vaizdas yra iš valdiklio priekio. Kairiojo valdymo svirties ašys pažymėtos A ir B. Kairiojo valdymo svirties centrinis mygtukas pažymėtas L3. Du apvalūs mygtukai po kairiuoju valdymo svirtimi yra pažymėti „E Up“ ir „E Down“. Dešiniojo valdymo svirties ašys pažymėtos C ir D. Dešiniojo valdymo svirties centrinis mygtukas pažymėtas R3. Du apvalūs mygtukai po dešiniuoju valdymo svirtimi yra pažymėti „F Up“ ir „F Down“.

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

Keturių blokų krūvelių stambus planas „VEXcode IQ“ projekte, 3 parinktyje. Pirmajame steke rašoma: Paspaudus valdiklio E mygtuką aukštyn, pasukite „ArmMotor“ aukštyn. Antrajame stulpelyje rašoma: Atleidus valdiklio mygtuką E aukštyn, sustabdomas „ArmMotor“. Trečiajame steke rašoma: Paspaudus valdiklio E mygtuką žemyn, sukite „ArmMotor“ žemyn. Ketvirtajame stulpelyje rašoma: Atleidus valdiklio mygtuką E žemyn, sustabdomas „ArmMotor“.

Š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 E aukštyn arba E ž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

  • Galima pritaikyti pagal užsakymą pagamintas konstrukcijas, ypač pavarų dėžes su daugiau nei 4 varikliais
  • Vienam mygtukui galima priskirti kelis veiksmus
  • Gali priskirti elgseną skirtingoms valdiklio ašims (priešingai nei vienintelės įrenginio konfigūracijos kairiosios arkados, dešiniosios arkados, padalintos arkados ir talpyklos diskų parinktys)
  • Greitesnis kodo vykdymas, taigi ir mygtukų reagavimas (kadangi kiekviena sąlyga iškviečiama atskirai, o ne įterpta į vieną kodo krūvą)
  • Reikia daugiausiai žinių apie parinktis (sąlygas, kilpas, įvykius ir valdiklio mygtukus / kreiptukus)
  • Jei naudojate 1-osios kartos VEX IQ Brain, jei projekte yra per daug įvykių, projektas gali nevykti dėl smegenų apdorojimo apribojimų.
  • Valdiklio naudojimas su pagal užsakymą pagamintu robotu, ypač su nestandartine pavara
  • Kai norima priskirti kelis veiksmus vienam mygtukui be vėlavimo. Pavyzdžiui, kai paspaudžiamas F aukštyn mygtukas, letena gali atsidaryti, važiuoti į priekį ir užsidaryti aplink objektą.

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

Last Updated: