Talaan ng mga Nilalaman:
- Hakbang 1: Mga Prinsipyo sa Pagpapatakbo
- Hakbang 2: MQTT Data Exchange at Configuration
- Hakbang 3: Controller ng Train
- Hakbang 4: Pagkontrol sa LEGO Train
- Hakbang 5: Remote Controller
- Hakbang 6: Sensor Controller
- Hakbang 7: Controller ng Output
- Hakbang 8: Raspberry Pi at WiFi Router
- Hakbang 9: Tapos na Mga Controller
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Ang pagkakaroon ng isang lumang sistema ng modelo ng modelo ng TT scale, nagkaroon ako ng ideya kung paano makontrol ang mga locos nang paisa-isa.
Sa pag-iisip na ito, nagpunta ako sa isang hakbang pa at nalaman kung ano ang kinakailangan upang hindi lamang makontrol ang mga tren ngunit magkaroon ng ilang karagdagang impormasyon tungkol sa buong layout at makontrol ang iba pa (mga lampara, switch ng riles…)
Ganito ipinanganak ang sistemang modelo ng tren na kinokontrol ng WiFi.
Hakbang 1: Mga Prinsipyo sa Pagpapatakbo
Ang pangunahing prinsipyo ay upang makontrol ang bawat elemento nang paisa-isa, alinman mula sa isang solong tagakontrol, o mula sa maraming mga mapagkukunan ng kontrol. Ito ay likas na nangangailangan ng isang karaniwang pisikal na layer - pinaka-halatang WiFi - at isang pangkaraniwang protocol ng komunikasyon, MQTT.
Ang gitnang elemento ay ang MQTT Broker. Ang bawat konektadong aparato (tren, sensor, output…) ay pinapayagan lamang na makipag-usap sa pamamagitan ng Broker at makakatanggap lamang ng data mula sa Broker.
Ang puso ng mga aparato ay isang ESP8266 based WiFi controller, habang ang MQTT broker ay tumatakbo sa isang Raspberry pi.
Sa una ang saklaw ng Wifi ay ibinibigay ng isang router ng WiFi, at lahat ay nai-hook up sa pamamagitan ng wireless.
Mayroong 4 na uri ng mga aparato:
- Train controller: mayroong 2 digital input, 1 digital output, 2 PWM output (para sa pagkontrol ng 2 indibidwal na DC motor), - Sensor controller: mayroong 7 digital input (para sa mga switch ng input, optosensor…), - Controller ng output: mayroong 8 digital output (para sa mga switch ng riles …), - WiFi remote: mayroong 1 incremental encoder input, 1 digital input (upang makontrol ang mga tren nang malayuan).
May kakayahan din ang system na gumana mula sa Node-Red (mula sa tablet, PC, o smartphone…).
Hakbang 2: MQTT Data Exchange at Configuration
Batay sa MQTT protocol, sa una ang bawat aparato ay nag-subscribe sa isang naibigay na paksa, at maaaring mai-publish sa ibang paksa. Ito ang batayan ng komunikasyon ng network ng kontrol ng tren.
Ang kwentong ito ng komunikasyon ay inilalagay sa pamamagitan ng mga naka-format na mensahe na JSON, upang maging maikli at mabasa ng tao.
Naghahanap mula sa isang mas malayong pananaw: Ang network ay may isang WiFi router na may sariling SSID (pangalan ng network) at isang password. Dapat malaman ng bawat aparato ang 2 na ito upang ma-access ang WiFi network. Ang MQTT broker ay bahagi rin ng network na ito, kaya upang magamit ang MQTT protocol dapat malaman ng bawat aparato ang IP address ng broker. At panghuli ang bawat aparato ay may sariling paksa para sa pag-subscribe at sa pag-publish ng mga mensahe.
Sa praktikal, ang isang naibigay na remote control ay gumagamit ng parehong paksa upang mag-publish ng mga mensahe kung saan naka-subscribe ang isang naibigay na tren.
Hakbang 3: Controller ng Train
Upang makontrol ang isang laruang tren, karaniwang kailangan namin ng 3 bagay: isang supply ng kuryente, isang naka-kontrol na WiFi na kontrol, at mga elektronikong driver ng motor.
Ang suplay ng kuryente ay nakasalalay sa aktwal na plano ng paggamit: sa kaso ng LEGO, ito ang kahon ng baterya ng Power Function, sa kaso ng isang "oldschool" TT o H0 scale na hanay ng tren, ito ang 12V power supply ng track.
Ang controller na pinagana ng WiFi ay isang Wemos D1 mini (batay sa ESP8266).
Ang electronics ng driver ng motor ay isang module na batay sa TB6612.
Ang trainer ng tren ay may 2 indibidwal na kinokontrol na mga output ng PWM. Tunay na ginagamit ang isa para sa motor control at ang isa ay ginagamit para sa light signaling. Mayroong 2 inpus para sa reed contact based sensing at isang digital output.
Tumatanggap ang controller ng mga mensahe ng JSON sa pamamagitan ng WiFi at MQTT na protokol.
Kinokontrol ng SPD1 ang motor, halimbawa: Ginamit ang mensahe na "" SPD1 ": -204} upang ilipat ang motor pabalik sa 80% na lakas (ang maximum na halaga ng bilis ay -255).
Kinokontrol ng SPD2 ang tindi ng "direksyon na sensitibo" sa ilaw ng LED: Ang mensahe na "" SPD2 ": -255} ay lumiwanag (paatras) na LED sa buong lakas nito.
Kinokontrol ng OUT1 ang estado ng digital na output: binuksan ng {"OUT1": 1} ang output.
Kung nagbago ang estado ng isang pag-input, nagpapadala ang controller ng isang mensahe alinsunod dito: {"IN1": 1}
Kung ang Controller ay makakatanggap ng isang wastong mensahe, execue ito at nagbibigay ng isang puna sa broker. Ang feedback ay ang talagang naipatupad na utos. Halimbawa: kung ang broker ay nagpapadala ng "" SPD1 ": 280} kung gayon ang motor ay umaandar nang buong lakas ngunit ang mensahe ng feedback ay: {" SPD1 ": 255}
Hakbang 4: Pagkontrol sa LEGO Train
Sa kaso ng tren ng LEGO, ang mga eskematiko ay medyo kakaiba.
Ang kapangyarihan ay direktang nagmula sa kahon ng baterya.
Mayroong pangangailangan para sa isang mini step down converter upang magbigay ng 3.5V para sa nakabatay sa Lolin board na ESP8266.
Ang mga koneksyon ay ginawa gamit ang isang LEGO 8886 extention wire, gupitin sa kalahati.
Hakbang 5: Remote Controller
Nag-publish lamang ang controller ng mga mensahe sa tren (tinukoy ng switch ng BCD).
Sa pamamagitan ng pag-ikot ng encoder, ang remote ay nagpapadala ng alinman sa mga mensahe na "" SPD1 ":" + "} o {" SPD1 ":" - "}.
Kapag natanggap ng tren ang mensaheng "incremental type" na ito, binabago nito ang halaga ng output ng PWM ng 51 o -51.
Sa ganitong paraan maaaring mabago ng remote ang bilis ng tren sa 5 mga hakbang (bawat direksyon).
Ang pagpindot sa incremental encoder ay magpapadala sa {"SPD1": 0}.
Hakbang 6: Sensor Controller
Sinusukat ng tinatawag na sensor controller ang mga estado ng mga input nito, at kung ang anuman sa mga ito ay nagbabago, inilalathala ang halagang iyon.
Halimbawa: {"IN1": 0, "IN6": 1} sa halimbawang ito 2 input ang nagbago ng estado nang sabay.
Hakbang 7: Controller ng Output
Ang output controller ay may 8 digital outputs, na konektado sa isang ULN2803 based module.
Nakatanggap ito ng mga mensahe sa pamamagitan ng paksang naka-subscribe.
Halimbawa ang mensahe ng {"OUT4": 1, "OUT7": 1} ay buksan ang 4. at ang 7. digital output.
Hakbang 8: Raspberry Pi at WiFi Router
Mayroon akong ginamit na TP-Link WiFI router, kaya ginamit ko ito bilang isang Access Point.
Ang MQTT broker ay isang Raspberry Pi na may naka-install na Mosquitto.
Ginagamit ko ang karaniwang Raspbian OS na may MQTT na intalled sa:
sudo apt-get install mosquitto mosquitto-kliyente python-mosquitto
Ang TP-Link router ay dapat na naka-configure upang magkaroon ng isang reserba ng address para sa Raspberry, kaya pagkatapos ng bawat pag-restart ang Pi ay may parehong IP address at ang bawat aparato ay maaaring kumonekta dito.
At yun lang!
Hakbang 9: Tapos na Mga Controller
Narito ang natapos na mga Controller.
Ang sukat ng sukat ng TT ay may maliit na sukat na ang isang Lolin board ay dapat na makitid (gupitin) upang maging maliit na sapat upang magkasya sa tren.
Maaaring ma-download ang naipong mga binary. Para sa mga kadahilanang panseguridad, ang pagpapalawak ng bin ay pinalitan sa txt.