Контроллерді пайдалану тапсырманы орындау үшін роботты басқаруды және жылжытуды жеңілдетеді. Дегенмен, Drive бағдарламасын пайдалануда шектеулер бар және робот құрастыруыңызға немесе орындалатын тапсырмаға байланысты әртүрлі басқару элементтері қажет болуы мүмкін. Контроллерді кодтау контроллерді роботқа және тапсырмаға жақсырақ сәйкестендіру үшін оңтайландыруға мүмкіндік береді. VEXcode IQ жүйесінде контроллерді кодтаудың бірнеше жолы бар. Әрқайсысының артықшылықтары мен шектеулері бар, ал кейбір әдістер қалаған нәтижеге байланысты белгілі бір жағдайларға жақсырақ сәйкес келеді.
Бұл мақала сізге контроллерді VEXcode IQ жүйесінде теңшелетін кодтаудың үш түрлі нұсқасымен таныстырады. Әрбір әдіс оның артықшылықтарымен, шектеулерімен және әдісті таңдау кезінде нұсқау беруге көмектесетін мысалды пайдалану жағдайымен сипатталады. Осы мақаланың мақсаттары үшін көрсетілген барлық код мысалдары Clawbot үшін жасалған. Дегенмен, бірдей ұғымдарды builds.vex.comсайтында табылған көптеген басқа құрылымдарға және реттелетін құрылымдарға қолдануға болады.
1-нұсқа: Құрылғы конфигурациясында түймелерді тағайындау
Бұл опция BaseBot немесе Clawbot сияқты стандартты құрастыруды пайдаланған кезде және тез тұрып, іске қосқыңыз келсе тамаша.
Бұл опция құрылғы конфигурациясындағы контроллердегі түймелерге қозғалтқыштарды, жетекті немесе мотор топтарын тағайындауға мүмкіндік береді. Құрылғы конфигурациясында контроллерге түймелерді тағайындау жолы туралы қосымша ақпарат алу үшін осы мақаланы қараңыз.
1-опцияның қысқаша мазмұны: Құрылғы конфигурациясында түймелерді тағайындау
Артықшылықтары |
Шектеулер |
Мысал жағдай |
|
|
|
2-нұсқа: Forever циклін пайдалану
Егер стандартты құрастырудың орнына реттелетін құрастыруды пайдалансаңыз немесе контроллерде көбірек теңшеу мүмкіндігін алғыңыз келсе, бұл опция жақсы. Forever циклін пайдалану контроллер үшін теңшелетін кодты жасауға тамаша кіріспе болып табылады.
Бұл опция Controller үшін барлық шарттарды және онымен байланысты түймелерді Forever циклінде орналастырады. Бұл әсіресе реттелетін құрастыру конструкцияларында көбірек икемділікті қамтамасыз етеді, бірақ сонымен бірге кейбір кодтау тәжірибесін қажет етеді. Дегенмен, бұл опцияны пайдаланған кезде ескерілетін мәселе - жобаңыздың ұзақтығы мен күрделілігі. Неғұрлым көп шарттар қосылса, код стек соғұрлым ұзағырақ болуы мүмкін. Бұл бірнеше блоктарды ретімен орындау керек дегенді білдіреді, ал блоктар көп болған кезде бұл жобаның орындалуын баяулатуы мүмкін. Жобаның баяу орындалуы Controller түймелерін басу мен робот әрекетін көру арасында кідіріс тудыруы мүмкін.
Төменде көрсетілген нақты мысал роботты басқару және нысандармен әрекеттесу үшін тырнақ пен қолды басқару үшін теңшелетін дизайн роботымен (мысалы, реттелетін жетектері бар робот) Forever циклін пайдаланудың бір жолы болып табылады.
"2-нұсқа" VEXcode IQ (2-буын) жоба файлын жүктеп алыңыз >
ескертпе: 1-ші буын Clawbot пайдаланылса, жоғарыдағы жобада көзделгендей жұмыс істеу үшін қол моторын Құрылғы конфигурациясында кері бұру қажет болады.
2-нұсқа кодының түсіндірмесі.
Код бөлігі |
Түсіндіру |
Бұл код мысалы үшін Clawbot пайдаланылды. Контроллердегі түймелер қолды көтеру және түсіру үшін пайдаланылған кезде, түйме босатылған бойда, ауырлық күшінің әсерінен қол қайтадан төмен түседі. Қолды да, тырнақты да «ұстауға» орнату, контроллердегі түймелер босатылғаннан кейін де қол мен тырнақтың екеуі де орнында қалуын қамтамасыз етеді. |
|
Бұл код мысалы үшін Clawbot пайдаланылды. Контроллердегі түймелер қолды көтеру және түсіру үшін пайдаланылған кезде, түйме босатылған бойда, ауырлық күшінің әсерінен қол қайтадан төмен түседі. Қолды да, тырнақты да «ұстауға» орнату, контроллердегі түймелер босатылғаннан кейін де қол мен тырнақтың екеуі де орнында қалуын қамтамасыз етеді. Forever циклі контроллерде қандай түймелердің басылып жатқанын үздіксіз тексеру үшін пайдаланылады. [Motor жылдамдығын орнату] блоктары қозғалтқыш жылдамдығын A және D осі бойынша ағымдағы контроллердің орнына орнату үшін пайдаланылады. Бұл көлікті жетекте орнатумен бірдей. Бұл міндетті түрде көлікті қозғалтпайды, ол жай ғана орнатады. Әрбір джойстик осі -100-ден +100-ге дейінгі мәнді қайтарады және ортаға қойылғанда нөлдік мәнді қайтарады. Бұл джойстик осьтері итерілген кезде -100% пен 100% тең болады дегенді білдіреді. 100 немесе -100-ге қарай осьтер неғұрлым алыс итерілсе, қозғалтқыш соғұрлым тезірек айналады. Содан кейін [Айналдыру] блогы қозғалтқышты нақты жылжыту үшін пайдаланылады. Бұл бағыт орнатылғаннан кейін көлікке газды басқанмен бірдей. Бұл әрбір қозғалтқышты төрт контроллер осінің бірімен басқаруға мүмкіндік береді. |
|
Бұл код мысалы үшін Clawbot пайдаланылды. Контроллердегі түймелер қолды көтеру және түсіру үшін пайдаланылған кезде, түйме босатылған бойда, ауырлық күшінің әсерінен қол қайтадан төмен түседі. Қолды да, тырнақты да «ұстауға» орнату, контроллердегі түймелер босатылғаннан кейін де қол мен тырнақтың екеуі де орнында қалуын қамтамасыз етеді. Контроллерде басылатын немесе босатылатын түймелермен белгілі бір әрекеттерді салыстыру үшін [Егер, әйтпесе, басқа болса] блогы пайдаланылады. Кодтың осы бөлімінде E Жоғары немесе E Төмен түймелері басылған жағдайда орнатылған шарттар. Олай болса, қолды көтеру және түсіру сияқты белгілі бір әрекеттер орын алады. Шарттың басқа бөлігі де бар, ешбір түйме басылмаса, қол қозғалуды тоқтатуға орнатылады. Claw жобасындағы кодтың келесі бөлімі бірдей түсініктемеге сәйкес келетінін ескеріңіз. |
2-нұсқаның қысқаша мазмұны: Forever циклін пайдалану
Артықшылықтары |
Шектеулер |
Мысал жағдай |
|
|
|
3-нұсқа: Оқиғаларды пайдалану
Контроллеріңізді көп теңшеуді қаласаңыз, Оқиғаларды пайдалану - сіз үшін ең жақсы нұсқа. Түймені бір рет басу тырнақты ашу, қолды көтеру және белгіленген қашықтыққа алға қарай жүру үшін түймені басу сияқты бірнеше робот әрекетін тудыруы мүмкін. Forever циклінде әр түйменің бірнеше әрекетін кодтауға әрекет жасау жобаның орындалуын күрт баяулатады – оқиғаларды пайдалану мұны тиімдірек орындауға мүмкіндік береді.
Бұл опция жоба ағынын бұзу үшін оқиғаларды пайдаланады. Бұл Forever циклін пайдалануға ұқсас, бірақ түймені орындау жылдамырақ жауап беру уақытына ие болу үшін кодты ұйымдастыруға мүмкіндік береді. Жылдамырақ жауап беру уақыты контроллер түймелерін басу мен робот әрекетін көру арасындағы кешігуді көрмейсіз дегенді білдіреді. Бұл мысал алдыңғы жоба сияқты әрекеттерді көрсетеді, бірақ Мәңгі циклдің орнына Оқиғалар арқылы орындалады.
"3-нұсқа" VEXcode IQ (2-буын) жоба файлын жүктеп алыңыз >
ескертпе: егер 1-ші буын Clawbot пайдаланылса, жоғарыдағы жобада көзделгендей жұмыс істеу үшін қол моторын Құрылғы конфигурациясында кері бұру қажет болады.
3-нұсқа кодының түсіндірмесі.
Код бөлігі |
Түсіндіру |
Бұл код мысалы үшін Clawbot пайдаланылды. Контроллердегі түймелер қолды көтеру және түсіру үшін пайдаланылған кезде, түйме босатылған бойда, ауырлық күшінің әсерінен қол қайтадан төмен түседі. Қолды да, тырнақты да «ұстауға» орнату, контроллердегі түймелер босатылғаннан кейін де қол мен тырнақтың екеуі де орнында қалуын қамтамасыз етеді. |
|
Бұл код мысалы үшін Clawbot пайдаланылды. Контроллердегі түймелер қолды көтеру және түсіру үшін пайдаланылған кезде, түйме босатылған бойда, ауырлық күшінің әсерінен қол қайтадан төмен түседі. Қолды да, тырнақты да «ұстауға» орнату, контроллердегі түймелер босатылғаннан кейін де қол мен тырнақтың екеуі де орнында қалуын қамтамасыз етеді. {When controller axis} Оқиға блоктары контроллердегі төрт осьтің бірі джойстиктер арқылы өзгертілген кезде белгілі бір әрекеттерді іске қосу үшін пайдаланылады. [Motor жылдамдығын орнату] блоктары қозғалтқыш жылдамдығын A және D осі бойынша ағымдағы контроллердің орнына орнату үшін пайдаланылады. Бұл көлікті жетекте орнатумен бірдей. Бұл міндетті түрде көлікті қозғалтпайды, ол жай ғана орнатады. Әрбір джойстик осі -100-ден +100-ге дейінгі мәнді қайтарады және ортаға қойылғанда нөлдік мәнді қайтарады. Бұл джойстик осьтері итерілген кезде -100% пен 100% тең болады дегенді білдіреді. 100 немесе -100-ге қарай осьтер неғұрлым алыс итерілсе, қозғалтқыш соғұрлым тезірек айналады. Содан кейін [Айналдыру] блогы қозғалтқышты нақты жылжыту үшін пайдаланылады. Бұл бағыт орнатылғаннан кейін көлікке газды басқанмен бірдей. Бұл әрбір қозғалтқышты төрт контроллер осінің бірімен басқаруға мүмкіндік береді. |
|
Бұл код мысалы үшін Clawbot пайдаланылды. Контроллердегі түймелер қолды көтеру және түсіру үшін пайдаланылған кезде, түйме босатылған бойда, ауырлық күшінің әсерінен қол қайтадан төмен түседі. Қолды да, тырнақты да «ұстауға» орнату, контроллердегі түймелер босатылғаннан кейін де қол мен тырнақтың екеуі де орнында қалуын қамтамасыз етеді. {When controller axis} Оқиға блоктары белгілі бір әрекеттерді контроллерде басылатын немесе босатылатын түймелерге салыстыру үшін пайдаланылады. Кодтың осы бөлімінде E Жоғары немесе E Төмен түймелері басылған жағдайда орнатылған шарттар. Олай болса, қолды көтеру, түсіру немесе тоқтату сияқты белгілі бір әрекеттер орын алады. Claw жобасындағы кодтың соңғы бөлімі бірдей түсініктемеден кейін келетінін ескеріңіз. |
3-нұсқаның қысқаша мазмұны: Оқиғаларды пайдалану
Артықшылықтары |
Шектеулер |
Мысал жағдай |
|
|
|