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

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

Příspěvekod Ondřej » pon 25 úno, 2019 8:11 pm

EDIT: CELÝ PROJEKT JE KE STAŽENÍ ZDE:
https://ulozto.cz/file/v90XfmXmm1ls/ard ... public-zip

Mám rozdělaný jeden takový projekt, který by byl možná zajímavý i pro někoho jiného, tak se podělím.
Máme se synem takové poloprovizorní podlahové kolejiště(fotky dodám později) kde blbneme. Protože jsme lenoši a neradi chodíme přestavovat vyhýbky, tak jsme chtěli
elektrické ovládání. To jsou ale hromady drátů a my chtěli drátů málo, ovládací panel mobilní a jen na jednom slabém kablíku a funkci podobnou reléovce. Pak samozřejmě návěstidla, nejlépe jen virtuální na panelu, ale časem možná i přímo na kolejišti. Navíc to vše nazávisle na typu napájení (analog/digitál) a co nejlevnější.
Nakonec se nám podařilo vymyslet, jak to všechno skloubit a vznikl modulový projekt.
Vše spočívá na jednoduchých modulech s arduinem (Nano), které se dá koupit za pár korun. Je minimalizovaný okolní HW a co nejvíce funkcí řeší arduino. Pokud je nějaký další HW potřeba, je vyřešen pomodí hotových modulů, jaké se prodávají (za ceny menší než cena součástek koupených třeba v GM). Všechny moduly komunikují po sériové lince pomocí jednoduchých textových příkazů. Každý má svou adresu a na tu reaguje. Všechny moduly řídí a nastavuje hlavní modul v panelu. V něm se bude realizovat nastavení cesty a návěstidel pomocí závěrové tabulky, aby bylo možné program s min. úsilím změnit při změně kolejiště.
Zatím mám hotové tyto moduly:
Modul řízení vyhýbek s elektromag. přestavníky. Jeden modul 8 vyhýbek, což je tak akorát na jedno (naše) zhlaví.
Modul pro tlačítka s indikací pro stavění a rušení vlakových cest. Zvládne 30 tlačítek s indikaci zmáčknutí.
Modul pro řírení LED diod v panelu, na vysvícení cest atp. Jeden modul zvládne 160 LED diod. Má funkci grupování, takže se dají zapínat, vypínat a rozblikat celé indikované cesty.
Modul návěstidel SCOM. Jeden modul pro 18 návěstidel. Použiju ho v panelu pro virtuální návěstidla a možná později pro návěstidla na kolejišti, až nebude hrozit jejich očesání.
Modul rozbočení a sloučení sériové linky, kde je problém hlavně se sloučením Tx výstupů modulů do jednoho. Ten je řešen jen úplně obyčejným TTL obvodem s vícevstupovým NAND hradlem.
To všechno je ubastleno na univerzálních deskách, panel je dřevo a plastová bílá deska.

Postupně sem budu dávat schemata, fotky a programy pro moduly, jak mi čas dovolí.
Naposledy upravil Ondřej dne stř 14 srp, 2019 6:14 pm, celkově upraveno 2
Uživatelský avatar
Ondřej
 
Příspěvky: 177
Registrován: čtv 22 úno, 2007 12:48 pm
Bydliště: Roztoky - PZ

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

Příspěvekod sokola » úte 26 úno, 2019 7:34 am

Hezky :) mám v hlavě něco podobného, ale na jednom konci by měla být hlavně JOP. Na větvení mám "router", aby mi nečetly všechny koncové prvky data, když to pro ně není určené, i kvůli opačnému směru. Mám to zatím jako proof of concept. Jak řešíte napájení? Rušení? Detekci obsazení? Ono mi kolem každého arduina toho okolního hardwaru nabobtná docela dost..
sokola
 
Příspěvky: 7
Registrován: pon 25 lis, 2013 2:19 am

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

Příspěvekod belgarat » úte 26 úno, 2019 8:01 am

