Arduino servo SG90, MG995, MG996: dijagram povezivanja i upravljanja. Arduino servo SG90, MG995, MG996: dijagram povezivanja i upravljačka shema i vrste servo motora

Za rastavljanje našeg servo pogona potreban nam je odvijač. Jer Rastavljam vrlo mali servo pogon pa mi treba odgovarajući odvijač. Osobno koristim odvijače iz nekog jeftinog kineskog seta. Kupio sam ga na kiosku u podzemnom prolazu za oko 5 dolara, tako da nije jako skup.

Za otvaranje servo pogona potrebno je odvrnuti samo četiri vijka. Nalaze se na donjem poklopcu. Odvrnuti:

Uklanjanjem poklopca možete pregledati upravljačku jedinicu. Neću ulaziti u detalje, ionako ću ga maknuti odavde. Vidi se i motor do kojeg vode dvije žice.

Na vrhu je i poklopac nakon čijeg skidanja se vide zupčanici mjenjača. Vrijedno je napomenuti da su dva od njih pričvršćena na potenciometar - to je vrlo važno, jer da bi mjenjač nastavio obavljati svoju funkciju, morat ćemo zapravo slomiti potenciometar - jednostavno ćemo ga koristiti kao osovinu za zupčanici.

Zapravo, trebate ukloniti sve zupčanike iz servo pogona i staviti ih sa strane na neko vrijeme. Potenciometar (usput, to je također promjenjivi otpornik) izvadimo iz kućišta tako da ga odvijačem pažljivo gurnemo s donje strane serva.

Sada je, naime, došao trenutak bez povratka. Naravno, uvijek će biti moguće sve ponovno zalemiti, ali ovo je teže. Dakle - potenciometar odgrize.

Zatim, koristeći istu metodu, odvajamo upravljačku ploču s strujnim i signalnim žicama.


Zatim odgrizemo žice s motora. Ovdje budite oprezni i nemojte gristi kontakte sa samog motora - ako niste sigurni, bolje je ostaviti žicu s rezervom. Tada se može odlemiti. Grizem žicu sve do kontakta.

Napravimo inventuru.

Čini se da je sve na svom mjestu. Sada uzmimo naš potenciometar.

Činjenica je da se sada također okreće samo pod određenim kutom. A budući da je to osovina i na nju je pričvršćen najveći zupčanik na koji ćemo kasnije zapravo pričvrstiti kotač, moramo paziti da se on stalno okreće. Izvadimo dvije metalne ploče koje to sprječavaju. Dobivamo:

Nadam se da fotografija pokazuje što sam napravio. Istrgao sam ga malim kliještima, jer nisam imao ništa prikladnije pri ruci.
Sada morate odrezati graničnik na samom zupčaniku. Izgleda kao izbočina iz donjeg dijela zupčanika. Lako ga je pronaći, izgleda ovako.

Režemo ga.

I nakon toga možete početi sastavljati mjenjač natrag u kućište. Vratimo os koju smo prethodno napravili od potenciometra.

Zatim, jedan po jedan zupčanik, počevši od najmanjeg. Budite oprezni kada ubacujete zadnji zupčanik - on je posebno pričvršćen za os bivšeg potenciometra, jer je vrh osovine napravljen u obliku slova D. Ova izbočina mora stati u udubljenje zupčanika. Ispada nešto slično sljedećoj slici.

Gornji poklopac stavljamo na mjenjač kako se ne bi raspao tijekom daljnjeg rada.

Pa nije ostalo puno. Uzimamo žicu s konektorom koju smo prethodno odgrizli s ploče i odvajamo ožičenje u njoj. Ne biste ih trebali razdvajati na veliku udaljenost, dapače, jedan centimetar je sasvim dovoljan.

Čistimo dva od njih (u osnovi bilo koji, ali ja sam koristio crvenu i zelenu). Dovoljno je odrezati oko 3 mm izolacije. Za naše potrebe - više od.

Preostalu neogoljenu žicu jednostavno savijemo da nam ne smeta.

Prijeđimo na vruće stvari. Vrijeme je za zagrijavanje lemilice. Dok se lemilica zagrijavala, servo pogon sam učinio udobnijim.

Prvo što moramo učiniti je ukloniti ostatke starog lema koji su ostali na kontaktima motora. To radim pomoću pumpe za odlemljivanje, nakon prethodnog zagrijavanja kontakta s lemilicom do takvog stanja da se lem topi. Glavna stvar ovdje je ne pretjerivati ​​- stražnji poklopac motora je još uvijek plastičan i ne voli se dugo zagrijavati. Proces izgleda otprilike ovako:

Razumijem da se možda neće jako primijetiti ono što sam napravio, ali na kontaktima praktički nije ostalo lema, što sam želio.

Ima prekrasnih članaka o lemljenju u DI HALT-u. On je općenito genij, čini mi se. Link na njegov blog, zapravo ima puno stvari osim lemljenja, samo pretražite.
Ukratko, da biste napravili dobar lem, uvijek se prvo morate riješiti starog lema.
Ostale su dvije žice za lemljenje. Svatko tko je upoznat s lemljenjem može to učiniti za 5 sekundi. Nekome poput mene tko je inače drugi put u životu uzeo lemilicu u ruke, trebat će malo više vremena, ali svejedno - vrlo je jednostavno, svatko to može.
Kod lemljenja koristim topitelj koji doduše uvelike olakšava rad i s njim se puno lakše osigurava kvaliteta lemljenja. Osobno, po savjetu opet DI HALTA, već sam se zaljubila u LTI-120 na njegovom blogu, imam ga u tako modernoj teglici s kistom.

Zategnite četiri vijka.

To je sve, modifikacija servo je gotova. Nakon što ste servo pogon udobnije i čvršće pričvrstili u rukohvat, možete započeti testiranje.

Ovaj put se neću zabavljati s kontrolerom, već ću jednostavno primijeniti 5V napona iz napajanja na zelenu i crvenu žicu. Pažnja, u videu se čuje prilično glasan zvuk iz pogona.

Kao što vidite, sada ništa ne sprječava naš servo da se okreće bez zaustavljanja. Zvuk koji proizvodi disk zapravo nije tih, ali u principu je podnošljiv. To je vjerojatno sve za danas.

Ovaj članak govori o servoima: njihovom dizajnu, namjeni, savjetima za spajanje i upravljanje, vrstama servoagregata i njihovoj usporedbi. Krenimo naprijed i započnimo s onim što je servo.

Servo koncept

Pod servo pogonom najčešće se podrazumijeva mehanizam s elektromotorom, koji se može zamoliti da se okrene pod određenim kutom i zadrži taj položaj. Međutim, ovo nije potpuno potpuna definicija.

Da budemo precizniji, servo pogon je pogon kojim se upravlja preko negativne povratne sprege, što omogućuje preciznu kontrolu parametara gibanja. Servo pogon je svaka vrsta mehaničkog pogona koji sadrži senzor (položaj, brzina, sila itd.) i upravljačku jedinicu pogona koja automatski održava potrebne parametre na senzoru i uređaju prema zadanoj vanjskoj vrijednosti.

Drugim riječima:

    Servo pogon prima vrijednost upravljačkog parametra kao ulaz. Na primjer, kut rotacije.

    Upravljačka jedinica uspoređuje ovu vrijednost s vrijednošću na svom senzoru.

    Na temelju rezultata usporedbe, pogon izvodi neku radnju: na primjer, okreće se, ubrzava ili usporava kako bi vrijednost unutarnjeg senzora postala što bliža vrijednosti vanjskog upravljačkog parametra.

Najčešći su servo koji drže zadani kut i servo koji održavaju zadanu brzinu rotacije.

Dolje je prikazan tipični hobi servo.

Kako su dizajnirani servo motori?

Uređaj za servo pogon

Servo pogoni imaju nekoliko komponenti.

Pogon - elektromotor sa mjenjačem. Za pretvaranje električne energije u mehaničku rotaciju potrebno je električni motor. Međutim, brzina vrtnje motora često je prevelika za praktičnu upotrebu. Koristi se za smanjenje brzine mjenjač: zupčanički mehanizam koji prenosi i pretvara okretni moment.

Paljenjem i gašenjem elektromotora možemo okretati izlaznu osovinu - krajnji zupčanik serva, na koji možemo pričvrstiti nešto čime želimo upravljati. Međutim, da bi se položaj kontrolirao uređajem, potrebno je povratni senzor - koder, koji će pretvoriti kut rotacije natrag u električni signal. Za to se često koristi potenciometar. Kada okrenete klizač potenciometra, njegov otpor se mijenja, proporcionalno kutu rotacije. Stoga se može koristiti za određivanje trenutne pozicije mehanizma.

Osim elektromotora, mjenjača i potenciometra, servo pogon ima elektroničke komponente koje su zadužene za primanje vanjskog parametra, očitavanje vrijednosti s potenciometra, njihovu usporedbu i paljenje/gašenje motora. Ona je odgovorna za održavanje negativnih povratnih informacija.

Do servoa idu tri žice. Dva od njih su odgovorna za napajanje motora, treći daje kontrolni signal, koji se koristi za postavljanje položaja uređaja.

Pogledajmo sada kako eksterno kontrolirati servo.

Kontrola servo pogona. Sučelje upravljačkog signala

Kako bi se servomotoru pokazao željeni položaj, mora se poslati upravljački signal duž žice predviđene za tu svrhu. Upravljački signal su impulsi konstantne frekvencije i promjenjive širine.

Koji će položaj servo zauzeti ovisi o duljini impulsa. Kada signal uđe u upravljački krug, generator impulsa koji se nalazi u njemu proizvodi vlastiti impuls čije se trajanje određuje potenciometrom. Drugi dio sklopa uspoređuje trajanje dva impulsa. Ako je trajanje drugačije, elektromotor se uključuje. Smjer vrtnje određuje se time koji je od impulsa kraći. Ako su duljine impulsa jednake, elektromotor se zaustavlja.

Najčešće, hobby serveri proizvode impulse na frekvenciji od 50 Hz. To znači da se impuls emitira i prima svakih 20 ms. Tipično, trajanje impulsa od 1520 µs znači da servo treba zauzeti srednji položaj. Povećanje ili smanjenje duljine impulsa uzrokovat će okretanje servo u smjeru kazaljke na satu, odnosno u suprotnom smjeru. U ovom slučaju postoje gornje i donje granice trajanja pulsa. U biblioteci Servo za Arduino, sljedeće duljine impulsa postavljene su prema zadanim postavkama: 544 μs za 0° i 2400 μs za 180°.

Imajte na umu da vaš određeni uređaj možda nema tvornički zadane postavke. Neki servo uređaji koriste širinu impulsa od 760 µs. Srednji položaj odgovara 760 μs, slično kao što u konvencionalnim servosima srednji položaj odgovara 1520 μs.

Također je vrijedno napomenuti da su to samo općeprihvaćene duljine. Čak i unutar istog servo modela, mogu postojati proizvodna odstupanja koja uzrokuju neznatnu razliku u radnom rasponu duljina impulsa. Za točan rad, svaki specifičan servo mora biti kalibriran: eksperimentiranjem je potrebno odabrati točan raspon specifičan za njega.

Još nešto na što vrijedi obratiti pozornost je zbrka u terminologiji. Često se metoda upravljanja servosima naziva PWM/PWM (Pulse Width Modulation) ili PPM (Pulse Position Modulation). To nije točno, a korištenje ovih metoda može čak oštetiti pogon. Točan izraz je PDM (modulacija trajanja impulsa). Kod njega je duljina impulsa iznimno bitna, a učestalost njihovog pojavljivanja nije toliko bitna. 50 Hz je normalno, ali servo će ispravno raditi i na 40 i na 60 Hz. Jedino što trebate imati na umu je da kod jakog smanjenja frekvencije može raditi trzajno i smanjenom snagom, a kod jakog povećanja frekvencije (npr. 100 Hz) može doći do pregrijavanja i kvara.

