- Honzíkovy vláčky - https://www.honzikovyvlacky.cz -

DIGI-CZ 004 – Servodekodér a jeho nastavení

[1]Nutné podotknout, že základ této stati napsal Jirka Čechura jako reakci na diskusi v rámci Modelářské besedy. Shodou okolností se ale při testování tohoto nového zařízení nabízeného v rámci projektu DIGI-CZ v N-šopíku – ZDE [2] ukázalo, že případným zájemcům bude vhodné nabídnout další užitečné informace, které vyplynuly z testování dekodéru a z nabytých zkušeností. Původní článek autora byl tedy upraven více, než je u běžné redakční úpravy obvyklé. 

 

  Stěžejním problémem při oživení servodekodéru DIGI-CZ 004 je nastavení jeho adresy a definování vychýlení páky serva mezi dvěma krajními polohami. Ostatně, tento postup je obvyklý u všech obdobných dekodérů.
  Servodekodér je určen pro ovládání čtyř serv. Primárně je doporučeno na trhu jedno z nejlevnějších serv – Hextronik HXT900 -, se kterým byl servodekodér testován. Samozřejmě, připojit lze jakékoliv jiné servo s napájecím napětím cca 5 – 6V. Cit. servo není žádný technický zázrak, ale jeho nákupní cena ve známých e-shopech je okolo 2,70 dolarů (cca 52 Kč). Vzhledem k tomu, že v kolejišti přestaví výhybku 10x za odpoledne (obrazně řečeno), není jeho namáhání prakticky žádné. Mělo by takovou „námahu“ dlouhodobě vydržet. A když, tak výměna není drahá. Něco jiného by asi bylo v případě jeho použití u leteckého modelu, kde při ovládání křidélek musí kmitnout bezpočtukrát. Ale i tak, běžně dostupná jsou i kvalitnější „značková“ serva, ale jsou dražší; bude tedy záležet na  modeláři, pro které servo se rozhodne. Všechno co je v tomto článku uvedeno se týká pouze serva Hextronik HXT900. 
  Serva se k servodekodéru připojují pomocí trojžilového vodiče zakončeného tříkolíkovým  konektorem. Barvy vodičů jsou normalizovány (hnědá, černá = zem; červená = plus; žlutá, bílá = signál). Pozice pro připojení serva 1 až 4 jsou patrné z obr. 1. Jelikož na servodekodéru není vyznačeno, v jaké poloze má být na trojici pinů nasazen konektor, je třeba si pamatovat, že žlutý (bílý) vodič musí být vždy směrem k integrovanému obvodu (na obou stranách DPS). Při opačném zapojení by nebylo servo funkční a některé součástky by se silně zahřály.
  Tento servodekodér nemá rozdělené napájení a ovládání, jako tomu je např. u dekodéru pro elektromagnetické přestavníky (DIGI-CZ 005). Servodekodér DIGI-CZ 004 je napájen párem vodičů od centrály, které současně s napětím přenáší i signály ze svorek J a K centrály. Připojení vodičů ke svorkám servodekodéru je libovolné.

  [3]

 Obr. 1 – Schéma servodekodéru DIGI-CZ 004 s vyznačením pozic připojení serv 1 až 4

 

