VEXcode IQ ішіндегі реттелетін контроллер коды

Контроллерді пайдалану тапсырманы орындау үшін роботты басқаруды және жылжытуды жеңілдетеді. Дегенмен, Drive бағдарламасын пайдалануда шектеулер бар және робот құрастыруыңызға немесе орындалатын тапсырмаға байланысты әртүрлі басқару элементтері қажет болуы мүмкін. Контроллерді кодтау контроллерді роботқа және тапсырмаға жақсырақ сәйкестендіру үшін оңтайландыруға мүмкіндік береді. VEXcode IQ жүйесінде контроллерді кодтаудың бірнеше жолы бар. Әрқайсысының артықшылықтары мен шектеулері бар, ал кейбір әдістер қалаған нәтижеге байланысты белгілі бір жағдайларға жақсырақ сәйкес келеді.

Бұл мақала сізге контроллерді VEXcode IQ жүйесінде теңшелетін кодтаудың үш түрлі нұсқасымен таныстырады. Әрбір әдіс оның артықшылықтарымен, шектеулерімен және әдісті таңдау кезінде нұсқау беруге көмектесетін мысалды пайдалану жағдайымен сипатталады. Осы мақаланың мақсаттары үшін көрсетілген барлық код мысалдары Clawbot үшін жасалған. Дегенмен, бірдей ұғымдарды builds.vex.comсайтында табылған көптеген басқа құрылымдарға және реттелетін құрылымдарға қолдануға болады.

1-нұсқа: Құрылғы конфигурациясында түймелерді тағайындау

Бұл опция BaseBot немесе Clawbot сияқты стандартты құрастыруды пайдаланған кезде және тез тұрып, іске қосқыңыз келсе тамаша.

Бұл опция құрылғы конфигурациясындағы контроллердегі түймелерге қозғалтқыштарды, жетекті немесе мотор топтарын тағайындауға мүмкіндік береді. Құрылғы конфигурациясында контроллерге түймелерді тағайындау жолы туралы қосымша ақпарат алу үшін осы мақаланы қараңыз.

VEX IQ контроллері

1-опцияның қысқаша мазмұны: Құрылғы конфигурациясында түймелерді тағайындау

Артықшылықтары

Шектеулер

Мысал жағдай

  • Кодтауды қажет етпейтін жылдам орнату
  • Ең қарапайым әдіс
  • Оңай реттеледі
  • Түймелерге жеке қозғалтқыштарды, стандартты жетекті және мотор топтарын тағайындай алады
  • Түймелерді тағайындау контроллердегі түймелер санымен шектеледі
  • Қозғалтқыш 4 қозғалтқыштан аспауы немесе реттелуі мүмкін емес (тек стандартты жетекке қолдау көрсетіледі, H дискісіне, голономикалық немесе басқа реттелетін жетекке емес)
  • BaseBot, Clawbot сияқты стандартты құрылымды басқару немесе сол стандартты құрылымдардың қарапайым модификациясы. Мысалы, қозғалтқыш тобымен басқарылатын алдыңғы жағына бекітілген кірісі бар BaseBot.
  • Қай түймелер роботтағы әртүрлі әрекеттерге сәйкес келетінін көп кодтаусыз жылдам басқару

2-нұсқа: Forever циклін пайдалану

Егер стандартты құрастырудың орнына реттелетін құрастыруды пайдалансаңыз немесе контроллерде көбірек теңшеу мүмкіндігін алғыңыз келсе, бұл опция жақсы. Forever циклін пайдалану контроллер үшін теңшелетін кодты жасауға тамаша кіріспе болып табылады.

Бұл опция Controller үшін барлық шарттарды және онымен байланысты түймелерді Forever циклінде орналастырады. Бұл әсіресе реттелетін құрастыру конструкцияларында көбірек икемділікті қамтамасыз етеді, бірақ сонымен бірге кейбір кодтау тәжірибесін қажет етеді. Дегенмен, бұл опцияны пайдаланған кезде ескерілетін мәселе - жобаңыздың ұзақтығы мен күрделілігі. Неғұрлым көп шарттар қосылса, код стек соғұрлым ұзағырақ болуы мүмкін. Бұл бірнеше блоктарды ретімен орындау керек дегенді білдіреді, ал блоктар көп болған кезде бұл жобаның орындалуын баяулатуы мүмкін. Жобаның баяу орындалуы Controller түймелерін басу мен робот әрекетін көру арасында кідіріс тудыруы мүмкін.

