Balansuojantis robotas su bekolektoriniais varikliais

Jau keletą kartą bandžiau padaryti balansuojančius robotus su skirtingais varikliais. Kolektoriniais ir žingsniniais. Su kolektoriniu varikliu galima padaryti gerai tik tokiu atveju, jei reduktoriai nekliba. Man tokių variklių nepasitaikė – visi daugiau ar mažiau kliba. Žingsninius variklius galima naudoti be reduktorių, reiškia jokio klibėjimo nėra. Žingsnis (1,8 laipsnio mano naudojamuose varikliuose) yra per daug grubus balansavimui, tačiau dabartiniai kontroleriai turi gerą dalyką – mikro žingsnius, kurių pagalba variklis sukasi labai švelniai, be jokių šokinėjimų. Turi tai ir minusų – variklio jėga mažėja. Bet rezultatas geresnis gavosi su žingsniniais varikliais. Neabejotinai.

Tačiau galima dar pabandyti panaudoti trifazius variklius. Svarbiausia, kad galėtų patikimai suktis labai mažu greičiu. Dabar tokie varikliai naudojami gimbaluose (kameros stabilizacija). Pažiūrėjus kaip ten veikia, akivaizdu – gali suktis labai lėtai. Kaip tai padaroma? Pvz. jei pabandyt kokį nors lėktuvų modeliams skirtą trifazį variklį, galima pastebėt, kad mažomis apsukomis jis sukasi blogai. Bet jis ne tam ir skirtas. Varikliai, kurie skirti gimbalams, skiriasi tuo, kad ten suvyniota daug daugiau vijų. Reiškia KV (apsukos vienam voltui) daug mažesnės. Reiškia suksis lėčiau. Bet žiūrint į gimbalo veikimą atrodo, kad ten žingsniniai varikliai, taip tiksliai jie gali pasisukti. Iš esmės, galima sakyti, kad taip ir yra. Variklio padėtis išlaikoma keičiant įtampas tarp fazių. Praktiškai taip pat, kaip ir žingsniniame variklyje, kai naudojami mikro žingsniai.

Trifazių variklių valdymas – ne pats paprasčiausias dalykas. Dviejų variklių valdymui užtenka paprasto atmega 328 mikrokontrolerio. Jis gali išduoti 6 PWM signalus. Be to, reikalingi draiveriai varikliams. Kadangi jie dažniausiai daromi iš smulkių SMD elementų, lituoti juos nelabai patogu. Todėl paprasčiausias sprendimas šiuo atveju – naudoti gimbalo kontrolerį. Ten yra viskas ko reikia – atmega 328 ir du variklių draiveriai. Galima sakyti, kad tai tas pats arduino, tik su variklių draiveriais. Daugiau jokių skirtumų. Belieka programinė dalis…

Nusipirkau du variklius. Šiek tiek kitokios formos, nei buvo pas mane gimbale. Tokius labai patogu naudoti kaip ratus. Gaunasi variklis pačiame rate, panašiai taip, kaip yra riedžiuose.

Beje, riedis balansuoja taip pat, kaip ir balansuojantis robotas. Kodėl jo ratai gali suktis labai lėtai ir labai tiksliai? Ten tie patys trifaziai varikliai. Jei pažiūrėsim į variklio vidų, pamatysim, kad jis turi daug polių (26-38, gali būti ir daugiau). Kuo daugiau polių, tuo tiksliau gali suktis, tuo daugiau jėgos turi. Bet ten yra ir dar vienas skirtumas. Yra rato padėties davikliai. Tie davikliai leidžia žinoti, kaip sukasi ratas, kokioje padėtyje jis yra, kada reikia keisti fazes. Kai variklis be daviklių, jis suksis gerai kol nebus tokios apkrovos, kuriai jis jau per silpnas. Kai jau negali išlaikyti padėties variklis grubiai prasisuka. Padėties davikliai leidžia išvengti tokios situacijos.

Gimbalo varikliai be padėties daviklių, tačiau kameros stabilizavimo atveju tai nebūtina. Jei variklis prašoks reikiamą padėtį, nieko blogo neįvyks. Tiesiog variklio jėgos turi užtekti norimo dydžio kamerai. Žinoma, su davikliais būtų geriau, tačiau tuo pačiu daug sudėtingiau ir brangiau.

Roboto korpusas atspausdintas 3D spausdintuvu.

Kontroleris, kaip jau minėjau, nuo gimbalo. Paaiškėjo, kad jame yra bootloaderis, reiškia iš karto galima naudoti kaip Arduino.

Ant papildomos plokštės įdėjau šviesos diodą, garsiakalbiuką (piezo buzzer), porą varžų akumuliatoriaus įtampos matavimui, ir lizdą bluetooth moduliui.

Ratai irgi atspausdinti. Kaip ir iki šiol buvusiuose robotuose, kaip padangos panaudoti guminiai hermetizacijos žiedai.

Akumuliatorius panaudotas vienas iš anksčiau naudotų lėktuvuose. Turiu kelis tokius pusiau nusibaigusius, bet čia daug srovės nereikia, tai visai gerai tinka.

Teko gerokai pastudijuot gimbalo valdymo programą, kad suprast kaip valdyt variklius. Aš nemažai nagrinėjau BruGi programą. Kaip jau minėjau, varikliai veikia panašiai kaip žingsniniai, t.y galima laikyti bet kokią padėtį, tačiau blogai tai, kad varikliai gerokai kaista. Galima mažinti galingumą, tada nustoja kaisti, bet sumažėja jėga. Iš pradžių kėlė abejonių, ar nebus per mažai galios. Tačiau kaip paaiškėjo, galios užtenka. Balansavimui vietoje – sumažinu, o jei reikia važiuoti greičiau – padidinu. Visa tai reguliuojasi automatiškai, priklausomai nuo sukimosi greičio.

Kadangi varikliai pasisuka lygiai tiek, kiek buvo nurodyta, nereikia enkoderių. Be to, sukasi idealiai vienodai, kaip ir žingsniniai. Daugiau programinėje dalyje nėra nieko naujo, tas pats LQR reguliatorius, kaip ir paskutiniame robote.

Bet rezultatas labai neblogas. Važinėja tiksliai kaip ir su žingsniniais varikliais, bet čia galimos ir didelės apsukos, todėl važinėja daug greičiau. Greitis ribojamas tik tuo, kad reikia kompensuoti stabdymo – greitėjimo jėgas pasvirimu, o tas pasvirimas negali būti neribotas.

Valdomas per bluetooth, lygiai taip pat kaip ir anksčiau daryti robotai.

This entry was posted in Elektronika, Programavimas, Robotai. Bookmark the permalink.

One Response to Balansuojantis robotas su bekolektoriniais varikliais

  1. gintaras_bar says:

    Šaunuolis Remigijau! Puiku, kad sugebi rasti laiko tokiems smagiems projektams :)

Leave a Reply

Your email address will not be published. Required fields are marked *