Railnet

Ovladač Ewa

Elektronika | Zdeno Janeček, 26. 04. 2011 (8433 zhliadnutí)
Když může být  ovladač Adam, tak dalšímu odvozenému ovladači jsem dal jméno Ewa.  Je to zase trošku jiné, protože teď jsem se dostal za hranici, kdy už nejde pracovat bez  displeje a zpětné vazby. Do tohoto okamžiku se to dalo vždycky nějak oklamat, ale tu hranici jsem teď musel  překročit.  Byl dost problém vybrat vhodný display , protože ne všechno má správnou velikost, ovládání a spotřebu energie.  
 
Musím poděkovat Jardovi Kutějovi za pomoc s programováním. Je zajímavé, kolik lidí si myslí, že umí programovat, ale když dojde na lámaní chleba, tak najednou nikde nikoho.  Zase po pravdě musím napsat, že v našich krajích není moc lidi, kteří ovládají  danou problematiku a  příbuzné  a související obory.  Navíc je třeba vlastnit rozsáhlé přístrojové vybavení, bez kterého není možné najít chyby a otestovat všechno možné a nemožné. 
 
Prvotní impuls jsem dostal od Milana Černohorského z Ostrama klubu, který četl můj článek o ovladači Adam a zeptal se mne, zda by nešlo udělat ten ovladač tak, aby mohl ovládat souběžně dvě lokomotivy. Je pravda, ze Loconet pozná příkazy  na spojeni (LINK) a rozpojeni (UPLINK)dvou lokomotiv, ale mám dojem, ze je to poměrně náročné na čas a přístup ku centrále.  Abych pravdu napsal, ještě nikdy jsem to  v praxi neviděl použít, i když vím, jak by to mělo teoreticky vypadat.  Takže to nebude asi až tak jednoduché a snadné.
 
Na ovladač Ewa jsem si stanovil pár požadavků, ze kterých jsem nechtěl slevovat a to samostatné ovládáni funkcí,  kdy by se mi nelíbilo, aby druha lokomotiva svítila nebo houkala synchronně s tou první a druhá věc je, aby se daly loko ovládat  i za podmínky, že budou mít různý směr jízdy, aby se nemusely loko chytat do rukou a „letecky“ otáčet.  Další požadavek vyplynul automaticky a to absolutní nezávislost na centrále.  Řízení a nastavování  lokomotiv, jen z jednoho bodu, a to z ovladače Ewa.  Z toho vyplývá, že všechny příkazy musejí jít přes Loconet a to vždycky duplované, pro každou  loko samostatně. Měl jsem obavu, zda rozdílný časový přístup Loconetu a následné časování centrály, nebudou mít negativný vplyv na souhru obou lokomotiv.  Udělal jsem to tak, že ovladač posílá pakety  v jednom balíku a teda dojdou do centrály skoro najednou. Tady žádné nebezpečí nehrozí, ale problém na straně centrály zůstal.  Pokud mají obě lokomotivy přidělené sloty moc daleko od sebe, je někdy  problém v posílaní paketů DCC. Může se stát, že časový rozdíl je i více než  ½ vteřiny mezi pakety a to je dost. Zvlášť, když mají lokomotivy zapnutý rychlý rozběh nebo zpomalení, tak to nedělá dobrotu. Proto je důležité zajistit, aby křivka rozběhu a dobrzdění loko nebyla v rámci pár stovek mS.  Stejně ale asi bude největší problém, najit  dvě loko, aby se navzájem nepřetahovaly a měly stejné jízdní vlastnosti a byly v naprosto perfektním technickém stavu.  V zásadě není problém sladit dvě loko, v ovladači mam tabulky rychlosti, které se dají nadefinovat jakkoliv, ale to by byla totální jednoúčelovka, vhodná  pro dvě konkrétní lokomotivy natrvalo.
 
Jinak musím zase vzpomenout puristy a akademiky, kteří cestou za naprostou dokonalostí dokáží neuvěřitelné věci.  Například 128 stupňové řízeni DCC.  Uvědomil si někdo z nich, kdo to prosazoval, ze to o víc než 20% zpomalí přenosovou rychlost  DCC ?  Posílat, místo 3-4 bajty v paketu, bajtů 5, je barbarství a plýtvání, které nemá naprosto žádný důvod.  Pokud by neexistovalo plynule rozbíhání a zastavování, tak bych to pochopil, ale v tomto případě je to nesmysl. I na skutečné železnici je rozdělení zhruba po 5km a teda podle maximální rychlosti je potřeba od  12 stupňů (60km/hod),do asi 30st.  při max. 150km/hod.  Plynulé přechody mezi jednotlivými stupni zabezpečuje elektronika a ne ručně, modelový mašinfíra.  Mám vyvinutou centrálu, kde z principu není možné provozovat 128 st. řízení, protože je to časově, logicky i provozně naprosto zbytečné.  Všem těm, kteří si myslí, že nemám pravdu, doporučuji vzít do ruky kalkulačku a spočítat si to.  Cena za pocit, že mám 128st. řízení, je příliš vysoká. Obzvlášť  na velkých setkáních, kde se musí spojovat několik centrál, je to zbytečná práce navíc a přináší značné problémy v provozu.  Každá centrála by mela být  schopná  uřídit  100 loko bez jakýchkoli  problémů, ale ne  se 128st. řízením!!!  
 
Na ovladač EWA jsem použil osvědčeny a ověřený uP Atmel M88.  Má spoustu vychytávek, které umožnily v zásadě bezproblémové programování.  Největší potíže byly s displejem BOLYMIN od stejné firmy, který jsem koupil od   http://www.sos.sk/?str=371&artnum=64822  za celkem dobrou  cenu.  Ocenil jsem připojení I2C, spotřeba pod 500μA a malé rozměry.  Nevýhodou byla velmi slabá zdokumentovanost  a příklady zapojení.  Můžu napsat, že rozchodění a zprovoznění displeje bylo neskutečně náročné.  Dokonce i datasheety byly nepřesné a obsahovaly  chyby, což jsem opravdu nečekal.  Pokud si někdo myslí, ze si vymýšlím, nech si ho koupí a vyzkouší. ;-)    Dále jsem  použil homemade klávesnici, protože ta kupovaná  4x4 je strašně veliká a jiná se nedá sehnat. Pokud jsem chtěl zabudovat ovladač do trošku odpovídající krabičky, byla to jediná cesta.
Schéma ovladače Ewa. Diody D1,D2 mají zlou schematickou značku z důvodu neexistence potřebného rozměru a mne se to nechtělo navrhovat.  
 
Schéma ovladače je zase neuvěřitelně jednoduché na to, co to všechno umí a přesto je tam vše, co potřebuji.  Jako všechny obvody se to dělí na napájeni, snímání hodnot ze vstupů,  zpracování a následné ovládání  výstupů.  
 
Napájení jde přes diody D1 a D2, kde se usměrňuje DCC. Na stabilizátoru LM2937 se stabilizuje na 5V. DiodyD3 aD4 zabezpečují  pokles na 3,5V pro display a mikropočítač.  Může se použít LM2936 na 3,3V a potom přemostit diody D3,4 drátem.  Já jsem vyřešil nedostatek 3,3V stab. takto.  Zvláštnost je napájení báze  Q3(R29), kde je nutné zabezpečit log 1, před náběhem mikropočítače. Dále je nutné přes odpory  R4,5 zabezpečit pull-up na sběrnici I2C.  Na jumper  JP1 se zapojí LED white, vysoko svítivá dioda, na podsvětlení  displeje, která je podle potřeby zapínaná. Je to proto, ze samotný ovladač bere asi 6mA a samotná LEDka taky.  Proto je možné ji vypínat. Odpory v obvodu klávesnice jsou 8 x 470Ω  až 680Ω.
 
Snímání příkazů od klávesnice, enkodérů a tlačítek na enkodérech je podle normy a nemá to žádné záludnosti.  Trošku jsem spekuloval nad vstupem Loconetu, kde určitě budou někteří kritizovat nepřítomnost komparátoru.  Toto zapojení mám odzkoušené a nedělá žádné problémy.  Jen jsem doplnil filtrační VF člen na  vstupu.
 
Výstupy jsou na display a Loconet. Na Loconet mam stabilní a odzkoušené zapojení, kde to nedělá žádné hazardy a je to naprosto spolehlivé. Jen musím upozornit na odpor R14 v bázi Q2, který musí mít nižší hodnotu než  0,05A /  h21e.  Už jsem se setkal s tím, že proudový zdroj Loconetu byl do 50mA a pokud se nedokáže výstupní tranzistor úplně otevřít, je to velký problém. Tady je 12k a h21e je 500, takže 3V / 12k =  250uA x 500 = 125mA, takže s 2x větší rezervou je zabezpečené úplné otevření Q2.  Je výhodné chodit z   +saturace do  –saturace a opačně, protože  nemůže dojit k lineárnímu režimu, který je naprosto nežádoucí a zpoždění v saturaci, při této rychlosti přenosu, naprosto nevadí.
 
Při testování jsem přišel na problém s EEPROM, kde při napájení 3.5V dochází k nekorektnímu zápisu. Musel jsem udělat verifikační smyčky, které kontrolují napálení EEPROM a v případě špatného zápisu ho opakují. Dokonce se mi stalo, že se přepsala celá EEPROM a musel jsem napálit  celý obsah znovu. Proto jsem na začátek programu zařadil test stisku obou enkodérů a pokud při zasunutí ovladače Ewa program zjisti stisk obou enkodérů, napálí startovací obsah paměti EEPROM 512 bytů.
 
