Mukautettu ohjainkoodi VEXcode V5:ssä

Ohjaimen käyttäminen voi helpottaa robotin ajamista ja liikuttamista tehtävän suorittamiseksi. Drive-ohjelman käytössä on kuitenkin rajoituksia, ja robottirakenteen tai käsillä olevan tehtävän mukaan saatat tarvita erilaisia ​​ohjaimia. Ohjaimen koodauksen avulla voit optimoida ohjaimen niin, että se sopii paremmin robottiisi ja käsillä olevaan tehtävään. On olemassa useita tapoja koodata ohjain VEXcode V5:ssä. Jokaisella on etunsa ja rajoituksensa, ja jotkin menetelmät sopivat paremmin tiettyihin tilanteisiin halutun tuloksen mukaan.

Tämä artikkeli opastaa sinua kolmen eri vaihtoehdon läpi ohjaimen mukautettuun koodaukseen VEXcode V5:ssä. Jokainen menetelmä kuvataan sen eduilla, rajoituksilla ja esimerkkikäyttötapauksella, joka auttaa sinua menetelmän valinnassa. Tätä artikkelia varten kaikki esitetyt koodiesimerkit luotiin Clawbotille. Samoja käsitteitä voitaisiin kuitenkin soveltaa lukuisiin muihin koontiversioihin, jotka löytyvät sivustosta builds.vex.com, ja mukautettuihin koontiversioihin.

Vaihtoehto 1: Painikkeiden määrittäminen laitekokoonpanossa

Tämä vaihtoehto on hyvä, kun käytät vakiorakennetta, kuten Speedbotia tai Clawbotia, ja haluat päästä nopeasti toimimaan.

Tämän vaihtoehdon avulla voit määrittää moottoreita, voimansiirron tai moottoriryhmiä ohjaimen painikkeille Laitekonfiguraatiossa. Lisätietoja painikkeiden määrittämisestä Device Configurationissa on tässä artikkelissa.

Kaavio, joka havainnollistaa V5-lohkoja ohjelmointia varten, esittelee erilaisia ​​lohkotyyppejä ja niiden yhteyksiä visuaalisessa muodossa lohkopohjaisen koodauksen opetusohjelmien ymmärtämisen helpottamiseksi.

Yhteenveto vaihtoehdosta 1: Painikkeiden määrittäminen laitekokoonpanossa

Edut

Rajoitukset

Esimerkkitilanne

  • Nopea asennus ilman koodausta
  • Yksinkertaisin menetelmä
  • Helposti säädettävä
  • Voi määrittää yksittäisiä moottoreita, vakiovoimansiirron ja moottoriryhmiä painikkeille
  • Painikemääritykset on rajoitettu ohjaimen painikkeiden määrään
  • Voimansiirto ei saa ylittää 4 moottoria tai olla räätälöityjä (vain vakiokäyttöä tuetaan, ei H-käyttöä, holonomista tai muuta mukautettua voimansiirtoa)
  • Vakiokoontiversion, kuten Speedbotin, Clawbotin tai yksinkertaisen muunnelman manipulointi. Esimerkiksi Speedbot, jonka etuosassa on imuaukko, jota ohjaa moottoriryhmä.
  • Manipuloida, mitkä painikkeet vastaavat robotin eri käyttäytymistä nopeasti ilman paljon koodausta

Vaihtoehto 2: Forever Loopin käyttö

Jos käytät mukautettua koontiversiota tavallisen koontiversion sijaan tai haluat, että Ohjaimessasi on enemmän mukautuksia, tämä vaihtoehto on hyvä. Forever-silmukan käyttäminen on loistava johdatus mukautetun koodin luomiseen ohjaimellesi.

Tämä vaihtoehto asettaa kaikki ohjaimen ja siihen liittyvien painikkeiden ehdot Forever-silmukkaan. Tämä tarjoaa enemmän joustavuutta varsinkin mukautetuissa rakennesuunnitelmissa, mutta vaatii myös jonkin verran koodauskokemusta. Yksi huomioitavaa tätä vaihtoehtoa käytettäessä on kuitenkin projektin pituus ja monimutkaisuus. Mitä enemmän ehtoja lisätään, sitä pidemmäksi koodipino voi tulla. Tämä tarkoittaa, että useita lohkoja on suoritettava järjestyksessä, ja jos lohkoja on paljon, tämä voi hidastaa projektin suorittamista. Hitaampi projektin suorittaminen voi aiheuttaa viiveen Controller-painikkeiden painamisen ja robotin toiminnan näkemisen välillä.

