Arduino-modulové ovládáni kolejiště.

Schémata, zapojení, návody, dotazy a postupy k využití v železničním modelářství.

Moderátoři: Michal Dalecký, Jarda H., Rudolf, 123.marek

Re: Arduino-modulové ovládáni kolejiště.

Příspěvekod sidlo » ned 10 bře, 2019 2:52 pm

1. počátečním tlačítkem zelené/bílé se učuje. zdali cesta bude vlaková nebo posunová
2. zkontrolovat, že všechny kolejové obvody v jízdní cestě jsou volné
3. zjistit, že mohu cestu skutečně postavit, to znamená že neexistuje např. protisměrná cesta na stejnou kolej
4. zjistit, že u všech výhybek které chci přestavit mám na to právo, to jest nejsou zamčené jinou cestou
5. přestavit všechny výhybky do požadované polohy
6. zamknout cestu, zákaz přestavení výhybek jinou cestou
7. zákaz postavení kolizních a protisměrných cest na stejnou kolej
8. postavi volnoznak na návěstidlech
9. pokud postavím dodatečně odjez ze stejné koleje tak změnit návěst na vjezdovém návěstidle v souladu s rychlostní návěstní soustavou, ovšem pouze v případě, že čelo vlaku již neminulo vjezdové návěstidlo
10. shodit návěstidlo po projetí čela vlaku u vlakové cesty
11. shodit návěstidlo po projetí konce posunového dílu u posunové cesty
12. postupně zrušit zámek cesty podle průjezdu vlaku, to jest obsazení a následné uvolnění příslušného kolejového obvodu
13. všechny závislosti zvýší složitost aktuálních pravidel přibližně 2× s každou další traťovou kolejí na zhlaví k začátku tratě - roste to geometrickou řadou
14. všechny závislosti zvýší složitost aktuálních pravidel přibližně 2× s každou další traťovou kolejí na zhlaví ke konci tratě - roste to geometrickou řadou
15. ... další závislosti se rozhodneme nemodelovat a zanedbáme je - přivolávačka, přejezdy, prokluzová vzdálenost, ...

ta tabulka v exelu bude zajímavá
Uživatelský avatar
sidlo
 
Příspěvky: 1832
Registrován: ned 27 dub, 2014 7:32 am

Re: Arduino-modulové ovládáni kolejiště.

Příspěvekod Ondřej » ned 10 bře, 2019 4:57 pm

Tak ja na to jdu z opačného konce. V tabulce mám definici cest. Tlačítky zvolím vlakovou nebo posunovou cestu a odkud, kam a přes co. V každé cestě je vlastně soupis jaké ji definují tlačítka, jaké návěstidla nastavuje na jakou návěst, jaké vyhýbky nastavuje a tím vlastně blokuje, jakou blokuje kolej a jaké indikační Ledky se rozsvítí. Možné jsou pouze uvedené cesty.
Takže já na panelu zvolím jestli vlaková nebo posunová cesta, odkud, přes co, kam a potvrzovacím tlačítkem potvrdím. Program se podívá do tabulky, jestli je cesta definovaná, pokud ano, tak jestli není v kolizi (vyhybka, kolej) s již aktivními cestami. Pokud nic takového nenastane, nastaví se vyhýbky a návěstidla a cesta se na panelu rozsvítí. Můžu začít s tím, že si definuji třeba základních pár cest a ostatní postupně přidávám.
Jak jsem psal na začátku, neřeším obsazené ůseky (ty řeším pohledem na kolejiště), ale nebyl by problém do popisu cesty přidat, jaké úseky musí být volné, a když nebudou, cesta se prostě nenastaví.
Hodím sem za chvíli ukázkový soubor s pár cestami a schema mojeho kolejiště, aby to bylo jasnější
Uživatelský avatar
Ondřej
 
Příspěvky: 120
Registrován: čtv 22 úno, 2007 12:48 pm
Bydliště: Roztoky - PZ

Re: Arduino-modulové ovládáni kolejiště.

Příspěvekod belgarat » ned 10 bře, 2019 5:08 pm

Ondrej>

ad PC klient: ano, je to vazne minena nabidka. U CSV prosim alespon nejaky strohy popis sloupcu. Stejne by bylo fajn mit i popis toho BIN formatu. Ono CSV take nepripousti zmenu struktury (= pridas vyznamovy sloupec a stejne jsi v loji) na rozdil od markup jazyku (XML, JSON, YAML). Proto doporucuji dukladne si to rozmyslet, protoze kazda vyznamova zmena potom zbori nastroje co s tim CSV pracujou (jako kdyz pridany sloupec nebude proste jen vyjadrovat vice polozek v poli, ale jinou polozku noveho vyznamu).

Ten PC klient jsem myslel takovy, ze by mohl volitelne ukladat i CSV i BIN, pouziti potom podle gusta kazdeho uzivatele. Zaroven by se dalo lip testovat.

Fulda: ano, neco takoveho. Myslel jsem teda zpocatku na neco jednoduseji provedeneho (standardni ovladaci prvky); hlavni vyznam by byl ani ne v hezkde grafice, ale tom, ze bude hlidat uzivatele a vyrabet konzistentni data pro Ardu.

Sidlo> prosim, to ma byt specifikace Tveho ovladaciho pultu (jak bys jej chtel) ? Z vetsi casti je to specifikace pro runtime (=> Ondrej). Je otazka, jak moc predzvykana maji ta data byt - tzn. napr. jestli navestidlo, ktere se ma po projeti useku X shodit ma byt soucasti "predzvykane" definice vlakove cesty (tzn. projeti useku U -> shod X). Tady musim(e) pockat co Ondrej do runtime zavede :)


Zdena prosim ignorovat, abstrakni mysleni je mimo, brzo by to tu zaplevelil implementacnimi detaily ktere jsou mimo jeho BASIC uplne mimo a bude dalsi zamcene tema.
TT analog + digital ep. IVa-b; NanoX.
Nemodelar, greenhorn, pseudoprogramator, pindac nesmyslu
belgarat
 
Příspěvky: 1105
Registrován: čtv 27 pro, 2012 9:36 pm
Bydliště: Hřebeč u Kladna

Re: Arduino-modulové ovládáni kolejiště.

Příspěvekod zdeno » ned 10 bře, 2019 5:33 pm

Ondřej píše:Hodím sem za chvíli ukázkový soubor s pár cestami a schema mojeho kolejiště, aby to bylo jasnější

Je mi to v zasade jedno, jak si to udelas.
Proste jdes uz vyslapanou cestou, kterou uz pred tebou mnozi prosli.
Treba se ucit na chybach druhych a ne je opakovat. Jinak napisane, udelat to slozite, umi kazdy blbec ;-)
Uživatelský avatar
zdeno
 
Příspěvky: 1606
Registrován: pon 11 črc, 2011 8:54 am

Re: Arduino-modulové ovládáni kolejiště.

Příspěvekod sidlo » ned 10 bře, 2019 5:37 pm

belgarat píše:prosim, to ma byt specifikace Tveho ovladaciho pultu (jak bys jej chtel) ?

To ne. Je to jenom námět k zamyšlení. Řešitel narazí na rozpor mezi hloubkou modelovosti řešení problému a omezenými možnostmi (limity) hardwarového řešení.
Uživatelský avatar
sidlo
 
Příspěvky: 1832
Registrován: ned 27 dub, 2014 7:32 am

Re: Arduino-modulové ovládáni kolejiště.

Příspěvekod belgarat » ned 10 bře, 2019 5:49 pm

sidlo píše:
belgarat píše:prosim, to ma byt specifikace Tveho ovladaciho pultu (jak bys jej chtel) ?

To ne. Je to jenom námět k zamyšlení. Řešitel narazí na rozpor mezi hloubkou modelovosti řešení problému a omezenými možnostmi (limity) hardwarového řešení.


OK ;) ale diky za info. BTW moje nabidka UI samozrejme neni nezistna ;) prislo mi ze bych mohl parazitovat na jadru / logice od @Ondreje a vymenit mu komunikacni cast za to, co mam pro nase analogovo-arduinove klubove kolejiste :-D
TT analog + digital ep. IVa-b; NanoX.
Nemodelar, greenhorn, pseudoprogramator, pindac nesmyslu
belgarat
 
Příspěvky: 1105
Registrován: čtv 27 pro, 2012 9:36 pm
Bydliště: Hřebeč u Kladna

Re: Arduino-modulové ovládáni kolejiště.

Příspěvekod Ondřej » ned 10 bře, 2019 6:03 pm

Tady je schema toho kolejiště. Červené puntíky jsou tlačítka. Skupina tlačítek uprostřed je pro provedení volby typu cesty atd..(dle popisu). Kolejiště je vlasně dvoukolejný ovál s horním nádražím, které je zcela očesané od návěstidel a posunu a vyhýbky jsou spojené paralelně, proto mají i stejné značení. Je to železniční nesmysl, ale nevěnujte tomu pozornost, pouze jsou tam odložené soupravy vagonů a možná s tím v budoucnosti něco udělám.
Zelené a žluté puntíky jsou indikační diody, zelené pro vlakovou a žluté (na panelu bílé) pro posunovou cestu. Je u nich jen jedno číslo LEDky protože číslo je u obou stejné, ale zelená a bílá mají jinou fyzickou adresu modulu (viz modul modul_LED_160). Číslo uvnitř symbolu návěstidla je počet světel. Na zhlavích jsou jenom jednosměrné spojky, protože je to H0 a do pokoje by se obousměrné zhlaví nevešlo (i tohle je už v oblouku s obloukovými vyhýbkami). Názvy vyhýbek, návěstidel a kolejí jsou asi jasné.
A teď ten soubor excelu. Co řádek to definice jedné cesty. Zatím tam jsou pouze průjezdné, na testování to stačí.
T: značí definici tlačítek volby cesty v časové souslednosti, N: značí definici názvů návěstidel a návěstní kód podle tabulky kódú S-COM. V: značí definici vyhýbek, jejich název a R=rovně, O=odbočka, K: značí definici blokovaných kolejí pro zabránění nastavení cesty na stejnou kolej z jiného směru (až budou i neprůjezdné) a konečně I: značí definici indikace cesty. Používá se funkce fill a číslo indikační jednotky (to je to F1, múže být až F9 což představuje 360LEDek), za tím F1 jsou dvě čísla, která říkají od které LED po kterou LED budou svítit (včetně), pokud jsou stejná tak svítí jen jedna.
V dalším souboru bude definováno k jakým modulům a adresám jsou přiřazené logické názvy návěstidel, vyhýbek atd..
Přílohy
vcesty.xlsx
(10.05 KiB) 3 krát
kolejiste schema.jpg
Naposledy upravil Ondřej dne ned 10 bře, 2019 6:49 pm, celkově upraveno 1
Uživatelský avatar
Ondřej
 
Příspěvky: 120
Registrován: čtv 22 úno, 2007 12:48 pm
Bydliště: Roztoky - PZ

Re: Arduino-modulové ovládáni kolejiště.

Příspěvekod Ondřej » ned 10 bře, 2019 6:35 pm

Tady je pro ilustraci soubor přiřazení názvů návěstí k fyzickému modulu. Sloupec A je logický název návěstidla, sloupec B je High adresa modulu, C je Low adresa modulu a D je adresa v modulu.
Obdobné to bude u vyhýbek a indikace.
Přílohy
navesti.xlsx
(8.82 KiB) 15 krát
Uživatelský avatar
Ondřej
 
Příspěvky: 120
Registrován: čtv 22 úno, 2007 12:48 pm
Bydliště: Roztoky - PZ

Re: Arduino-modulové ovládáni kolejiště.

Příspěvekod belgarat » ned 10 bře, 2019 7:07 pm

1/ Jaky je vyznam "zrusit volbu" a rozdil od "zrusit cestu" ?
2/ Vlakova cesta / Posunova cesta ... nepredpokladas-li jiny typ (?), jde redukovat na jeden prepinac, pokud jsou tlacitka jsou kvuli konzistenci, mozna by ridici sw mohl variantne pracovat i s jednim prepinacem (jiny uzivatel, jiny pult, jine choutky) ?
3/ Tlacitko "nastavit cestu" potvrdi celou volbu, tzn. 20-2-21-nastavit cestu ?
4/ Je pro pripad cesty koncici na koleji pripustna sekvence 20-2-nastavit cestu ?

Doporucoval bych rozdelit definice na "cestu ze zhlavi L", "cestu ze zhlavi P"; jejich kombinace/navaznost pak definuje prujezd a da se i automaticky zjistit, resp "generator" muze vygenerovat, uzivatel se nemusi starat. Ucelne to je v pripade 20(10)-1-11(21), kde mas vic variant vjezdu/vyjezdu (vim, hloupy priklad, mas-li smer pro kolej dvojkolejky; ale uvaz odbocnou stanici), nemusel bys uzivatelsky vypisovat kombinace.
TT analog + digital ep. IVa-b; NanoX.
Nemodelar, greenhorn, pseudoprogramator, pindac nesmyslu
belgarat
 
Příspěvky: 1105
Registrován: čtv 27 pro, 2012 9:36 pm
Bydliště: Hřebeč u Kladna

Re: Arduino-modulové ovládáni kolejiště.

Příspěvekod Ondřej » pon 11 bře, 2019 6:41 am