Programové vybavení:    všechny programy píši v Bascom Basic, který je celkem jednoduchý a který má  slušné knihovny a soubory příkazů vyššího jazyka, takže není nutné psát v ASM a program je přehledný a editovatelný. V ASM píši jen časově kritické části, kterých ale tady není moc. Jak jsem psal, největší problém byla inicializace displeje a v momentě jejího dokončení,  už to nebylo náročné.  Co mi dělalo problémy, bylo spíš administrátorské, jak udělat a spojit jednotlivé věci do společného celku.  Musel jsem vyřešit celkem solidní problém v tom, ze tento ovladač musí byt schopen „ukradnout“ jinou adresu a zase ji odevzdat původnímu ovladači. Teda zabezpečit postrk do kopce, třeba u TT na přechodu mezi 100 a 130 cm.  Tento ovladač je schopný převzít cizí adresu a ID číslo a používat ji a po ukončení postrku ji zase „vrátit“ na původní ovladač a na „ukradnutý“  slot a adresu zapomenout.  V tomto je můj ovladač dost speciální a opravdu nebude dobré ho svěřovat do ruky osobám neznalým a nedůvěryhodným, když bude zapnut v tomto režimu. Režimy má dva, normál, kdy stejná adresa a jiné ID ho zablokují a druhý, kdy je možné nadefinovat cokoliv. Třeba „ukradnout“ slot, odhlásit, nastavit do DISPATCH módu a okamžitě převzít  jiným Fredem.  Což může být zajímavý trest pro neposlušného účastníka. ;-)
 
Ovládání : tu jsem zas vymyslel vychytávku, která je však nesmírně nakažlivá a pokud jsem vzal Freda do ruky,  dost mi to chybělo.  Použití enkodérů s tlačítky je fantastická věc a ve spojeni s displejem, který ukazuje rychlost, to nemá naprosto chybu.  Vychytávka spočívá v tom, že tlačítko na enkodérech má posloupnost povelů. První stisk zastaví loko podle modelové jízdní křivky, druhé stisknutí aktivuje „okamžité stop“ a třetí stisknutí, přepne směr jízdy.  Je to intuitivní a po chvíli používání nesmírně chytlavé. Je potom problém si následně zase zvyknout na normálního Freda.
 
Použití displeje a enkodérů má další zvláštnost a to určitou pomalost při otáčení enkodérů, kdy enkodéry nestihají rychlé otáčení. Rutiny vypisování na display a ošetření zákmitů na enkodérech  mají dost velké DELAY časy a ovladač stihá asi jen 6-7  přepnutí za vteřinu.  Je nutné s tím počítat a zvyknout si na to.
 
Obrázek  ovladače. Dvě fotky jednoho prototypu.  
Obrázek vpravo ukazuje normální režim, kdy se nezávisle ovládají dvě samostatné lokomotivy. Šipka na displeji úplně vlevo označuje směr jízdy, číslo před pomlčkou ukazuje rychlost a zbytek je devět funkcí.  Obrázek vlevo ukazuje obsah obou slotu, teda číslo slotu, status,adresa, ID číslo a režim.  Displej se může posouvat pomoci šipek na klávesnici doleva, doprava, protože ze 40 znaků je vidět jen 16. Do tohoto režimu se dostanete přes klávesu „B“.
 
Ovladač Ewa je navrhnutý čistě pro modulovou železnici, neboť má odběr proudu 6mA a při podsvícení displeje má spotřebu 10mA. Taky všechny časy, přístupy a ochrany jsou navrženy pro provoz na modulové  železnici. Samozřejmě jde použít i doma a i tam má své výhody.
 
OVLÁDÁNÍ:  u tohoto typu ovladače je strašně  důležité, aby ani náhodou nedocházelo k zablokování, vlivem nechtěného sepnutí jakéhokoliv prvku.  Ale přesto je nutné nějakým způsobem přejít do jiného režimu. Zvolil jsem klávesu „D“, která je v rohu a je tak trochu je daleko od tlačítek funkcí, které se často používají. Navíc je tato funkce blokována tím, ze rychlost obou loko MUSÍ být nulová. Stisknutím klávesy „D“ se dostanete do MENU, kde se dá zvolit dalších 6 možností.
 
  1. režim dvou lokomotiv samostatně, musí se potvrdit znova stiskem „D“
  2. režim dvou lokomotiv souběžně, musí se potvrdit znova stiskem „D“
  3. odhlášení aktuální lokomotivy a její uvedeni do DISPATCH modu
  4. zapnutí příznaku „volba“, který povoluje naprogramovat adresu a ID číslo.
  5. přepnuti LED diody na podsvětlení displeje
  6. vypnutí ochrany pomocí ID čísla příznakem „zámek“. Potom je možné ukradnout slot.
 