Alla oleva esimerkki on yksi tapa, jolla voit käyttää Forever-silmukkaa mukautetun suunnittelun robotin kanssa (kuten mukautetun voimansiirron omaavan robotin kanssa) robotin ohjaamiseen ja kynsien ja käsien käsittelemiseen vuorovaikutuksessa esineiden kanssa.

Kaavio, joka havainnollistaa V5-lohkon opetusohjelmia, esittelee erilaisia ​​lohkotyyppejä ja niiden yhteyksiä selkeässä ja organisoidussa asettelussa, mikä parantaa VEX-robotiikan ohjelmoinnin ymmärtämistä.

Lataa "Vaihtoehto 2" VEXcode V5 -projektitiedosto >

Vaihtoehto 2 -koodin selitys.

Koodipala

Selitys

Kaavio, joka havainnollistaa V5-lohkokomponentteja ja niiden toimintoja opetusohjelmamuodossa, esittelee erilaisia ​​lohkotyyppejä ja liitäntöjä opetustarkoituksiin.

Tässä koodiesimerkissä käytettiin Clawbotia. Kun ohjaimen painikkeita käytetään nostamaan ja laskemaan vartta, heti kun painike vapautetaan, varsi putoaa painovoiman vaikutuksesta takaisin alas. Sekä varren että kynnen asettaminen "pidolle" varmistaa, että sekä käsivarsi että kynsi pysyvät paikoillaan, vaikka ohjaimen painikkeet on vapautettu.

VEX Knowledge Base -tietokannan Blocks Tutorials -osiossa käytetty kaavio, joka havainnollistaa V5-lohkokomponentteja ja niiden toimintoja, esittelee erilaisia ​​lohkotyyppejä ja niiden yhteyksiä opetustarkoituksiin. Kaavio, joka havainnollistaa V5-lohkoja merkittyillä komponenteilla ja liitännöillä, jota käytetään opetusohjelmissa VEX-robotiikan lohkoohjelmoinnin ymmärtämiseen.

Tässä koodiesimerkissä käytettiin Clawbotia. Kun ohjaimen painikkeita käytetään nostamaan ja laskemaan vartta, heti kun painike vapautetaan, varsi putoaa painovoiman vaikutuksesta takaisin alas. Sekä varren että kynnen asettaminen "pidolle" varmistaa, että sekä käsivarsi että kynsi pysyvät paikoillaan, vaikka ohjaimen painikkeet on vapautettu.

Forever-silmukkaa käytetään jatkuvasti tarkistamaan, mitä painikkeita ohjaimessa painetaan.

[Set motor velocity] -lohkoja käytetään moottorin nopeuden asettamiseen nykyiseen Säätimen asentoon 2- ja 3-akselilla. Tämä vastaa auton käynnistämistä. Se ei välttämättä saa autoa liikkumaan, se vain asettaa sen.

Jokainen ohjaussauvan akseli palauttaa arvon välillä -100 - +100 ja palauttaa arvon nolla, kun se on keskitetty. Tämä tarkoittaa sitten sitä, että ohjaussauvan akselit ovat työnnettäessä -100 % - 100 %. Mitä kauemmas kohti 100 tai -100 akseleita työnnetään, sitä nopeammin moottori pyörii.

[Spin]-lohkoa käytetään sitten moottorin liikuttamiseen. Tämä vastaa auton kaasun painamista, kun suunta on asetettu. Näin jokaista moottoria voidaan ohjata yhdellä neljästä ohjainakselista.

Kaavio, joka havainnollistaa V5-lohkoja ohjelmointioppitunteja varten, esittelee erilaisia ​​lohkotyyppejä ja niiden yhteyksiä, jotka on suunniteltu parantamaan koodauskonseptien ymmärtämistä koulutustilanteissa.

Tässä koodiesimerkissä käytettiin Clawbotia. Kun ohjaimen painikkeita käytetään nostamaan ja laskemaan vartta, heti kun painike vapautetaan, varsi putoaa painovoiman vaikutuksesta takaisin alas. Sekä varren että kynnen asettaminen "pidolle" varmistaa, että sekä käsivarsi että kynsi pysyvät paikoillaan, vaikka ohjaimen painikkeet on vapautettu.

