Izmantojot kontrolieri, var vieglāk vadīt un pārvietot robotu, lai izpildītu uzdevumu. Tomēr programmas Drive izmantošanai ir ierobežojumi, un atkarībā no jūsu robota uzbūves vai veicamā uzdevuma, iespējams, vēlēsities dažādas vadīklas. Kontrollera kodēšana ļauj optimizēt kontrolieri, lai tas labāk atbilstu jūsu robotam un veicamajam uzdevumam. Ir vairāki veidi, kā kodēt kontrolieri VEXcode EXP. Katrai no tām ir savas priekšrocības un ierobežojumi, un dažas metodes ir labāk piemērotas noteiktām situācijām atkarībā no vēlamā rezultāta.
Šajā rakstā ir aprakstītas trīs dažādas kontroliera pielāgotas kodēšanas opcijas VEXcode EXP. Katra metode tiks aprakstīta ar tās priekšrocībām, ierobežojumiem un lietošanas piemēru, lai palīdzētu jums izvēlēties metodi. Šī raksta vajadzībām visi parādītie kodu piemēri tika izveidoti Clawbot. Tomēr tos pašus jēdzienus var izmantot daudzām citām versijām, kas atrodamas vietnē builds.vex.com, un pielāgotajām būvēm.
1. iespēja: pogu piešķiršana ierīces konfigurācijā
Šī opcija ir lieliska, ja izmantojat standarta versiju, piemēram, BaseBot vai Clawbot, un vēlaties ātri sākt darbu.
Šī opcija ļauj piešķirt motorus, piedziņu vai motoru grupas kontrollera pogām sadaļā Device Configuration. Lai iegūtu papildinformāciju par pogu piešķiršanu kontrollerim sadaļā Ierīces konfigurācija, šo rakstu.
1. iespējas kopsavilkums: pogu piešķiršana ierīces konfigurācijā
Priekšrocības |
Ierobežojumi |
Situācijas piemērs |
|
|
|
2. iespēja: Forever Loop izmantošana
Ja izmantojat pielāgotu būvējumu, nevis standarta būvējumu vai vēlaties, lai kontrolieris būtu vairāk pielāgojams, šī opcija ir laba. Forever cilpas izmantošana ir lielisks ievads, lai izveidotu pielāgotu kodu jūsu kontrolierim.
Šī opcija visus nosacījumus kontrolierim un ar to saistītajām pogām ievieto Forever cilpā. Tas nodrošina lielāku elastību, jo īpaši ar pielāgotiem konstrukcijas dizainiem, taču ir nepieciešama arī zināma kodēšanas pieredze. Tomēr viens no apsvērumiem, izmantojot šo opciju, ir jūsu projekta ilgums un sarežģītība. Jo vairāk nosacījumu tiek pievienots, jo garāka var kļūt kodu steks. Tas nozīmē, ka vairāki bloki ir jāizpilda secībā, un, ja bloku ir daudz, tas var palēnināt projekta izpildi. Lēnāka projekta izpilde var radīt aizkavi starp Controller pogu nospiešanu un robota uzvedības novērošanu.
Tālāk redzamais konkrētais piemērs ir viens no veidiem, kā jūs varat izmantot Forever cilpu ar pielāgota dizaina robotu (piemēram, robotu ar pielāgotu piedziņu), lai vadītu robotu un manipulētu ar spīlēm un roku, lai mijiedarbotos ar objektiem.
Lejupielādējiet "Option 2" VEXcode EXP projekta failu >
2. varianta koda skaidrojums.
Koda gabals |
Paskaidrojums |
Šim koda piemēram tika izmantots Clawbot. Kad vadības pults pogas tiek izmantotas, lai paceltu un nolaistu roku, tiklīdz poga tiek atlaista, gravitācijas ietekmē roka nokritīs atpakaļ. Iestatot gan roku, gan spīļu uz “turēšanu”, tiks nodrošināts, ka gan roka, gan spīle paliks savā vietā pat pēc tam, kad ir atlaistas vadības pults pogas. |
|
Šim koda piemēram tika izmantots Clawbot. Kad vadības pults pogas tiek izmantotas, lai paceltu un nolaistu roku, tiklīdz poga tiek atlaista, gravitācijas ietekmē roka nokritīs atpakaļ. Iestatot gan roku, gan spīļu uz “turēšanu”, tiks nodrošināts, ka gan roka, gan spīle paliks savā vietā pat pēc tam, kad ir atlaistas vadības pults pogas. Forever cilpa tiek izmantota, lai nepārtraukti pārbaudītu, kuras pogas tiek nospiestas uz kontrollera. Blokus [Iestatīt motora ātrumu] izmanto, lai iestatītu motora ātrumu pašreizējā kontrollera pozīcijā pa 2 un 3 asīm. Tas ir līdzvērtīgs automašīnas iedarbināšanai. Tas ne vienmēr liek automašīnai kustēties, tas tikai nosaka to. Katra kursorsviras ass atgriež vērtību no -100 līdz +100 un atgriež vērtību nulli, kad tā ir centrēta. Tas nozīmē, ka kursorsviras asis, kad tās tiek nospiestas, ir vienādas ar -100% līdz 100%. Jo tālāk virzienā uz 100 vai -100 tiek virzītas asis, jo ātrāk motors griezīsies. Pēc tam [Spin] bloks tiek izmantots, lai faktiski pārvietotu motoru. Tas ir līdzvērtīgs gāzes nospiešanai automašīnai, kad ir iestatīts virziens. Tas ļauj katru motoru vadīt ar vienu no četrām kontroliera asīm. |
|
Šim koda piemēram tika izmantots Clawbot. Kad vadības pults pogas tiek izmantotas, lai paceltu un nolaistu roku, tiklīdz poga tiek atlaista, gravitācijas ietekmē roka nokritīs atpakaļ. Iestatot gan roku, gan spīļu uz “turēšanu”, tiks nodrošināts, ka gan roka, gan spīle paliks savā vietā pat pēc tam, kad ir atlaistas vadības pults pogas. Bloks [If then else if then else] tiek izmantots, lai noteiktu noteiktu darbību kartēšanu ar kontrollera nospiestajām vai atlaistajām pogām. Šajā koda sadaļā tiek iestatīti nosacījumi, ja tiek nospiesta poga Uz augšu vai Uz leju. Ja tā, tad notiks noteikta uzvedība, piemēram, roku pacelšana un nolaišana. Ir arī cita nosacījuma daļa, ja neviena poga netiek nospiesta, roka tiek iestatīta, lai apturētu kustību. Ņemiet vērā, ka nākamajā Claw projekta koda sadaļā ir ievērots tas pats skaidrojums. |
2. iespējas kopsavilkums: Forever Loop izmantošana
Priekšrocības |
Ierobežojumi |
Situācijas piemērs |
|
|
|
3. iespēja: notikumu izmantošana
Ja vēlaties daudz pielāgot savu kontrolieri, notikumu izmantošana ir jums vislabākā iespēja. Viena pogas nospiešana var izraisīt vairākas robota darbības, piemēram, pogas nospiešanu, lai atvērtu nagu, paceltu roku un brauktu uz priekšu noteiktu attālumu. Mēģinot kodēt vairākas darbības katrai pogai Forever cilpas ietvaros, projekta izpilde ievērojami palēnināsies — izmantojot notikumus, varat to paveikt efektīvāk.
Šī opcija izmanto notikumus, lai sadalītu projekta plūsmu. Tas ir līdzīgs Forever cilpas izmantošanai, taču ļauj kodam būt sakārtotākam, lai pogas izpildei būtu ātrāks reakcijas laiks. Ātrāks reakcijas laiks nozīmē, ka jūs neredzēsit aizkavi starp Controller pogu nospiešanu un robota uzvedības novērošanu. Šajā piemērā ir parādīta tāda pati darbība kā iepriekšējā projektā, taču tas tiek darīts, izmantojot notikumus, nevis Forever Loop.
Lejupielādējiet "Option 3" VEXcode EXP projekta failu >
3. varianta koda skaidrojums.
Koda gabals |
Paskaidrojums |
Šim koda piemēram tika izmantots Clawbot. Kad vadības pults pogas tiek izmantotas, lai paceltu un nolaistu roku, tiklīdz poga tiek atlaista, gravitācijas ietekmē roka nokritīs atpakaļ. Iestatot gan roku, gan spīļu uz “turēšanu”, tiks nodrošināts, ka gan roka, gan spīle paliks savā vietā pat pēc tam, kad ir atlaistas vadības pults pogas. |
|
Šim koda piemēram tika izmantots Clawbot. Kad vadības pults pogas tiek izmantotas, lai paceltu un nolaistu roku, tiklīdz poga tiek atlaista, gravitācijas ietekmē roka nokritīs atpakaļ. Iestatot gan roku, gan spīļu uz “turēšanu”, tiks nodrošināts, ka gan roka, gan spīle paliks savā vietā pat pēc tam, kad ir atlaistas vadības pults pogas. {When controller axis} Notikumu bloki tiek izmantoti, lai aktivizētu noteiktas darbības, kad viena no četrām vadības ierīces asīm tiek mainīta, izmantojot kursorsviras. Blokus [Iestatīt motora ātrumu] izmanto, lai iestatītu motora ātrumu pašreizējā kontrollera pozīcijā gar A un D asīm. Tas ir līdzvērtīgs automašīnas iedarbināšanai. Tas ne vienmēr liek automašīnai kustēties, tas tikai nosaka to. Katra kursorsviras ass atgriež vērtību no -100 līdz +100 un atgriež vērtību nulli, kad tā ir centrēta. Tas nozīmē, ka kursorsviras asis, kad tās tiek nospiestas, ir vienādas ar -100% līdz 100%. Jo tālāk virzienā uz 100 vai -100 tiek virzītas asis, jo ātrāk motors griezīsies. Pēc tam [Spin] bloks tiek izmantots, lai faktiski pārvietotu motoru. Tas ir līdzvērtīgs gāzes nospiešanai automašīnai, kad ir iestatīts virziens. Tas ļauj katru motoru vadīt ar vienu no četrām kontroliera asīm. |
|
Šim koda piemēram tika izmantots Clawbot. Kad vadības pults pogas tiek izmantotas, lai paceltu un nolaistu roku, tiklīdz poga tiek atlaista, gravitācijas ietekmē roka nokritīs atpakaļ. Iestatot gan roku, gan spīļu uz “turēšanu”, tiks nodrošināts, ka gan roka, gan spīle paliks savā vietā pat pēc tam, kad ir atlaistas vadības pults pogas. {When controller axis} Notikumu bloki tiek izmantoti, lai kartētu noteiktas darbības ar kontrollera nospiestajām vai atlaistajām pogām. Šajā koda sadaļā tiek iestatīti nosacījumi, ja tiek nospiesta poga Uz augšu vai Uz leju. Ja tā, tad notiks noteikta uzvedība, piemēram, rokas pacelšana, nolaišana vai apstāšanās. Ņemiet vērā, ka Claw projekta pēdējā koda sadaļa atbilst tam pašam skaidrojumam. |
3. iespējas kopsavilkums: notikumu izmantošana
Priekšrocības |
Ierobežojumi |
Situācijas piemērs |
|
|
|