První  režim je klasika, kdy se ovládají dvě lokomotivy současně a jsou to vlastně dva Fredy v jednom.  Každý řádek na displeji ukazuje údaje o každé loko samostatně.  Příklad :
 
>  127-10000 0000   směr Forvard , jede na max. rychlost a sviti světla
<  1-00000 0000 směr Revers,  emerg. stop  a není zapnutá žádná funkce
 
Druhý režim spojuje dvě  loko do tandemu, tady je zvláštnost v tom ,  že obě loko lze řídit  oběma enkodéry, ale funkce se dají  zapnout jen u aktuální loko.  Takže je úplně jedno, kterým enkodérem lokomotivy řídíte, ale funkce lokomotiv jsou stále rozděleny podle toho, který enkodér používáte.  Další zvláštnost je v tom, že lokomotivy jedou v tom směru,  v jakém byly, než jste je do spojeného režimu zapnuli. Takže je žádoucí se přesvědčit, že obě loko jedou stejným směrem a až potom zapnout společný režim.
 
Třetí režim je odhlášení aktuální loko, kdy se odhlásí lokomotiva s adresou a slotem, se kterou se naposledy manipulovalo.  Následně se ihned tato lokomotiva uvede do stavu DISPATCH a je možné ji převzít jiným ovladačem.  Tento režim se používá při postrku, kdy se přebere hlavní loko a spojí se s postrkem a na kopci se obě loko zase rozdělí, původní loko si přebere  stará obsluha na svůj ovladač a postrk se vrací zpátky.  Potom je důležité přepsat  adresu v ovladači Ewa, aby se nezaseknul.
 
Čtvrtý režim je zapnutí příznaku „volba“,  který  umožňuje  změnu adresy anebo ID čísla. Volba a práce s adresou a ID číslem je blokovaná tímto příznakem hlavně proto, aby se překazilo nechtěné přepnutí nebo z neznalosti.
 
Pátý režim přepne podsvětlení displeje.
 
Šestý režim přepíná příznak „lock“, který umožňuje nebo zakazuje ukradnuti slotu a adresu „živé“ lokomotivy.  Pokud je příznak vypnutý, ovladač se nezablokuje, pokud přebere používaný slot a adresu. To se používá na přebraní loko, aby se dala připojit další loko na postrk.
 
Adresa pro loko se nastavuje nadvakrát. Nejdříve se musí povolit příznak „volba“, která umožňuje vstup do režimu zdávání adresy a ID čísla. Je samozřejmost, že obě loko musí ukazovat na displeji nulovou rychlost, aby se předešlo nechtěnému přepnutí. Příznak „volba“ se povoluje přes režim 4 a lze ho zkontrolovat na výpise slotu. Pokud je příznak „volba“ nastaven na jedna, je možné vstoupit přes klávesu „A“ do režimu adresace. Na displeji se objeví „volba adr   DEC  ? „ , kde potom decimálně napíšete adresu a potvrdíte klávesou „A“ pro horní loko a klávesou „B“ pro dolní loko. Pokud stisknete „D“ dostanete se do režimu zadávání ID čísla, kde to provedete obdobně, jako volbu adresy. Rozdíl je v tom, že zadávání provádíte v desítkové soustavě a na displeji je to v hexáku.
 
Pokud stisknete, co nemáte, nebo jste nechtěli, nejsou zabudované žádné opravné mechanismy, jediná možnost je vytáhnout a zasunout přívodní kabel, tím se to uvede do předcházejícího stavu a parametr musíte naťukat znovu.
 
Pokud něco domotáte tak, že je ovladač nefunkční, tak jediná možnost je, při současném stisku tlačítek na enkodérech a zasunutím přívodního kabelu nastavíte „tovární“ parametry, teda hlavně adresu 3 a 4 a ID číslo. 01-0A a 02-0B. Všechno ostatní se nastaví do nuly. 
 
To je zatím všechno, ovladač jsem odevzdal Milanovi a uvidím, jaká bude spokojenost.

 

[Akt. známka: 0 / Počet hlasov: 0] -      + 

Pridať nový komentár

zdeno 28.04.2011 10:44:59

kopie clanku je na http://ostramo.parostroj.net/ clanky/ovladac_ewa/ovladac_ewa.htm i s prvnimi dojmy

Reagovať

28.04.2011 10:56:00

treba vymazat mezeru pred slovem clanky nechapem, proc se to tam doplnuje, schvalne jsem ji vymazal a aj tak ji tam zase doplnilo.

Reagovať

Pridať nový komentár