Karakteristike servo pogona

Sada shvatimo koje vrste servo postoje i koje karakteristike imaju.

Moment i brzina njihanja

Najprije razgovarajmo o dvije vrlo važne karakteristike servo pogona: o okretni moment i oko brzina okretanja.

Moment sile ili okretni moment vektorska je fizikalna veličina jednaka umnošku radijus vektora povučenog od osi rotacije do točke primjene sile i vektora te sile. Karakterizira rotacijsko djelovanje sile na čvrsto tijelo.

Jednostavno rečeno, ova karakteristika pokazuje koliko težak teret servo može držati u mirovanju na poluzi određene duljine. Ako je okretni moment servo pogona 5 kg×cm, onda to znači da će servo pogon u vodoravnom položaju držati polugu duljine 1 cm na čiji slobodni kraj visi 5 kg. Ili, ekvivalentno, poluga duga 5 cm o koju je obješen 1 kg.

Servo brzina se mjeri vremenom koje je potrebno da se servo ruka okrene za 60°. Karakteristika od 0,1 s/60° znači da se servo okreće za 60° za 0,1 s. Iz nje je lako izračunati brzinu u poznatijoj vrijednosti, okretaja u minuti, ali se događa da se pri opisivanju servo uređaja najčešće koristi takva jedinica.

Vrijedno je napomenuti da ponekad postoji kompromis između ove dvije karakteristike, jer ako želimo pouzdan, snažan servo, moramo biti spremni da se ova moćna jedinica okreće sporo. A ako želimo vrlo brz pogon, tada će ga biti relativno lako pomaknuti iz ravnotežnog položaja. Kod korištenja istog motora, ravnoteža je određena konfiguracijom zupčanika u mjenjaču.

Naravno, uvijek možemo uzeti uređaj koji troši više energije, glavno je da njegove karakteristike zadovoljavaju naše potrebe.

Faktor oblika

Servo se razlikuju po veličini. Iako ne postoji službena klasifikacija, proizvođači se dugo pridržavaju nekoliko veličina s općeprihvaćenim rasporedom pričvrsnih elemenata. Mogu se podijeliti na:

    mali

    standard

Imaju sljedeće karakteristične dimenzije:

Postoje i tzv. “posebni tipovi” servo-a s dimenzijama koje ne spadaju u ovu klasifikaciju, ali je postotak takvih servo-a vrlo mali.

Interno sučelje

Servo pogoni su analogni ili digitalni. Dakle, koje su njihove razlike, prednosti i nedostaci?

Izvana se ne razlikuju: elektromotori, mjenjači, potenciometri su isti, razlikuju se samo u unutarnjoj upravljačkoj elektronici. Umjesto posebnog analognog servo mikro kruga, digitalni pandan ima mikroprocesor na ploči koji prima impulse, analizira ih i upravlja motorom. Dakle, u fizičkom dizajnu razlika je samo u načinu obrade impulsa i upravljanja motorom.

Oba tipa servo pogona prihvaćaju iste upravljačke impulse. Analogni servo zatim odlučuje treba li promijeniti položaj i šalje signal motoru ako je potrebno. To se obično događa s frekvencijom od 50 Hz. Tako dobivamo 20 ms - minimalno vrijeme reakcije. U ovom trenutku bilo koji vanjski utjecaj može promijeniti položaj servo pogona. Ali to nije jedini problem. U mirovanju elektromotor nema napona; u slučaju malog odstupanja od ravnoteže, elektromotoru se šalje kratki signal male snage. Što je veće odstupanje, to je jači signal. Dakle, s malim odstupanjima, servo pogon neće moći brzo rotirati motor ili razviti veliki moment. “Mrtve zone” se formiraju u vremenu i udaljenosti.

Ovi se problemi mogu riješiti povećanjem frekvencije prijema, obradom signala i upravljanjem elektromotora. Digitalni servo motori koriste poseban procesor koji prima upravljačke impulse, obrađuje ih i šalje signale motoru s frekvencijom od 200 Hz ili više. Ispostavilo se da digitalni servo pogon može brže reagirati na vanjske utjecaje, brzo razviti potrebnu brzinu i okretni moment, što znači da je bolje zadržati zadanu poziciju, što je dobro. Naravno, troši i više električne energije. Također, digitalne servose je teže proizvesti i stoga koštaju znatno više. Zapravo, ova dva nedostatka su svi nedostaci koje digitalni servo uređaji imaju. U tehničkom smislu oni bezuvjetno pobjeđuju analogne servose.

Materijali zupčanika

Zupčanici za servo motore dolaze od različitih materijala: plastike, ugljika, metala. Svi oni imaju široku primjenu, izbor ovisi o specifičnoj primjeni i karakteristikama koje su potrebne za instalaciju.

Plastični, najčešće najlonski, zupčanici su vrlo lagani, ne podložni habanju, a najčešći su u servoima. Ne podnose velika opterećenja, ali ako se očekuju mala opterećenja, onda su najlonski zupčanici najbolji izbor.

Karbonski zupčanici su izdržljiviji, praktički se ne troše i nekoliko su puta jači od najlonskih. Glavni nedostatak je visoka cijena.

Metalni zupčanici su najteži, ali mogu izdržati maksimalna opterećenja. Dosta se brzo troše, tako da morate mijenjati brzine gotovo svake sezone. Titanijski zupčanici su favoriti među metalnim zupčanicima, kako tehničkim karakteristikama tako i cijenom. Nažalost, koštat će vas prilično skupo.

Motori s četkicama i bez četkica

Postoje tri vrste servo motora: obični motor s jezgrom, motor bez jezgre i motor bez četkica.

Konvencionalni motor s jezgrom (desno) ima gusti željezni rotor s namotanom žicom i magnetima oko njega. Rotor ima više sekcija, tako da kada se motor okreće, rotor uzrokuje lagano vibriranje motora dok sekcije prolaze kroz magnete, što rezultira servom koji vibrira i manje je točan od serva s motorom bez jezgre. Motor sa šupljim rotorom (lijevo) ima jednu magnetsku jezgru s valjkastim ili zvonastim namotajem oko magneta. Dizajn bez jezgre lakši je i nema sekcija, što rezultira bržim odzivom i glatkim radom bez vibracija. Ovi motori su skuplji, ali pružaju višu razinu kontrole, momenta i brzine u odnosu na standardne.

Servo pogoni s motorima bez četkica pojavili su se relativno nedavno. Prednosti su iste kao i kod ostalih motora bez četkica: nema četkica, što znači da ne stvaraju rotacijski otpor i ne troše se, brzina i moment su veći uz potrošnju struje jednaku motorima s četkicama. Motorni servo motori bez četkica najskuplji su servo motori, ali nude bolje performanse nego servo motori s drugim vrstama motora.

Spajanje na Arduino

Mnogi servo uređaji mogu se izravno spojiti na Arduino. Da biste to učinili, od njih dolazi petlja od tri žice:

    crvena - prehrana; povezuje se na 5V pin ili izravno na napajanje

    smeđa ili crna - zemlja

    žuto ili bijelo - signal; spaja se na Arduino digitalni izlaz.

Za povezivanje s Arduinom bit će zgodno koristiti ploču za proširenje porta kao što je Troyka Shield. Iako s nekoliko dodatnih žica možete spojiti servo preko matične ploče ili izravno na Arduino pinove.

Moguće je sami generirati upravljačke impulse, ali to je toliko uobičajen zadatak da postoji standardna Servo biblioteka koja ga pojednostavljuje.

Dijetalna ograničenja

Tipični hobi servo pogon troši više od 100 mA tijekom rada. U isto vrijeme, Arduino je sposoban isporučiti do 500 mA. Stoga, ako trebate koristiti snažan servo pogon u projektu, ima smisla razmisliti o njegovom odvajanju u krug s dodatnom snagom.

Pogledajmo primjer povezivanja 12V servo pogona:

Ograničenje broja priključenih servo uređaja

Na većini Arduino ploča, Servo knjižnica podržava kontrolu od najviše 12 serva; na Arduino Mega, taj broj se povećava na 48. Međutim, postoji mala nuspojava korištenja ove knjižnice: ako ne radite s Arduino Mega , tada postaje nemoguće koristiti funkciju analogWrite() na 9 i 10 pinovima bez obzira na to jesu li servo uređaji spojeni na te pinove ili ne. Na Arduino Mega možemo spojiti do 12 serva bez prekidanja PWM/PWM funkcionalnosti, ako koristimo više serva nećemo moći koristiti analogWrite() na pinovima 11 i 12.

Funkcionalnost servo knjižnice

Servo biblioteka omogućuje softversku kontrolu servo motora. Za to se kreira varijabla tipa Servo. Upravljanje se provodi pomoću sljedećih funkcija:

    attach() - pričvršćuje varijablu na određeni pin. Postoje dvije mogućnosti sintakse za ovu funkciju: servo.attach(pin) i servo.attach(pin, min, max) . U ovom slučaju, pin je broj pina na koji je spojen servo pogon, min i max su duljine impulsa u mikrosekundama, odgovorne za kutove rotacije od 0° i 180°. Prema zadanim postavkama postavljeni su na 544 μs odnosno 2400 μs.

    write() - naređuje servu da prihvati neku vrijednost parametra. Sintaksa je: servo.write(kut) gdje je kut kut kroz koji se servo treba okrenuti.

    writeMicroseconds() - daje naredbu za slanje impulsa određene duljine servo pogonu; to je analog prethodne naredbe niske razine. Sintaksa je: servo.writeMicroseconds(uS) , gdje je uS duljina impulsa u mikrosekundama.

    read() - čita trenutnu vrijednost kuta pod kojim se nalazi servo. Sintaksa je: servo.read() , vraća vrijednost cijelog broja između 0 i 180.

    attached() - provjerava je li varijabla pridružena određenom pinu. Sintaksa je sljedeća: servo.attached() , vraća logičku vrijednost true ako je varijabla bila priključena na bilo koji pin, inače false.

    detach() - izvodi radnju suprotnu od attach() , to jest odvaja varijablu od pina kojem je dodijeljena. Sintaksa je: servo.detach() .

Sve metode biblioteke Servo2 iste su kao metode Servo.

Primjer korištenja Servo knjižnice

Umjesto zaključka

Servo pogoni su različiti, neki su bolji - drugi su jeftiniji, neki su pouzdaniji - drugi su precizniji. I prije nego što kupite servo, vrijedi imati na umu da možda neće imati najbolje karakteristike, sve dok je prikladan za vaš projekt. Sretno u vašim nastojanjima!

Najjednostavniji roboti su s 2 ili 4 kotača. Takav bi se robot mogao temeljiti na šasiji radijski upravljanog automobila, no možda ga nema svatko pri ruci ili ga je možda šteta potrošiti. Šasiju možete napraviti i sami, ali postavljanje kotača direktno na motor nije baš dobro rješenje, motor treba usporiti, što zahtijeva mjenjač. Nabaviti gotovu šasiju ili mjenjač, ​​odnosno motor s mjenjačem, pokazalo se ne tako lakim zadatkom, za razliku od serva. Gotovo svaki servo pogon može se lako pretvoriti u motor s mjenjačem.

Kotači se mogu zalijepiti izravno na klackalicu takvog motora, a servo tijelo je pogodno za montažu.

PAŽNJA! Dizajn drugih servo motora može se razlikovati, stoga je ovaj priručnik samo djelomičan.

Kao osnova uzet je najjednostavniji i najjeftiniji servo:

Prvo, rastavimo ga.

Prvo uklanjamo nepotrebnu elektroniku, odgrizamo vozač i izravno upravljamo motorom. Zatim nastavimo s modificiranjem mehanike, uklonimo prvi zupčanik s vanjskim vratilom i skinemo graničnik s njega.

Izvadimo otpornik i izgrizemo graničnik koji se nalazi na njegovom tijelu.

Ponovno sastavljamo svu mehaniku i provjeravamo da li se sve dobro kreće.

Sljedeći korak je lemljenje žice na motor.

Sastavljamo bivši servo u novi motor sa mjenjačem.

Sve je spremno, ako niste pogriješili, možete uživati ​​u svom radu.

Servo motori obično imaju ograničeni kut rotacije od 180 stupnjeva. U ovom slučaju, razmotrit ćemo "modificirani" servo s neograničenim kutom rotacije osi.


Karakteristike performansi sa stranice prodavača

Veličina:40*20*37,5+5mm pogonska osovina
težina:38 g
duljina žice: 320 mm

Brzina: 0,19 s/60 stupnjeva (4,8 V)
0,22 s/60 stupnjeva (6 V)
brzine su najvjerojatnije pomiješane, servo bi trebao biti brži za 6 volti
zakretni moment: 5kg. cm. na (4,8 V)
5,5 kg.cm.at (6 V)
napon:4,8V-6V

Standardni set za isporuku

4 stolice za ljuljanje različitih oblika
4 čahure, 4 gumena prigušivača i 4 vijka za pričvršćivanje servo
i još jedan mali vijak za pričvršćivanje klackalice na osovinu je pobjegao sa fotografije :)

Izgled ulijeva povjerenje, dodir je također u redu, mali zastoji od lijevanja su samo u području ušica za montažu, naljepnica je nalijepljena malo nakrivo (tautologija, da!). Žica je mekana, konektor dobro naliježe na igle.

E, sad autopsija:

Tko nije znao kako to radi: u kućištu se nalazi motor, upravljačka ploča i promjenjivi otpornik, na temelju čijeg položaja servo određuje kut osi.
Mjenjač u ovom servo je plastični, životni vijek je manji od metalnog i ne voli velika opterećenja. Čahura za središnju osovinu je bakrena ili neka vrsta legure. Na izlaznom vratilu nalazi se ležaj. Mogu se dodati lubrikanti

Električni dio

Mozgovi koji kontroliraju smjer i brzinu vrtnje, promjenjivu brzinu i elektromotor.

A sada, pažnja, "life hack", kako pretvoriti obični servo u servo s konstantnom rotacijom

U originalu je varijabla sa svojom osi zabijena u izlaznu osovinu iz unutrašnjosti serva; u modificiranoj verziji osovina je odgrizena/odlomljena, očito u fazi montaže, otpornik je postavljen u središnji položaj tako da vratilo se ne okreće u mirovanju. Ako idete dalje, možete ga potpuno izbaciti i zamijeniti s 2 identična konstantna otpornika; zgodno je staviti nešto SMD na upravljačku ploču.

Ukupno:
Serva kao Serva, ne prostor, ali ni roba široke potrošnje,
može se naći jeftinije i s metalnim mjenjačem

P.S
Kao što je točno navedeno u komentarima, potpuno sam zaboravio spomenuti kako se servo kontrolira; servo se napaja s 5-6 volti i ppm signalom preko treće žice.

Najčešće opcije kontrole:
1) spojite napajanje s jedne strane, s druge izlaz na 3 “potrošača” (serveri, motori itd.) napajanje i PPM signal, možete koristiti ručku za podešavanje brzine i smjera vrtnje servoa
2) RC oprema na izlazima prijemnika ima isti ppm signal.
3) upravljati s arduinom

Video

Pps
Kao rezultat "modifikacije", servo je izgubio povratnu informaciju, mozak ne zna pravi položaj osovine i smjer vrtnje, uzmite u obzir ovu točku ako ga namjeravate kupiti.

Planiram kupiti +17 Dodaj u favorite Svidjela mi se recenzija +31 +56

U ovom ćemo članku govoriti o servosima u Arduino projektima. Zahvaljujući servo motorima obični elektronički projekti postaju robotizirani. Povezivanje servo uređaja s Arduino projektom omogućuje vam da na signale senzora odgovorite nekim preciznim pokretom, na primjer, otvorite vrata ili okrenete senzore u željenom smjeru. U članku se raspravlja o pitanjima upravljanja servosima, mogućim shemama za povezivanje servosima na Arduino, kao i primjerima skica.

Servo pogon je vrsta pogona koji može precizno kontrolirati parametre gibanja. Drugim riječima, to je motor koji može okretati svoju osovinu za određeni kut ili održavati kontinuiranu rotaciju u točno određenom razdoblju.

Radni krug servo pogona temelji se na korištenju povratne veze (zatvoreni krug u kojem ulazni i izlazni signali nisu usklađeni). Servo pogon može biti bilo koji mehanički pogon koji uključuje senzor i upravljačku jedinicu koja automatski održava sve parametre postavljene na senzoru. Servo pogon sastoji se od motora, senzora položaja i upravljačkog sustava. Glavna zadaća takvih uređaja je implementacija u području servomehanizama. Također, servo pogoni se često koriste u područjima kao što su obrada materijala, proizvodnja transportne opreme, obrada drva, proizvodnja limova, proizvodnja građevinskih materijala i dr.

U projektima Arduino robotike, servo se često koristi za jednostavne mehaničke akcije:

  • Zakrenite daljinomjer ili druge senzore do određenog kuta za mjerenje udaljenosti u uskom vidnom polju robota.
  • Napravite mali korak nogom, pomaknite ud ili glavu.
  • Za stvaranje robotskih manipulatora.
  • Za implementaciju upravljačkog mehanizma.
  • Otvorite ili zatvorite vrata, poklopac ili neki drugi predmet.

Naravno, opseg primjene servo u stvarnim projektima je mnogo širi, ali navedeni primjeri su najpopularnije sheme.

Shema i vrste servoagregata

Princip rada servo pogona temelji se na povratnoj sprezi jednog ili više signala sustava. Izlazni indikator dovodi se do ulaza, gdje se njegova vrijednost uspoređuje s radnjom podešavanja i izvode se potrebne radnje - na primjer, motor se gasi. Najjednostavnija opcija izvedbe je promjenjivi otpornik, koji se kontrolira osovinom - kada se parametri otpornika mijenjaju, mijenjaju se parametri struje koja opskrbljuje motor.

U pravim servosima upravljački mehanizam mnogo je složeniji i koristi ugrađene upravljačke čipove. Ovisno o vrsti povratnog mehanizma koji se koristi, postoje analog I digitalni servo motori. Prvi koriste nešto slično potenciometru, drugi koriste kontrolere.

Cijeli krug servo upravljanja nalazi se unutar kućišta, upravljački signali i napajanje se u pravilu napajaju kroz tri žice: uzemljenje, napon napajanja i upravljački signal.

Servo za kontinuiranu rotaciju 360, 180 i 270 stupnjeva

Postoje dvije glavne vrste servomotora - s kontinuiranom rotacijom i s fiksnim kutom (najčešće 180 ili 270 stupnjeva). Razlika između servo ograničene rotacije leži u mehaničkim elementima dizajna koji mogu blokirati kretanje osovine izvan kutova određenih parametrima. Dostigavši ​​kut od 180, osovina će utjecati na graničnik i dati će naredbu za isključivanje motora. Servomotori s kontinuiranom rotacijom nemaju takve graničnike.

Materijali servo zupčanika

Kod većine servo-uređaja spojna karika osovine i vanjskih elemenata je zupčanik, pa je vrlo važno od kojeg je materijala napravljen. Postoje dvije najpovoljnije opcije: metalni ili plastični zupčanici. U skupljim modelima možete pronaći elemente od karbonskih vlakana, pa čak i od titana.


Plastične opcije su naravno jeftinije, lakše ih je proizvesti i često se koriste u jeftinim servosima. Za obrazovne projekte u kojima servo napravi nekoliko pokreta, to nije velika stvar. Ali u ozbiljnim projektima upotreba plastike je nemoguća, zbog vrlo brzog trošenja takvih zupčanika pod opterećenjem.

Metalni zupčanici su pouzdaniji, ali to, naravno, utječe i na cijenu i težinu modela. Štedljivi proizvođači mogu neke dijelove napraviti od plastike, a neke od metala, i to treba imati na umu. I, naravno, u najjeftinijim modelima čak ni prisutnost metalnog zupčanika nije jamstvo kvalitete.

Zupčanici od titana ili karbona najpoželjnija su opcija ako niste ograničeni proračunom. Lagani i pouzdani, takvi se servo uređaji naširoko koriste za izradu modela automobila, dronova i zrakoplova.

Prednosti servo motora

Široka uporaba servo pogona je zbog činjenice da imaju stabilan rad, visoku otpornost na smetnje, malu veličinu i širok raspon kontrole brzine. Važne značajke servo motora su sposobnost povećanja snage i pružanja povratnih informacija. Iz toga slijedi da je u smjeru naprijed krug odašiljač energije, au obrnutom smjeru odašiljač informacija koje se koriste za poboljšanje točnosti upravljanja.

Razlike između servo i konvencionalnog motora

Uključivanjem ili isključivanjem konvencionalnog elektromotora možemo generirati rotacijsko gibanje i izazvati pomicanje kotača ili drugih predmeta pričvršćenih na osovinu. Ovo kretanje će biti kontinuirano, ali da biste razumjeli pod kojim kutom se osovina okrenula ili koliko je okretaja napravila, morat ćete instalirati dodatne vanjske elemente: kodere. Servo pogon već sadrži sve što je potrebno za dobivanje informacija o trenutnim parametrima vrtnje i može se samostalno isključiti kada se osovina okrene pod željenim kutom.

Razlike između servo i koračnog motora

Važna razlika između servo motora i koračnog motora je mogućnost rada s velikim ubrzanjima i pod promjenjivim opterećenjima. Također, servo motori imaju veću snagu. Koračni motori nemaju povratnu spregu, pa se može primijetiti učinak gubitka koraka; kod servomotora gubitak koraka je isključen - sva će kršenja biti zabilježena i ispravljena. Uz sve te očite prednosti, servomotori su skuplji uređaji od koračnih motora, imaju složeniji sustav povezivanja i upravljanja te zahtijevaju kvalificiranije održavanje. Važno je napomenuti da koračni motori i servo motori nisu izravna konkurencija - svaki od ovih uređaja ima svoje specifično područje primjene.

Gdje kupiti popularne servo motore SG90, MG995, MG996

Najpovoljnija servo opcija SG90 1,6 KG Servo pogoni SG90 i MG90S za Arduino po cijeni ispod 70 rubalja
Još jedna opcija za servo SG90 Pro 9g od pouzdanog dobavljača na Aliju Servo SG90 pouzdanog dobavljača RobotDyn
Servo tester Nekoliko opcija za servo testere
Zaštićeni servo pogon s okretnim momentom od 15 kg Servo JX DC5821LV 21KG Potpuno vodootporan Core mental gear 1/8 1/10 RC auto Scaler Buggy Crawler TRAXXAS RC4WD TRX-4 SCX10 D90
Servo MG996R MG996 Servo metalni zupčanik za Futaba JR Servo 13KG 15KG Servo Digitalni MG995 MG996 MG996R Servo Metalni zupčanici

Odlučujući faktor u upravljanju servo pogonima je upravljački signal koji se sastoji od impulsa konstantne frekvencije i promjenjive širine. Duljina impulsa jedan je od najvažnijih parametara koji određuju položaj servo uređaja. Ova duljina može se postaviti u programu ručno metodom odabira kutova ili pomoću naredbi knjižnice. Za svaku marku uređaja duljina može biti drugačija.

Kada signal uđe u upravljački krug, generator isporučuje svoj impuls čije se trajanje određuje pomoću potenciometra. U drugom dijelu sklopa uspoređuje se trajanje primijenjenog signala i signala iz generatora. Ako su ti signali različitog trajanja, uključuje se elektromotor čiji smjer vrtnje određuje koji je od impulsa kraći. Kada su duljine impulsa jednake, motor se zaustavlja.

Standardna frekvencija na kojoj se daju impulsi je 50 Hz, odnosno 1 impuls svakih 20 milisekundi. Na ovim vrijednostima trajanje je 1520 mikrosekundi, a servo je u srednjem položaju. Promjena duljine impulsa dovodi do rotacije servo pogona - kada se trajanje povećava, rotacija je u smjeru kazaljke na satu, a kada se smanjuje, okreće se u suprotnom smjeru. Postoje ograničenja trajanja - u Arduinu u Servo biblioteci, za 0° vrijednost impulsa postavljena je na 544 μs (donja granica), za 180° - 2400 μs (gornja granica).

(Slika korištena s amperka.ru)

Važno je uzeti u obzir da se na određenom uređaju postavke mogu malo razlikovati od općeprihvaćenih vrijednosti. Za neke uređaje prosječni položaj i širina pulsa mogu biti 760 µs. Sve prihvaćene vrijednosti također mogu malo varirati zbog grešaka koje se mogu pojaviti tijekom proizvodnje uređaja.

Metoda upravljanja pogonom često se pogrešno naziva PWM/PWM, ali to nije sasvim točno. Kontrola izravno ovisi o duljini impulsa, učestalost njihove pojave nije toliko važna. Ispravan rad bit će osiguran i na 40 Hz i na 60 Hz; doprinijet će samo snažno smanjenje ili povećanje frekvencije. Ako dođe do oštrog pada, servo pogon će početi raditi trzajno; ako se frekvencija poveća iznad 100 Hz, uređaj se može pregrijati. Stoga ga je ispravnije nazvati PDM.

Na temelju internog sučelja mogu se razlikovati analogni i digitalni servo. Vanjskih razlika nema - sve su razlike samo u unutarnjoj elektronici. Analogni servo pogon sadrži poseban čip unutra, dok digitalni servo pogon sadrži mikroprocesor koji prima i analizira impulse.

Kada primi signal, analogni servo odlučuje hoće li ili ne promijeniti položaj i, ako je potrebno, isporučuje motoru signal frekvencije od 50 Hz. Tijekom vremena reakcije (20 ms) mogu se pojaviti vanjski utjecaji koji mijenjaju položaj servo pogona, te uređaj neće imati vremena reagirati. Digitalni servo pogon koristi procesor koji daje i obrađuje signale na višoj frekvenciji - od 200 Hz, tako da može brže reagirati na vanjske utjecaje i brže razviti željenu brzinu i moment. Stoga će digitalni servo moći bolje držati postavljeni položaj. U isto vrijeme, digitalni servo pogoni zahtijevaju više električne energije za rad, što povećava njihovu cijenu. Složenost njihove izrade također daje veliki doprinos cijeni. Visoka cijena je jedini nedostatak digitalnih servo uređaja; tehnički su puno bolji od analognih uređaja.

Spajanje servo motora na Arduino

Servo pogon ima tri kontakta, koji su obojeni u različite boje. Smeđa žica vodi do uzemljenja, crvena žica vodi do +5V napajanja, a narančasta ili žuta žica vodi do signalne žice. Uređaj je povezan s Arduinom preko matične ploče na način prikazan na slici. Narančasta žica (signal) spojena je na digitalni pin, crna i crvena žica spojene su na uzemljenje i napajanje. Da biste upravljali servo motorom, ne morate se posebno spajati na podložne igle - već smo ranije opisali princip servo upravljanja.

Ne preporučuje se spajanje snažnih servo-a izravno na ploču, jer... stvaraju struju za strujni krug Arduina koja nije kompatibilna sa životom - bit ćete sretni ako zaštita radi. Najčešći simptomi preopterećenja i nepravilnog napajanja serva su "trzanje" serva, neugodan zvuk i ponovno pokretanje ploče. Za napajanje je bolje koristiti vanjske izvore, pazite da kombinirate uzemljenje dva kruga.

Skica za upravljanje servom u Arduinu

Izravna kontrola servoa promjenom trajanja impulsa u skici prilično je netrivijalan zadatak, ali srećom imamo izvrsnu Servo biblioteku ugrađenu u Arduino razvojno okruženje. Razmotrit ćemo sve nijanse programiranja i rada sa servosima u zasebnom članku. Ovdje dajemo jednostavan primjer korištenja Serva.

Algoritam rada je jednostavan:

  • Prvo spajamo Servo.h
  • Kreirajte objekt klase Servo
  • U bloku za podešavanje označavamo na koji je pin spojen servo
  • Metode objekta koristimo na uobičajeni C++ način. Najpopularnija je metoda pisanja, kojoj dajemo cjelobrojnu vrijednost u stupnjevima (za 360 servo ove vrijednosti će se drugačije tumačiti).

Primjer jednostavne skice za rad sa servo pogonom

Primjer projekta u kojem odmah prvo postavimo servo motor na nulti kut, a zatim ga okrenemo za 90 stupnjeva.

#uključi Servo servo; // Kreirajte objekt void setup() ( servo.attach(9); // Indicirajte objektu klase Servo da je servo priključen na pin 9 servo1.write(0); // Postavite početni položaj ) void loop() ( servo.write (90); // Rotirajte servo za 90 stupnjeva delay(1000); servo.write(1800); delay(100); servo.write(90); delay(1000); servo.write (0); kašnjenje (1000 ); )

Skica za dva servo motora

A u ovom primjeru radimo s dva serva odjednom:

#uključi Servo servo1; // Prvi servo pogon Servo servo2; // Drugi servo void setup() ( servo1.attach(9); // Naznačite objektu klase Servo da je servo spojen na pin 9 servo2.attach(10); // I ovaj servo je spojen na pin 10) void loop() ( // Postavite položaje servo1.write(0); servo2.write(180); delay(20); // Promijenite položaje servo2.write(0); servo1.write(180); )

Servo upravljanje pomoću potenciometra

U ovom primjeru rotiramo servo ovisno o vrijednosti primljenoj od potenciometra. Očitavamo vrijednost i pretvaramo je u kut pomoću funkcije karte:

//Fragment standardnog primjera korištenja Servo biblioteke void loop() ( val = analogRead(A0); // Očitavanje vrijednosti s pina na koji je spojen potenciometar val = map(val, 0, 1023, 0, 180); // Pretvori broj u rasponu od 0 do 1023 u novi raspon - od 0 do 180. servo.write(val); delay(15); )

Karakteristike i veza SG-90

Ako ćete kupiti najjeftiniji i najjednostavniji servo pogon, onda će najbolja opcija biti SG 90. Ovaj servo se najčešće koristi za upravljanje malim, laganim mehanizmima s kutom rotacije od 0° do 180°.

Specifikacije SG90:

  • Brzina izvršenja naredbe 0,12s/60 stupnjeva;
  • Snaga 4,8V;
  • Radne temperature od -30C do 60C;
  • Dimenzije 3,2 x 1,2 x 3 cm;
  • Težina 9 g.

Opis SG90

Boje žica su standardne. Servo pogon je jeftin i ne omogućuje precizno podešavanje početnih i krajnjih položaja. Kako biste izbjegli nepotrebna preopterećenja i karakterističan zvuk pucketanja u položaju od 0 i 180 stupnjeva, bolje je postaviti krajnje točke na 10° i 170°. Prilikom rada uređaja važno je pratiti napon napajanja. Ako je ovaj pokazatelj jako precijenjen, mehanički elementi mehanizama zupčanika mogu se oštetiti.

Servo pogoni MG995 i MG996 tower pro

MG995 servo je drugi najpopularniji servo model koji se najčešće povezuje s Arduino projektima. Ovo su relativno jeftini servo motori s mnogo boljim performansama od SG90.

Specifikacije MG995

Izlazna osovina na MG995 okreće se za 120 stupnjeva (60 u svakom smjeru), iako mnogi prodavači navode 180 stupnjeva. Uređaj se nalazi u plastičnom kućištu.

  • Težina 55 g;
  • Zakretni moment 8,5 kg x cm;
  • Brzina 0,2 s/60 stupnjeva (na 4,8 V);
  • Radna snaga 4,8 – 7,2V;
  • Radne temperature – od 0C do -55C.

Opis MG995

Veza s Arduinom također se odvija preko tri žice. U principu, za amaterske projekte moguće je spojiti MG995 izravno na Arduino, ali će struja motora uvijek stvarati opasno opterećenje na ulazima ploče, pa se ipak preporuča odvojeno napajanje serva, ne zaboravljajući spojiti masu oba strujna kruga. Druga mogućnost koja olakšava život bila bi upotreba gotovih servo kontrolera i štitova, koje ćemo pregledati u zasebnom članku.

MG996R je po svojim karakteristikama sličan MG995, samo što dolazi u metalnom kućištu.

Pretvaranje servo pogona u kontinuirani rotacijski servo

Kao što je gore opisano, servo se kontrolira pomoću impulsa promjenjive širine koji postavljaju kut rotacije. Trenutačni položaj očitava se s potenciometra. Ako odvojite osovinu i potenciometar, servomotor će zauzeti položaj klizača potenciometra kao na sredini. Sve te radnje dovest će do uklanjanja povratnih informacija. To vam omogućuje kontrolu brzine i smjera vrtnje putem signalne žice i stvaranje kontinuiranog servo vrtnje. Važno je napomenuti da se servo s konstantnom rotacijom ne može okretati za određeni kut i napraviti strogo određeni broj okretaja.

Da biste izvršili gore navedene korake, morat ćete rastaviti uređaj i promijeniti dizajn.

U Arduino IDE morate napraviti malu skicu koja će staviti klackalicu u srednji položaj.

#uključi Servo myservo; void setup())( myservo.attach(9); myservo.write(90); ) void loop())( )

Nakon toga uređaj je potrebno spojiti na Arduino. Kada je spojen, servo će se početi okretati. Potrebno je postići njegovo potpuno zaustavljanje podešavanjem otpornika. Nakon što se rotacija zaustavi, morate pronaći osovinu, izvući fleksibilni element iz nje i instalirati ga natrag.

Ova metoda ima nekoliko nedostataka - postavljanje otpornika na potpuno zaustavljanje je nestabilno; uz najmanji udar/grijanje/hlađenje, podešena nulta točka može se izgubiti. Stoga je bolje koristiti metodu zamjene potenciometra s trimerom. Da biste to učinili, morate ukloniti potenciometar i zamijeniti ga trimer otpornikom s istim otporom. Nulta točka mora se podesiti pomoću kalibracijske skice.

Svaka metoda pretvaranja servo u kontinuirani rotacijski servo ima svoje nedostatke. Prvo, teško je podesiti nultu točku; svaki pokret je može odbaciti. Drugo, raspon upravljanja je mali - s malom promjenom širine impulsa, brzina se može značajno promijeniti. Raspon možete proširiti programski u Arduinu.

Zaključak

Servo uređaji igraju vrlo važnu ulogu u mnogim Arduino projektima, od robotike do sustava pametne kuće. Sve što je povezano s kretanjem tradicionalno zahtijeva posebna znanja, a stvaranje punopravnog, ispravnog pogona nije lak zadatak. Ali uz pomoć servo motora, zadatak se može pojednostaviti u mnogim slučajevima, zbog čega se servo stalno koristi čak iu početnim projektima.

U ovom smo članku pokušali pokriti različite aspekte korištenja servo uređaja u Arduino projektima: od povezivanja do pisanja skica. Odabirom najjednostavnijeg servo modela (npr. sg 90) lako možete ponoviti navedene primjere i napraviti svoje prve projekte u kojima se nešto pomiče i mijenja. Nadamo se da će vam ovaj članak pomoći u tome.