Төменде көрсетілген нақты мысал роботты басқару және нысандармен әрекеттесу үшін тырнақ пен қолды басқару үшін теңшелетін дизайн роботымен (мысалы, реттелетін жетектері бар робот) Forever циклін пайдаланудың бір жолы болып табылады.

Мәңгі циклді пайдалану кескіні

"2-нұсқа" VEXcode IQ (2-буын) жоба файлын жүктеп алыңыз >

ескертпе: 1-ші буын Clawbot пайдаланылса, жоғарыдағы жобада көзделгендей жұмыс істеу үшін қол моторын Құрылғы конфигурациясында кері бұру қажет болады.

2-нұсқа кодының түсіндірмесі.

Код бөлігі

Түсіндіру

ArmMotor тоқтатуды ұстап тұруға және ClawMotor тоқтатуды ұстауға орнату

Бұл код мысалы үшін Clawbot пайдаланылды. Контроллердегі түймелер қолды көтеру және түсіру үшін пайдаланылған кезде, түйме босатылған бойда, ауырлық күшінің әсерінен қол қайтадан төмен түседі. Қолды да, тырнақты да «ұстауға» орнату, контроллердегі түймелер босатылғаннан кейін де қол мен тырнақтың екеуі де орнында қалуын қамтамасыз етеді.

Қозғалтқыштың жылдамдығы мен айналуын орнату Түйме диаграммасы бар VEX IQ контроллері

Бұл код мысалы үшін Clawbot пайдаланылды. Контроллердегі түймелер қолды көтеру және түсіру үшін пайдаланылған кезде, түйме босатылған бойда, ауырлық күшінің әсерінен қол қайтадан төмен түседі. Қолды да, тырнақты да «ұстауға» орнату, контроллердегі түймелер босатылғаннан кейін де қол мен тырнақтың екеуі де орнында қалуын қамтамасыз етеді.

Forever циклі контроллерде қандай түймелердің басылып жатқанын үздіксіз тексеру үшін пайдаланылады.

[Motor жылдамдығын орнату] блоктары қозғалтқыш жылдамдығын A және D осі бойынша ағымдағы контроллердің орнына орнату үшін пайдаланылады. Бұл көлікті жетекте орнатумен бірдей. Бұл міндетті түрде көлікті қозғалтпайды, ол жай ғана орнатады.

Әрбір джойстик осі -100-ден +100-ге дейінгі мәнді қайтарады және ортаға қойылғанда нөлдік мәнді қайтарады. Бұл джойстик осьтері итерілген кезде -100% пен 100% тең болады дегенді білдіреді. 100 немесе -100-ге қарай осьтер неғұрлым алыс итерілсе, қозғалтқыш соғұрлым тезірек айналады.

Содан кейін [Айналдыру] блогы қозғалтқышты нақты жылжыту үшін пайдаланылады. Бұл бағыт орнатылғаннан кейін көлікке газды басқанмен бірдей. Бұл әрбір қозғалтқышты төрт контроллер осінің бірімен басқаруға мүмкіндік береді.

Контроллер E Up басылған жағдайда шартты оператор

Бұл код мысалы үшін Clawbot пайдаланылды. Контроллердегі түймелер қолды көтеру және түсіру үшін пайдаланылған кезде, түйме босатылған бойда, ауырлық күшінің әсерінен қол қайтадан төмен түседі. Қолды да, тырнақты да «ұстауға» орнату, контроллердегі түймелер босатылғаннан кейін де қол мен тырнақтың екеуі де орнында қалуын қамтамасыз етеді.

Контроллерде басылатын немесе босатылатын түймелермен белгілі бір әрекеттерді салыстыру үшін [Егер, әйтпесе, басқа болса] блогы пайдаланылады. Кодтың осы бөлімінде E Жоғары немесе E Төмен түймелері басылған жағдайда орнатылған шарттар. Олай болса, қолды көтеру және түсіру сияқты белгілі бір әрекеттер орын алады. Шарттың басқа бөлігі де бар, ешбір түйме басылмаса, қол қозғалуды тоқтатуға орнатылады.

