Railnet

Ovladač pro kobercové ježdění – Oto-graf

DCC | Zdeno Janeček, 10. 08. 2020 (3046 zhliadnutí)

Mám dojem, že ještě nikdo nevymyslel ovladač pro lidi, kteří nemají prostor pro pevné kolejiště, ale mají možnost si čas od času postavit kolejiště na koberci nebo velkém stole. Teda si pohrát na 3-4 hodiny a zase to uklidit. Ne každého baví lítat nebo přelézat okolo (přes) kolejiště a tak jsem se pokusil něco a jinak vymyslet. Klasické ovladače mají možnost ovládat vyhybky, ale není vidět, kde ta vyhybka je a kam je nastavená. Prostě tomu chybí plánek kolejiště, který se dá snadno nakreslit a potom ovládat. A o to jsem se pokusil.

Dostal se mi do rukou procesor Atmega 2560 na desce Mega Pro 2560, který je plnohodnotná náhrada obvodu Arduino Mega, který má rozměry 38x54 mm a teda je zhruba poloviční oproti klasice Arduino Mega. Má podobně vyvedené piny jako jeho vzor a teda je to náhrada. Cena MegaPro se pohybuje od 5 do 8 Eur a dá se najít na AliEpress pod jménem MegaPro2560.

Napadlo mne ho použít na ovladač, který by umožňoval řídit dvě loko a zároveň nastavovat vyhybky. Musí to být dost variabilní, protože kobercové ježdění je vždycky postavené pokaždé jinak. Taky to může být vhodné na kolejiště, kde nejsou návěstidla a detekce. Podminkou je ovládání vyhybek pomocí DCC signálu.

Tak nějak mne to uchvátilo a tak jsem se pobavil.

MegaPro 2560 je extrémně silný stroj, který obsahuje opravdu hodně periférií a to svádí k plýtvání prostředky. Na toto si člověk musí dat pozor, protože potom je to nepřehledné a pomalé. Program má v současnosti asi 4500 programových řádků a trvalo mi to napsat a odladit asi 4 měsíce. Asi největší výhoda je absence manuálu, kdy jsem se snažil všechno vypisovat na grafický displej a to je neskutečný požírač programové paměti. Ovladač je postavený a navrhnutý pro sběrnici Loconet. Ovládání vyhybek je přes Loconet > DCC, stejně jako pro lokomotivy. Teda nejvhodnější jsou Roco vyhybky s podložím, s dekodérem DCC, které mají zabudované v sobě, snímání DCC a nastavování vyhybky. Obsluhu srdcovky si musí zabezpečovat samotná vyhybka, pokud je to potřebné. Taky říznutí vyhybky a následný zkrat neumím vyřešit, protože se zkratuje všechno, ochrany se vypnou a je nutný manuální zásah a odtáhnout loko z výměny a nastavit vyhybku správně.

Tento ovladač má jen jednu obrovskou nevýhodu a to odběr 105mA, co je opravdu hodně. Ale protože to je plánované na domácí ježdění, tak to nemusí být na závadu. Domácí síť utáhne i dva takové ovladače. Dost mne to mrzí, ale je to dané železem a nedokáži to ovlivnit. Původně to mělo odběr 130mA, ale tam jsem to snížil pomoci step-down regulátoru o 25mA. Použil jsem frekvenční měnič s účinností 97%, který snižuje napětí z +15V na +8V. Toto napětí potom přivedu na piny V-in MegaPro, který se pak omnoho méně hřeje při regulaci napětí na +5V pro vlastní spotřebu.

Ovladač „Oto3“ není určený na modulové setkáni podle pravidel FREMO, ale jen na doma nebo pro kluby, kde to neberou až tak přísně. Pokud nejsou přítomné loko na ovládání tímto ovladačem, může ovladač sloužit jen jako ovladač vyhybek.

Hotové komponenty

Z důvodu jednoduchosti stavby jsem použil hotové výrobky, které dost podstatně usnadnily stavbu. Jedná se hlavně o MegaPro2560, display 128 x160 bodů s řídícím obvodem ST7735S, spínaným step-down regulátorem a stavebnici klávesnice 4x4. U klávesnice jsem musel zaměnit tlačítka 5mm za tlačítka 9mm, jinak by nevyčnívaly nad úroveň krabičky. Proto je nutné koupit stavebnici, protože odpájet tlačítka je poněkud zbytečná práce.

