0J3071.1200b

Trochu větší lineární servopohon (1)

Když je potřeba trochu větší servo, než jaké nabízí modelářská technika, přijde ke slovu nabídka průmyslových výrobků nebo firem specializovaných na amatérskou robotiku. Představíme se jedno takové lineární servo ze sortimentu Pololu, které můžete objednat i ve Snailshopu.

Lineární servo LACT12P-12V-20 má některé základní parametry zakódované už v názvu: vysouvané rameno je dlouhé 12″ (kolem 30 cm), motor se napájí napětím 12 V a rychlost pohybu se zátěží je kolem 0,5″/s, typicky dokáže přejet rozsah za 20 s. K tomu je potřeba dodat, že servopohon se prodává jako mechanicky kompletní, ale bez obslužné elektroniky. Je vybaven jednak koncovými spínači, jednak odporovým snímáním polohy. Servo zvládne sílu kolem 500 N (zvedne závaží 50 kg) a je schopné pasivně udržet přes 2000 N (zátěž 200 kg), takže třeba otevřít vrata od garáže je pro něj hračka.

IMGP1374b

Servopohon (aktuátor) LACT12P

K uchycení serva slouží  otvory pro čepy (průměr 6 mm), které mají v zasunutém stavu mezi sebou vzdálenost asi 45 cm. V sadě se dodává i výkyvný úchyt určený pro ten konec serva, u něhož je motor s převodovkou 20:1.

0J3079.1200

Výkyvný úchyt serva (foto z nabídky www.pololu.com)

Stejnosměrný motor se napájí napětím 12 V (krátkodobě lze použít i 14 V), změna smyslu pohybu se docílí přepólováním napájení. Odběr při chodu bez zatížení je jen 0,5 A, při plném zatížení (500 N) nepřesáhne 3 A. Pokud by došlo k zablokování serva, odběr se může zvýšit až na 10 A. Servo je vybaveno koncovými spínači respektive odpojovači, takže při nejjednodušším použití stačí připojit napětí, po dosažení koncové polohy se samo zastaví. Plně zatížené servo se nesmí pohybovat více než 1/4 času, přesněji řečeno maximálně 1 minutu během každých 4 minut. Zbytek doby je potřeba na vychladnutí motoru.

0J3071.1200

Detail otevřené převodovky (foto z nabídky www.pololu.com)

Součástí serva je snímací potenciometr 10 kΩ, takže je velmi jednoduché převést polohu na napětí a snímat ji jakýkoli mikrokontrolérem s AD převodníkem. To otevírá cestu k využití nejen pro přestavení mezi dvěma koncovými polohami, ale třeba i ke konstrukci  běžným způsobem ovládaného RC serva, které je sice pomalé, ale za to nekompromisně silné a odolné.

K ovládání serva LACT12P-12V-20 se může samostatně zakoupit například elektronický modul Jrk21v3 , který využívá k nastavení polohy čtyři rozhraní: USB z počítače, sériový (COM) port, řídící analogové napětí a pulzy z RC přijímače (1-2 ms). Řízení serva jde poměrně jednoduše nahradit i vlastní konstrukcí, některé možnosti si ukážeme.

  • Nejjednodušší způsob ovládání třeba již zmíněných dveří představuje následující schéma, stačí přepínač se dvěma pakety. Servo se pohybuje jen mezi dvěma krajními polohami určenými vnitřními koncovými spínači, potenciometr zůstává nezapojený.
servo1

Ovládání serva jen pomocí přepínače

  • Na druhém schématu je příklad ovládání RC signálem pomocí mikrokontroléru PICAXE 08M2, jednoho výkonového tranzistoru a relé. Proud do motoru je spínán tranzistorem FET nejjednodušším způsobem, tj. bez ubrání rychlosti v blízkosti koncové polohy a měkkého dojezdu, relé přepíná směr pohybu. Je-li servo zatíženo, je dojezd po vypnutí proudu minimální, pokud běží naprázdno, dojíždí setrvačností motoru a převodů 8 – 10 mm. Vyzkoušený program slouží spíše k předvedení činnosti a jako východisko pro další přizpůsobení konkrétnímu účelu, při pravidelném používání by bylo vhodnější nahradit relé přepínající směr pohybu polovodičovým H můstkem.
servo2

Ovládání serva RC pulzy

#picaxe 08M2
#no_data
setfreq m32
do
  readadc10 4,w0                        ;napeti z potenciometru 0 - 1023
  pulsin 3,1,w1                         ;predpokladany interval z pulzu 800 - 1600
  w1=w1 min 800 max 1600                ;omezeni na regulerni pulzy
  w1=w1-700                             ;prevod na interval 100 - 900
  if w0>w1 then let w2=w0-w1 else let w2=w1-w0 endif ;ve w2 absolutni hodnota rozdilu
  if w0<w1 and w2>5 then low 2 endif    ;vypnuti rele smeru s hysterezi
  if w0>w1 and w2>5 then high 2 endif   ;zapnuti rele smeru s hysterezi
  if w2>15 then high 1 else low 1 endif ;sepnuti tranzistoru FET pro vetsi odchylce
loop
  • Na posledním schématu najdeme stejný způsob ovládání, ale tentokrát polohu určuje počítač přes sériovou linku programovacím kabelem PICAXE. Požadovaná poloha se zadává vysláním bytu, skutečnou polohu servo zpět nehlásí, i když zapojení je na to připravené. Signály Tx a Rx mohou být takto jednoduše zapojené, pokud má převodník USB/COM vstupy a výstupy v úrovních TTL, jinak použijeme standardní programovací kabel včetně rezistorů před vstupem Ser In mikrokontroléru. Přenos probíhá s pevně nastavenou rychlostí 4800 Bd. V programu je na třetím řádku od konce nastavena větší povolená odchylka požadované a skutečné polohy, takto vyhovuje pro nezatížené servo aby nekmitalo, při dostatečném zatížení ji můžeme zmenšit na polovinu.
servo3

Ovládání serva z PC programovacím kabelem s úrovněmi TTL

#picaxe 08M2
#no_data
do
  readadc10 4,w0                        ;napeti z potenciometru 0 - 1023
  serrxd [100],b10                      ;cteni dat ze SerIn 4800 Bd, 100ms timeout
  w1=b10*4                              ;rozsireni intervalu na 0 - 1023
  if w0>w1 then let w2=w0-w1 else let w2=w1-w0 endif ;ve w2 absolutni hodnota rozdilu
  if w0<w1 and w2>5 then low 2 endif    ;vypnuti rele smeru s hysterezi
  if w0>w1 and w2>5 then high 2 endif   ;zapnuti rele smeru s hysterezi
  if w2>15 then high 1 else low 1 endif ;sepnuti tranzistoru FET pri vetsi odchylce
  pause 50
loop

LACT12P-12V-20 samozřejmě není jediné servo tohoto druhu, v nabídce jsou i menší serva ze zdvihem od 2″, se snímáním polohy i bez něj či serva se čtyřikrát rychlejším pohybem, ovšem také přiměřeně menší silou. Stačí si jen vybrat.

Kat. 2