Claw жобасындағы кодтың келесі бөлімі бірдей түсініктемеге сәйкес келетінін ескеріңіз.

2-нұсқаның қысқаша мазмұны: Forever циклін пайдалану

Артықшылықтары

Шектеулер

Мысал жағдай

  • Арнайы конструкцияларды, әсіресе 4-тен астам қозғалтқышы бар жетектерді орналастыра алады
  • Бір түймеге бірнеше әрекетті тағайындай алады
  • Контроллердегі әртүрлі осьтерге мінез-құлықтарды тағайындай алады (құрылғы конфигурациясындағы сол жақ аркада, оң жақтағы аркада, бөлінген аркада және танк дискінің жалғыз опцияларынан айырмашылығы)
  • Кейбір кодтау білімін қажет етеді (шарттар, циклдар және контроллердегі түймелер/джойстиктер туралы білім)
  • Жобаның баяу орындалу мүмкіндігі немесе түйменің жауап беру уақытының артта қалуы. Барлық пәрмендер бір Forever циклінің ішінде болғандықтан, кодтың орындалуы орнатылған шарттарға және код ұзындығына байланысты баяу жұмыс істей алады.
  • Контроллерді арнайы құрастырылған роботпен, әсіресе стандартты емес жетекпен бірге пайдалану
  • Бір түймеге бірнеше әрекетті тағайындағыңыз келгенде. Мысалы, F Жоғары түймесі басылғанда, тырнақ нысанды ашуға, алға жылжытуға, содан кейін жабуға болады.

3-нұсқа: Оқиғаларды пайдалану

Контроллеріңізді көп теңшеуді қаласаңыз, Оқиғаларды пайдалану - сіз үшін ең жақсы нұсқа. Түймені бір рет басу тырнақты ашу, қолды көтеру және белгіленген қашықтыққа алға қарай жүру үшін түймені басу сияқты бірнеше робот әрекетін тудыруы мүмкін. Forever циклінде әр түйменің бірнеше әрекетін кодтауға әрекет жасау жобаның орындалуын күрт баяулатады – оқиғаларды пайдалану мұны тиімдірек орындауға мүмкіндік береді.

Бұл опция жоба ағынын бұзу үшін оқиғаларды пайдаланады. Бұл Forever циклін пайдалануға ұқсас, бірақ түймені орындау жылдамырақ жауап беру уақытына ие болу үшін кодты ұйымдастыруға мүмкіндік береді. Жылдамырақ жауап беру уақыты контроллер түймелерін басу мен робот әрекетін көру арасындағы кешігуді көрмейсіз дегенді білдіреді. Бұл мысал алдыңғы жоба сияқты әрекеттерді көрсетеді, бірақ Мәңгі циклдің орнына Оқиғалар арқылы орындалады.

Forever циклінің орнына оқиғаларды пайдалану

"3-нұсқа" VEXcode IQ (2-буын) жоба файлын жүктеп алыңыз >

ескертпе: егер 1-ші буын Clawbot пайдаланылса, жоғарыдағы жобада көзделгендей жұмыс істеу үшін қол моторын Құрылғы конфигурациясында кері бұру қажет болады.

3-нұсқа кодының түсіндірмесі.

Код бөлігі

Түсіндіру

ArmMotor тоқтатуды ұстап тұруға және ClawMotor тоқтатуды ұстауға орнату

Бұл код мысалы үшін Clawbot пайдаланылды. Контроллердегі түймелер қолды көтеру және түсіру үшін пайдаланылған кезде, түйме босатылған бойда, ауырлық күшінің әсерінен қол қайтадан төмен түседі. Қолды да, тырнақты да «ұстауға» орнату, контроллердегі түймелер босатылғаннан кейін де қол мен тырнақтың екеуі де орнында қалуын қамтамасыз етеді.

LeftMotor жылдамдығын Controller A позициясына % орнатыңыз және leftMotorды алға айналдырыңыз Түйме диаграммасы бар VEX IQ контроллері