[If then else if then else] -lohkoa käytetään määrittämään tiettyjä toimintoja ohjaimen painikkeisiin, joita painetaan tai vapautetaan. Tässä koodin osassa asetetaan ehdot, jos painetaan ylös- tai alas-painikkeita. Jos näin on, tapahtuu tiettyjä käyttäytymismalleja, kuten käsivarren nostaminen ja laskeminen. Tilassa on myös toinen osa, jos kumpaakaan painiketta ei paineta, käsivarsi on asetettu pysähtymään.

Huomaa, että seuraava Claw-projektin koodiosa noudattaa samaa selitystä.

Yhteenveto vaihtoehdosta 2: Forever Loopin käyttö

Edut

Rajoitukset

Esimerkkitilanne

  • Voidaan asentaa räätälöityihin rakenteisiin, erityisesti voimansiirtoihin, joissa on yli 4 moottoria
  • Voi määrittää useita toimintoja yhdelle painikkeelle
  • Voi määrittää toimintoja ohjaimen eri akseleille (toisin kuin ainoat vaihtoehdot Left Arcade, Right Arcade, Split Arcade ja Tank Drive laitekokoonpanossa)
  • Vaatii jonkin verran koodaustietoa (ehdot, silmukat ja ohjaimen painikkeiden/joystickien tuntemus)
  • Mahdollisuus hitaampaan projektin suorittamiseen tai viive painikkeen vasteajassa. Koska kaikki komennot sisältyvät yhteen Forever-silmukkaan, koodin suorittaminen voi toimia hitaasti riippuen asetetuista ehdoista ja koodin pituudesta.
  • Ohjaimen käyttö räätälöidyn robotin kanssa, erityisesti epästandardin voimansiirron kanssa
  • Kun haluat määrittää yhdelle painikkeelle useita toimintoja. Esimerkiksi kun Ylös-painiketta painetaan, kynsi voi avautua, ajaa eteenpäin ja sitten sulkeutua kohteen ympärille.

Vaihtoehto 3: Tapahtumien käyttö

Jos haluat paljon räätälöintiä ohjaimellesi, Tapahtumien käyttö on sinulle paras vaihtoehto. Yksi painikkeen painallus voi laukaista useita robotin käyttäytymismalleja, kuten napin painalluksen avaamaan kynnen, nostamaan käsivarren ja ajamaan eteenpäin tietyn matkan. Jos yrität koodata useita toimintoja painiketta kohden Forever-silmukassa, projektin suorittaminen hidastuu dramaattisesti – tapahtumien avulla voit tehdä tämän tehokkaammin.

Tämä vaihtoehto käyttää Tapahtumia projektin kulun hajottamiseen. Tämä on samanlainen kuin Forever-silmukan käyttäminen, mutta mahdollistaa koodin järjestämisen, jotta painikkeen suorittaminen on nopeampi vasteaika. Nopeampi vasteaika tarkoittaa, että et näe viivettä Controller-painikkeiden painamisen ja robotin käyttäytymisen välillä. Tämä esimerkki näyttää samat käyttäytymiset kuin edellinen projekti, mutta tehty käyttämällä tapahtumia Forever Loopin sijaan.

Kuva tutoriaaleissa käytetyistä V5-lohkoista, esittelee erilaisia ​​lohkotyyppejä ja niiden liitäntöjä sekä havainnollistaa rakentamista ja ohjelmointia VEX V5 -robotiikan avulla.

Lataa "Vaihtoehto 3" VEXcode V5 -projektitiedosto >

Vaihtoehto 3 -koodin selitys.

Koodipala

Selitys

Kaavio, joka havainnollistaa erilaisia ​​robotiikan opetusohjelmissa käytettyjä V5-lohkoja, esittelee niiden toimintoja ja yhteyksiä opetustarkoituksiin.

Tässä koodiesimerkissä käytettiin Clawbotia. Kun ohjaimen painikkeita käytetään nostamaan ja laskemaan vartta, heti kun painike vapautetaan, varsi putoaa painovoiman vaikutuksesta takaisin alas. Sekä varren että kynnen asettaminen "pidolle" varmistaa, että sekä käsivarsi että kynsi pysyvät paikoillaan, vaikka ohjaimen painikkeet on vapautettu.

