Egy lehetséges megoldás arra, hogy 9 V-os, fém sínes vonatot egy RCX kocka segítségével vezérelhessünk, a következő:

Szükség van egy RCX vezérlőre, 2 db fény szenzorra és a sínekhez tartozó tápkábelre. Azért a két fény szenzor, mert egy optikai kapu fogja érzékelni a vonat áthaladását, ez lesz az a jel, amire a vezérlő megállítja a vonatot, így érzékeli, hogy a pálya egy adott pontján a szerelvény áthaladt. Lehet akár egy LED is az érzékelőként az RCX kockára kötött szenzor fényforrása, akár egy Laser dioda is, kinek mi van kéznél én a második fényszenzort csak mint féynforrást használtam. Ha erős nappali fényben szeretnénk megbízható érzékelést, akkor egy erős, fókuszált fényű LED dioda vagy egy Laser pointerből kiszerelt fényforrás az igazi megoldás. A vonat a kerekeivel megszakítja a fény útját, ekkor az érzékelő szenzor fény értéke egy szint alá csökken és ez alkalmas a vonat megállítására.



Az általam alkalmazott kód logikája a következő:

A kód első zöld kockája beállítja a "B" kimenet teljesítményét 6-os szintre (1-8 a tartomány), második kocka (utasítás) meghatározza a kimenet polaritását, ezáltal a vonat előre haladása lesz definiálva, a harmadik kocka elindítja a szerelvényt, ezt követő program szakasz egy ismétlő hurokba van csomagolva.



Az első piros utasítás vár arra a pillanatra, amikor a vonat első kereke megszakítja a fénykaput, a fény értéke 50 % alá csökken:




Ebben a pillanatban a párhuzamos szenzor blokknál ugyanezen feltétel teljesülésével a vezérlő egyik beépített függvényének, az 1-es időzítőnek az értéke nullára lesz állítva:




Ez a nullázás addíg ismétlődik, amíg a kerék az optikai kaput szakítja, amikor túlhaladt, az időmérő kezdi számolni az eltelt időt, amely nem fog 0,7 másodpercnél tovább menni, mivel egy újabb, majd még újabb kerék szakítja meg az optikai kaput. Ez az idő annak függvényében állítandó, hogy milyen motor teljesítményt állítottunk be a program első lépésében, minél nagyobb a vonat sebessége, ez az érték annál kisebbre vehető.




Amikor az utolsó kerék is áthaladt, a számláló nem lesz nullázva többször, ezért ha a várakozásban beállított 0,7 mp-nél magasabb értékre ér, a várakozáson a kód tovább lép, ekkor az "Aus B" leállítja a vonatot. Célszerű fékezve leállítani, ez az opció a zöld utasítás-kocka "megnyitásával" állítható át, ekkor a szerelvény szinte azonnal megáll az állomásra érve (a lendülete miatt azért nem fog megtorpanni).

Következik 4 másodperc megálló idő az állomáson, majd egy vonat sípszó, azután a vonat elindul, az ismétlő hurok visszalép arra a pontra, ahol várakozik, hogy az optokapu áthaladást érzékeljen, ekkor a logikai sor indul újra.

Ez egy lehetőség e feladat megvalósítására, és még bővíthető akár kézi indításúra is egy érintés szenzor beiktatásával, de erre a célra egy forgás szenzor is alkalmas lehet, illetve a vasúti átkelőben a fennmaradó RCX vezérlő kimenetek ( itt "A" és "C") segítségével akár sorompó, akár fénysorompó is működésbe hozható.

Akit érdekel, a fenti egyszerű kód, ide kattintva letölthető a Google Drive mappámból!