Мазмұны:
Бейне: Arduino және аналогтық джойстикпен 28BYJ-48 қадамдық мотордың бұрыштық позициялық бақылауы: 3 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Бұл мен 28BYJ-48 сатылы қозғалтқышты басқару схемасы, мен оны соңғы курстық диссертациялық жобамның бір бөлігі ретінде қолдандым. Мен бұны бұрын көрген емеспін, сондықтан мен ашқан нәрсені жүктеймін деп ойладым. Бұл басқа біреуге көмектеседі деп үміттенемін!
Код негізінен қадамдық моторға аналогтық джойстиктің бұрыштық орнын «көшіруге» мүмкіндік береді, яғни егер сіз джойстикті алға қарай итерсеңіз, қозғалтқыш «солтүстікке» бағытталған. джойстикті батысқа қарай итеріңіз, қозғалтқыш сол бағытта бұрылады.
Іске асыру үшін мен джойстик босатылса, яғни бұрыштық орналасуы болмаса, қозғалтқыш «үй» бағытына қайтуын талап етті. Үйдің бағыты шығысқа қарайды, ал қозғалтқыш (немесе шығыс білігіне бекітілген кез келген көрсеткішті / құрылғыны жалға беру кезінде) қосылған кезде де осы бағытта болуы керек.
Жабдықтар
Arduino Uno немесе ұқсас
нан тақтасы және секіргіш сымдарды таңдау (еркектен еркекке, еркектен әйелге)
5В қуат көзі
Аналогтық джойстик модулі (бір сәтте басу мүмкіндігімен, бұл «үй» жағдайын жеңіл демалуға мүмкіндік береді
28BYJ-48 сатылы қозғалтқыш және ULN2003 қадамдық жүргізушісі
Қалам, қағаз және блютак (немесе қозғалтқышқа бекітуге арналған кез келген басқа көрсеткіш құрылғы!)
1 -қадам: 1 -қадам: Орнату
Қадамдық қозғалтқышты қадам жүргізушісіне қосыңыз және түйреуіштерді келесі түрде қосыңыз:
IN1 - Arduino түйреуіші 8
IN2 - Arduino түйрегіш 9
IN3 - Arduino түйрегіші 10
IN4 - Arduino түйрегіші 11
5В қуат көзін табақшадағы қорек жолдарына, ULN2003 5в кірістерін қорек жолдарына қосыңыз. жерасты рельсін Arduino -да жерге қосыңыз.
джойстик үшін келесі түрде қосылыңыз:
Ажыратқыш түйреуіш - Arduino істікші 2
X осі - Arduino A0 (аналогы 0 -де)
Y осі - Arduino A1
+5V - Arduino 5V шығысы
GND - Arduino GND
Ақырында, тақтаның негізін басқа Arduino GND түйреуішіне қосыңыз
2 -қадам: 2 -қадам: Кодты түсіндіру
Мен жүктеуге және қолдануға арналған Arduino кодын толық енгіздім. Бірақ бұл жерде тиісті бөліктерді түсіндіруге бар күшімді саламын.
Бұл кодтың теориясы - джойстик алатын орын графикке бөлінеді, ортасында 0, 0. алайда джойстиктің кірістері орталықта (шамамен) 512 -де тұрады, сондықтан бұл екі функцияны жеңу үшін X және Y осінен оқылатын мәнді «нөлге» келтіру керек. сіз пайдаланатын қуат көзіне байланысты сізге ZeroX және ZeroY функцияларының мәндерін өзгерту қажет болуы мүмкін, осылайша сіздің джойстик демалыс кезінде сенімді 0 мәнін береді.
X, Y мәндері оқылғанда, олар алдымен math.h кітапханасындағы atan2 () функциясын қолданып радианға айналады. Бұл функцияны түсіндіру бұл нұсқаулықтың шеңберінен тыс, бірақ оны іздеңіз - бұл геометрияның қарапайым трюгі!
Ақырында, бұрын біз радармен емес, градуспен жұмыс істейтіндердің өмірін жеңілдету үшін atan2 () арқылы есептелген рад мәні градусқа айналдырылады.
Циклдің жоғарғы жағында «үй» орнын жылжыту үшін джойстиктің бір сәттік түймесін басуға мүмкіндік беретін кодтың кішкене үзіндісі орналасқан. Бұл кодты тестілеу кезінде өте пайдалы болды, бірақ мен оны кейбір жағдайларда қалай пайдалы болатынын көріп тұрмын.
Енді кодтың негізгі бөлігіне өтіңіз! біз джойстик X, Y координаттарын екі рет 10 м кідіріспен оқудан бастаймыз, содан кейін олардың бірдей екенін тексереміз - мен джойстик кейде оқтын -оқтын шығарылатынын анықтадым, және бұл шамалы кідіріс мотордың айналуын тоқтату үшін жеткілікті болды.. Бұл сондай -ақ қысқа мерзімді кідіріс, ол әдейі енгізуге кедергі жасамайды.
Кодтың қалған бөлігі түсінікті және мен оны құжаттау үшін бар күшімді салдым; IF мәлімдемелерінің сериясы джойстиктің қазіргі бұрышын қозғалтқыш бұрышымен салыстырады және қозғалтқышты сол бұрышқа жылжытады. 28BYJ-48 бір дәрежеде 5.689 қадамға ие, сондықтан біз қажетті қозғалысты осы тақ санға көбейтеміз!
Ең көп түсіндіруді қажет ететін кодтың бір бөлігі - бұл мен «орауыш іс» деп атадым. Тіпті, джойстик пен мотор, мысалы. +175 °, ал джойстик кейіннен -175 ° -қа жылжиды (джойстикте тек 10 ° қозғалысы, батыстың солтүстігінен батысқа қарай оңтүстікке қарай), қозғалтқыш Дұрыс емес бағытта 350 ° жылжиды! бұл үшін арнайы іс жазылды.
Айналдыру жағдайы қозғалтқыш пен джойстиктің қарама -қарсы белгілерін тексеруден басталады, яғни қозғалтқыш оң, джойстик теріс немесе керісінше. Сондай -ақ, джойстик пен қозғалтқыштың абсолюттік (яғни оң мәндерінің) қосындысы 180 ° жоғары екенін тексереді.
Егер бұл екі тұжырым да рас болса, онда функция қозғалтқыштың сағат тілімен (қозғалтқыш мәні теріс) немесе сағат тіліне қарсы (егер қозғалтқыш мәні оң болса) қозғалу керектігін тексереді.
Қозғалтқыш бұрышы мен джойстик бұрышының абсолюттік мәндері жинақталады және 360 ° -тан шегеріліп, қозғалыс қашықтығы анықталады. Соңында, қозғалтқыш бұрышы (қазір джойстиктің бұрышын көрсетеді) осылайша жаңартылады.
3 -қадам: Аяқталды
Сонымен, кодты Arduino -ға жүктеп, іске қосу ғана қалды! Жобаның қалай жұмыс істейтінін білу үшін жоғарыдағы бейнені қараңыз. Бұл камералық гимбалдар, роботтық қолдар және басқа да көптеген қосымшалар үшін пайдалы болар еді!
Егер сіз кодты қолдансаңыз, маған хабарлаңыз, егер сіз кодты жақсартуға болатын жерлерді көрсеңіз, мен сіздің пікіріңізді білгім келеді.
Ұсынылған:
Аналогтық джойстикпен Arduino жарықдиодты басқару: 6 қадам
Arduino светодиодты аналогтық джойстикпен басқару: Бұл оқулықта біз жарықдиодты басқару үшін аналогтық джойстикті қолдануды үйренеміз
28BYJ-48 5В қадамдық қозғалтқыш және A4988 драйвері: 4 қадам
28BYJ-48 5V қадамдық қозғалтқышы мен A4988 драйвері: Сіз Arduino немесе micro: bit-тің бірнеше шығысын қолдана отырып, роботты дәл бұрышпен бұруды алғыңыз келді ме? Мұның бәрі арзанға ма? Бұл сізге нұсқаулық! Бұл нұсқаулықта біз өте арзан сатылы қозғалтқышты қалай басқаруға болатынын көреміз
Микроконтроллерсіз қадамдық мотор басқарылатын қадамдық қозғалтқыш!: 6 қадам
Микроконтроллерсіз қадамдық мотор басқарылатын қадамдық қозғалтқыш! Бұл жоба күрделі схеманы немесе микроконтроллерді қажет етпейді. Сондықтан көп созбай, бастайық
Өздігінен жүру және PS2 джойстикпен басқарылатын Arduino автокөлігі: 6 қадам
Өздігінен жүретін және PS2 джойстикпен басқарылатын Arduino автокөлігі: Сәлеметсіз бе, менің атым Хоакин, мен Arduino әуесқойымын. Өткен жылы мен Arduino-ға құмар болдым, мен әр түрлі нәрсені жасай бастадым, бұл автоматты және джойстикпен басқарылатын көлік-олардың бірі
Қадамдық мотор басқарылатын қадамдық мотор - Қадамдық мотор айналмалы кодер ретінде: 11 қадам (суреттермен)
Қадамдық мотор басқарылатын қадамдық мотор | Қадамдық мотор айналмалы кодер ретінде: Бірнеше қадамдық қозғалтқыштар жатып, бірдеңе жасағысы келеді ме? Бұл нұсқаулықта Arduino микроконтроллерінің көмегімен басқа қадамдық қозғалтқыштың орнын басқару үшін айналмалы кодер ретінде қадамдық қозғалтқышты қолданайық. Сонымен, көп созбай, келейік