Számítógépvezérelt szervó – az indulás

Amikor a digitális vasútmodellezés felé vettem az irányt – fejben -, tele voltam tervekkel, mely szerint mindent a digitális rendszerre kötök. Kiderült, hogy mindent rá is lehet kötni, átviszi a jelet, kellő tápellátással minden elfér rajta, de a kezelési megoldások nem tetszenek nekem. Maga a DCC átviszi a váltóállító (és fényjelző) jelét, de a távirányítóval nehézkes egyszerre több váltót állítani. Számítógépet pedig nem akartam oda tenni. De a végén mégis lett (lesz) 3db számítógép a terepasztalon.

 

Régen 16V volt

A régi szép időkben még 16V váltóárammal rángattuk az elektromágneseket, amik váltókat állítottak. De 2018-ban illik szervóval mozgatni a kitérőket. Egy csomó videót megnéztem róla és nem tűnt bonyolultnak: egy 0.6-1.0mm-es rudazattal bármely távolságban (akár az asztal alján) is elhelyezhető az a pici szervó motor, ami a váltót állítja és helyén is tartja. Csináltam egy próbát egy 18mm-es bútorlappal, hiszen az asztalom is ilyen.

Apró fadarabok állították be a távolságot

 

A rudazat bebújik az asztal alá

Még külön tetszik is, hogy a rudazat asztal feletti része is látszik. Piros-fehérre festve látszik, ahogy mozdul a működtető rúd. Akár a másik sín alatt is át lehet vezetni a rudazatot. A fantázia vége a csillagos ég.

 

De mi fogja ezt vezérelni?

Vannak kész megoldások arra, hogy a DCC digitális jelet servo jellé varázsoljuk és még a szív-polarizálást is megoldja helyettünk. Pl. Digitools Digiservo 4. De ezt nehézkes vezérelni úgy, ahogy én szeretném: játékmódban, azaz ne legyen teljesen automatikus (mint a Miniversumban); de mégis legyen benne önálló logika. Például lehessen vágányutat állítani, amely egyszerre 2-5 váltót a megfelelő irányba állít.

De hát foglalkoztam és elektronikával is! Arduino és RaspberryPI a barátaim. A megoldás (eddig még csak béta terv) az lesz, hogy az RPi webszerverként kap parancsokat a főnöktől és I2C bus rendszeren szervókat állít (váltók) és reléket kapcsol (polarizálás). Ehhez 16 csatornás PWM vezérlőt szereztem be és szintén I2C-n működő relé panelt. Ezeket Raspberry PI-vel szépen tudtam vezérelni:

  • Váltónként beállítható a két végállás (mettől meddig megy) egy 4096 léptékű skálán. Kicsi értékek között mozog, kb. 340-470-ig teszi meg azt az 5mm-t, amennyit mozognia kell.
  • Váltónként állítható az átváltás sebessége és lépésszáma. Ez azt jelenti, hogy mennyi idő alatt vált át a váltó és közben hány alkalommal kap parancsot: tapasztalat alapján a 350-500ms kellően gyors és látványos is, ehhez pedig 8-10 lépés az ideális. Kevesebb lépés esetén ugrál (látszanak a lépések), sok lépés esetén pedig sok idő telik el a parancsok küldözgetésével és a 350ms-ból lesz 1mp.
  • Ha a váltóhoz kell polarizálás, akkor egy relét is megcímzünk, amely a szervó működtetésének végén be/kikapcsol.

 

Raspberry PI vezérli a 16 csatornás PWM modult I2C bus-on. A PWM modul a szervókat mozgatja és tartja a helyén

 

 

 

 

 

 

 

 

 

Amikor túl lassú a szervó paraméterezése. Szépnek szép (még késleltetés is van benne), de ha 5 váltót kell állítani egymás után, akkor az ne tartson 8mp-ig!

 

 

 

 

 

 

 

 

 

És ilyen, amikor a szélsőértékek rosszul vannak beállítva. Kicsit szélesebbre kell venni a mozgását! Még jó hogy ezt szoftveresen lehet megtenni…