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

Řadič pro řízení
12 modelářských serv s jednočipem

 
 
Řadič  pro řízení modelářských serv z počítače - můžete s nimi rozhýbat například robota, manipulátor - mechanickou "ruku", nebo něco jiného podle vlastní fantazie.

Tento řadič se připojuje k řídícímu počítači přes sériové rozhraní, napěťové úrovně mohou být RS232 i TTL, takže je možno jej řídit nejen z PC, ale i osmibitovým nebo jednočipovým počítačem.
Výstupní signály z řadiče jsou impulsy 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.

Řadič je určen pro připojení více serv k jednomu sériovému rozhraní.  Rychlost komunikace po sériovém rozhraní je nastavitelná propojkou - 2400Bd nebo 9600Bd. Řadič je navržen tak, aby byl programově kompatibilní s výrobkem firmy SEETRON - řadičem SSC. Tato kompatibilita byla zvolena pro možnost využít k řízení již existující software.
Od verze pro 8 serv se liší tím, že není možno nastavit propojkami adresu servořadiče a připojit tak jednoduše několik servořadičů současně na jedno sériové rozhraní. Adresu servořadiče je možné nastavit v programu pro jednočip, takže není vyloučeno použití několika servořadičů. Další možnost je využít dva vývody jednočipu určené pro nastavení přenosové rychlosti a rozsahu pohybu serv pro připojení paralelně sériového převodníku, který by měl na vstupu 8 bitů použitelných pro konfiguraci. Znamenalo by to další integrovaný obvod na desce. Vzhledem k tomu, že servořadič je navržen co nejúsporněji, nevím, zda by někdo takovou verzi využil. Jestli ano, ozvěte se a můžu ji taky zveřejnit.

Způsob ovládání:
Z řídícího počítače se vyšle sekvence tří bajtů - značkový bajt (255), bajt s číslem vybraného serva (0...11), bajt s požadovanou polohou vybraného serva (2...254).
Značkový bajt slouží k synchronizaci přenosu, proto žádný jiný bajt nesmí mít hodnotu 255.
Bajt s číslem serva je v rozsahu 0-11. Při nastavení jiné adresy řadiče než 0 (je to možné pouze změnou v programu pro jednočip) by byl tento bajt (0-11) + 12x adresa řadiče, nastavená v programu. Takže pro řadič s adresou 0 je rozsah adres serv 0-11, pro řadič s adresou 1 je rozsah adres serv 12-23 ... atd. až pro maximum by byla adresa servořadiče 20 a rozsah adres serv 240-251. Při takovém množství serv by bylo už nutné počítat i se zpožděním při přenosu povelů pro jednotlivá serva - při rychlosti 2400Bd trvá přenos povelu pro jedno servo 12,5ms, při rychlosti 9600Bd je to 3,125ms. Pokud by se měl přenést povel pro změnu polohy pro všech 252 serv (0-251) bude to trvat 3,15s, respektive 0,7875s. Samozřejmě není vždy nutné posílat povel všem servům, proto je taky struktura ovládání taková jaká je - obsahuje adresu serva, pro které je určen povel.
Bajt s požadovanou polohou serva - hodnota 0 nebo 1 mají speciální význam - v těchto případech se na patřičném výstupu přestává generovat impuls pro servo a místo toho je zde trvale 0, čili nulové napětí, nebo 1, čili téměř plné napájecí napětí. K takovému výstupu lze připojit místo serva tranzistorem spínané relé, žárovku, elektromotor. Pro ovládání serva se používá rozsah hodnot 2-254, přitom 128 je střední poloha, 2 a 254 jsou krajní polohy.

Poznámky ke schématu:
Napájení je z baterie akumulátorů 4,8V nebo síťového zdroje 5V, napájejícího serva, proud podle spotřeby serv. Samotný řadič má spotřebu jen několik mA. Při napájení ze síťového zdroje je nutno použít stabilizovaný zdroj. V takovém případě může někdy docházet k trhavému pohybu serv. Při napájení z akumulátorů s malým vnitřním odporem k tomuto jevu nedochází, jedině snad při použití dlouhých tenkých přívodních kabelů. Při napájení ze stabilizovaného zdroje dochází k poklesu napětí, způsobenému proudovými špičkami při pohybu serv. Pro odstranění je vhodné připojit k napájení serv paralelně elektrolytický kondenzátor např. 470uF/6V.
Optočlen na vstupu byl původně zamýšlen jako "čisté" řešení, jak galvanicky oddělit servořadič od připojeného počítače. V praxi se však bohužel ukázalo, že ne každý "běžný" optočlen je schopen přenést i tak relativně malou rychlost jako je použitých 2400 nebo 9600Bd. Takže jsem použil jako další variantu na vstupu tranzistor. Optočlen nakreslený ve schématu typu 6N136 nebo 137 je dostatečně rychlý. 
Na desce plošných spojů jsou osazeny ze strany spojů pod jednočipem dva odpory SMD - R5 a R6. Rovněž je na desce jedna drátová propojka - nezapomeňte ji osadit.
Ve verzi s optočlenem je k diodě v optočlenu připojena LED dioda jako ochrana a indikace správné polarity připojení. Pokud je servořadič připojen na sériový port PC, LED v klidu svítí, během přenosu dat pohasíná. Je-li to naopak, prohoďte přívody od PC k servořadiči.
Propojkou JP4 se nastavuje rozsah pohybu serv - při rozpojené propojce mají výstupní impulsy šířku 0,95-2,05ms, se spojenou propojkou je rozsah šířky výstupních impulsů 0,4-2,6ms. Pro běžná serva nedoporučuji používat širší rozsah, servo Hitec HS-303 při něm najíždělo na doraz při hodnotách 40 a 230. Užší rozsah 0,95-2,05ms je použitelný bez nebezpečí že nebude stačit mechanický rozsah pohybu serva.
Propojkou JP5 se nastavuje přenosová rychlost sériového rozhraní. Při rozpojené propojce je rychlost 9600Bd, při spojené propojce 2400Bd.
Změna nastavení jakékoliv propojky se projeví až po vypnutí a zapnutí servořadiče!

Software pro jednočip ve formátu Intel HEX a ve formátu BIN.

Software pro PC na vyzkoušení : ovládání serv jednotlivě, i se zdrojovým kódem v Pascalu, posílání stejné hodnoty na všechna serva, rovněž se zdrojovým kódem v Pascalu. Software pro PC je pro sériový port 1 a přenosovou rychlost 2400Bd, ve zdrojovém kódu není problém tyto hodnoty změnit.

Propojovací kabel PC - servořadič
Na kabelu do PC nezapomeňte propojit mezi sebou DTR, DSR a DCD (vývody 4, 6 a 1) a RTS s CTS (vývody 7 a 8). Výstup TxD je na vývodu 3 a zem na vývodu 5.



Schéma zapojení verze s optočlenem na vstupu:


Schéma ve větším rozlišení (42kB)
Plošný spoj
Osazení plošného spoje


Schéma zapojení verze s tranzistorem na vstupu:


Schéma ve větším rozlišení (39kB)
Plošný spoj
Osazení plošného spoje

Reakce na tento popis.