Programování adresy servodekodéru

  Při programování servodekodéru prostřednictvím systému LENZ je nutné servodekodér připojit prostřednictvím páru vodičů ke svorkám P, Q na centrále. (Při provozu pak musí být servodekodér připojen ke svorkám J, K.) Programování se provádí v režimu PROG (nikoliv PoM).
  Při programování prostřednictvím systému ROCO se dekodér připojí pomocí páru vodičů ke konektoru Track (Roco má jen jedny vodiče).
  Při programování prostřednictvím systému DIGI-CZ se dekodér připojí pomocí páru vodičů ke konektoru Prog.

  Při programování servodekodéru není rozhodující, zda se jeho adresa programuje jako první, nebo až nakonec. V tomto textu nejdříve naprogramujeme adresu servodekodéru. Ta musí korespondovat s předem vypracovaným plánem (schématem) osazení elektronických komponentů v kolejišti.  Jak už je uvedeno, servodekodéry jsou konstruovány každý pro ovládání max. čtyř serv. Obslužný software s tím počítá. Samozřejmě, není nezbytné (pokud se to z nějakých důvodů nehodí) osazovat všechna čtyři serva.
  Čtveřice čísel ve vzestupné řadě je ovšem nutné dodržovat. Ačkoliv se to zdá triviální, dovolujeme si připomenout, že první čtveřici očíslovaných výhybek (serv) v kolejišti bude obsluhovat servodekodér s adresou 1. Servodekodér s adresou 2 bude obsluhovat serva 5, 6, 7 a 8; servodekodér s adresou 3 pak serva 9, 10, 11 a 12 …. servodekodér 18 pak serva 69, 70, 71 a 72 (stejně jako již bylo popsáno ZDE [4]).
  Ale pozor, jak známo, existuje rozdíl mezi systémy LENZ a ROCO. To, co je uvedeno výše platí pro LENZ. U ROCO začínají adresy číslem 0 (nula), tzn. pro serva 1, 2, 3 a 4 je adresa 0, pro serva 5, 6, 7 a 8 je adresa 1 atd. Jinými slovy, u ROCO je číslo výhybky o 4 větší než u LENZ.
  Jestliže máme připravené schéma výhybek (event. i závor, mechanických návěstidel aj.) – např. viz ZDE [5] – lze podle čísla výhybky (resp. serva) opačnou cestou odvodit adresu (resp. číslo) servodekodéru. V odkazu výše lze dohledat, že v tab. „Rozmístění a číslování výhybek“ jsou dekodéry označeny kódem „DOK-s-A“, „DOK-s-B“ atd., což se ovšem s ohledem na nové poznatky jeví jako nepraktické. Přehlednější určitě bude vyznačit si v plánu přímo čísla (adresy) servodekodérů, tak jak vyplynou z popsané vzestupné řady čtveřic čísel. Tedy např.: Pro sérii výhybek 53, 54, 55 a 56 platí označení servodekodéru s adresou 14 (ve schématu „DEK-e-A“). Pro sérii výhybek 65, 66, 67 a 68 pak s adresou 17. Atd. Je nasnadě, že adresy servodekodérů bude vhodné si nalepit na  štítky (nebo je napsat nesmazatelnou fixou) vedle servodekodéru tam, kde bude umístěn v „podpalubí“ kolejiště. 

Naprogramování adres servodekodérů je možné udělat dvěma způsoby:

  První způsob je obdobný jako při programování dekodérů lokomotiv. Do CV1 nastavíme adresu  servodekodéru. Opětovně upozorňujeme, že si musíme dát pozor na rozdílnost systémů ROCO a LENZ, spočívající v posunutí hodnot v CV (u ROCO o jednu dolu).
  Druhý způsob (který je značně jednodušší) spočívá v nastavení adresy servodekodéru pomocí propojení dvou pinů, které jsou pro tento účel instalovány na desce plošného spoje. Ke spojení kontaktů se použije jumper, nebo si lze zhotovit jednoduchou propojku, anebo v nouzi ji lze nahradit šroubovákem, kterým na chvilku propojíme oba kontakty.

Programování adresy servodekodéru krok za krokem – v systému LENZ

S použitím programování:
– dekodér připojíme do svorek P, Q a odpojíme všechna serva,
– na ovladači zadáme PROG, dvakrát potvrdit – volba CV, potvrdit,
– do CV1 se zadá hodnota odpovídající číslu (adrese) dekodéru a potvrdí se ENTER,
– v tomto okamžiku se zapíše adresa dekodéru (přitom v centrále „cvrnkne“),
– odpojí se propojka a naprogramování se zkontroluje přepnutím ke svorkám J, K centrály, přičemž na ovladači se zvolí režim S/W a zadá se číslo příslušné výhybky (serva);
– po stisknutí tlačítka „+“ nebo „-“ se servo vychází doleva nebo doprava (při pohledu na páku serva). Úhel vychýlení páky bude cca 90°. 

S použitím propojky (jumperu):
– dekodér máme připojený do svorek J, K a nezáleží na tom, jestli jsou k němu připojená serva
– na piny (v obr. 1 označeno žlutě) nasadíme propojku (jumper),
– na ovladači zadáme S/W,
– zadáme číslo jedné ze čtveřice pro skupinu výhybek (serv) pro daný servodekodér (např. 1, 5, 17, … 69…) a zadání potvrdíme;
– na ovladači příslušným tlačítkem (tlačítky) zadáme přestavení výhybky (serva) (u LENZ je to tlačítky „+“ a „-“),
– v tomto okamžiku se zapíše adresa dekodéru (a zároveň se příslušné servo přestaví),
– odpojíme propojku a naprogramování se zkontroluje tím, že se na ovladači zvolí režim S/W a zadá se číslo příslušné výhybky (serva);
– po stisknutí tlačítka „+“ nebo „-“ se servo vychýlí doleva nebo doprava (při pohledu na páku serva). Úhel vychýlení páky bude cca 90°. 

Programování adresy servodekodéru krok za krokem – v systému ROCO

S použitím programování:
– na ovladači se zvolí menu (současným stisknutím kláves [↑] a [Menu]), následně se vybere třetí položka – PROGRAMOVÁNÍ – CV MODIFIKACE,
– do CV1 se zadá hodnota odpovídající číslu (adrese) dekodéru a potvrdí se ENTER,
– do paměti se zapíše adresa dekodéru,
– na ovladači se ukončí menu současným stisknutím kláves [↑] a [Menu],
– pokud jsou připojeny na svorkovnicích serva, tak po přepnutí ovladače do režimu vyhybek (klávesa lokomotiva/vyhybka) a zadání čísla výhybky by se mělo servo po stisknutí tlačítek „▲“ a  „▼“ vychýlí na jednu a na druhou stranu. 

S použitím propojky (jumperu):
– na piny (v obr. 1 označeno žlutě) se nasadí propojka (jumper),
– na ovladači se přepneme do režimu vyhybek (klávesa lokomotiva/vyhybka) a zadání čísla výhybky by se mělo servo po stisknutí tlačítek „▲“ a  „▼“ vychýlí na jednu a na druhou stranu
– do paměti se zapíše adresa dekodéru,
– odpojíme jumper a vyzkoušíme nastavení,
– pokud jsou připojeny na svorkovnicích serva, tak po přepnutí ovladače do režimu vyhybek (klávesa lokomotiva/vyhybka) a zadání čísla výhybky by se mělo servo po stisknutí tlačítek „▲“ a  „▼“ vychýlí na jednu a na druhou stranu.

Programování adresy servodekodéru krok za krokem – v systému NanoX a MiniMaus 

S použitím programování:
– dekodér připojíme do svorek „Prog“ (P, Q),
– na ovladači se zvolí menu programování (stiskem klávesy [Menu]),
– do CV1 se zadá hodnota odpovídající číslu (adrese) dekodéru a potvrdí se ENTER,
– do paměti se zapíše adresa dekodéru,
– na ovladači se přepneme do menu pro vyhybky stiskem klávesy [Menu],
– pokud jsou připojeny serva, tak po přepnutí ovladače do režimu vyhybek  a zadání čísla výhybky bude servo reagovat na tlačítka „▲“ a  „▼“,
– po ukončení programování a odzkoušení dekodér přepojíme ke svorkám J, K.

S použitím propojky (jumperu):
– na piny (v obr. 1 označeno žlutě) se nasadí propojka (jumper),
– dekodér necháme připojený do svorek J, K,
– na ovladači se zvolí menu vyhybek (stiskem klávesy [Menu]),
– zadáme číslo jedné ze čtveřice vyhybek, kterou chceme ovládat a stiskneme klávesu pro přehození „▲“ a  „▼“,
– do paměti se zapíše adresa dekodéru,
– odpojíme jumper a vyzkoušíme nastavení,
– pokud jsou připojeny serva, tak po zadání čísla výhybky bude servo reagovat na tlačítka „▲“ a  „▼“,

 

