Ovladače servomechanismů

Nedávno zde byly představeny modelářské servomechanismy (dále jen serva) a vysvětleny možnosti jejich použití v robotice. A hned si také řekněme, že tato serva jsou dnes vyráběna na tak vysoké technologické úrovni, že se nepoužívají jen v amatérské robotice, ale i ve zcela seriózních průmyslových projektech.

Způsob řízení serv si jen připomeňme: řídícím signálem je obdélníkový pulz o délce trvání 1 až 2 ms, který se opakuje v rámci 50 ms, tedy 20x za sekundu. Podrobnosti naleznete v literatuře. Generovat takový signál je pro mikroprocesor hračka, ovšem pokud je třeba těchto signálů generovat větší množství, procesor je už touto úlohou značně zatížen a nezbývá mu tedy dost času na jiné úkoly. Proto se k řízení serv používají takzvané servokontroléry, které převezmou veškerou režii, spojenou s řízením serv, a značně odlehčí řídícímu mikropočítači. Vedlejším, i když rozhodně nikoli nevýznamným efektem použití servokontroléru je také značné zjednodušení programu.

Podívejme se teď podrobněji na některé servokontroléry, dostupné na našem trhu.

SD20P

je jen součástka. Je to předprogramovaný mikroprocesor PIC16F883, běžící na kmitočtu 8 MHz, s interním oscilátorem, který dovoluje ovládat příkazy, přijímanými na sběrnici I2C, polohu až dvaceti serv. Poskytuje stabilní délku pulzu – nestabilita je známý problém většiny mikroprocesorů, které řídí serva a zároveň vykonávají i jiný program – umožňuje přepínání velikosti výchylky serv, zapínání a vypínání serv a také zpětné čtení jejich polohy. Podrobnosti o tomto obvodu naleznete ve na stránkách výrobce.

Protože se jedná o součástku, je samozřejmé, že nemůže pracovat zcela samostatně, ale ji je nutno umístit do elektrického obvodu, který se postará o správnou velikost napájení, odstranění rušení a stabilizaci napětí a také o to, aby bylo kam připojit serva, vstupní signály a napájecí napětí, tedy o konektory. Pro vlastní konstrukci servokontrolérů je to však ideální a levný prvek.

SOS-AT

je jedním nejstarších sériově vyráběných servokontrolérů. Umožňuje připojení a ovládání osmi serv sériovým signálem, který, díky optickému oddělení na vstupu, může být v úrovních sériových linek RS232 (RS422, RS485) nebo v úrovních TTL. Komunikační rychlost může být zkratovací spojkou (jumperem) na desce kontroléru nastavena na 2 400 nebo 9 600 Bd. Stejným způsobem je možno nastavit také tříbitovou adresu (0-7) kontroléru, takže lze zřetězit až osm těchto kontrolérů a tak ovládat až 64 serv. Výchylku připojených serv můžeme další zkratovací spojkou nastavit na 90 nebo 180 stupňů, tj. 1 až 2 ms nebo 0,5 až 2,5 ms.

Ovladač servomechanizmů SOS-AT pro 8 serv

Komunikační protokol je velmi jednoduchý:

<1 byte> <2 byte> <3 byte>

<1 byte>          synchronizační, vždy 255 (FFh)

<2 byte>          číslo ovládaného serva (0 – 254) (00h – FEh)

<3 byte>          pozice výstupního hřídele serva (0 – 254) (00h – FEh)

a odpovídá komunikačnímu protokolu modulu Mini SSC II.

Se servokontrolérem je dodáván také ovládací program WinSOS II pro operační systém Windows, který umožňuje ovládat kontrolér z osobního počítače, vytvořit a uložit sekvenci až 2000 kroků pohybu a pak ji neomezeně opakovat. Ke stažení zde.

ServoAnim

je „větším“ bratrem kontroléru SOS-AT. S nadřazeným počítačem komunikuje opět přes sériové rozhraní, tentokrát ale jen typu RS232 a komunikační rychlostí 9600 Bd. Miniaturními přepínači (DIP-switch) na desce plošných spojů je možno ServoAnim nastavit do režimu SOS-AT, tedy jako modul, řízený nadřazeným osobním počítačem, nebo do režimu, který je autonomní a vykonává předem určenou sekvenci pohybů. V tomto případě se v ovládacím programu WinSOS II, běžícím v osobním počítači, odladí požadovaná sekvence pohybů serv (stejně, jako v SOS-AT) a ta se následně nahraje do paměti ServoAnimu. Pak už může trvale běžet nezávisle na osobním počítači.

Ovladač servomechanizmů SOS-AT také pro 8 serv

Tento modul často používají výtvarníci, výrobci reklam nebo filmoví trikaři, kteří si předem připraví sekvenci pohybů, kterou pak v případě potřeby spouští jednoduchým spínačem nebo, například, senzorem pohybu.

V robotice je ServoAnim užitečný především u stacionárních modelů strojů a zařízení, kde se postará o rutinní pohyby částí stroje. Těmito částmi může být například manipulátor, který překládá dopravovaný, měřený nebo testovaný objekt nebo dopravník, který se stará o přesun.

Možností využití tohoto zařízení je ovšem nepřeberně a dá se říci, že některé teprve čekají na své objevení.

SSC-32

je nejluxusnějším ze všech servokontrolérů. Zároveň je však jeho konstrukce open-source, neboli otevřená všem zájemcům o úpravy, takže jsou veřejně k dispozici schémata zapojení, motiv desky plošných spojů a hlavně je k dispozici zdrojový kód programu, který běží v mikrokontroléru ATMega8. Tento modul umožňuje nejen polohové řízení serv, ale umožní u každého serva nastavit programově rychlost jeho pohybu, nebo umožňuje nastavit rychlost pohybu serv tak, aby všechna skončila svůj pohyb současně. Tohle je zajímavá vlastnost, která se používá třeba při programování pohybu kráčejících robotů. Manuál k modulu na stránkách výrobce.

Výkonný ovladač servomechanizmů SSC-32

Další z užitečných vlastností je, že je možno výstupy pro serva, na kterých je běžně signál s PWM modulací, přestavit do módu klasických digitálních výstupů s klidovými úrovněmi TTL, takže je jimi potom možno spínat (pochopitelně po patřičném posílení) třeba relé nebo stejnosměrné elektromotory.

A protože u mikroprocesoru zbyly ještě nějaké volné piny, tak má modul SSC-32 ještě k dispozici 4 digitální vstupy, také v úrovních TTL.

Komunikace s nadřízeným zařízením probíhá opět sériově, k dispozici je jak rozhraní v úrovních TTL, které oceníme, pokud modul SSC-32 připojujeme k jinému mikroprocesoru, tak rozhraní pro připojení linky RS232, které se zase hodí při připojování modulu k osobnímu počítači.

[1] – SOS-AT Manual

[2] – ServoAnim popis konektorů

[3] – WinSOS 2 manuál

Jednotlivé moduly můžete zakoupit zde:
SD20
SOS-AT
ServoAnim
SSC-32