Schéma je zase dost jednoduché, protože jsem použil hotové věci. Ovladač se dělí na 4 okruhy a to, obsluha Loconetu, obsluha klávesnice, obsluha displeje a obsluha enkodérů.
Zde jsou vypsané piny, které jsou použité na MegaPro2560

Klávesnice

PA0...7 je zapojena klávesnice

SPI

PB1 = SCL SPI hard
PB2 = SDA SPI hard MOSI
PL4 = BLK řízení jasu displeje pres Timer5
PC5 = DC  Data / Command
PC3 = CS  Chip Select
PK6 = RESET displeje

Enkodér 1

PD0 = Int0 přerušení na vývodu A enkodéru
PB7 = vyhodnoceni směru otáčeni, vývod B
PD1 = Int1 tlačítko na enkodéru

Enkodér 2

PE5 = Int5 přerušení na vývodu A enkodéru
PB5 = vyhodnoceni směru otáčení, vývod B
PE4 = Int4 tlačítko na enkodéru

USART obsluha vysíláni Loconet

PC7 = kolektor Q2, pro zamezeni zákmitu při resetu
PD3 = TxD1 vysílání Loconet
PD2 = RxD1  příjem Loconet a Int2 na nulováni Loconetu

USB na programovaní obvodu

Obsluha klávesnice je součástí knihovny Bascom, tak není problém ji používat, protože nepoužívá přerušení. Tím pádem je její nadefinování a obsluha úplně bezproblémová. Jen se musí nastavit časy Debounce a Delay, které odstraňují zákmity a opětovné volaní, při podržení klávesy.

Obsluha SPI, teda řadiče ST7735S je už složitější a je opravdu náročná na čas. Je to z toho důvodu, ze každý jeden pixel se musí vykreslit pomocí dvou byte, teda RGB 5,6,5. Teda na vykresleni celé obrazovky je potřeba 160 x 128 x 2 byte = 40960 byte odeslaných přes SPI. K tomu se musí přičíst obsluha, která je přibližně 10x časově náročnější jako vysílání SPI. Protože vysílání SPI běží na 8MHz, tak jeden byte trvá odeslat 1uS. To znamená čas 11x 41mS = 450 mS na vykreslení celé obrazovky. Do obsluhy se počítají změna barvy, změna polohy kursoru, vytáhnutí dalšího znaku, převod znaku na grafickou podobu a rotace pro vykreslení 8x8 pixel pro každý znak. Protože displej ma 3V3 napájení, tak se musí srazit napětí na ovládání pinů na tuto hodnotu děličem napětí 820/1200 ohmů , kdy je výsledek 3V, kterým se ovládají piny displeje. Nelze použít Zenerky, protože mají obrovskou kapacitu přechodu a ta zničí datový signál na 8MHz SPI.
Enkodéry jsou poměrně speciální součástky, protože vyžadují čas na ustálení zákmitů a zároveň nesmí dojit k překrytí dalším impulsem. Optimální čas pro proud okolo 200uA je čas 1mS, kdy už se zákmity uklidní. Čím větší proud, tím musí být čas na ustálení delší. Vyřešil jsem to tak, že cela obsluha enkodéru probíhá komplet v přerušení, kdy časy přerušení do 1.2 mS jsou celkem v pohodě a ničemu nevadí. Taky je dost velký problém proporcionalita, kdy je požadováno vyšší narůst rychlosti, při rychlejším protočení.

Obsluha USART je v pohodě, protože využívám hard dvojúrovňový zásobník a ještě to mam bufferované přes zásobník 128Byte v Bascom. Jediná zvláštnost je tam napájení tranzistoru z pinu procesoru, kdy se čeká na ustálení podmínek provozu. Teda nemůže dojít k hazardu na sběrnici. Priorita na vysílání je odvozená od adresy, která by měla být jedinečná pro každé kolejiště. Jinak větví X3 (Loconet) může být několik, teda i těchto ovladačů může byt víc. Dají se zapojit 3 kusy na jednu větev, která je chráněná odpory 27 ohmů.

Co to všechno umí

  • ovládá 2 loko na dvou adresách 1 – 10239, každá loko musí mít extra adresu, loko se nedají spojit
  • každá loko ovládá 0 – 28 funkcí samostatně, podle aktivní loko
  • volba funkcí nad F8 je volitelná podle druhu centrály
  • naprogramuje CV pomoci OPS (PoM) napřímo, není to programovací kolej, teda pouze pro aktuální loko
  • nepoužívá funkci Dispatch, adresa se voli přímo na ovladači. Teda je možné přeadresovat ovladač na jinou loko s jinou adresou
  • ovládání do 100 vyhybek pomocí kurzoru na displeji pomocí paketů s opcode B0h

Podružné funkce

  • volba intenzity podsvícení displeje
  • zobrazování rychlosti a směru každé loko a zobrazení typu centrály Digitrax nebo Uhlenbrock
  • zobrazování funkcí F0 až F12 jmenovitě
  • zobrazování funkcí F13 až F28 symbolem 0 nebo 1 v řadě za sebou
  • zobrazování plánku kolejiště a stavu vyhybek
  • stavba kolejiště na ploše 80 x 128 pixelů

Všeobecný popis

Je to obrovský program, zatím to ma 4500 řádku zdrojového textu a zcela určitě se to ještě bude zvětšovat. Ale není to pomalé, protože jedno jde po druhem a navazuje to na sebe. Největší prostor si bere nápověda, protože to pokládám za nejdůležitější. Ta se vypisuje v každém kroku na displej a tak nenechá uživatele v nejistotě, co dál. Co nemá nápovědu, je základní obrazovka, kde se zobrazují základní údaje. Tam pro ni prostě není místo a tak bude nutné se základní obrazovku naučit nazpaměť.

Celý ovladač je vlastně trojpatrový, teda základní deska a na něm procesor, klávesnice, step regulátor, enkodéry, displej a pomocné součástky. Nedalo se to udělat jinak, protože by to bylo strašně veliké. Vše je udělané na konektory, aby se to dalo snadno opravovat. Vedle na obrázku je základní obrazovka, kde jsou zobrazeny důležité informace o stavu aktuální loko.

Popis displeje

První řádek ukazuje adresu loko, tady 12, typ centrály, tady Digitrax, směr jízdy šipkami a modrou barvou a nakonec rychlost loko.

Druhý až čtvrtý řádek ukazují stav funkcí F0 až F12, kdy barva černá je vypnutá funkce a barva červená je zapnutá funkce.

Pátý řádek ukazuje funkce F13 až F28 v řadě za sebou a stav se indikuje 1 nebo 0, teda přímo, zapnuté / vypnuté.

Pod tím je plánek kolejiště o rozměrech 80 x 128 pixelů, kdy 8x8 pixelů zobrazuje prvek kolejiště. Teda na jednom plánku lze zobrazit 10 x 16 prvku kolejiště.

Popis klávesnice 4x4

1  2  3  A     numerické klávesy volí číslo funkce,     A  = +10,     
4  5  6  B     B = +20 pro funkce
7  8  9  C     C = for future use, 
D  0  E  F     D,E = volba vyhybky a posun vyhybky na plánku, 0 = je změna stavu vyhybky, F =  odchod

Toto jsou volby, které se dají volit přímo z hlavní obrazovky pomocí klávesnice.

Enkodér

Každý enkodér ovládá svoji loko. Jsou tam obvyklé speciality, jako třeba první stisknutí zastaví loko podle brzdicí křivky a druhé stisknutí je Em.Stop a reverze směru jízdy. Musel jsem ještě vyřešit přepínání loko mezi sebou a to je tak, že první stisknutí prohodí loko bez změny hodnot a teprve druhé zastaví podle brzdící křivky a třetí je Em.Stop a změna směru jízdy. Pokud změníte rychlost na druhé loko, než je používaná, tak se loko prohodí automaticky a hned se změní rychlost podle volby.

