Tester modelářských serv.

Pokud se Vám podařilo rozmlátit servo na padrť (jako bráchovi Milanovi, který ho doslova rozpůlil) a rozhodli jste se ho zase dát dohromady (na rozdíl od Milana), jistě jste si kladli otázku, jestli když ho teď připojíte k přijímači, nepřijdete i o přijímač. Nebo pokud stavíte elektronické udělátka pro přijímač či si jen chcete ověřit krajní polohy serv, pak by se Vám tento levný, přesný a jednoduchý přípravek mohl hodit.

Jak na to ?

Vezmeme jednochip s AD převodníkem a připojíme k němu dva potenciometry. Na dva digitální výstupy pak připojíme signálové vstupy serv a trochu ten jednochip naprogramujeme. Zní to moc jednoduše ? Ale ono to opravdu jednoduché je.

Jednochip by se hodil PIC12C671, má AD převodník integrovaný a je levný. Aby to generovalo přesné délky pulsů pro serva, použijeme k jeho taktování krystal. No a kus stabilizátoru 5V se určitě vyplatí, ať to můžeme napájet z adaptéru do zdi 8 až 12V. Celé to má jen jednu chybu. PIC12C671 při použití krystalu má volné jen 3 vstupně-výstupní piny a jeden jen vstupní. Když navíc uvážíme, že právě z toho jen vstupního (zbylého po vypnutí ovládání /MCLR pomocí pinu) převádět pomocí AD převodníku nelze, je jasné, že musíme nějak přesvědčit ten vstupní pin, aby se choval jako výstupní. Pokud Vás zajímá, jak jsem ho přesvědčoval, mrkněte se na GP3OUT.

Zapojení

Myslím, že prohlídkou schématu lze říci více, než mnoha slovy. Jen pro úplnost, výstup z potenciometrů je přiveden do vstupů do analogově-digitálního převodníku, který 0V až napájecí napětí rozliší jako 256 hodnot, tedy 0 až 255. PIC tedy změří napětí na dvou vstupech AD převodníku a vygeneruje pulsy na dvou výstupech pro serva, jejichž délka je 990 mikrosekund pro 0V až 2010 mikrosekund pro napájecí napětí. Podle délky pulsů vygeneruje mezeru mezi pulsy tak, že další puls začíná vždy přesně 20ms od začátku předchozího. Kondenzátory 1n slouží jen pro ošetření poskakování potenciometrů a 100n jen pro blokování napájení. Potenciometry nemusí být nutně 5k, 1k až 10k lineární vyhoví, přes 10k již nelze doporučit. Bylo by samozřejmně vhodné, zařadit ještě do napájecí cesty diodu, třeba 1N4007 pro zabránění přepólování, já ji nepoužil a pokud výstup z adaptéru do zdi připájíte jako napájení na tvrdo, nebo použijete-li vlastní zdroj pro toto zařízení, nebudete ji potřebovat také, jinak by ale byla vhodná.

Program pro PIC12C671

A ještě program, který vložíme do PIC12C671. Možná se Vám bude zdát zbytečné nastavovat konstantu do OSCCAL, když to má jet s krystalem. Takže jen proto, aby to mohlo jet i bez něj, pokud si zvolíme při programování chipu interní RC oscilátor. Pak by se dal vypustit nejen krystal, ale i kondenzátory 27p, ale za cenu snížení přesnosti a teplotní stability. Program si můžete stáhnout jako servtest.asm a nebo jako již zkompilovaný HEX soubor, tedy servtest.hex. Pokud se Vám budou zdát komentáře divné, nevšímejte si jich, jen jsem si počítal doby běhu programu a nechal to tam pro případ, že by to někoho zajímalo, ale berte ty komentáře s rezervou, sloužily původně jen pro mé psaní. Při vypalování PICu zvolte XT oscilátor, CP (ochrana proti čtení) je na Vašem uvážení a WDT vypněte.

Možné úpravy

Pokud chcete použít variantu s interním oscilátorem, tedy bez krystalu, vypalte místo XT oscilátoru INTRC (jsou dvě varianty vypálení INTRC, tady je jedno kterou si vyberete). Osobně variantu s interním oscilátorem nedoporučuji, ušetřené prostředky za krystal v ceně 20Kč a dva kondenzátory ani ne po koruně za zhoršení parametrů testeru opravdu nestojí, odhlédneme-li od faktu, že při použití interního RC oscilátoru by bylo i kouzlo s GP3 zbytečné a tedy by se dalo zapojení ještě zjednodušit a přepsat si program.

Je jasné, že by šel vypustit i jeden potenciometr s příslušným 1n kondenzátorem, tranzistor a oba odpory, pokud by se mělo ovládat jen jedno servo. Ale myslím, že je to škoda uvážíme-li, že se tím dají testovat i věci ovládané dvěma kanály zároveň (např. mixéry) a cena těch pár součástek není nijak vysoká.

Výstup servotesteru se dá chránit odporem dejme tomu 1k mezi výstup a serva. Tím zodolníme zařízení proti zkratu na výstupu a nezničíme ho v případě, že zkoušené servo má například vstup zkratovaný s napájením. Odpor na výstupu servu ve funkci nevadí.

Funkčnost

256 poloh není velké rozlišení, zvláště uvážíme-li, co se chystá do budoucnosti v rámci tzv. digitálních serv, nicméně s takovým rozlišením někteří výrobci dobře vystačili a pro naše testy to bude jistě stačit také. Navíc tak jak zařízení je, pracuje na první zapojení (pokud je všechno zapojeno správně), nic se nenastavuje a přitom jsou jasně definovány krajní polohy. Pokud tedy vytočíte potenciometr do krajní polohy, můžete si být jisti, že je to i standartní krajní poloha pro RC zařízení, pracující s délkou pulsů 1 až 2ms, tedy dnes běžné RC vybavení. Zkoušel jsem RC soupravu, která na krajní polohu nedojela ani při plné výchylce s plným trimem. Pokud si pak nastavíte servo podle takové soupravy tak, aby v krajní poloze nenaráželo, může v důskledku třeba rušení klidně narazit. Krajní poloha serva může být ale ještě mimo rozsah tohoto testeru, tedy nějaké volné místo pro páku serva ponechte i po vyzkoušení krajních poloh tímto testerem.

Plošné spoje a osazení

Pokud se Vám toto zařízeníčko zamlouvá, pak Vám ještě dlužím výkres desky plošných spojů a náčrtek osazení. Tak tedy tady jsou. Rozměry desky jsou 48 x 43 mm a je pro klasickou montáž.

Deska ze strany spojů



Deska ze strany součástek

Provedení

Ke konstrukci jen tolik, že pokud použijete potenciometry s jinou roztečí pinů než já, připojte je buď kablíky a nebo si upravte desku plošných spojů. Totéž platí v případě, že se Vám zdají potenciometry moc blízko u sebe pro pohodlné ovládání, nebo pro dobré umístění ve Vámi zvolené krabičce. Potenciometry jsou lineární a není od věci je osadit knoflíkem s ryskou a trochu si popsat jejich polohy, stačí to udělat dle okrajů dráhy potenciometru a mezi nimi si dráhu rovnoměrně rozdělit. K napájení požívám adaptérek 12V/500mA. Ne že by tester tolik spotřeboval, ale je třeba také myslet na 2 serva, 300mA by ale asi také stačil. Vylepšení svítivou diodou (s odporem pro omezení proudu) jako indikaci přítomnosti napájení lze také jen doporučit, ale není to nutné. Stabilizátor 7805 je na desce chladícím křidélkem dolů, tedy k desce a není opatřen žádným dalším chlazením. Před prvním zapojením serva se přesvědčte, že výstupní napájení pro serva je opravdu 5V (ostatně to vždy kontroluji ještě před osazováním jednochipu (PIC), abych si ho nezničil. Umístění PIC do patice není od věci, patice se tam pohodlně vejde. Výstupy pro serva jsem řešil připájením pinové lámací lišty přímo na desku plošných spojů, ale pokud zařízení zavřete do krabičky, budou asi lepší kablíky a pinovou lištu dát tak, aby byly výstupy pro serva lépe dostupné.

Závěrem

Je to velice jednoduché, ale i tak to vyžaduje alespoň umět vypálit PIC12C671 a připájet součástky. Kdesi jsem slyšel, že když si donesete disketu s HEX souborem, jsou Vám někteří prodejci ochotni chip při koupi rovnou vypálit. Já s tím zkušenosti nemám, pokud někdo již podobnou službu využil a je ochoten poreferovat, rád se o jeho sdělení podělím dále. A pokud si netroufáte vůbec a přesto by se Vám tento tester hodil, požádejte někoho kdo to umí (není takových lidí málo) a poproste ho, jestli by si nechtěl jeden večer pohrát a půjčte mu alespoň jedno servo - při pohledu na pulsy na osciloskopu to nezpůsobuje tak velkou radost z funkčnosti :-). Pokud použijete něco z tohoto materiálu byť i jen jako inspiraci pro svou potřebu, splnil materiál svůj úkol. Pokud se Vám cokoli nezamlouvá, nebo máte jiný názor, klidně mi napište, e-maily jsou mou oblíbenou formou komunikace.

Autorův e-mail: jiri@bezstarosti.cz