TRAIN0A Spínací automat pro vláčky Milan Horkel Tento modul vnikl na základě potřeby zajistit na výstavě stavebnice Lego automatické spínání vlakových modelů a to tak, aby spínání nebylo závislé na počítači a fungovalo automaticky při zapojení napájení spínacími hodinami. Zařízení je vybaveno reléovými výstupy a galvanicky oddělenými vstupy, které jsou dále vybaveny manuálními tlačítky. Jeho vlastnosti jsou z větší části dány firmwarem a v případě potřeby lze měnit parametry spínání přes USB rozhraní z počítače.. Technické parametry Parametr Hodnota Poznámka Počet výstupů reléových spínačů/přepínačů Max A Počet vstupů galvanicky oddělených Doplněné manuálními tlačítky Vlastní inteligence Firmware Procesor ATmega Konfigurace Pomocí USB rozhraní Sériové rozhraní Vlastní napájení V / 0.V Samostatný zdroj Rozměry 0 x x mm Výška nad základnou TRAIN0A.cs / 0-0-09 / miho / http://www.mlab.cz/permalink/train /
TRAIN0A. Popis konstrukce.. Úvodem konstrukce vznikla pro automatické řízení vlaků modelové železnice postavené ze stavebnice Lego. Železnice vyžaduje dva typy ovládání. Obyčejné spínání a přepínání směru. Pro spínání je použito standardních relé s vhodně zapojenými kontakty. Spínače jsou galvanicky oddělené od zbytku elektroniky i navzájem od sebe. Dále je zařízení vybaveno galvanicky oddělenými vstupy a tlačítky. Pro snadné nastavování parametrů spínání je dále zařízení vybaveno USB rozhraním pomocí kterého lze standardním terminálovým programem komunikovat s firmwarem zařízení. Oživením jiným firmwarem lze ze zde popsaného hardwaru vykouzlit zařízení s mnoha dalšími funkcemi a schopnostmi... Zapojení modulu Jádrem zařízení je řídící procesor zapojený obvyklým způsobem. Procesor je doplněn resetovacím tlačítkem, programovacím konektorem a volitelně krystalem. Procesor běží v režimu interního R generátoru hodin na kmitočtu MHz, přesnost časování je tak omezena na cca %. V případě potřeby přesnějšího časování je možné osadit externí krystal. USB_TXD USB_RXD M0 JUMPER M0 JUMPER J JUMPX V+V P PU_RXD PU_TXD RE RE RE RE RE RE RE u/v 00 9 0 U X #MHz A B 00nF P/RESET# PD0/RXD PD/TXD PD/INT0 PD/INT PD/XK/T0 V GND PB/XTAL/TOS PB/XTAL/TOS PD/T PD/AIN0 PD/AIN PB0/IP ATmegaL-PU DIP_00 ATmega (DIP) M0 DIL_00 Socket AD/SL/P AD/SDA/P AD/P AD/P AD/P AD0/P0 GND AREF AV SK/PB MISO/PB MOSI/O/PB SS#/OB/PB OA/PB 0 9 AREF 00nF 00nF SW0 SW SW SW SW SW PB PB PB SW RE0 PB PB P P PB V+V J MISO VTG PB SK MOSI RST# GND JUMPx ATMEL ISP V+V R K R 0k SW P-B0 RESET SW #pf XTAL #pf TRAIN0A.cs / 0-0-09 / miho / http://www.mlab.cz/permalink/train /
TRAIN0A Dále je k procesoru připojeno USB sérové rozhraní na bázi obvodu FTDI. Zapojení obsahuje indikační LED diody. Pro správnou činnost je třeba provést nastavení obvodu FTDI tak, aby výstup BUS byl nastaven jako indikátor aktivity na sériové lince. Viz postup oživení. L MI00K00R-0 PB Footprint = R0 V+.V J0 USB_B_0 M M USB V USBDM USBDP GND 00nF 0 pf 00nF R USBDM USBDP pf R 9 u/v 00 9 U V USBDM USBDP RESET# FT0XS USB VOUT VIO TXD RXD RTS# TS# 0 BUS0 BUS GND BUS GND BUS FTDI USB Use FT_PROG utility and set BUS as Activity 00nF USB_RTS# USB_TS# R 0 A R 0 00nF BUS USB_TXD USB_RXD TPS USB_RTS# TPS USB_TS# D A HL-0-(GREEN) USB ATIVITY D HL-0-(RED) USB POWER V+.V elé zařízení je napájeno napájecím adaptérem V. Toto napětí napájí cívky relé, Procesor je napájen stabilizovaným napětím V. J KA A D POWER +V ca 00mA 0MQ00N SMA V+V R 00nF u/v 00 D HL-0-(RED) A R k +V J JUMPX U IN OUT LM0T V+V GND GND 00nF A D M SMA +V J JUMPX TRAIN0A.cs / 0-0-09 / miho / http://www.mlab.cz/permalink/train /
TRAIN0A Relé zajišťují výkonové výstupy. Na obrázku je zobrazena jen část z výstupů. Nezobrazené výstupy jsou zapojeny stejně. Relé se spínají pomocí běžného obvodu ULN0A. U jednotlivých relé jsou umístěny indikační diody. Vstupy budicího obvodu jsou vyvedeny na hřebínek a lze tak ovládat relé i přímo bez použití procesoru (šikovné i při oživování). Kontakty relé jsou zapojeny tak, že je lze využít buď jako jednoduchý spínač (použijeme prostřední svorky a ), nebo jako obraceč směru (přívod na svorky a, zátěž na svorky a ). RE0 FTR-FA0V J0 WAGO_x0 V+V RE FTR-FA0V J WAGO_x0 V+V RE0 RE RE RE RE RE RE RE 9 J A D00 HL-0-(RED) R00 k A D0 HL-0-(RED) R0 k RE0 RE RE RE RE RE RE RE 9 JUMP9 U I0 I I I I I I I GND O0# O# O# O# O# O# O# O# VD ULN0A 0 V+V REP0 REP REP REP REP REP REP REP u/v 00 RE FTR-FA0V A D0 HL-0-(RED) J WAGO_x0 R0 k V+V RE FTR-FA0V A D0 HL-0-(RED) J WAGO_x0 R0 k V+V Obvodu ULN 0 obsahuje darlingtonových budičů a ochranných diod, to vše za pár korun. TRAIN0A.cs / 0-0-09 / miho / http://www.mlab.cz/permalink/train /
TRAIN0A Vstupy na sobě nezávislé a galvanicky oddělené od elektroniky pomocí optronů. Schéma ukazuje zapojení několika vstupů, zbývající vstupy jsou zapojené stejně. Aktivita vstupů je indikována indikačními diodami. Vstupy jsou polarizované a chráněné proti přepólování. Rozsah vstupního napětí je dáno použitými omezovacími odpory. J9 WAGO_x 9 0 I0P I0N IP IN IP IN IP IN R00 k R0 k A D00 NSMD A LA L A D0 HL-0-(GREEN) LA L A Q0 P SW0 SW E E Q00 P D0 NSMD D HL-0-(GREEN) R = (Umax - V) / 0.00A V --> k / 0mW V --> k / 0mW Paralelně ke vstupům jsou zapojena manuální tlačítka. J 9 JUMP9 SW0 P-DTGE SW P-DTGE SW P-DTGE SW P-DTGE SW P-DTGE SW P-DTGE SW P-DTGE SW P-DTGE SW0 SW SW SW SW SW SW SW PUSH BUTTONS TRAIN0A.cs / 0-0-09 / miho / http://www.mlab.cz/permalink/train /
TRAIN0A.. Mechanická konstrukce Zařízení je v provedení obřího modulu. Vzhledem k tomu, že vstupy a výstupy používají průmyslové WAGO svorky, je třeba desku plošného spoje přimontovat na pevnou podložku a ve vhodných místech desku podložit izolačním materiálem. Síla potřebná pro zmáčknutí svorek WAGO je značná. Svorky WAGO jsou robustní a spolehlivé, ale současně jsou i poměrně drahé. Představují asi / nákladů na zařízení. Lze je nahradit levnějšími šroubovacími svorkami s roztečí mm. TRAIN0A.cs / 0-0-09 / miho / http://www.mlab.cz/permalink/train /
TRAIN0A. Osazení a oživení TRAIN0A.cs / 0-0-09 / miho / http://www.mlab.cz/permalink/train /
TRAIN0A TRAIN0A.cs / 0-0-09 / miho / http://www.mlab.cz/permalink/train /
TRAIN0A Pro snazší osazení je zde detail osazení součástek v oblasti USB rozhraní. Reference Hodnota Pouzdro Odpory R (možno osadit feritovou perlu) R0 R, R R00 R, R 0 R00 R, R, R00-R0 k R00 R00-R0 k (drátové vývody) RL090 R 0k R00 Kondenzátory, #pf (doporučuji osadit) 00 0, pf 00,,,,,,,, 00nF 00, 9,, u/v 00 Indukčnosti L MI00K00R-0 R0 TRAIN0A.cs / 0-0-09 / miho / http://www.mlab.cz/permalink/train 9 /
TRAIN0A Diody D00-D0 NSMD SOD D M SMA D 0MQ00N SMA Diody LED D, D0-D (GREEN) HL-0- / OF-SMDG (TME) LED0REV D, D, D00-D0 (RED) HL-0- / OF-SMDR (TME) LED0REV Integrované obvody U ATmegaL-PU DIP_00 U FT0XS SSO_ U ULN0A DIP_00 U LM0T TO0/L Krystal X #MHz XTAL00 Optrony Q00-Q0 P P Relé RE0-RE FTR-FA0V RELAY9x_pin Tlačítka SW0-SW P-DTGE / KS0-BV-RED (TME) PUSH0 SW P-B0 / BF-000 (TME) PUSH00x00 Svorky WAGO J0-J WAGO_x0 WAGO_x0 J9 WAGO_x WAGO_x ks 9ks WAGO svorka WAGO čelíčko TRAIN0A.cs / 0-0-09 / miho / http://www.mlab.cz/permalink/train 0 /
TRAIN0A Konektory J KA KA J0 USB_B_0 USB_B_0 Jumpery J, J JUMP9 JUMP9 J JUMPX JUMPX J, J JUMPx JUMPx J JUMPX JUMPX Ostatní materiál M0 PB_TRAIN0A Plošný spoj M0 Power Supply V Napájecí zdroj V/.A M0, M0 JUMPER Jumper propojka M0 DIL_00 Socket Precizní patice DIL úzká ks ks ks ks Šroub Mx pozink, válcová hlava Matice M pozink Podložka M pozink Sloupek Mx šroub/matice.. Osazení a oživení Osazujeme postupně a postupně i oživujeme. Konstrukce nemá žádné záludnosti. Procesor se vkládá do patice až otestování zdroje. LED diody jsou SMD typu a osazují tak, aby koukaly skrz plošný spoj (tzv. reverzní montáž) zde vyvrtanými otvory.... Napájecí zdroj a stabilizátor Kontrolujeme napětí V na konektoru J.... Reléové výstupy a budicí obvod ULN Kontrolujeme spínání jednotlivých relé. K testování spínání využijeme konektor J9 a napětí +V z konektoru J. TRAIN0A.cs / 0-0-09 / miho / http://www.mlab.cz/permalink/train /
TRAIN0A... Obvody USB rozhraní Spojíme USB_RXD a USB_TXD na konektoru J a otestujeme programem terminálu z osobního počítače (možná bude potřeba nainstalovat ovladače pro obvod FTDI). Zapisované znaky se musejí opakovat na terminálu. Po odstranění propojky z J opakování znaků nenastane (tedy pokud váš terminál nemá nastavené lokální echo odesílaných znaků). Pokud komunikace pracuje správně zapojíme propojky na J do provozního stavu USB_TXD- PU_RXD a PU_TXD-USB_RXD. V této fázi můžeme nastavit konfiguraci obvodu FTDI dle postupu v kapitole Nastavení.... Obvody procesoru Zde není žádná záludnost. Nezapomeneme osadit drátové propojky (jsou vyznačeny na potisku). Procesor se vkládá do patice a programuje se přímo v zapojení. Po naprogramování firmwaru deska ožije a začne spínat. Nezapomeneme nahrát i defaultní obsah paměti EEPROM procesoru. hování firmwaru je popsáno v návodu firmwaru.... Obvody vstupů a tlačítek Osazení tlačítek a oddělených vstupů je finální částí. Ověřujeme za pomoci firmwaru. Nejdříve ověříme, že pracují všechna tlačítka a pak postupně otestujeme jednotlivé galvanicky oddělené vstupy. Na vstupní svorky připojujeme -V zdroj čímž dojde k aktivaci vstupů stejně, jako v případě tlačítek. Zkontrolujeme i svit indikačních diod.... Mechanické podložení Plošný spoj je pod svorkami a tlačítky podložen izolačním materiálem (pro malá napětí vyhoví i dřevěná latička x mm). Základnu tvoří například deska z dřevotřísky za pár korun... Nastavení Obvod FTDI je vhodné nastavit pomocí utility FT_Prog.exe výrobce (nutno vyčenichat na webu výrobce, program je tam dobře schován na stránce http://www.ftdichip.com/support/utilities.htm (kdo ví, kde bude příště). Pro usnadnění nastavení je připravena konfigurace v souboru http://www.mlab.cz/permalink/train/eeprom/ftdi_0x_train.xml. TRAIN0A.cs / 0-0-09 / miho / http://www.mlab.cz/permalink/train /
TRAIN0A... Nastavení identifikace Zařízení pojmenujeme.... Nastavení výstupu BUS Výstup je připojen na indikační LED a je nastaven na indikaci aktivity RX/TX na sérovém portu. TRAIN0A.cs / 0-0-09 / miho / http://www.mlab.cz/permalink/train /
TRAIN0A. Programové vybavení Návod popisuje firmware TRAIN_TIMER verze.00... Uživatelský návod Program má za úkol v nastavených intervalech přepínat jednotlivé reléové výstupy. Zadává se čas sepnutí a čas vypnutí v sekundách. Dále lze definovat rozsah náhodného času o který se prodlouží čas sepnutí a nezávisle čas vypnutí. Například zadá-li se čas prodloužení zapnutí 0 sekund, bude čas sepnutí prodloužen o náhodnou hodnotu 0 až 0 sekund. Nastavení spínacích časů lze měnit za běhu pomocí terminálu připojeném k USB rozhraní a může být natrvalo zapsáno do paměti EEPROM procesoru ATmega.... Tovární nastavení Toto nastavení je zapsáno ve zdrojovém kódu firmwaru a při programování se zapíše do paměti EEPROM procesoru. Je zvoleno nastavení, které je vhodné i pro účely testování funkčnosti hardwaru. Kanál Čas zapnutí Čas vypnutí Náhodný přídavek k zapnutí Náhodný přídavek k vypnutí Tvar signálu 0 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0... Test funkčnosti Test funkčnosti výstupů spočívá v ověření, že všechna výstupní relé spínají dle tabulky a že indikační diody u relé správně indikují. Test funkčnosti tlačítek se provádí jejich mačkáním s tím, že dojde k okamžitému přepnutí výstupu (při nejbližší celé sekundě). Stejně se testují i galvanicky oddělené vstupy pomocí pomocného napětí. I zde musejí správně indikovat diodové indikátory vstupů. TRAIN0A.cs / 0-0-09 / miho / http://www.mlab.cz/permalink/train /
TRAIN0A... Nastavení pomocí terminálu Zařízení připojíme k počítači a pokud jsou nainstalované drivery pro FTDI čip objeví se ve správci zařízení nový sériový port (označený například OM). Pokud v systému drivery chybí, lze je stáhnout z webu výrobce na adrese http://www.ftdichip.com/drivers/dxx.htm pro všechny běžné operační systémy. Dále spustíme terminálový program, například oblíbený bezplatný putty a v něm otevřeme port zařízení a po resetu zařízení uvidíme stávající nastavení a jednoducho nápovědu. Train Timer ---------------- (c) miho 0 WWW..Z.00 OMMAND HANNEL TIME_ON TIME_OFF RND_ON RND_OFF ----------------------------------------------------------- ONFIG 0 9 0 0 ONFIG 0 0 ONFIG 0 0 ONFIG 0 0 ONFIG 0 0 ONFIG 0 0 ONFIG 0 0 ONFIG 0 0 ommand Mode > MANUAL -- Start Interactive Mode ONFIG hannel On Off Random_On Random_Off -- Set Time onfig SAVE -- Save to EEPROM LIST -- Display urent Settings Pro jednotlivé kanály můžeme změnit nastavení příkazem ONFIG, příkazem SAVE se nastavení uloží natrvalo do EEPROM procesoru a příkazem LIST můžeme zobrazit stávající nastavení. ONFIG 0 0 SAVE LIST Výše uvedené nastavení definuje čas sepnutí kanálu na čas 0 až sekund a čas vypnutí na čas 0 až sekund. Tip: Vlastní nastavení v podobě posloupnosti příkazů si můžeme připravit do textového souboru a jeho obsah poté vložit do terminálu. Jeho provedením dojde k nastavení nových hodnot. Jeden takový soubor je připravený v adresáři se zdrojáky.... Manuální ovládání přes USB Po zadání příkazu MANUAL se přepne firmware do režimu přímého ovládání (časovače stále běží, nechceme-li aby běžely, nastavíme u příslušného kanálu nové časy zapnutí a vypnutí na nulu a tím pádem nám automat nebude zasahovat do ručního přepínání). TRAIN0A.cs / 0-0-09 / miho / http://www.mlab.cz/permalink/train /
TRAIN0A > MANUAL Interactive Mode 0.. Reverse hannel 0.. (and reset timer) A..H Set hannel 0.. on a..h Set hannel 0.. off ES Return from Interactive Mode > Zadáním číslic 0.. zkracujeme čas přepnutí (stejně jako stiskem tlačítek) pro příslušný kanál 0.. (dojde k okamžitému přepnutí, ale nejbližší další přepnutí je možné až po sekundě). Zadáním písmen a..h vynucujeme okamžité vypnutí kanálu 0.. bez ovlivnění časovačů. Zadáním písmen A..H vynucujeme okamžité zapnutí kanálu 0.. bez ovlivnění časovačů... Popis programu Program je psaný narychlo a není nijak optimalizován. Velkou část paměti programu spotřebují knihovny jazyka, zejména funkce printf() a scanf(), které by stálo za to v případě nedostatku místa nahradit úspornějšími vlastními funkcemi.. hyby a náměty Bylo by vhodné doplnit signál USB_RX odporem do země aby byl signál v klidu při vypnutém hlavním napájení. TRAIN0A.cs / 0-0-09 / miho / http://www.mlab.cz/permalink/train /