Kaavio, joka havainnollistaa V5-lohkoja robotiikan opetusohjelmassa, esittelee erilaisia ​​lohkotyyppejä ja niiden yhteyksiä ohjelmointitehtäviin. Kaavio, joka havainnollistaa V5-lohkoja merkittyillä komponenteilla ja liitännöillä, jota käytetään opetusohjelmissa VEX-robotiikan lohkoohjelmoinnin ymmärtämiseen.

Tässä koodiesimerkissä käytettiin Clawbotia. Kun ohjaimen painikkeita käytetään nostamaan ja laskemaan vartta, heti kun painike vapautetaan, varsi putoaa painovoiman vaikutuksesta takaisin alas. Sekä varren että kynnen asettaminen "pidolle" varmistaa, että sekä käsivarsi että kynsi pysyvät paikoillaan, vaikka ohjaimen painikkeet on vapautettu.

{When controller axis} Tapahtumalohkoja käytetään tiettyjen toimintojen laukaisemiseen, kun yhtä ohjaimen neljästä akselista muutetaan ohjaussauvoja käyttämällä.

[Set motor velocity] -lohkoja käytetään moottorin nopeuden asettamiseen nykyiseen Säätimen asentoon A- ja D-akseleita pitkin. Tämä vastaa auton käynnistämistä. Se ei välttämättä saa autoa liikkumaan, se vain asettaa sen.

Jokainen ohjaussauvan akseli palauttaa arvon välillä -100 - +100 ja palauttaa arvon nolla, kun se on keskitetty. Tämä tarkoittaa sitten sitä, että ohjaussauvan akselit ovat työnnettäessä -100 % - 100 %. Mitä kauemmas kohti 100 tai -100 akseleita työnnetään, sitä nopeammin moottori pyörii.

[Spin]-lohkoa käytetään sitten moottorin liikuttamiseen. Tämä vastaa auton kaasun painamista, kun suunta on asetettu. Näin jokaista moottoria voidaan ohjata yhdellä neljästä ohjainakselista.

Kaavio, joka havainnollistaa ohjelmointitutoriaaleissa käytettyjä V5-lohkoja, esittelee erilaisia ​​lohkotyyppejä ja niiden toimintoja VEX Robotics -järjestelmässä.

Tässä koodiesimerkissä käytettiin Clawbotia. Kun ohjaimen painikkeita käytetään nostamaan ja laskemaan vartta, heti kun painike vapautetaan, varsi putoaa painovoiman vaikutuksesta takaisin alas. Sekä varren että kynnen asettaminen "pidolle" varmistaa, että sekä käsivarsi että kynsi pysyvät paikoillaan, vaikka ohjaimen painikkeet on vapautettu.

{When controller axis} Tapahtumalohkoja käytetään määrittämään tiettyjä toimintoja ohjaimen painikkeisiin, joita painetaan tai vapautetaan. Tässä koodin osassa asetetaan ehdot, jos painetaan ylös- tai alas-painikkeita. Jos näin on, tapahtuu tiettyjä käyttäytymismalleja, kuten käsivarren nostaminen, laskeminen tai pysähtyminen.

Huomaa, että Claw-projektin koodin viimeinen osa noudattaa samaa selitystä.

Yhteenveto vaihtoehdosta 3: Tapahtumien käyttö

Edut

Rajoitukset

Esimerkkitilanne

  • Voidaan asentaa räätälöityihin rakenteisiin, erityisesti voimansiirtoihin, joissa on yli 4 moottoria
  • Voi määrittää useita toimintoja yhdelle painikkeelle
  • Voi määrittää toimintoja ohjaimen eri akseleille (toisin kuin ainoat vaihtoehdot Left Arcade, Right Arcade, Split Arcade ja Tank Drive laitekokoonpanossa)
  • Nopeampi koodin suoritus ja siten painikkeiden reagointikyky (koska jokainen ehto kutsutaan erikseen eikä upotettu yhteen koodipinoon)
  • Vaatii eniten koodaustietoa valinnoista (ehdot, silmukat, tapahtumat ja ohjaimen painikkeiden/joystickien tuntemus)
  • Ohjaimen käyttö räätälöidyn robotin kanssa, erityisesti epästandardin voimansiirron kanssa
  • Kun haluat määrittää useita toimintoja yhdelle painikkeelle ilman viivettä. Esimerkiksi kun Ylös-painiketta painetaan, kynsi voi avautua, ajaa eteenpäin ja sitten sulkeutua kohteen ympärille.

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

Last Updated: