Bastlení,
Atari Portfolio,
zpět na předchozí stranu

Servodekodér
pro 8 modelářských serv

 
 
Dekodér pro připojení 8 modelářských serv k počítači - můžete s nimi rozhýbat například robota, manipulátor - mechanickou "ruku", nebo něco jiného podle vlastní fantazie.

Schéma zapojení:

můžete si stáhnout tento obrázek ve vyšším rozlišení (15kB)

Update:
toto zapojení vzniklo již v minulém století, ba přímo v minulém tisíciletí :-) takže dnes už by bylo lepší na místě optočlenu použít například 6N136, 6N137 nebo podobný. Viz zapojení servořadiče pro 8 nebo 12 serv.
Navíc dnes asi nejvíce používaný operační systém už není DOS, takže ani na této stránce připojený ukázkový program nebude použitelný.

Vstupní signál pro tento dekodér je série impulsů s šířkovou modulací, stejná jako u modelářské soupravy pro dálkové ovládání. Modelářské servomechanismy obsahují malý elektromotor s několika stupňovou převodovkou se zpětnou vazbou z výstupní hřídele do řídící elektroniky. V současné době vyráběné typy jsou napájeny napětím 4,8V (maximálně 6V) a jako vstupní signál vyžadují kladný impuls o délce 1ms až 2ms s periodou 20ms (není kritická). Délce impulsu kolem 1,5ms odpovídá střední poloha serva, při kratším impulsu dojde k natočení výstupní hřídele na jednu stranu, při delším impulsu na druhou stranu od střední polohy. Poloha výstupní hřídele je přímo úměrná šířce impulsu, pohyb je plynulý. Perioda opakování impulsů není kritická, používá se většinou kolem 20ms, pokud bude výrazně delší, dojde pouze ke zpomalení reakce servomechanismu na změnu šířky impulsu.
Vyobrazený dekodér je možno připojit k počítači typu PC na sériové nebo paralelní rozhraní, rovněž i k jiným počítačům, například i k jednočipovým mikropočítačům.

Vstupní signál by měl vypadat následovně:
1. klidová úroveň 0V - log.0, na sériovém rozhraní záporné napětí - log.1(svítí LED D2)
2. impuls o délce cca 0,3ms
3. klidová úroveň o délce 1ms až 2ms - kanálový impuls pro 1.servo
4. impuls o délce cca 0,3ms
5. klidová úroveň o délce 1ms až 2ms - kanálový impuls pro 2.servo
6. impuls o délce cca 0,3ms
atd. až na závěr
19. klidová úroveň o délce 1ms až 2ms - kanálový impuls pro 9.servo
20. impuls o délce cca 0,3ms
21. klidová úroveň až do začátku dalšího cyklu, minimální délka závisí na C1 a R3

Při použití menšího počtu serv není třeba generovat impulsy pro všech devět výstupů, například pro 2 serva je možno skončit krokem 6. Menší počet serv je ale možno připojit k řídícímu počítači přímo, bez použití tohoto dekodéru. Dekodér je určen pro připojení více serv k jednomu bitu rozhraní a úspoře dalších bitů pro jiné účely, v extrémním případě třeba pro připojení dalších dekodérů pro další serva. Současně použití dekodéru s galvanickým oddělením vstupu umožňuje připojit serva na větší vzdálenost od řídícího počítače, s omezením daným použitým typem rozhraní - pro paralelní rozhraní maximálně 5m, pro sériové rozhraní RS232 maximálně 25m. Pro větší vzdálenost by bylo vhodné připojit přímo k počítači nějaký budič, nejlépe s galvanickým oddělením od počítače, abychom nevytvořili zemní smyčku nebo si do počítače nezavlekli nějaké napětí.



V klidu je tranzistor v optočlenu rozepnutý, sepne při impulsu 0,3ms, čímž přes diodu D1 odblokuje RESET obvodu IC1 4017. Koncová hrana impulsu 0,3ms překlopí výstup Q1 do log.1. Příchod dalšího impulsu 0,3ms způsobí svou náběžnou hranou překlopení výstupu Q1 zpět do log.0 a svou koncovou hranou překlopení výstupu Q2 do log.1. Na výstupu Q1 je tedy impuls log.1 o délce trvání stejné, jako je odstup mezi prvním a druhým impulsem 0,3ms, což je kanálový impuls pro první servo. Každým impulsem 0,3ms je opakovaně vybíjen kondenzátor C1. Časová konstanta RC článku R3 C1 musí být delší než 2ms, aby během doby trvání kanálového impulsu nedošlo k překlopení vstupu RESET obvodu IC1 do log.1 a tím k vynulování tohoto obvodu. Na druhou stranu musí být mezi koncem úplného cyklu impulsů pro všechna serva a začátkem dalšího cyklu mezera delší než je časová konstanta R3 C1, aby došlo k vynulování obvodu IC1 a tím ke správné funkci dekodéru od začátku dalšího cyklu. Časová konstanta R3 C1 je tedy kritická pro fungování dekodéru. Podle výrobce obvodu IC1 4017 může být potřeba hodnoty R3 a C1 upravit.
S uvedeným počtem serv 9 vychází maximální délka jednoho kompletního cyklu impulsů 9*2ms + 10*0,3ms = 21ms. K tomuto času je třeba připočítat časovou konstantu obvodu R3 C1 (raději s rezervou) a výsledkem je minimální délka periody opakování cyklu. Mezera mezi cykly může být využita k tomu, aby řídící počítač vykonával jiné činnosti, než je generování série impulsů, například snímal nějaká čidla nebo třeba přijímal povely po sériové lince. U počítače typu PC je možno použít přerušení od časovače, které je standartně vyvoláváno každých 55ms.

Na závěr jednoduchý program pro ovládání 8 serv připojených k popisovanému dekodéru a jeho zdrojový kód.  Dekodér je připojen k sériovému portu COM2, na signál DTR, pin 4, a zem , pin 5 - na konektoru Canon 9. Pokud máte na starším počítači sériový port na konektoru Canon 25, signál DTR je na pinu 20 a zem na pinu 7. Pokud máte počítač s procesorem rychlejším než 200MHz, pro vlastní překlad si stáhněte patch na CRT knihovnu pro Turbo Pascal 7 a Borland Pascal 7.

Reakce na tento popis.