Pro analogove kolejiste jsem spachal tez "neco takoveho"; ovsem zdaleka ne tak modularni, mel jsem podstatne mensi cile. I proto, ze jedno Arduino toho utahne docela dost, takze se mnoho modulu sloucilo. Muj zaver z vice nez rocni prace zni - hlavne nevymyslejte sve vlastni sbernice a komunikacni protokoly. Kdyz to udelate, navzdy si vsechno budete muset delat sami. A kazdy dalsi projekt na podobne tema rozstristenost jen zhorsi. A nejvetsi problem je, ze "to vsechno" musi byt vlastne hotove jinak casti kolejiste nefunguji. Neni "vlastni" modul navestidla -> nejsou semafory. Poucte se z cizich chyb a delejte svoje vlastni - jine.

Nabidnu jiny uhel pohledu - i z uvedeneho projektu: mame "vsechno vlastni", ovsem jakmile se objevi modul SCOM, daji se _ihned_ pouzit navestidla.cz. Analogicky, pokud bychom meli "modul XPressNet", da se IHNED pouzit treba rocomys, nebo Fuldovo TCO; byt ne v plnem rozsahu. A kdyby nahodou byl modul "DCC", ktery DCC accessory prevede na proprietarni sbernici (opet ne nutne v plnem rozsahu) .... pripadne naopak, hle, razem se daji pouzit "out of box" standardni pripravky.

Ale ty v seznamu nejsou.

Pochybuji, ze nekdo chce vynalezat kolo, ktere je uz 100x zverejnene. Vetsinou se to dela proto, ze stavajici kola trochu nevyhovuji. Tak proc se nesoustredit na presne to, co opravdu nevyhovuje, a tech 90% zbylych veci prevest na predchozi pripad ?

Ad rozboceni a slouceni seriove linky: nechces vazne pouzit RS485, nebo I2C ? Nebo kdyz uz tak LocoNet na urovni sbernicovych protokolu ? Oboji ma pomerne standardizovane vyresene bus-master, v pripade I2C i multi-master. Prislusne budice jsou bud za babku nebo primo nadratovane v Arduinu. O LocoNetu toho bylo popsano mraky, ackoliv lezu po strope z toho jak chaoticky (a nedokonale) ma definovane packety a aplikacni chovani, jako transport je (myslim) skvely.
TT epocha IVa-b; analog + NanoX, DR5000.
Nemodelar, greenhorn, pseudoprogramator, pindac nesmyslu
belgarat
 
Příspěvky: 1308
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 look23 » úte 26 úno, 2019 8:54 am

I2C bych nechal jen na desce a ven z desky bych to vůbec netahal. Je to dobrý způsob, jak si zaručit krušné chvíli při hledání chyb kvůli rušení.
H0, ČSD epocha IV
look23
 
Příspěvky: 412
Registrován: ned 17 lis, 2013 2:20 pm

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

Příspěvekod JenikPluto » úte 26 úno, 2019 9:01 am

Jenže někdy je znovuvynalézání kola mnohem větší zábava než to ostatní. :D A o zábavu jde především, ne? Já jsem byl trochu línější než kolega, takže jsem pro sériovou komunikaci mezi Arduiny použil Loconet :wink: a do panelu jedno Arduino Mega, které vládne těm v kolejišti...

Držím palce.

JP
JenikPluto
 
Příspěvky: 182
Registrován: pát 08 lis, 2013 10:19 am
Bydliště: Kladno

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

Příspěvekod belgarat » úte 26 úno, 2019 9:40 am

Jenik: a nebo tak :) ale vsimni sis kolik sis usetril "pocatecnich" problemu. Mas LocoNet (= nevymyslis protokol) a muzes pouzit cizi hranata kola, ktera NEJAK fungovat budou. Nez bude cas vyrobit vlastni kulata.

Update:
Samozrejme kolegove - piste piste, nenechte se odradit; i ja napjate cekam. Treba u rizeni matice LEDek jsem ponekud selhal, ale uznavam ze jsem se s tim moc nijak nemazal s tim, ze "takhle to staci". Rad prevezmu solidnejsi reseni.
TT epocha IVa-b; analog + NanoX, DR5000.
Nemodelar, greenhorn, pseudoprogramator, pindac nesmyslu
belgarat
 