Бұл код мысалы үшін Clawbot пайдаланылды. Контроллердегі түймелер қолды көтеру және түсіру үшін пайдаланылған кезде, түйме босатылған бойда, ауырлық күшінің әсерінен қол қайтадан төмен түседі. Қолды да, тырнақты да «ұстауға» орнату, контроллердегі түймелер босатылғаннан кейін де қол мен тырнақтың екеуі де орнында қалуын қамтамасыз етеді.

{When controller axis} Оқиға блоктары контроллердегі төрт осьтің бірі джойстиктер арқылы өзгертілген кезде белгілі бір әрекеттерді іске қосу үшін пайдаланылады.

[Motor жылдамдығын орнату] блоктары қозғалтқыш жылдамдығын A және D осі бойынша ағымдағы контроллердің орнына орнату үшін пайдаланылады. Бұл көлікті жетекте орнатумен бірдей. Бұл міндетті түрде көлікті қозғалтпайды, ол жай ғана орнатады.

Әрбір джойстик осі -100-ден +100-ге дейінгі мәнді қайтарады және ортаға қойылғанда нөлдік мәнді қайтарады. Бұл джойстик осьтері итерілген кезде -100% пен 100% тең болады дегенді білдіреді. 100 немесе -100-ге қарай осьтер неғұрлым алыс итерілсе, қозғалтқыш соғұрлым тезірек айналады.

Содан кейін [Айналдыру] блогы қозғалтқышты нақты жылжыту үшін пайдаланылады. Бұл бағыт орнатылғаннан кейін көлікке газды басқанмен бірдей. Бұл әрбір қозғалтқышты төрт контроллер осінің бірімен басқаруға мүмкіндік береді.

Контроллердегі түймелер қолды көтеру және түсіру үшін пайдаланылған кезде, түйме босатылған бойда, ауырлық күшінің әсерінен қол қайтадан төмен түседі.

Бұл код мысалы үшін Clawbot пайдаланылды. Контроллердегі түймелер қолды көтеру және түсіру үшін пайдаланылған кезде, түйме босатылған бойда, ауырлық күшінің әсерінен қол қайтадан төмен түседі. Қолды да, тырнақты да «ұстауға» орнату, контроллердегі түймелер босатылғаннан кейін де қол мен тырнақтың екеуі де орнында қалуын қамтамасыз етеді.

{When controller axis} Оқиға блоктары белгілі бір әрекеттерді контроллерде басылатын немесе босатылатын түймелерге салыстыру үшін пайдаланылады. Кодтың осы бөлімінде E Жоғары немесе E Төмен түймелері басылған жағдайда орнатылған шарттар. Олай болса, қолды көтеру, түсіру немесе тоқтату сияқты белгілі бір әрекеттер орын алады.

Claw жобасындағы кодтың соңғы бөлімі бірдей түсініктемеден кейін келетінін ескеріңіз.

3-нұсқаның қысқаша мазмұны: Оқиғаларды пайдалану

Артықшылықтары

Шектеулер

Мысал жағдай

  • Арнайы конструкцияларды, әсіресе 4-тен астам қозғалтқышы бар жетектерді орналастыра алады
  • Бір түймеге бірнеше әрекетті тағайындай алады
  • Контроллердегі әртүрлі осьтерге мінез-құлықтарды тағайындай алады (құрылғы конфигурациясындағы сол жақ аркада, оң жақтағы аркада, бөлінген аркада және танк дискінің жалғыз опцияларынан айырмашылығы)
  • Кодты жылдамырақ орындау және осылайша түймелердің жауап беру қабілеті (әрбір шарт бөлек шақырылады және кодтың бір дестесіне ендірілмейді)
  • Опциялар (шарттар, циклдар, оқиғалар және контроллердегі түймелер/джойстиктер туралы білім) туралы ең кодтау білімін талап етеді.
  • 1-буын VEX IQ миын пайдалансаңыз, жобада тым көп Оқиғалардың болуы Мидың өңдеу шектеулеріне байланысты жобаның іске қосылмауына әкелуі мүмкін.
  • Контроллерді арнайы құрастырылған роботпен, әсіресе стандартты емес жетекпен бірге пайдалану
  • Бір түймеге кешігусіз бірнеше әрекетті тағайындағыңыз келгенде. Мысалы, F Жоғары түймесі басылғанда, тырнақ нысанды ашуға, алға жылжытуға, содан кейін жабуға болады.

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

Last Updated: