Jak demontovat motor ze serva. Serva Arduino SG90, MG995, MG996: schéma zapojení a ovládání

Nejjednodušší z robotů jsou dvoukolové nebo čtyřkolové. Základem takového robota by mohl být podvozek z rádiem řízeného auta, ale nemusí ho mít každý po ruce nebo je škoda ho promarnit. Podvozek si můžete vyrobit i sami, ale nasadit kola přímo na motor není nic moc dobré rozhodnutí, motor potřebuje zpomalit, k tomu potřebujete převodovku. Sehnat hotový podvozek nebo převodovku, případně motor s převodovkou, se na rozdíl od serv nebylo tak jednoduché. Téměř každý servopohon lze snadno přeměnit na motor s převodovkou.

Kola lze nalepit přímo na kolébku takového motoru a tělo serva je vhodné pro montáž.

POZORNOST! Konstrukce ostatních serv se může lišit, a proto je tento návod pouze dílčí.

Jako základ bylo vzato nejjednodušší a nejlevnější servo:

Nejprve si to rozeberme.

Nejprve odstraníme nepotřebnou elektroniku, ukousneme řidiče a přímo ovládáme motor. Dále přistoupíme k úpravě mechaniky, sejmeme první rychlostní stupeň s vnější hřídelí a sejmeme z něj doraz pojezdu.

Vyjmeme rezistor a vykousneme omezovač umístěný na jeho těle.

Veškerou mechaniku dáváme zpět dohromady a kontrolujeme, zda se vše dobře pohybuje.

Dalším krokem je připájení drátu k motoru.

Bývalé servo smontujeme do nového motoru s převodovkou.

Vše je připraveno, pokud jste neudělali žádnou chybu, můžete si práci užívat.

Tento článek pojednává o servách: jejich konstrukci, účelu, tipech na zapojení a ovládání, typech serv a jejich srovnání. Pojďme dále a začněme tím, co je servo.

Koncept serva

Servopohonem se nejčastěji rozumí mechanismus s elektromotorem, který lze požádat o natočení do daného úhlu a udržení této polohy. To však není úplně úplná definice.

Přesněji řečeno, servopohon je pohon řízený prostřednictvím negativní zpětné vazby, který umožňuje přesné řízení parametrů pohybu. Servopohon je jakýkoli typ mechanického pohonu, který obsahuje snímač (poloha, rychlost, síla atd.) a řídicí jednotku pohonu, která automaticky udržuje potřebné parametry na snímači a zařízení podle dané externí hodnoty.

Jinými slovy:

    Servopohon přijímá jako vstup hodnotu řídicího parametru. Například úhel natočení.

    Řídicí jednotka porovnává tuto hodnotu s hodnotou na svém snímači.

    Na základě výsledku porovnání měnič provede nějakou akci: například zatáčí, zrychluje nebo zpomaluje tak, aby se hodnota z interního snímače co nejvíce přiblížila hodnotě externího řídicího parametru.

Nejběžnější jsou serva, která drží daný úhel a serva, která udržují danou rychlost otáčení.

Typické hobby servo je zobrazeno níže.

Jak jsou serva navržena?

Servopohon zařízení

Servopohony mají několik součástí.

Pohon - elektromotor s převodovkou. K přeměně elektřiny na mechanickou rotaci potřebujete elektrický motor. Rychlost otáčení motoru je však pro praktické použití často příliš vysoká. Používá se ke snížení rychlosti převodovka: převodový mechanismus, který přenáší a převádí točivý moment.

Zapínáním a vypínáním elektromotoru můžeme otáčet výstupní hřídel - koncový převod serva, na který můžeme připevnit něco, co chceme ovládat. Aby však bylo možné polohu ovládat zařízením, je to nutné senzor zpětné vazby - kodér, který převede úhel natočení zpět na elektrický signál. K tomu se často používá potenciometr. Když otočíte jezdcem potenciometru, změní se jeho odpor, úměrně úhlu natočení. Lze jej tedy použít k určení aktuální polohy mechanismu.

Servopohon má kromě elektromotoru, převodovky a potenciometru elektronické součástky, které jsou zodpovědné za příjem externího parametru, čtení hodnot z potenciometru, jejich porovnání a zapínání/vypínání motoru. Je zodpovědná za udržování negativní zpětné vazby.

K servu vedou tři dráty. Dva z nich mají na starosti napájení motoru, třetí dodává řídicí signál, který slouží k nastavení polohy zařízení.

Nyní se podívejme, jak ovládat servo externě.

Ovládání servopohonu. Rozhraní řídicího signálu

Pro indikaci požadované polohy servomotoru musí být po vodiči k tomuto účelu odeslán řídicí signál. Řídicím signálem jsou impulsy konstantní frekvence a proměnné šířky.

Jakou pozici má servo zaujmout, závisí na délce pulsů. Když signál vstoupí do řídicího obvodu, v něm přítomný generátor pulsů vytváří vlastní puls, jehož doba trvání je určena potenciometrem. Druhá část obvodu porovnává dobu trvání dvou impulsů. Pokud je doba trvání jiná, elektromotor se zapne. Směr otáčení je určen tím, který z impulsů je kratší. Jsou-li délky impulsů stejné, elektromotor se zastaví.

Nejčastěji hobby servery produkují impulsy o frekvenci 50 Hz. To znamená, že puls je vysílán a přijímán každých 20 ms. Typicky doba trvání pulsu 1520 µs znamená, že servo by mělo zaujmout střední polohu. Zvětšení nebo zmenšení délky pulzu způsobí, že se servo otočí ve směru nebo proti směru hodinových ručiček. V tomto případě existují horní a dolní limity pro trvání pulsu. V knihovně Servo pro Arduino jsou standardně nastaveny následující délky pulzů: 544 μs pro 0° a 2400 μs pro 180°.

Upozorňujeme, že vaše konkrétní zařízení nemusí mít výchozí tovární nastavení. Některá serva používají šířku impulsu 760 µs. Střední poloha odpovídá 760 μs, podobně jako u běžných serv odpovídá střední poloze 1520 μs.

Za zmínku také stojí, že se jedná pouze o obecně přijímané délky. I v rámci stejného modelu serva mohou existovat výrobní tolerance, které způsobí, že se provozní rozsah délek pulsů mírně liší. Pro přesný provoz musí být každé konkrétní servo zkalibrováno: prostřednictvím experimentování je nutné vybrat správný rozsah, který je pro něj specifický.

Ještě něco, co stojí za pozornost, je zmatek v terminologii. Často se metoda řízení serv nazývá PWM/PWM (Pulse Width Modulation) nebo PPM (Pulse Position Modulation). To není pravda a použití těchto metod může dokonce poškodit jednotku. Správný termín je PDM (Pulse Duration Modulation). V něm je extrémně důležitá délka pulsů a frekvence jejich výskytu není tak důležitá. 50 Hz je normální, ale servo bude fungovat správně jak při 40, tak 60 Hz. Jediné, co musíte mít na paměti, je, že pokud je frekvence výrazně snížena, může pracovat trhaně a se sníženým výkonem, a pokud je frekvence výrazně zvýšena (například 100 Hz), může se přehřát a selhat.

Charakteristika servopohonu

Nyní pojďme zjistit, jaké typy serv existují a jaké mají vlastnosti.

Točivý moment a rychlost švihu

Nejprve si promluvme o dvou velmi důležitých vlastnostech servopohonu: o točivý moment a asi rychlost otáčení.

Moment síly neboli kroutící moment je vektorová fyzikální veličina rovna součinu vektoru poloměru taženého od osy otáčení k místu působení síly a vektoru této síly. Charakterizuje rotační působení síly na pevné těleso.

Zjednodušeně řečeno, tato charakteristika ukazuje, jak těžkou zátěž dokáže servo udržet v klidu na páce dané délky. Pokud je kroutící moment servopohonu 5 kg×cm, znamená to, že servopohon bude ve vodorovné poloze držet páku o délce 1 cm, na jejímž volném konci je zavěšeno 5 kg. Nebo ekvivalentně páka o délce 5 cm, na které je zavěšen 1 kg.

Rychlost serva se měří dobou, za kterou se rameno serva otočí o 60°. Charakteristika 0,1 s/60° znamená, že se servo otočí o 60° za 0,1 s. Z ní lze snadno vypočítat rychlost ve známější hodnotě, otáčky za minutu, ale stává se, že při popisu serv se taková jednotka nejčastěji používá.

Stojí za zmínku, že někdy dochází ke kompromisu mezi těmito dvěma charakteristikami, protože pokud chceme spolehlivé a odolné servo, musíme být připraveni na to, že se tato mohutná jednotka bude otáčet pomalu. A pokud chceme velmi rychlý pohon, pak jej bude poměrně snadné vyvést z rovnovážné polohy. Při použití stejného motoru je vyvážení určeno konfigurací ozubených kol v převodovce.

Samozřejmě vždy můžeme vzít jednotku, která spotřebovává více energie, hlavní věc je, že její vlastnosti odpovídají našim potřebám.

Tvarový faktor

Serva se liší velikostí. A ačkoli neexistuje žádná oficiální klasifikace, výrobci již dlouho dodržují několik velikostí s obecně přijímaným uspořádáním spojovacích prvků. Lze je rozdělit na:

    malý

    Standard

Mají následující charakteristické rozměry:

Existují také serva tzv. „speciálního typu“ s rozměry, které do této klasifikace nespadají, ale procento takových serv je velmi malé.

Vnitřní rozhraní

Servopohony jsou buď analogové nebo digitální. Jaké jsou tedy jejich rozdíly, výhody a nevýhody?

Navenek se neliší: elektromotory, převodovky, potenciometry jsou stejné, liší se pouze vnitřní řídicí elektronikou. Namísto speciálního analogového servo mikroobvodu má digitální protějšek na desce mikroprocesor, který přijímá impulsy, analyzuje je a řídí motor. Ve fyzickém provedení je tedy rozdíl pouze ve způsobu zpracování impulsů a ovládání motoru.

Oba typy servopohonu přijímají stejné řídicí impulsy. Analogové servo se poté rozhodne, zda změnit polohu, a v případě potřeby vyšle signál do motoru. To se obvykle děje s frekvencí 50 Hz. Získáme tak 20 ms - minimální reakční dobu. V tomto okamžiku může jakýkoli vnější vliv změnit polohu servopohonu. Ale to není jediný problém. V klidu není na elektromotor přiváděno žádné napětí, při mírné odchylce od rovnováhy je do elektromotoru vyslán krátký nízkopříkonový signál. Čím větší odchylka, tím silnější signál. S malými odchylkami tedy nebude servopohon schopen rychle roztočit motor nebo vyvinout velký točivý moment. „Mrtvé zóny“ se tvoří v čase a vzdálenosti.

Tyto problémy lze vyřešit zvýšením frekvence příjmu, zpracováním signálu a řízením elektromotoru. Digitální serva využívají speciální procesor, který přijímá řídicí impulsy, zpracovává je a posílá signály do motoru s frekvencí 200 Hz nebo vyšší. Ukazuje se, že digitální servopohon je schopen rychleji reagovat na vnější vlivy, rychle vyvinout požadované otáčky a točivý moment, což znamená, že je lepší držet danou pozici, což je dobře. Samozřejmě také spotřebuje více elektřiny. Digitální serva jsou také náročnější na výrobu, a proto jsou podstatně dražší. Ve skutečnosti jsou tyto dvě nevýhody všechny nevýhody, které digitální serva mají. V technicky porazili analogová serva rukama dolů.

Materiály převodovky

Převody pro serva jsou z různých materiálů: plast, uhlík, kov. Všechny jsou široce používány, výběr závisí na konkrétní aplikaci a na tom, jaké vlastnosti jsou při instalaci vyžadovány.

Plastová, nejčastěji nylonová, ozubená kola jsou velmi lehká, nepodléhají opotřebení a jsou nejčastější u serv. Nevydrží velké zatížení, ale pokud se očekává, že zatížení bude lehké, pak jsou nylonové převody nejlepší volbou.

Karbonové převody jsou odolnější, prakticky se neopotřebovávají a jsou několikanásobně pevnější než nylonové. Hlavní nevýhodou je vysoká cena.

Kovové převody jsou nejtěžší, ale vydrží maximální zatížení. Docela rychle se opotřebovávají, takže skoro každou sezónu musíte přehazovat. Titanové převody jsou oblíbené mezi kovovými převody a obojí Technické specifikace a v ceně. Bohužel vás vyjdou poměrně draho.

Kartáčované a střídavé motory

Existují tři typy servomotorů: normální jádrový motor, bezjádrový motor a bezkomutátorový motor.

Běžný motor s jádrem (vpravo) má rotor z hustého železa s drátěným vinutím a magnety kolem něj. Rotor má více sekcí, takže když se motor otáčí, rotor způsobí, že motor mírně vibruje, když sekce procházejí kolem magnetů, což má za následek servo, které vibruje a je méně přesné než servo s bezjádrovým motorem. Motor s dutým rotorem (vlevo) má jediné magnetické jádro s vinutím ve tvaru válce nebo zvonu kolem magnetu. Bezjádrový design je lehčí a nemá žádné sekce, což má za následek rychlejší odezvu a hladký provoz bez vibrací. Takové motory jsou dražší, ale poskytují více vysoká úroveň ovládání, točivý moment a otáčky oproti standardním.

Servopohony s bezkomutátorovými motory se objevily relativně nedávno. Výhody jsou stejné jako u ostatních bezkomutátorových motorů: nejsou zde žádné kartáče, což znamená, že nevytvářejí rotační odpor a neopotřebovávají se, otáčky a točivý moment jsou vyšší při spotřebě proudu rovném kartáčovým motorům. Střídavá motorová serva jsou nejdražší serva, ale také je nabízejí nejlepší vlastnosti ve srovnání se servy s jinými typy motorů.

Připojení k Arduinu

Mnoho serv lze připojit přímo k Arduinu. Za tímto účelem z nich pochází smyčka tří drátů:

    červená - výživa; připojuje se na 5V pin nebo přímo na napájecí zdroj

    hnědá nebo černá - země

    žlutá nebo bílá - signál; se připojuje k digitálnímu výstupu Arduino.

Pro připojení k Arduinu bude vhodné použít desku expandéru portů, jako je Troyka Shield. I když s několika dalšími kabely můžete připojit servo přes prkénko nebo přímo na piny Arduino.

Je možné generovat řídicí impulsy sami, ale to je tak běžný úkol, že pro zjednodušení existuje standardní knihovna servopohonů.

Dietní omezení

Typický hobby servopohon spotřebuje během provozu více než 100 mA. Arduino je přitom schopné dodat až 500 mA. Pokud tedy potřebujete v projektu použít výkonný servopohon, má smysl přemýšlet o jeho rozdělení do obvodu s přídavným výkonem.

Podívejme se na příklad připojení 12V servopohonu:

Omezení počtu připojených serv

Na většině desek Arduino knihovna Servo podporuje ovládání maximálně 12 serv, na Arduinu Mega se tento počet zvyšuje na 48. vedlejším účinkem Použití této knihovny: Pokud nepracujete s Arduino Mega, pak nebude možné použít funkci analogWrite() na pinech 9 a 10, bez ohledu na to, zda jsou k těmto pinům připojena serva nebo ne. Na Arduino Mega můžeme připojit až 12 serv bez narušení funkčnosti PWM/PWM, pokud použijeme více serv, nebudeme moci použít analogWrite() na pinech 11 a 12.

Funkce knihovny serv

Knihovna serv umožňuje softwarové ovládání serv. K tomu je vytvořena proměnná typu Servo. Řízení je prováděno následujícími funkcemi:

    připojit() - připojí proměnnou ke konkrétnímu pinu. Pro tuto funkci existují dvě možnosti syntaxe: servo.attach(pin) a servo.attach(pin, min, max) . V tomto případě je pin číslo pinu, ke kterému je připojen servopohon, min a max jsou délky pulsů v mikrosekundách, zodpovědné za úhly rotace 0° a 180°. Standardně jsou nastaveny na 544 μs, respektive 2400 μs.

    write() - přikáže servu přijmout nějakou hodnotu parametru. Syntaxe je: servo.write(angle) kde úhel je úhel, o který by se mělo servo otočit.

    writeMicroseconds() - dává příkaz k odeslání impulsu určité délky do servopohonu, je to nízkoúrovňová analogie předchozího příkazu. Syntaxe je: servo.writeMicroseconds(uS) , kde uS je délka pulzu v mikrosekundách.

    read() - přečte aktuální hodnotu úhlu, pod kterým se servo nachází. Syntaxe je: servo.read() , vrací celočíselnou hodnotu mezi 0 a 180.

    attachment() - kontroluje, zda byla proměnná připojena ke konkrétnímu pinu. Syntaxe je následující: servo.attached() , vrací logickou hodnotu true, pokud byla proměnná připojena k jakémukoli pinu, jinak false.

    odpojit() - provede opačnou akci než attachment() , tedy odpojí proměnnou od pinu, ke kterému byla přiřazena. Syntaxe je: servo.detach() .

Všechny metody knihovny Servo2 jsou stejné jako metody Servo.

Příklad použití knihovny Servo

Místo závěru

Servopohony jsou různé, některé jsou lepší - jiné levnější, některé spolehlivější - jiné přesnější. A než si servo koupíte, stojí za to mít na paměti, že nemusí mít nejlepší vlastnosti, pokud je vhodné pro váš projekt. Hodně štěstí ve vašem snažení!

K rozebrání našeho servopohonu potřebujeme šroubovák. Protože Rozebírám velmi malý servopohon, takže potřebuji odpovídající šroubovák. Osobně používám šroubováky z nějaké levné čínské sady. Koupil jsem to v kiosku v podzemní chodbě za asi 5 dolarů, takže to není moc drahé.

K otevření servopohonu stačí odšroubovat čtyři šrouby. Jsou umístěny na spodním krytu. Odšroubovat:

Sejmutím krytu můžete zkontrolovat řídicí jednotku. Nebudu zabíhat do podrobností, stejně to odsud odstraním. Vidíte i motor, ke kterému vedou dva dráty.

Nahoře je ještě kryt, po jehož sejmutí je vidět ozubená kola převodovky. Za zmínku stojí, že dva z nich jsou připevněny k potenciometru - to je docela důležité, protože aby převodovka mohla dál plnit svou funkci, budeme muset potenciometr skutečně rozbít - jednoduše jej použijeme jako osu pro ozubená kola.

Ve skutečnosti musíte ze servopohonu odstranit všechna ozubená kola a na chvíli je odložit. Vyjmeme potenciometr (mimochodem, je to také proměnný odpor) z krytu jemným zatlačením ze spodní strany serva pomocí šroubováku.

Nyní vlastně nastal okamžik, ze kterého není návratu. Samozřejmě bude vždy možné vše připájet zpět, ale je to obtížnější. Takže - potenciometr se ukousne.

Poté stejným způsobem oddělíme řídicí desku napájecími a signálovými vodiči.


Poté odkousneme dráty od motoru. Zde buďte opatrní a neukousejte kontakty ze samotného motoru - pokud si nejste jisti, je lepší nechat drát s rezervou. Poté lze odpájet. Kousnu drát až ke kontaktu.

Udělejme inventuru.

Všechno se zdá být na svém místě. Nyní zvedneme náš potenciometr.

Faktem je, že nyní se také otáčí pouze pod určitým úhlem. A jelikož je to osa a je na ní připevněno největší ozubené kolo, na které kolo vlastně později připevníme, musíme dbát na to, aby se neustále točilo. Vyndáme dvě kovové desky, které tomu brání. Dostaneme:

Doufám, že fotka ukazuje, co jsem udělal. Vytrhl jsem to malými kleštěmi, protože nic vhodnějšího po ruce nebylo.
Nyní musíte odříznout omezovač na samotném ozubeném kole. Vypadá to jako výstupek ze spodní části ozubeného kola. Dá se to snadno najít, vypadá to takhle.

Nakrájíme to.

A poté můžete začít s montáží převodovky zpět do skříně. Vložíme zpět osu, kterou jsme vytvořili dříve z potenciometru.

Dále, jeden rychlostní stupeň po druhém, počínaje nejmenším. Buďte opatrní při zasunování posledního ozubeného kola - je speciálně připevněno k ose bývalého potenciometru, protože hrot osy je vyroben ve tvaru písmene D. Tento výstupek musí zapadnout do vybrání v ozubeném kole. Ukazuje se něco podobného jako na následujícím obrázku.

Na převodovku nasadíme horní kryt, aby se při další práci nerozpadl.

No, moc toho nezbylo. Vezmeme drát s konektorem, který jsme předtím ukousli z desky a oddělíme v něm kabeláž. Neměli byste je oddělovat na velkou vzdálenost, ve skutečnosti stačí jeden centimetr.

Dvě z nich vyčistíme (v podstatě libovolné, ale já použila červenou a zelenou). Stačí odříznout cca 3mm izolace. Pro naše účely - více než.

Zbylý neodizolovaný drát jednoduše ohneme, aby nám nepřekážel.

Přejděme k horkým věcem. Je čas nahřát páječku. Zatímco se páječka zahřívala, zpříjemnil jsem servopohon v gripu.

První věc, kterou musíme udělat, je odstranit zbytky staré pájky, které zůstávají na kontaktech motoru. Dělám to pomocí odpájecí pumpy, po předehřátí kontaktu páječkou do takového stavu, že se pájka roztaví. Hlavní věcí je nepřehánět to - zadní kryt Motor je stále plastový a nerad se dlouho zahřívá. Proces vypadá asi takto:

Chápu, že to nemusí být moc patrné, co jsem udělal, ale na kontaktech nezůstala prakticky žádná pájka, což jsem chtěl.

V DI HALT jsou úžasné články o pájení. Zdá se mi, že je obecně génius. Odkaz na jeho blog, kromě pájení je tam opravdu spousta věcí, stačí hledat.
Stručně řečeno, abyste vyrobili dobrou pájku, musíte se vždy nejprve zbavit staré pájky.
K pájení zbývají dva dráty. Každý, kdo zná pájení, to zvládne za 5 sekund. Někomu, jako jsem já, kdo normálně vzal páječku podruhé v životě, to zabere trochu víc času, ale přesto – je to velmi jednoduché, zvládne to každý.
Při pájení používám tavidlo, které, pravda, značně usnadňuje práci a mnohem snadněji se s ním zajišťuje kvalita pájení. Osobně jsem si na radu opět DI HALT už na jeho blogu zamiloval LTI-120. Mám ho v takové módní dóze se štětečkem.

Utáhněte čtyři šrouby.

To je vše, úprava serva je u konce. Po opětovném upevnění servopohonu pohodlněji a pevněji v rukojeti můžete začít testovat.

Tentokrát se mi nebude líbit ovladač, ale jednoduše přivedu 5V napětí z napájecího zdroje na zelený a červený vodič. Pozor, na videu je z mechaniky dost hlasitý zvuk.

Jak vidíte, našemu servu nyní nic nebrání v otáčení bez zastavení. Zvuk produkovaný mechanikou vlastně není tichý, ale v zásadě se dá snést. To je pro dnešek asi vše.

Serva mají obvykle omezený úhel natočení 180 stupňů. V tomto případě budeme uvažovat „upravené“ servo s neomezeným úhlem natočení osy.


Výkonové charakteristiky ze stránky prodejce

Velikost: 40*20*37,5+5mm hnací hřídel
hmotnost: 38 g
délka drátu: 320 mm

Rychlost: 0,19 s/60 stupňů (4,8 V)
0,22 s/60 stupňů (6 V)
rychlosti jsou s největší pravděpodobností smíšené, servo by mělo být rychlejší o 6 voltů
točivý moment: 5 kg. cm. při (4,8 V)
5,5 kg.cm.at (6 V)
napětí: 4,8V-6V

Standardní dodávka

4 houpací křesla různých tvarů
4 pouzdra, 4 gumové tlumiče a 4 šrouby pro připevnění serva
a ještě jeden malý šroubek na uchycení vahadla k hřídeli utekl z fotky :)

Vzhled vzbuzuje důvěru, dotek je také v pořádku, malé zárubně odlitku pouze v oblasti montážních uší, nálepka je mírně nakřivo (tautologie, ano!). Drát je měkký, konektor dobře sedí na pinech.

No a teď pitva:

Kdo by nevěděl, jak to funguje: v případě je motor, řídicí deska a proměnný odpor, na základě jehož polohy servo určuje úhel osy.
Převodovka v tomto servu je plastová, životnost je nižší než u kovové a nemá ráda velké zatížení. Pouzdro pro středovou osu je z mědi nebo nějakého druhu slitiny. Na výstupním hřídeli je ložisko. Lze přidat maziva

Elektrická část

Mozky, které řídí směr a rychlost otáčení, variabilní rychlost a elektromotor.

A teď pozor, „life hack“, jak přeměnit běžné servo na servo s konstantní rotací

V originále je proměnná svou osou zapíchnuta do výstupní hřídele zevnitř serva, u upravené verze byla hřídel ukousnuta/ulomena, zřejmě ve fázi montáže, rezistor je nastaven do středové polohy tak, že hřídel se v klidu neotáčí. Pokud půjdete dále, můžete ho úplně vyhodit a nahradit 2 identickými konstantními odpory; je vhodné dát něco SMD na řídicí desku.

Celkový:
serva jako serva, ne prostor, ale ani spotřební zboží,
lze sehnat levněji a s kovovou převodovkou

PS
Jak je správně uvedeno v komentářích, úplně jsem zapomněl zmínit, jak se servo ovládá, servo je napájeno 5-6 volty a signálem ppm přes třetí vodič.

Nejběžnější možnosti ovládání:
1) na jedné straně připojte napájení, na druhé výstup na 3 „spotřebiče“ (servery, motory atd.) napájení a signál PPM, pomocí rukojeti můžete nastavit rychlost a směr otáčení serva
2) RC zařízení na výstupech přijímače má stejný signál ppm.
3) řiďte pomocí arduina

Video

Pps
V důsledku „úpravy“ ztratilo servo zpětnou vazbu, mozek nezná skutečnou polohu hřídele a směr otáčení, vezměte tento bod v úvahu, pokud ho budete kupovat.

Mám v plánu koupit +17 Přidat k oblíbeným Recenze se mi líbila +31 +56

V tomto článku budeme hovořit o servech v projektech Arduino. Právě díky servomotorům se běžné elektronické projekty stávají robotickými. Připojení serva k projektu Arduino vám umožní reagovat na signály senzorů přesným pohybem, například otevřít dveře nebo otočit senzory požadovaným směrem. Článek pojednává o problematice řízení serv, možná schémata připojení serva k Arduinu, stejně jako příklady skic.

Servopohon je typ pohonu, který dokáže přesně řídit parametry pohybu. Jinými slovy, je to motor, který může otáčet svým hřídelem o určitý úhel nebo udržovat nepřetržité otáčení v přesném čase.

Provozní obvod servopohonu je založen na použití zpětné vazby (uzavřený obvod, ve kterém nejsou přizpůsobeny vstupní a výstupní signály). Servopohon může být jakýkoli typ mechanického pohonu, který obsahuje snímač a řídicí jednotku, která automaticky udržuje všechny parametry nastavené na snímači. Servopohon se skládá z motoru, snímače polohy a řídicího systému. Hlavním úkolem těchto zařízení je implementace v oblasti servomechanismů. Také servopohony se často používají v oblastech jako je zpracování materiálu, výroba dopravních zařízení, zpracování dřeva, výroba plechů, výroba stavebních materiálů a další.

V projektech robotiky Arduino se servo často používá pro jednoduché mechanické akce:

  • Otočte dálkoměr nebo jiné senzory do určitého úhlu pro měření vzdálenosti v úzkém zorném poli robota.
  • Udělejte malý krok nohou, pohybujte končetinou nebo hlavou.
  • Vytvořit robotické manipulátory.
  • Implementovat mechanismus řízení.
  • Otevřete nebo zavřete dveře, klapku nebo jiný předmět.

Samozřejmostí je rozsah použití serva skutečné projekty mnohem širší, ale uvedené příklady jsou nejoblíbenějšími schématy.

Schéma a typy serv

Princip činnosti servopohonu je založen na zpětné vazbě z jednoho nebo více systémových signálů. Ukazatel výkonu je přiveden na vstup, kde se jeho hodnota porovnává s akcí nastavení a provádějí se potřebné akce - např. vypnutí motoru. Nejjednodušší možností implementace je proměnný rezistor, který je řízen hřídelí - při změně parametrů rezistoru se mění parametry proudu napájejícího motor.

U skutečných serv je ovládací mechanismus mnohem složitější a využívá vestavěné řídicí čipy. V závislosti na typu použitého mechanismu zpětné vazby existují analogový A digitální serva. První používají něco podobného jako potenciometr, druhé používají ovladače.

Celý řídicí obvod serva je umístěn uvnitř krytu, řídicí signály a napájení jsou dodávány zpravidla třemi vodiči: zem, napájecí napětí a řídicí signál.

Plynulé otočné servo 360, 180 a 270 stupňů

Existují dva hlavní typy servomotorů - s plynulou rotací a s pevným úhlem (nejčastěji 180 nebo 270 stupňů). Rozdíl mezi omezenou rotací serva spočívá v mechanických prvcích konstrukce, které mohou blokovat pohyb hřídele mimo úhly určené parametry. Po dosažení úhlu 180 ovlivní hřídel omezovač a vydá příkaz k vypnutí motoru. Servomotory s plynulou rotací takové omezovače nemají.

Materiály pro servopřevody

U většiny serv je spojovacím článkem mezi hřídelí a vnějšími prvky ozubené kolo, takže je velmi důležité, z jakého materiálu je vyroben. Existují dvě nejdostupnější možnosti: kovové nebo plastové převody. V dražších modelech můžete najít prvky vyrobené z uhlíkových vláken a dokonce i titanu.


Plastové varianty jsou přirozeně levnější, jednodušší na výrobu a často se používají v levných servopohonech. U vzdělávacích projektů, kde servo udělá několik pohybů, to není velký problém. Ale ve vážných projektech je použití plastu nemožné kvůli velmi rychlému opotřebení takových převodů při zatížení.

Kovové převody jsou spolehlivější, ale to se samozřejmě odráží jak na ceně, tak na hmotnosti modelu. Šetrní výrobci mohou některé díly vyrobit z plastu a některé z kovu, na to je také třeba pamatovat. A samozřejmě u nejlevnějších modelů ani přítomnost kovového převodu není zárukou kvality.

Titanové nebo karbonové převody jsou nejvýhodnější možností, pokud nejste omezeni rozpočtem. Lehká a spolehlivá, taková serva se široce používají k vytváření modelů automobilů, dronů a letadel.

Výhody servomotorů

Široké použití servopohonů je způsobeno tím, že mají stabilní provoz, vysokou odolnost proti rušení, malé rozměry a široký rozsah regulace rychlosti. Důležitými vlastnostmi serv je schopnost zvýšit výkon a poskytovat informační zpětnou vazbu. Z toho vyplývá, že v dopředném směru je obvod vysílačem energie a ve zpětném směru je vysílačem informace, která se používá ke zlepšení přesnosti řízení.

Rozdíly mezi servomotorem a konvenčním motorem

Zapnutí nebo vypnutí normálního režimu Elektrický motor můžeme generovat rotační pohyb a přimět kola nebo jiné předměty připevněné k hřídeli. Tento pohyb bude nepřetržitý, ale abyste pochopili, v jakém úhlu se hřídel otočil nebo kolik otáček udělal, budete muset nainstalovat další externí prvky: kodéry. Servopohon již obsahuje vše potřebné pro získání informací o aktuálních parametrech otáčení a může se samostatně vypnout při natočení hřídele do požadovaného úhlu.

Rozdíly mezi servomotorem a krokovým motorem

Důležitým rozdílem mezi servomotorem a krokovým motorem je schopnost pracovat s vysokými zrychleními a při proměnlivém zatížení. Také servomotory mají vyšší výkon. Krokové motory nemají zpětnou vazbu, lze tedy pozorovat vliv ztráty kroků, u servomotorů je ztráta kroků vyloučena - všechna porušení budou zaznamenána a opravena. Se všemi těmito zřejmými výhodami jsou servomotory dražšími zařízeními než krokové motory, mají složitější systém připojení a ovládání a vyžadují kvalifikovanější údržbu. Je důležité si uvědomit, že krokové motory a serva nejsou přímými konkurenty - každé z těchto zařízení má svou vlastní specifickou oblast použití.

Kde koupit oblíbená serva SG90, MG995, MG996

Nejdostupnější varianta serva SG90 1,6KG Servopohony SG90 a MG90S pro Arduino za cenu pod 70 rublů
Další možnost pro servo SG90 Pro 9g od důvěryhodného dodavatele na Ali Servo SG90 od spolehlivého dodavatele RobotDyn
Servo tester Několik možností pro servotestery
Chráněný servopohon s kroutícím momentem 15 kg Servo JX DC5821LV 21KG Plně vodotěsné Core mental gear 1/8 1/10 RC auto Scaler Buggy Crawler TRAXXAS RC4WD TRX-4 SCX10 D90
Servo MG996R MG996 Servo Metal Gear pro Futaba JR Servo 13KG 15KG Digitální serva MG995 MG996 MG996R Servo Metal Gear

Rozhodujícím faktorem pro řízení servopohonů je řídicí signál, který se skládá z impulsů konstantní frekvence a proměnné šířky. Délka pulsu je jedním z nejdůležitějších parametrů, který určuje polohu serva. Tuto délku lze v programu nastavit ručně pomocí metody výběru rohu nebo pomocí příkazů knihovny. U každé značky zařízení se může délka lišit.

Když signál vstoupí do řídicího obvodu, generátor vydá svůj impuls, jehož trvání je určeno pomocí potenciometru. V další části obvodu se porovnává doba trvání přivedeného signálu a signálu z generátoru. Pokud jsou tyto signály různě dlouhé, zapne se elektromotor, jehož směr otáčení je určen tím, který z impulzů je kratší. Když jsou délky impulsů stejné, motor se zastaví.

Standardní frekvence, při které jsou pulsy vydávány, je 50 Hz, to znamená 1 puls každých 20 milisekund. Při těchto hodnotách je doba trvání 1520 mikrosekund a servo je ve střední poloze. Změna délky pulsu vede k otáčení servopohonu - při prodlužování doby je otáčení ve směru hodinových ručiček a při klesajícím proti směru hodinových ručiček. Existují limity trvání - v Arduinu v knihovně Servo je pro 0° hodnota pulzu nastavena na 544 μs (dolní limit), pro 180° - 2400 μs (horní limit).

(Obrázek použitý z amperka.ru)

Je důležité vzít v úvahu, že na konkrétním zařízení se může nastavení mírně lišit od obecně uznávaných hodnot. U některých zařízení může být průměrná poloha a šířka pulzu 760 µs. Všechny akceptované hodnoty se také mohou mírně lišit kvůli chybám, které se mohou vyskytnout při výrobě zařízení.

Způsob řízení pohonu se často mylně nazývá PWM/PWM, ale není to zcela správné. Řízení přímo závisí na délce pulzu, frekvence jejich výskytu není tak důležitá. Správný provoz bude zajištěn při 40 Hz i 60 Hz, přispěje pouze silný pokles nebo zvýšení frekvence. Při prudkém poklesu začne servopohon pracovat trhaně, při zvýšení frekvence nad 100 Hz může dojít k přehřátí zařízení. Proto je správnější nazývat to PDM.

Na základě vnitřního rozhraní lze rozlišit analogová a digitální serva. Neexistují žádné vnější rozdíly - všechny rozdíly jsou pouze ve vnitřní elektronice. Analogový servopohon obsahuje uvnitř speciální čip, zatímco digitální servopohon obsahuje mikroprocesor, který přijímá a analyzuje impulsy.

Při příjmu signálu se analogové servo rozhodne, zda změnit polohu nebo ne, a v případě potřeby dodá motoru signál o frekvenci 50 Hz. Během reakční doby (20 ms) se mohou objevit vnější vlivy, které změní polohu servopohonu a zařízení nestihne zareagovat. Digitální servopohon využívá procesor, který dodává a zpracovává signály na vyšší frekvenci - od 200 Hz, takže může rychleji reagovat na vnější vlivy a rychle vyvinout požadované otáčky a točivý moment. Digitální servo tak bude lépe držet nastavenou polohu. Digitální servopohony zároveň vyžadují k provozu více elektřiny, což zvyšuje jejich náklady. Velký podíl na ceně má i náročnost jejich výroby. Vysoká cena je jedinou nevýhodou digitálních serv, technicky jsou mnohem lepší než analogová zařízení.

Připojení servomotoru k Arduinu

Servopohon má tři kontakty, které jsou nalakovány různými barvami. Hnědý vodič vede k zemi, červený vodič vede k napájení +5V a oranžový nebo žlutý vodič vede k signálovému vodiči. Zařízení je připojeno k Arduinu přes prkénko způsobem znázorněným na obrázku. Oranžový vodič (signál) je připojen k digitálnímu kolíku, černý a červený vodič je připojen k zemi a napájení. Pro ovládání servomotoru není nutné připojovat specificky k distančním kolíkům - princip ovládání servomotoru jsme již popsali dříve.

Nedoporučuje se připojovat výkonná serva přímo k desce, protože... vytvářejí proud pro napájecí obvod Arduino, který není kompatibilní se životem - budete mít štěstí, pokud bude ochrana fungovat. Nejčastěji jsou příznaky přetížení a špatného napájení serva „škubání“ serva, nepříjemný zvuk a restart desky. Pro napájení je lepší použít externí zdroje, nezapomeňte spojit uzemnění obou obvodů.

Náčrt pro ovládání serva v Arduinu

Přímé ovládání serva změnou doby trvání pulsu ve skice je poměrně netriviální úkol, ale naštěstí máme ve vývojovém prostředí Arduino vestavěnou vynikající knihovnu serv. Všechny nuance programování a práce se servy zvážíme v samostatném článku. Tady dáme nejjednodušší příklad pomocí serva.

Operační algoritmus je jednoduchý:

  • Nejprve připojíme Servo.h
  • Vytvořte objekt třídy Servo
  • V bloku nastavení uvedeme, ke kterému pinu je servo připojeno
  • Metody objektu používáme obvyklým způsobem C++. Nejoblíbenější je metoda zápisu, které dodáváme celočíselnou hodnotu ve stupních (u 360 serva budou tyto hodnoty interpretovány odlišně).

Příklad jednoduchého náčrtu pro práci se servopohonem

Příklad projektu, ve kterém nejprve nastavíme servomotor na nulový úhel a poté jej otočíme o 90 stupňů.

#zahrnout Servo servo; // Vytvořte objekt void setup() ( servo.attach(9); // Označte objekt třídy Servo, že servo je připojeno ke kolíku 9 servo1.write(0); // Nastavte počáteční pozici ) void loop() ( servo.write (90); // Otočení serva o 90 stupňů delay(1000); servo.write(1800); delay(100); servo.write(90); delay(1000); servo.write (0); zpoždění (1000 ); )

Náčrt pro dvě serva

A v tomto příkladu pracujeme se dvěma servy najednou:

#zahrnout Servo servo1; // První servopohon Servo servo2; // Druhé servo void setup() ( servo1.attach(9); // Označení objektu třídy Servo, že servo je připojeno k pinu 9 servo2.attach(10); // A toto servo je připojeno k pinu 10 ) void loop() ( // Nastavení pozic servo1.write(0); servo2.write(180); delay(20); // Změna pozic servo2.write(0); servo1.write(180); )

Ovládání serva pomocí potenciometru

V tomto příkladu natočíme servo v závislosti na hodnotě přijaté z potenciometru. Hodnotu přečteme a převedeme na úhel pomocí funkce map:

//Fragment standardního příkladu použití knihovny Servo void loop() ( val = analogRead(A0); // Přečtení hodnoty z pinu, ke kterému je připojen potenciometr val = map(val, 0, 1023, 0, 180); // Převeďte číslo v rozsahu od 0 do 1023 do nového rozsahu - od 0 do 180. servo.write(val); delay(15); )

Charakteristika a zapojení SG-90

Pokud budete kupovat nejlevnější a nejjednodušší servopohon, pak bude nejlepší volbou SG 90. Toto servo se nejčastěji používá k ovládání malých lehkých mechanismů s úhlem natočení od 0° do 180°.

Specifikace SG90:

  • Rychlost provádění příkazu 0,12s/60 stupňů;
  • Napájení 4,8V;
  • Provozní teploty od -30C do 60C;
  • Rozměry 3,2 x 1,2 x 3 cm;
  • Hmotnost 9 g.

Popis SG90

Barvy drátů jsou standardní. Servopohon je levný a neposkytuje přesné nastavení počáteční a koncové polohy. Aby nedocházelo ke zbytečnému přetěžování a charakteristickému praskání v poloze 0 a 180 stupňů, je lepší nastavit krajní body na 10° a 170°. Při provozu zařízení je důležité sledovat napájecí napětí. Při velkém nadhodnocení tohoto ukazatele může dojít k poškození mechanických prvků převodových mechanismů.

Servopohony MG995 a MG996 tower pro

Servo MG995 je druhým nejoblíbenějším modelem serva nejčastěji připojeným k projektům Arduino. Jedná se o relativně levné servomotory s mnohem lepším výkonem než SG90.

Specifikace MG995

Výstupní hřídel na MG995 se otáčí o 120 stupňů (60 v každém směru), ačkoli mnoho prodejců uvádí 180 stupňů. Zařízení je umístěno v plastovém pouzdře.

  • Hmotnost 55 g;
  • Točivý moment 8,5 kg x cm;
  • Rychlost 0,2 s/60 stupňů (při 4,8 V);
  • Pracovní výkon 4,8 – 7,2V;
  • Provozní teploty – od 0C do -55C.

Popis MG995

Připojení k Arduinu probíhá také pomocí tří vodičů. V zásadě je pro amatérské projekty možné připojit MG995 přímo k Arduinu, ale proud motoru bude vždy vytvářet nebezpečnou zátěž na vstupech desky, proto se stále doporučuje napájet servo samostatně, nezapomenout na připojení uzemnění obou silových obvodů. Další možností, která usnadňuje život, by bylo použití hotových servořadičů a štítů, které si probereme v samostatném článku.

MG996R je svými vlastnostmi podobný MG995, pouze je dodáván v kovovém pouzdře.

Přeměna servopohonu na servo s plynulou rotací

Jak je popsáno výše, servo je řízeno pulzy s proměnnou šířkou, které nastavují úhel natočení. Aktuální poloha se odečítá z potenciometru. Pokud odpojíte hřídel a potenciometr, servomotor zaujme polohu jezdce potenciometru jako ve středu. Všechny tyto akce povedou k odstranění Zpětná vazba. To vám umožní ovládat rychlost a směr otáčení pomocí signálního vodiče a vytvořit servo s plynulou rotací. Je důležité si uvědomit, že servo s konstantní rotací se nemůže otáčet o určitý úhel a dělat přesně stanovený počet otáček.

Chcete-li provést výše uvedené kroky, budete muset zařízení rozebrat a provést změny v designu.

V Arduino IDE musíte vytvořit malou skicu, která umístí kolébku do střední polohy.

#zahrnout Servo myservo; void setup())( myservo.attach(9); myservo.write(90); ) void loop())( )

Poté je třeba zařízení připojit k Arduinu. Po připojení se servo začne otáčet. Úplného zastavení je nutné dosáhnout nastavením odporu. Po zastavení rotace musíte najít hřídel, vytáhnout z ní pružný prvek a nainstalovat jej zpět.

Tato metoda má několik nevýhod - nastavení rezistoru do úplného zastavení je nestabilní, při sebemenším rázu/zahřátí/ochlazení může dojít ke ztrátě nastaveného nulového bodu. Proto je lepší použít metodu nahrazení potenciometru trimrem. K tomu je potřeba vyjmout potenciometr a nahradit jej trimrovým rezistorem se stejným odporem. Nulový bod je nutné upravit pomocí kalibračního náčrtu.

Jakýkoli způsob přeměny serva na servo s plynulou rotací má své nevýhody. Za prvé je obtížné nastavit nulový bod, jakýkoli pohyb jej může rozhodit. Za druhé, regulační rozsah je malý - s malou změnou šířky impulzu se rychlost může výrazně změnit. V Arduinu můžete programově rozšířit rozsah.

Závěr

Serva hrají velmi důležitou roli v mnoha projektech Arduino, od robotiky až po systémy chytré domácnosti. Vše, co souvisí s pohybem, vyžaduje tradičně speciální znalosti a vytvořit plnohodnotný správně fungující pohon není snadný úkol. Ale pomocí servomotorů lze v mnoha případech tento úkol zjednodušit, a proto se servo stále používá i v projektech základní úrovně.

V tomto článku jsme se pokusili pokrýt různé aspekty používání serv v projektech Arduino: od připojení po psaní náčrtů. Výběrem nejjednoduššího modelu serva (například sg 90) můžete snadno zopakovat uvedené příklady a vytvořit své první projekty, ve kterých se něco hýbe a mění. Doufáme, že tento článek vám s tím pomůže.

Pokud najdete chybu, vyberte část textu a stiskněte Ctrl+Enter.