Ez a videó azt hivatott bemutatni, hogyan alakítottam át egy Ev3 metró műszerfalat úgy, hogy azt számítógéphez csatlakoztatva használni lehessen különböző szimulátorokhoz (itt éppen LOTUS-hoz, de hasonlóan kéne OMSI, Metrostoi, Train Simulator, Maszcyna, bármihez, ami támogatja azt, hogy adatokat szedjél ki a játékból, és azt utána továbbküld - enélkül beviteli eszközként pedig bármiben működik a dolog, akár openBVE-ben, vagy ha jól esik, Doom-hoz is).
** FIGYELEM **
Nem tudok és nem is akarok tippeket adni arra, ilyen alkatrészeket hol lehet beszerezni. Marketplace, jófogás, vatera egy példa. A BKV néha árverez el cuccokat. Buszos fronton vannak bontók, vannak magánszemélyek, akik bontanak cuccokat. A MÁV-nak is van bontója, lehet érdeklődni náluk (kulturáltan, nem kunyizva ingyen). Saját célra MP2-U2-es műszert (lásd videó) én speciel Oroszországból szereztem egy orosz apróhirdetési oldalról, de vasutas cuccok előfordulnak az ebay-en is. Tessék nézelődni.
** Felhasznált alkatrészek **
Mikrokontroller: Arduino Due
Optocsatoló: 4N25 (de ugyanígy használható EL817...stb)
BCD konverter: CD4511B
2x7 LED kijelző: DC08-11GWA
Step-down: DSN-1504-3A
MOS-FET: BS170 (n-csat)
Léptetőmotor: x27-168
Az Arduino-t vaterán vettem eredetit, de lehet kapni funkcióban azonos, kínai gyártásúakat az ebay-en, aliexpress-en, stb. A step-down-t a hestore-ban, a többit a lomex-ben, de értelemszerűen mindegyikre van más (akár kínai) alternatíva.
** Program kódok **
Sajnálom, nem fogom publikálni a kódom, programozós beidegződés.
De egyébként annyi a lényeg, hogy az Arduino-n a main loop-ban beolvasgatom a kapcsolókat, és ezek alapján (if-else-ekkel) küldök joystick button eventeket a gépre (le van nyomva, fel van engedve a gomb). A karokat szintén joystick tengelyként küldöm, ezt a játék kezeli le diszkrét pozíciókra.
A kijelzők, műszerek működtetéséhez szükséges egy plugin a játéknál. Nyilván ez játéka válogatja, a LOTUS-nál simán az adatokat egy kis átalakítás után kiküldöm soros porton az Arduino-nak, az alábbi formátumban (igen, a KOMSI-s elgondolás, kicsit tovább reszelve):
A0B0C0D0E0u000v000w000x000t000
Ahol az A-E a fények, a mögötte álló érték 0-1, fénytől függően. A többi érték (u-t) a különböző műszerek értéke, itt minden kiküldéskor az aktuális értéket küldöm ki. Az Arduino olvasgatja a byte-okat, és aszerint karekter vagy szám-e, eldönti mit kezdjen az értékkel.
Az x27-168-as léptető motorok library-je:
guy.carpenter....
** Ami kimaradt: árammérő **
A videóból kimaradt, az árammérő kapcsolása, bocsesz.
Itt arról van szó, hogy a műszer két irányban mér, mégpedig pozitív vagy negatív feszültséget (ráadásul elég kicsi értéket, 75mV/végállás). Magyarul cserélgetni kell a lábait. Én ehhez egy sima híd-kapcsolást használtam (olyasmit, mint amit motoroknál szoktak használni forgásirány változtatáshoz, vagy teljes-híd invertereknél). Négy FET-em van, a hídban van a műszer. Felváltva 2-2 FET-et vezérlek, ezáltal van egyik vagy másik irányba kötve a műszer. A jelről pedig az arduino egyik analóg kimenete (PWM) gondoskodik, előtét ellenállás segítségével (hogy az arduino due 3,3V - ÉS NEM 5V - feszültségéből 75mV-ot állítsak elő).
Mivel itt semmi erősítés vagy egyéb fekete mágia nem kell, közvetlen az Arduino vezérli a műszert. Így nem kellenek optocsatolók sem. Egyébként az akku és vonalfesz mérőt simán rá lehetne kötni az arduino-ra, egy előtét ellenállással, feltéve hogy 0-3,3V között mérnek valahol. Ha nem, akkor már kell optocsatoló és valami erősítő kapcsolás.
Bzmot332, 2022.
29 авг 2024