Nastavení úhlu vychýlení páky serva

  Jestliže naprogramování adresy servodekodéru je velmi jednoduché, při programování hodnot do CV 35 až 38, definující polohu A páky serva,  a CV 39 až 42, definující polohu B páky serva, resp. CV 43, tj. tzv. brzdový doraz, mohou vzniknout při programování servodekodéru v systému LENZ problémy. Ty jsou sice v odborné diskusi popsány uživateli, ale autorský popis je poněkud komplikovaný, takže jej nebudeme rozebírat. Tak či onak, jedná se o to, že při programování některých dekodérů nedojde k akci, nebo v lepším případě k odezvě provedené akce na displeji ovladače. Buď proto, že systém je přetížen; v takovém případě ohlásí „ERR 01“ (a do paměti se nic nezapíše). To se stává, když jsou k servodekodéru připojena serva (stačí i jedno). Anebo se systém „tváří“,  jakoby dekodér „neviděl“ a vrátí chybové hlášení „ERR 02“. Toto hlášení regulérně vrátí i tehdy, když není připojené žádné servo. Při oznámení „ERR 02“ ale s největší pravděpodobností došlo k zápisu programované hodnoty do paměti, a to je to dobré ve špatném. Zápis hodnoty si lze ověřit až zkouškou v režimu provozu (PoM), tedy po přepojení na svorky J, K. 1)
  Tato přinejmenším nepříjemnost provázející systém LENZ je podle všeho způsobena tím, že systém je velice citlivý na proudovou zátěž v režimu programování. Jestliže se při vyslání programované hodnoty (v podobě impulzu) nezvětší spotřeba přesně o 80mA, jak vyžaduje norma, systém buď oznámí přetížení (ERR 01), nebo si naopak „myslí“, že servo není připojeno (ERR 02).  A uživatel je zmaten. Jak je již uvedeno, když nebude k servodekodéru servo připojeno, tak ve skutečnosti se zadaná hodnota do paměti zapíše. Bohužel, druhou nepříjemností je, že v režimu PROG nelze přečíst hodnotu CV (dvojím stisknutím ENTER po zadání CV).
  Je vyzkoušeno, že po připojení některého typu serva – dobré výsledky byly dosaženy se servem Power HD MicroServo HD-1370A -, mající zřejmě spotřebu v hodnotě výše uvedené, lze servodekodér naprogramovat podle všech pravidel. Servo HXT900 to ale rozhodně není.
  Pokud není k dispozici servo HD-1370A, lze servodekodér naprogramovat bez připojení serva.
  Na odstranění popisovaného problému programování servodekodéru DIGI-CZ 004 v systému LENZ se pochopitelně pracuje, protože „náhradní“ způsob naprogramování CV35-38, resp. 39-42, resp. dalších CV je jistě nekomfortní. Bude to ale otázka posouzení finančních nároků na úpravu DPS. 
  Při programování v systému ROCO a DIGI-CZ tyto problémy nevznikají.

Jak na to?

  Nastavování úhlu vychýlení páky serva je možné označit za malé laborování. Je to dáno několika faktory. Z praxe se ukazuje, že každé servo (HXT900) má individuální výchylku páky. Zřejmě při výrobě není dbáno na přesné nalisování mnohohranu.  Přesné nastavení vychýlení páky bude dále záviset na délce ocelové struny k přestavování výhybky, její tuhosti, upevnění na páce serva atd. Prioritní samozřejmě musí být takové vychýlení páky, aby došlo k bezproblémovému přestavení výhybky (anebo k pohonu jiného příslušenství).
  Software od Jindry Fučíka instalovaný do integrovaného obvodu dodávaného serva DIGI-CZ 004 (verze 3.5) má defaultně zadané hodnoty pro pozici A = 100 a pro pozici B = 200. Pozice A je maximálně vychýlená páka vlevo, pozice B je maximální výchylka vpravo při pohledu na osu serva (resp. mnohohran pro uchycení páky). Výchylku páky na obě strany lze měnit, hodnoty pro pozici A a B lze zadávat v rozmezí 90 až 210. Do pozice A se páka vychýlí (LENZ – v režimu PoM – S/W) po stisknutí tlačítka „+“, do pozice B po stisknutí tlačítka „-“ (ROCO – v režimu „ovládání výhybek – stisknutí tlačítek „▲“ a  „▼“).
  Pokud se zadávané hodnoty pro obě pozice „prohodí“, tj. pro pozici B se zadá hodnota menší a pro pozici A větší, software zajistí, že servo funguje na pokyn tlačítek ovladače „+“ a „-“opačně.  
  Při zadání mezních hodnot pro pozice A a B je úhel vychýlení páky serva HXT900 cca 90°, což je poměrně hodně. Po zadání hodnoty 105 v poloze A a 155 v poloze B se výchylka páky sníží na cca 60°. Může se stát, že vychýlení páky vlevo a vpravo nebude symetrické, což je způsobeno nepřesností v nalisování mnohohranu na osu, na který se nasazuje páka. Přesnou výchylku páky je možné nastavit jen trpělivým programováním hodnot v polohách A a B. 
  Z praktického hlediska je účelné, aby v počátku programování nebyla páka nasazena na mnohohranu osy serva. Nejdříve je potřeba naprogramovat pozici A. Při ověření naprogramování této polohy se osa serva natočí do maximální levé výchylky. Teprve nyní je možné nasadit páku do odhadnuté levé pozice (po zkouškách lze na mnohohranu páku přestavit).  Pak můžeme programovat hodnotu pozice B. A opět se hned doporučuje vyzkoušet obě pozice páky.
  Rozhodně je vhodné programovat servo vyjmuté z držáku, ať už je tento jakýkoliv. Prostě jen tak položené na stole. Převody serva totiž dávají páce značnou „sílu“, což může způsobit nežádoucí deformace na držáku. Když se naopak při instalaci již naprogramovaného serva do držáku, resp. pod výhybku, ukáže, že přítlak přesunované části výhybky není dostatečný, a není na vině malá pevnost struny, nebo asymetrie vychylování páky aj., lze jednoduše sílu přítlaku zvýšit naprogramováním většího vychýlení páky (na jednu, druhou či obě strany). Nebo naopak, přítlak snížit, když se něco nepřiměřeně „šponuje“.
  Důležité je ještě připomenout, že každé servo nastavujeme zvlášť, což ovšem znamená, že u každého  serva můžeme nastavit různé hodnoty pro vychýlení páky. 

V následující tabulce připomínáme, do kterých CV se zapisují hodnoty pro definování polohy A a B serv 1 až 4. Přičemž jak už je uvedeno, mezní hodnoty jsou 90 až 210.

Tab. 1

  Poloha A Poloha B Rychlost
Servo 1 CV35 CV39 CV3
Servo 2 CV36 CV40 CV4
Servo 3 CV37 CV41 CV5
Servo 4 CV38 CV42 CV6

   

 Naprogramování rychlosti pohybu páky

  Do CV43 nesahejte, tam je brzdový doraz. Udává počet pulzů pro dosažení pozice. Tato hodnota je důležitá, pokud používáme maximální rychlost serva. Servo potřebuje nějaký čas, aby se ustálilo na koncové pozici. Při pomalém běhu je čas velmi krátký, ale při rychlém přesunu se může stát, že servo ani nestihne na svojí pozici doběhnout. V takovém případě je možné hodnotu CV zvětšit. Použitelné hodnoty jsou cca mezi 4 až 10, delší vedou ke chvění serva, kratší k nedobíhání na pozici. Pokud taková situace nastane, je potřeba uložit do CV43 hodnotu 4.
  Rychlost pohybu páky serva se nastavuje v CV 3 až 6 (viz tab.) Rychlost znamená, kolikrát se použije každý puls. Takže, pokud máme definované polohy A = 100 a B = 180 (1ms – 1,8 ms), máme 80 kroků, tzn., že při výchozím kmitočtu 50Hz je doba otáčení 80/50 = 1,6 sec při rychlosti 1. Při rychlosti 2 to bude dvojnásobně dlouho – tedy cca 3,2 sec, při rychlosti 3 to bude trojnásobek, tedy 4,8 sec. Pokud nastavíme rychlost 0, znamená to maximální rychlost serva (ta bývá uvedena v dokumentaci k servu a  znamená rychlost otočení o 60° – cca 67 kroků dekodéru). Pokud nastavíme rychlost na hodnotu větší než 128, použije se jiná logika výpočtu. Namísto opakování kroků se použije přičítání větších čísel. Jednoduše řečeno pokud použijeme rychlost v rozsahu 128 – 255, dekodér odečte od zadaného čísla 127 a tolikrát rychleji servo poběží.

________________________________

1) Možná by v této souvislosti mohlo být pro váženého čtenáře přínosnou informací, že si lze snadno zhotovit praktickou pomůcku, jakýsi externí přepínač, který ulehčí práci a nahradí přepojování vodičů v případě programování dekodérů mimo kolejiště. Blíže viz ZDE [6]

Použité podklady: Martin Pinta, LOKOPIN; DCCkoleje
Odborná redakce textu Jindřich Fučík
Foto archiv DIGI-CZ