Příspěvky: 1308
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 JenikPluto » úte 26 úno, 2019 3:19 pm

belgarat píše:Update:
Samozrejme kolegove - piste piste, nenechte se odradit; i ja napjate cekam. Treba u rizeni matice LEDek jsem ponekud selhal, ale uznavam ze jsem se s tim moc nijak nemazal s tim, ze "takhle to staci". Rad prevezmu solidnejsi reseni.


Tak za tim oucelem ja poridil hrst cipu WS2811 (inspiroval jsem se u MGP) a spravuju je za pouziti Adafruit Neopixel knihovny. Vsechny ovladane LEDky (nebo jejich pary) jsou definovany polem x krat 3 (x je pocet zretezenych cipu, v mem pripade 12). Mam definovanou funkci, kterou volam pri zmene stavu LEDky (resp. ledek, jedna ON, druha OFF) podle odezvy z LN, viz:

Kód: Vybrat vše
void rozsvitLED(int blok, int LED, int jas) {

  LEDArray[blok][LED] = jas;

  for (int k = 0; k<12; k++){
    pixels.setPixelColor(k, pixels.Color(LEDArray[k][0], LEDArray[k][1], LEDArray[k][2]));
  }
  pixels.show();
  return;
 
}


Vyhody: 1 pin na (v mem pripade) 36 ledek (prip. jejich paru). WS2811 jsou zdoji konstantniho proudu, jehoz hodnota je nastavitelna ve 256 krocich (PWM), zaklad je tusim 18 mA. Kazda z LEDek je definovana trojici parametru (cip, na kterem visi, pin na cipu a jas), zadna velka veda na ovladani.

Nevim, jak moc je to solidnejsi reseni, nez Tvoje, ale mne to takhle staci 8)

JP
JenikPluto
 
Příspěvky: 182
Registrován: pát 08 lis, 2013 10:19 am
Bydliště: Kladno

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

Příspěvekod belgarat » úte 26 úno, 2019 3:50 pm

@Jenik: ja jsem udelal matici 16x8; akorat ze taktak stiham obsluhovat S88 aby ty LEDky neblikaly. Vim, mam ty jejich refreshe zavesit na timer, ale na to jsem byl prave moc pohodlny a ve vysledku to staci.
TT epocha IVa-b; analog + NanoX, DR5000.
Nemodelar, greenhorn, pseudoprogramator, pindac nesmyslu
belgarat
 
Příspěvky: 1308
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 » úte 26 úno, 2019 5:20 pm

Sakra, netušil jsem jakou to vezme odezvu :D
Nejdříve k celkové filozofii. Vycházel jsem z toho, že to nechci kolejiště ovládat přes počítač a nechci automatické ovládání jízdy vlaků. Není nad to, mít na klíně panel a ovladač lokomotivy a jízdu si vychutnat z pohledu fíry i obsluhy stanice :P Navíc je to kolejiště v podstatě ovál a kdyby se rušila zvolená cesta průjezdem vlaku, tak bych nedělal nic jiného, než znovu a znovu stavěl cestu pro průjezd. Takže detekce obsazenosti úseků je řešena pohledem na kolejiště a poté správným nastavením cesty. Ty už nebude samozřejmě možné nastavit kolizní, to bude hlídat centrální arduino podle závěrové tabulky. Zastavení vlaku na signál stůj, je zase záležitost strojvedoucího, případně toho kdo ovládá oboje. Když budu jezdit se synem, jeden bude jezdit, druhý obsluhovat stanici a případně si posunovat. Takhle nás to prostě baví a k tomu je řešení směrováno. Pokud by v budoucnu nastala potřeba řešit obsazenost úseků, udělá se na to prostě modul a upraví řídící soft.
K té sběrnici. Sériová linka je na arduinu pěkně vyřešená s docela velkým bufferem. Je blbuvzdorná na řízení a při rychlosti 9600bd hodně odolná proti rušení. Nebude tam žádný velký datový tok, takže jsem ani nepřemýšlel o nějakém routeru. Moduly prostě poslouchají a co neni pro ně ignorují. Převod na rozhraní 485 na těch pár metrů kabelu je zbytečné a jeden obvod s pár NAND hradly signál sloučí. Nemusím řešit kolize, protože se hlavní modul vždy baví jen s jedním modulem. Času je na to hromada.
Uživatelský avatar
Ondřej
 