belgarat píše:1/ Jaky je vyznam "zrusit volbu" a rozdil od "zrusit cestu" ?
2/ Vlakova cesta / Posunova cesta ... nepredpokladas-li jiny typ (?), jde redukovat na jeden prepinac, pokud jsou tlacitka jsou kvuli konzistenci, mozna by ridici sw mohl variantne pracovat i s jednim prepinacem (jiny uzivatel, jiny pult, jine choutky) ?
3/ Tlacitko "nastavit cestu" potvrdi celou volbu, tzn. 20-2-21-nastavit cestu ?
4/ Je pro pripad cesty koncici na koleji pripustna sekvence 20-2-nastavit cestu ?

Doporucoval bych rozdelit definice na "cestu ze zhlavi L", "cestu ze zhlavi P"; jejich kombinace/navaznost pak definuje prujezd a da se i automaticky zjistit, resp "generator" muze vygenerovat, uzivatel se nemusi starat. Ucelne to je v pripade 20(10)-1-11(21), kde mas vic variant vjezdu/vyjezdu (vim, hloupy priklad, mas-li smer pro kolej dvojkolejky; ale uvaz odbocnou stanici), nemusel bys uzivatelsky vypisovat kombinace.

add 1/ zrušit volbu znamená anulovat ještě nepotvrzenou volbu. Třeba zvolím 20-1-11 a pak si uvědomím, že jsem chtěl 20-1-21, tak zmáčknu zrušit volbu a tím se smaže buffer tlačítek a všechna tlačítka se zase uvolní. Každé se může totiž zmáčknout jen jednou. Po stisku se u něj rozsvítí indikace a pak už ho mohu zmáčknout třeba 10x, ale bez efektu. Kdyby nebyla možnost zrušit volbu, musela by se cesta potvrdit a pak zase zrušit (pokud by byla nastavena). Rušení cesty probíhá tak, že se zmáčkne jedno nebo více tlačítek na vysvícené cestě a pak se zmáčkne zrušit cestu. Cesta se tím zruší fyzicky (uvolní se vyhýbky, nastaví návěstidla a zhasne vysvícení.
Teď musím mazat do práce, zbytek odpoledne :mrgreen:
add 2/ vidíš, to mě vlastně nenapadlo, že by to mohla být default vlaková cesta a jedno tlačítko by stačilo. Těžko říct, co by vlastně vyhovovalo víc. Pro každý typ cesty by pak byl jiný postup a možná by to bylo matoucí a vedlo k chybám při zadávání posunových cest. Nad tím se budu muset ještě zamyslet.
add 3/ano
add 4/ano, přípustné je jakákoli sekvence, pro kterou je definovaná cesta. Klidně i 20-5, když si ji definuji. Pokud ji program v tabulce nenajde (třeba 20-10 :mrgreen: )
tak napíše "Cesta nenalezena" a šmytec.
S tím rozdělením cest nesouhlasím. O té variantě jsem dost přemýšlel a vždycky z toho vylezl strašný kočkopes. Jednak by cesty musely mít informaci, že jsou spojené, to pro případ rušení. Jinak by nešly zrušit jedním tlačítkem. Pak by musely mít variantní nastavení vjezdové návěsti pro případ že jsou zřetězené nebo ne. Třeba cesta která ve stanici končí má návěst na vjezdovém n. výstraha nebo 40km a výstraha. Průjezdná cesta bude mít volno nebo 40km a volno. Další problém by nastal, pokud se první část cesty nastaví a druhá je s něčím v konfliktu. A poslední, nicméně dost důležitá věc je spotřeba paměti. Ta bude 2x větší. A ještě mě napadá, že nastavování variantních návěstí bude pro uživatele větší opruz, než o něco více jednoznačných cest (a taky více možností k chybě)
Jak jsem včera narychlo vyplňoval tu tabulku v excelu, tak mám pár poznatků k minimalizaci chyb. Jednak budou všechny znaky bez case senzitive. Takže P:=p: Se1=SE1=se1=sE1. A pak také nebude mezera validní znak v názvu a bude se ignorovat. Takže Se 1=Se1 .......a vyřeší se problém mezery na konci názvu, což se špatně kontroluje. Tyhle blbé překlepy byly jediné chyby, jakých jsem se dopustil. Taky je výhoda si předvyplnit sloupce povinných návěští T: N: V: K: I: a využívat nabídnuté doplnění třeba u sloupců F1 F2....
Uživatelský avatar
Ondřej
 
Příspěvky: 120
Registrován: čtv 22 úno, 2007 12:48 pm
Bydliště: Roztoky - PZ

Předchozí

Zpět na Elektrika a elektronika

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 2 návštevníků