
Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-23 14:44

Minulla oli vanha TT -asteikon junamallijärjestelmä, ja minulla oli idea siitä, miten ohjata paikkoja yksilöllisesti.
Tässä mielessä menin askeleen pidemmälle ja tajusin, mitä tarvitaan paitsi junien ohjaamiseen, myös saadakseni lisätietoja koko asettelusta ja ohjaamaan jotain muuta (lamput, kiskokytkimet…)
Näin syntyy WiFi -ohjattu junajärjestelmä.
Vaihe 1: Toimenpiteet

Pääperiaate on ohjata jokaista elementtiä erikseen, joko yhdestä ohjaimesta tai useista ohjauslähteistä. Tämä vaatii luonnostaan yhteisen fyysisen kerroksen - ilmeisimmin WiFi: n - ja yhteisen viestintäprotokollan, MQTT.
Keskeinen elementti on MQTT Broker. Jokainen kytketty laite (juna, anturi, lähtö …) saa kommunikoida vain välittäjän kautta, ja se voi vastaanottaa tietoja vain välittäjältä.
Laitteiden sydän on ESP8266 -pohjainen WiFi -ohjain, kun taas MQTT -välittäjä toimii Raspberry pi -laitteella.
Aluksi Wifi -peiton tarjoaa WiFi -reititin, ja kaikki on kytketty langattomasti.
Laitteita on 4 tyyppiä:
- Junaohjain: 2 digitaalituloa, 1 digitaalinen lähtö, 2 PWM -lähtöä (kahden yksittäisen tasavirtamoottorin ohjaamiseen), - Anturiohjain: 7 digitaalituloa (tulokytkimille, optoantureille …), - Lähtöohjain: siinä on 8 digitaalilähtöä (kiskokytkimille …), - WiFi -kaukosäädin: 1 inkrementaalinen anturitulo, 1 digitaalitulo (junien etähallintaan).
Järjestelmä pystyy toimimaan myös solmupunaisesta (tabletista, tietokoneesta tai älypuhelimesta …).
Vaihe 2: MQTT -tietojen vaihto ja määritys

MQTT -protokollan perusteella jokainen laite tilaa ensin tietyn aiheen ja voi julkaista toisen aiheen. Tämä on junan ohjausverkon viestinnän perusta.
Tämä viestintäkertomus sijoittuu JSON -muotoisten viestien kautta, jotta se olisi lyhyt ja ihmisen luettavissa.
Tarkemmin katsottuna: Verkossa on WiFi -reititin, jolla on oma SSID (verkon nimi) ja salasana. Jokaisen laitteen on tiedettävä nämä kaksi, jotta he voivat käyttää WiFi -verkkoa. Myös MQTT -välittäjä on osa tätä verkkoa, joten kaikkien laitteiden on tiedettävä välittäjän IP -osoite MQTT -protokollan käyttämiseksi. Ja lopuksi jokaisella laitteella on oma aiheensa viestien tilaamiseen ja julkaisemiseen.
Käytännössä tietty kauko -ohjain käyttää samaa aihetta julkaistakseen viestejä, joille tietty juna on tilattu.
Vaihe 3: Junaohjain

Lelujunan hallitsemiseksi tarvitsemme periaatteessa kolme asiaa: virtalähteen, WiFi -ohjaimen ja moottoriajurin elektroniikan.
Virtalähde riippuu todellisesta käyttösuunnitelmasta: LEGO: n tapauksessa tämä on Power Functions -akkurasia, jos kyseessä on "oldschool" TT- tai H0 -asteikko, se on radan 12 V: n virtalähde.
WiFi -yhteensopiva ohjain on Wemos D1 mini (ESP8266 -pohjainen) ohjain.
Moottorin ohjauselektroniikka on TB6612 -pohjainen moduuli.
Junan ohjaimessa on 2 yksilöllisesti ohjattua PWM -lähtöä. Akuutisti yhtä käytetään moottorin ohjaukseen ja toista valon signalointiin. Sisältää 2 inpus -reed -kosketuspohjaista tunnistusta ja yhden digitaalilähdön.
Ohjain hyväksyy JSON -viestit WiFi- ja MQTT -protokollan kautta.
SPD1 ohjaa moottoria, esimerkiksi: {"SPD1": -204} -viestiä käytetään moottorin siirtämiseen taaksepäin 80%: n teholla (suurin nopeusarvo on -255).
SPD2 ohjaa "suuntaherkkää" LED -valon voimakkuutta: {"SPD2": -255} -viesti saa (taaksepäin) LED -valon loistamaan täydellä tehollaan.
OUT1 ohjaa digitaalilähdön tilaa: {"OUT1": 1} kytkee lähdön päälle.
Jos tulon tila muuttuu, ohjain lähettää sen mukaisesti viestin: {"IN1": 1}
Jos rekisterinpitäjä saa kelvollisen viestin, se suorittaa sen ja antaa palautteen välittäjälle. Palaute on todella suoritettu komento. Esimerkiksi: jos välittäjä lähettää {"SPD1": 280}, moottori toimii täydellä teholla, mutta palautesanoma on: {"SPD1": 255}
Vaihe 4: LEGO Train Control

LEGO -junan tapauksessa kaaviot ovat hieman erilaiset.
Virta tulee suoraan akkukotelosta.
ESP8266 -pohjaiselle Lolin -levylle tarvitaan 3,5 V: n mini -alasmuunnin.
Liitännät tehdään puoliksi leikatulla LEGO 8886 jatkojohdolla.
Vaihe 5: Kaukosäädin

Ohjain julkaisee vain viestit junalle (määritelty BCD -kytkimellä).
Pyörittämällä kooderia kauko-ohjain lähettää joko {"SPD1": "+"} tai {"SPD1": "-"} viestejä.
Kun juna vastaanottaa tämän "inkrementaalinen tyyppi" -viestin, se muuttaa PWM -lähtöarvoaan 51 tai -51.
Tällä tavalla kauko -ohjain voi muuttaa junan nopeutta viidessä vaiheessa (kumpaankin suuntaan).
Inkrementaalikooderin painaminen lähettää {"SPD1": 0}.
Vaihe 6: Anturiohjain

Ns. Anturiohjain mittaa tulojensa tilat, ja jos jokin niistä muuttuu, julkaisee arvon.
Esimerkki: {"IN1": 0, "IN6": 1} tässä esimerkissä 2 tuloa muutti tilaa samanaikaisesti.
Vaihe 7: Lähtöohjain

Lähtöohjaimessa on 8 digitaalilähtöä, jotka on kytketty ULN2803 -pohjaiseen moduuliin.
Se vastaanottaa viestejä tilaamansa aiheen kautta.
Esimerkiksi viesti {"OUT4": 1, "OUT7": 1} kytkee 4. ja 7. digitaalilähdön päälle.
Vaihe 8: Raspberry Pi ja WiFi -reititin
Minulla oli käytetty TP-Link WiFI -reititin, joten käytin tätä tukiasemana.
MQTT -välittäjä on Raspberry Pi, johon on asennettu Mosquitto.
Käytän tavallista Raspbian -käyttöjärjestelmää, jonka MQTT on asennettu:
sudo apt-get install mosquitto mosquitto-clientit python-mosquitto
TP-Link-reititin on määritettävä siten, että sillä on varaus Raspberrylle, joten jokaisen uudelleenkäynnistyksen jälkeen Pi: llä on sama IP-osoite ja jokainen laite voi muodostaa yhteyden siihen.
Ja siinä se!
Vaihe 9: Valmiit ohjaimet


Tässä ovat valmiit ohjaimet.
TT -asteikon loko on niin pieni, että Lolin -lautaa oli kavennettava (leikattava) niin pieneksi, että se mahtuu junaan.
Kootut binääritiedostot voidaan ladata. Turvallisuussyistä roskakorin laajennus korvattiin txt -tiedostolla.
Suositeltava:
Junan istuimen ilmaisin: 6 vaihetta

Junan istuimen ilmaisin: Tapahtuuko tämä sinulle? Junan etuosassa ihmisten on seisottava, kun taas junan viimeisessä osassa on runsaasti tuoleja vapaana. Mitä jos junan ulkopuolella olisi kyltti, joka kertoo kuinka monta paikkaa on vapaana
Thomasin junan kyky ajaa yöllä: 5 vaihetta

Thomasin junan kyky ajaa yöllä: Tämä ohje opettaa sinulle, kuinka luoda valojärjestelmä, joka varoittaa odottavia matkustajia, kun juna lähestyy, sekä kuinka saada viesti näkymään kannettavassa tietokoneessa junan ollessa asema. Ääni, kun juna ohittaa statuksen
Automaattinen junan peruutuslenkki Arduinon avulla: 10 vaihetta (kuvilla)

Automaattinen junan peruutussilmukka Arduinon avulla: Käänteisten silmukoiden tekeminen voi auttaa junan asettelussa muuttamaan junien suuntaa, mitä ei voi tehdä kääntöpöydillä. Tällä tavalla voit luoda yhden raidan asetteluja, joissa on käänteinen silmukka molemmissa päissä, jotta junat kulkevat ilman taukoa tai välilaskua
Junan ylitysmonitorijärjestelmä: 5 vaihetta (kuvilla)

Junan ylitysmonitorijärjestelmä: Tämä ohje opettaa sinulle, miten MatLabin avulla voit koodata Arduinon hallitaksesi osaa rautatiejärjestelmästä
Junan istuimen saatavuustietojärjestelmä - FGC: 8 vaihetta

Junapaikkojen saatavuustietojärjestelmä - FGC: Tämä projekti perustuu asteikolla toteutettuun junaan, jonka avulla asemalla olevat ihmiset voivat tietää, mitkä paikat ovat vapaita. Prototyypin toteuttamiseen käytetään Arduino UNO -ohjelmistoa yhdessä prosessoinnin kanssa