V tomto projektu jsem udělal menší upgrade na starou TT modelovou železnici, kterou mám po tátovi. Vytvořil jsem ovládací panel na přehazování výhybek, který se dá rychle a jednoduše přenastavit na libovolnou topologii trati, takže je ideální pro ty situace, kdy železnici stavíte jednou za čas na zemi v pokoji, když přijedou špunti na návštěvu.
Tento projekt byl současně mou prací do předmětu IMP.
Video
Jak to funguje
Ovládací panel disponuje dotykovou plochou o rozměrech cca 9×15 cm (realizováno šesti 4×4 dotykovými klávesnicemi). Přes tuto plochu se položí kus papíru se schématem železnice (nakreslený/vytištěný) a přístroj se naprogramuje tak, aby při dotyku v místech, kde jsou na schémátku výhybky, příslušné výhybky spínal. Výhybky jsou připojeny pomocí dupont konektorů na zadní straně přístroje.
Uživatelské rozhraní je realizováno dvouřádkovým LCD displejem a rotačním enkodérem (točítkem). Na displeji se zobrazuje stav všech výhybek a vždy po dobu dvou sekund také poslední provedená akce. Stlačením enkodéru se přejde do struktury menu. Programování přístroje je demonstrováno ve videu.
Ovladač se napájí pomocí USB portu (konektor mini-USB). Dále je také do přístroje potřeba zavést střídavé napětí pro spínání výhybek. Do přístroje lze zapojit až 10 výhybek.
Hardwarová realizace
Jádrem přístroje je čínský klon Arduina Nano. Můj má na sobě bohužel USB mini. Doporučuju kupovat pouze s USB mikro, protože to pak můžete zapojit do prakticky libovolné nabíječky; u mě je potřeba mít nabíječku s USB zdířkou.
Displej je připojen přes rozhraní I2C.
Relátka
Přepínání výhybek je realizováno relé deskou z Číny s osmi relátky. Na ovládání deseti výhybek potřebujeme vytvořit dvacet různých kombinací (každá výhybka potřebuje dvě kombinace). Toho je docíleno uspořádáním relátek do matice.
Klasickým uspořádáním relátek 4×4 bychom získali 16 kombinací. Další čtyři kombinace dostaneme tak, že zahrneme i stav, kdy není ve sloupci sepnuté žádné relátko. Při spínání výhybek je třeba tedy nejdřív sepnout sloupec a poté až řádek, protože kdyby se sepl nejdřív řádek, tak se nám spustí výhybka v nultém sloupci.
Relátka jsou potom připojena k posuvnému registru 74HC595 (abychom ušetřili ovládací piny).
Při prvním zapojení se všechno zdálo být OK, ale jakmile jsem připojil výhybky, relátka přestala správně fungovat. Tento problém jsem řešil velice dlouho. Relátka měla být galvanicky oddělená, navíc ještě za optočleny (zkoušel jsem relátka napájet z vlastního zdroje). Všude jsem přidal kondíky. Nic. K relátkům jsem přidal ochranné diody. Nic. Nakonec jsem nabyl názoru, že nějak blbne posuvný registr, ale ani výměna za nový nepomohla.
Po nějakém čase jsem našel tento článek, kde autor řešil úplně stejný problém a vyřešil ho. Haleluja! Přidání odporu a kondenzátoru ke store pinu posuvného registru blbnutí registru vyřešilo. Nicméně vyvstal další problém — při spínání relátek se občas restartovalo Arduino. Přidal jsem tedy RC filtry i na ostatní piny. S kondenzátorem na hodinovém signálu to nefungovalo, takže jsem tam místo toho přidal Schottkyho diodu proti +5V (na ochranu proti přepětí… snad). V elektronice jsem začátečník, takže nevím, jestli jsem to udělal správně, ale každopádně se zdá, že to funguje.
Dotyková klávesnice
Dotykové klávesnice jsou připojeny pomocí rozhraní SPI se společným rozvodem hodin — každá klávesnice tedy zabírá jeden pin na Arduinu. Na klávesnicích je nepraktické to, že mají elektroniku na stejné straně, jako jsou elektrody. Zespod se také přidělat nedají, protože z druhé strany jsou spoje vedoucí k elektrodám, kterých když se člověk dotkne, tak je to, jako by se dotkl elektrody (která je ovšem jinde).
Schéma
Firmware (Visual Studio + vMicro)
Náklady
Součástka | Dokumentace | Cena |
6x 16kanálová dotyková klávesnice s TTP229 | http://bit.ly/2gObQP9 | 6×25 = 150 Kč |
Přístrojová krabice | http://bit.ly/2hSBDS9 | 105 Kč |
Deska 8x relé | http://bit.ly/2hAkVbr | 94 Kč |
Arduino nano (klon) | http://bit.ly/2h58iE3 | 56 Kč |
LCD displej 1602 + I2C adaptér | http://bit.ly/2hppoPW | 50 Kč |
Krimpovací konektory, cín, lepidlo do tavící pisole, PCB desky, dráty, … | 50 Kč | |
Rotární enkodér | http://bit.ly/2hSCCSi | 12 Kč |
Posuvný registr 74HC595 | http://bit.ly/2hSL8ka | 2 Kč |
CELKEM | 519 Kč |