Příspěvky: 177
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 » úte 26 úno, 2019 6:08 pm

Tady je ten modul pro řízení 160 LED.
Struktura a popis příkazů je na začátku zdrojáku. Protože .ino nejde přiložit, tak si soubor modul_LED_160.pdf přejmenujte po stažení na *.ino
Schema je jen tak od ruky (výrobní načrtek), tak se nelekněte :o
Přílohy
modul_LED_160 .pdf
(21.36 KiB) 63 krát
modul LED 160 schema.pdf
(309.94 KiB) 64 krát
Uživatelský avatar
Ondřej
 
Příspěvky: 177
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 » úte 26 úno, 2019 6:14 pm

A ještě pár fotek modulu.
Přílohy
IMG_0010.JPG
IMG_0008.JPG
IMG_0009.JPG
Uživatelský avatar
Ondřej
 
Příspěvky: 177
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 » úte 26 úno, 2019 6:22 pm

Jo, a ještě k těm chytrým LED od adafruit. Ty jsem zkoušel a měl z nich dost rozporné pocity. Jednak pro pohled zblízka jako indikace, je tam dost vidět ty tři RGB body a vnímat to jako třeba bílou barvu je trochu problém. Pak se dají blbě osadit do panelu. A poslední věc je ta, že pokud s nimi intenzivněji pracuji, třeba při blikání, modul nechytá sériovou komunikaci, protože komunikace s LEDkami asi zakazuje interupty (kvůli rychlosti komunikace).
Uživatelský avatar
Ondřej
 
Příspěvky: 177
Registrován: čtv 22 úno, 2007 12:48 pm
Bydliště: Roztoky - PZ

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

Příspěvekod JenikPluto » úte 26 úno, 2019 7:19 pm

Ondřej píše:Jo, a ještě k těm chytrým LED od adafruit. Ty jsem zkoušel a měl z nich dost rozporné pocity. Jednak pro pohled zblízka jako indikace, je tam dost vidět ty tři RGB body a vnímat to jako třeba bílou barvu je trochu problém. Pak se dají blbě osadit do panelu. A poslední věc je ta, že pokud s nimi intenzivněji pracuji, třeba při blikání, modul nechytá sériovou komunikaci, protože komunikace s LEDkami asi zakazuje interupty (kvůli rychlosti komunikace).


Pozor, nezaměňovat WS2811 s WS2812. WS2811 je jen samotný čip, kterému se na RGB výstupy připojí LEDky.

Jinak Tvůj popis odpovídá tomu, co jsem si zbastlil já, rozdíl je pouze v použitém komunikačním protokolu...

JP
JenikPluto
 
Příspěvky: 182
Registrován: pát 08 lis, 2013 10:19 am
Bydliště: Kladno

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

Příspěvekod fulda » úte 26 úno, 2019 8:12 pm

BTW: ledky WS2812 v pouzdře 2020 už jsi vynalezl? Pro eNkaře docela dobré.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Uživatelský avatar
fulda
 
Příspěvky: 4538
Registrován: pon 09 srp, 2010 8:08 am
Bydliště: Praha - Uhříněves

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

Příspěvekod JenikPluto » úte 26 úno, 2019 8:38 pm

Nemůžu to stihnout vynaleznout všechno :D . Necpe je Hans do těch svých návěstidel?

JP
JenikPluto
 
Příspěvky: 182
Registrován: pát 08 lis, 2013 10:19 am
Bydliště: Kladno

Další

Zpět na Elektrika a elektronika

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník