Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Keďže mám starý modelový systém vlaku v mierke TT, dostal som nápad, ako ovládať lokomotívy jednotlivo.
S ohľadom na to som šiel o krok ďalej a zistil som, čo je potrebné nielen na ovládanie vlakov, ale aj na získanie ďalších informácií o celom usporiadaní a ovládaní niečoho iného (žiarovky, výhybky …)
Tak sa rodí modelový vlakový systém riadený WiFi.
Krok 1: Prevádzkové zásady
Hlavnou zásadou je ovládať každý prvok jednotlivo, buď z jedného ovládača, alebo z viacerých zdrojov ovládania. To vo svojej podstate potrebuje spoločnú fyzickú vrstvu - najzreteľnejšie WiFi - a spoločný komunikačný protokol MQTT.
Ústredným prvkom je maklér MQTT. Každé pripojené zariadenie (vlak, senzor, výstup …) môže komunikovať iba prostredníctvom Sprostredkovateľa a môže od neho prijímať iba údaje.
Srdcom zariadení je ovládač WiFi na báze ESP8266, zatiaľ čo broker MQTT beží na Raspberry pi.
Pokrytie Wifi je najskôr zabezpečené routerom WiFi a všetko je pripojené bezdrôtovo.
Existujú 4 typy zariadení:
- Ovládač vlaku: má 2 digitálne vstupy, 1 digitálny výstup, 2 výstupy PWM (na ovládanie 2 samostatných jednosmerných motorov), - Senzorový ovládač: má 7 digitálnych vstupov (pre vstupné spínače, optosenzory …), - Ovládač výstupu: má 8 digitálnych výstupov (pre koľajové spínače …), - Diaľkové ovládanie WiFi: má 1 inkrementálny vstup kodéra, 1 digitálny vstup (na diaľkové ovládanie vlakov).
Systém je schopný fungovať aj z Node-Red (z tabletu, PC alebo smartfónu …).
Krok 2: Výmena a konfigurácia údajov MQTT
Na základe protokolu MQTT sa každé zariadenie najskôr prihlási k danej téme a môže publikovať na inú tému. Toto je základ komunikácie siete riadenia vlakov.
Tieto komunikačné príbehy sú zasadené do správ vo formáte JSON, aby boli krátke a čitateľné pre ľudí.
Pohľad z väčšej perspektívy: Sieť má WiFi router s vlastným SSID (názov siete) a heslom. Každé zariadenie musí tieto 2 vedieť, aby sa mohlo pripojiť k sieti WiFi. Broker MQTT je tiež súčasťou tejto siete, takže aby bolo možné používať protokol MQTT, každé zariadenie musí poznať IP adresu brokera. A nakoniec, každé zariadenie má svoju vlastnú tému na prihlásenie sa na odber a publikovanie správ.
V praxi daný diaľkový ovládač používa rovnakú tému na publikovanie správ, ku ktorým je daný vlak prihlásený.
Krok 3: Ovládač vlaku
Na ovládanie vláčika potrebujeme v zásade 3 veci: napájanie, ovládač s podporou WiFi a elektroniku vodiča motora.
Napájanie závisí od skutočného plánu použitia: v prípade LEGO je to box na batérie Power Functions, v prípade súpravy vlaku „oldschool“v mierke TT alebo H0 ide o napájanie 12V trate.
Ovládač s podporou WiFi je ovládač Wemos D1 mini (na báze ESP8266).
Elektronika ovládača motora je modul založený na TB6612.
Ovládač vlaku má 2 individuálne ovládané výstupy PWM. Akútne jeden slúži na ovládanie motora a druhý slúži na svetelnú signalizáciu. Má 2 vstupy pre snímanie založené na jazýčkových kontaktoch a jeden digitálny výstup.
Ovládač prijíma správy JSON prostredníctvom protokolu WiFi a MQTT.
SPD1 riadi motor, napríklad: Správa „" SPD1 ": -204} sa používa na posun motora dozadu pri 80% výkone (maximálna hodnota otáčok je -255).
SPD2 riadi intenzitu svetla LED „citlivého na smer“: Správa „„ SPD2 “: -255} rozsvieti (spätne) LED na plný výkon.
OUT1 riadi stav digitálneho výstupu: {"OUT1": 1} zapína výstup.
Ak sa zmení stav vstupu, regulátor odošle správu podľa neho: {"IN1": 1}
Ak kontrolór dostane platnú správu, vykoná ju a poskytne spätnú väzbu maklérovi. Spätná väzba je skutočne vykonaný príkaz. Napríklad: ak sprostredkovateľ odošle {"SPD1": 280}, motor pracuje na plný výkon, ale správa so spätnou väzbou bude: {"SPD1": 255}
Krok 4: Ovládanie vlaku LEGO
V prípade vlaku LEGO sú schémy trochu odlišné.
Napájanie pochádza priamo z batérie.
Je potrebný mini krokový prevodník, ktorý by poskytoval 3,5 V pre dosku Lolin na báze ESP8266.
Pripojenia sú vyrobené s predlžovacím drôtom LEGO 8886, rozrezaným na polovicu.
Krok 5: Diaľkový ovládač
Ovládač zverejňuje iba správy vlaku (definované prepínačom BCD).
Otáčaním kodéra diaľkové ovládanie odosiela buď správy {"SPD1": "+"} alebo {"SPD1": "-"}.
Keď vlak prijme túto správu „prírastkového typu“, zmení svoju výstupnú hodnotu PWM o 51 alebo -51.
Týmto spôsobom môže diaľkový ovládač meniť rýchlosť vlaku v 5 krokoch (každý smer).
Stlačením inkrementálneho kodéra sa odošle {"SPD1": 0}.
Krok 6: Ovládač senzora
Takzvaný senzorový regulátor meria stavy svojich vstupov a ak sa ktorýkoľvek z nich zmení, zverejní túto hodnotu.
Napríklad: {"IN1": 0, "IN6": 1} v tomto prípade 2 vstupy zmenili stav súčasne.
Krok 7: Výstupný regulátor
Výstupný regulátor má 8 digitálnych výstupov, ktoré sú pripojené k modulu založenému na ULN2803.
Prijíma správy prostredníctvom svojej prihlásenej témy.
Napríklad správa {"OUT4": 1, "OUT7": 1} zapne 4. a 7. digitálny výstup.
Krok 8: Raspberry Pi a WiFi router
Mal som použitý smerovač TP-Link WiFI, takže som to použil ako prístupový bod.
Maklér MQTT je Raspberry Pi s nainštalovaným Mosquitto.
Používam štandardný OS Raspbian s MQTT integrovaným s:
sudo apt-get install mosquitto mosquitto-clients python-mosquitto
Router TP-Link musí byť nakonfigurovaný tak, aby mal rezerváciu adresy pre Raspberry, takže po každom reštarte má Pi rovnakú IP adresu a môže sa k nemu pripojiť každé zariadenie.
A je to!
Krok 9: Hotové ovládače
Tu sú hotové ovládače.
Loko stupnice TT má také malé rozmery, že loolinskú dosku bolo potrebné zúžiť (narezať), aby bola dostatočne malá, aby sa zmestila do vlaku.
Zostavené binárne súbory je možné stiahnuť. Z bezpečnostných dôvodov bolo rozšírenie priečinka nahradené txt.