Další menu

Do dalšího menu se dostanete přes klávesu F , teda 15, vpravo dole. Protože to jsou volby náročné na čas a přemýšlení, tak jsem to musel zablokovat tím, že rychlost obou loko je nulová, teda obě loko MUSÍ stát. Pokud obě loko nestojí, tak vás to tam nepustí !!

M E N U servis

  1. volba centrály , volba centrály Digitrax nebo Uhlenbrock
  2. volba adresy , volba adresy aktuální loko od adresy 1 do 10239
  3. volba jasu , volba intenzity podsvícení displeje
  4. stavba koleji , stavba kolejiště v plánku pro vyhybky
  5. program CV OPS , programování CV, mimo adres, kterých CV jsou zablokované (1,17,18,29). Tyto pouze na progr. koleji.
  6. vymazáni kolejí

Popisů a návodů na moje ovladače loko Oto tu byla spousta a je asi zbytečné to znovu opisoval. Je to všechno na jedno kopyto a nepřináším nic nového. Co je nové, tak to je opuštění standardu FREMO, teda je možné na ovladači navolit adresu a taky opravdu velikánský odběr proudu. Použití velikého displeje na zobrazování hodnot je docela novinka a mely to jen specializované tovární ovladače s displejem na míru.

Co je úplně nové, je ovládání kolejiště a vyhybek pomoci displeje a plánku na něm nakresleném. Největší problém to bylo udělat tak nějak uživatelsky příjemné a aby to bylo snadno pochopitelné a zhotovitelné. Teda nejen zhotovení plánku a nastavení adres DCC, ale i intuitivní ovládání samotných vyhybek. Dost jsem nad tím přemýšlel a došlo mi, že to musím udělat selektivní, teda to musí skákat jen po vyhybkách a ignorovat jiné kolejivo.

Jako úplně první je nutné postavit kopii kolejiště na displeji. Na to slouží podmenu >Menu servis > stavba koleji>. Objeví se obrazovka, kde je možné ze segmentů kolejí a vyhybek poskládat obraz z reality, na displej.

Je tam menu, které ukazuje, na co se používají konkrétní klávesy.

posun kurs = 0-9 , osm-směrovka
vyber prvku = 5 
zmaž prvek = A  
adr.  prvku =  B   

Objeví se kursor v barvě tmavě zelené na světle zeleném poli, se kterým lze hýbat v osmi směrech. Pomoci kláves 1 - 4 a 6 – 8 se pohybujete osmi směry a klávesou 5 nastavujete kolejivo. Klávesou +10(A) zrušíte prvek a klávesou +20(B) zvolíte menu adresy vyhybky. Tam si zvolíte adresu vyhybky a zapíšete pomocí klávesy D. Zrušit a opakovat volbu adresy lze pomocí klávesy C. Při stisku B se objeví stará hodnota, kterou můžete opravit nebo zapsat jinou. Pokud zůstane stará hodnota, tak se vypíše „no ULO“ a pokud se zapisuje nová, tak se vypíše „ULO = adresa“.
Na rozměr 10 x 16 polí lze umístit 4 nádraží o 4 kolejích.

Ovládání vyhybek

Vyhybky se ovládají pomocí kláves D 0 E, ve spodní řadě, kdy se pomocí kláves D a E vybere konkrétní vyhybka a klávesou 0 ji přepneme do opačného stavu. Stav se hned zobrazí na displeji. Při zapnutí se ukazuje poslední stav, ale pokud by jste přehodili mezitím vyhybky ručně, tak to neplatí.

Možnosti

Asi největší problém je vysoký odběr, okolo 100 mA, který nedovoluje ovladač použít jinde než doma. Teda na jednu větev Loconetu lze zavěsit jen dva tyto ovladače.

Pokud se použijí dva ovladače, tak je možné rozdělit plánek kolejiště na dvě části a na každém ovladači mít nakreslenou polovičku plánku.

Další podmínka je použití vyhybek s řízením přes DCC.

[Akt. známka: 5,00 / Počet hlasov: 9] -      + 

K tomuto článku nebol doposiaľ priradený žiadny komentár!

Pridať nový komentár