Néhány évvel ezelőtt elgondolkoztam azon, hogy szoftverből hogyan lehetne a legegyszerűbben vezérelni egy vagy több erősáramú eszközt (vagy bármit, ami egy szimpla kapcsolóval ki/bekapcsolható). Tudtam, hogy léteznek készen kapható relé modulok, amiket adott hardverhez illesztve (pl. Raspberry Pi, Arduino stb.) és megfelelően felprogramozva tökéletes rendszert állíthatok össze, de nem volt kedvem sem az adott hardver, sem az ahhoz tartozó szoftver lelkivilágában ilyen szinten elmélyedni. Hardvertől és szoftvertől független megoldást akartam, amire könnyen lehet építkezni... akár szó szerint is.
Ötlet
Áramkörök ki/bekapcsolását gyakorlatilag bármilyen relével el lehet végezni. A kérdés csak az, hogy ezt a relét, hogyan tudnám szoftveresen vezérelni úgy, hogy azért érintésvédelmileg se legyen kifogásolható a megvalósítás? Kézenfekvő megoldás az optikai illesztés. Ha a forrás világít, akkor a relé behúz, ha nem világít, akkor elenged. És persze az sem árt, ha ebből egyszerre több is üzemel párhuzamosan, egymástól függetlenül. Világítást pedig gyakorlatilag bármilyen szoftveres rendszerrel elő tudok idézni egy képernyő adott területének színezésével. A képernyőre cuppantott optocsatoló „látja” a képernyő adott területét, a relé pedig a képterület fényerejének függvényében behúz vagy elenged.
Ha az optocsatolók egy négyzetrács rubrikáiban helyezkednek el, a képernyőn pedig pontosan e négyzetrácsnak megfelelő méretű területeket színezek ki fehérre vagy feketére, úgy az optocsatolókon keresztül – közvetve – szoftveresen kapcsolgathatom a reléket. Az pedig tökéletesen mindegy, milyen szoftverrel állítom elő a fényérzékelők alatti „sakktáblát”.
Felmerülhet persze a kérdés, hogy mi történik akkor, ha az érzékelők alatt véletlenül elcsúszik a sakktábla? Káosz. Ezért meg kell tudni valósítani azt, hogy az érzékelő tömb csak akkor legyen hajlandó a fénymintának megfelelően átállítani a reléket, amikor az tökéletesen illeszkedik a fénymintára. Ezt további fényérzékelőkkel és további négyzetrácsok megfelelő szabály (pl. minta) szerinti bevilágításával lehetne összehangolni, azaz a rendelkezésünkre álló területen néhány rubrika érdemi adat hordozása helyett kizárólag a megfelelő pozicionálásért, pontosabban annak ellenőrzéséért fog felelni.
Igen ám, de ha az érzékelő tömb alatt elcsúszik, ezáltal érvénytelenné válik a fényminta, mi módon kell kapcsolgatni a reléket? A relék vezérlését egy állapottartással is ki kell tudni egészíteni, aminek feladata az, hogy ha a pozicionálásért felelős minta érvénytelenné válik, úgy a relék aktuális állapota ne változzon.
Megvalósítás
A célom az volt, hogy a megoldás könnyen testre szabható legyen, lehetőleg minimális ráfordítással, de azért felkeltse az érdeklődő alkotási vágyát. Hardveresen az egyik legnépszerűbb építőkészletet szemeltem ki kompatibilitásom alapjául, a Legót. Több 1×1-es építőelemben elhelyezett optikai érzékelő már viszonylag kis alapterületen lehetővé teheti több áramkör egyidejű kapcsolását.
Természetesen a relék vezérlő elektronikája, illetve maguk a relék ennél nagyobb helyet foglalnak majd el, de elképzelésem szerint egy 8 áramkört működtetni képes blokkot egy 4×6-os, azaz kb. 32×48 mm-es alapterületű építőelem biztonságosan kiszolgálhat úgy, hogy 8 db egységnyi optikai érzékelő figyeli az érdemi adatot, az őket körülvevő 16 db érzékelő pedig figyeli a pozicionáló mintát.
Mivel a Legó elemek méretei közismertek, a vezérlő minta méretezéséhez csak némi matematikára van szükség, amit ráadásul egy okostelefon képernyőjén felbontástól és képernyőmérettől függetlenül, mérethelyesen is meg tudunk jeleníteni.
Sőt, nagyobb képernyőn akár több minta, így több vezérlő blokk is elhelyezhető, így még több áramkört vezérelhetünk egyszerre.
Az pedig gyakorlatilag már részletkérdés, hogy ezeket a mintákat milyen eszközzel (mobiltelefon, kijelzővel felszerelt Raspberry/Banana/Orange Pi, CRT/LCD/plazma monitoros PC stb.) és milyen technológiával állítjuk elő (pl. valósidejű OpenGL animációval, vagy előre rögzített képek váltogatásával), illetve milyen adatok alapján (pl. az eszközön futó webes felületet nyújtó alkalmazást hálózatról vezérelve, vagy a telefonra küldött SMS-ekkel, esetleg egy egyszerű időzítéssel), már csak a fantáziánkon és az igyekezetünkön múlik.
Felhasználási lehetőségek
Eredetileg világítás, fűtés, kerti öntözőrendszer távoli vezérlésére, egy amolyan kezdetleges „okosotthon” projekt részeként szerettem volna mindezt megvalósítani. De természetesen felmerült bennem az is, hogy egy Lego vagy Lego Technic alapú robot/kisautó építésével, amit okostelefonos aggyal (látással, hallással stb.) látunk el, milyen rajongásra tehetünk szert a család vagy baráti kör gyermek (lelkű) tagjai körében.
Időm és elektronikai ismereteim hiányában az ötlet ötlet maradt. De ha Te látsz benne fantáziát és érdemesnek látod megépíteni, megtisztelsz vele, ha írsz nekem róla. Ha építeni nincs kedved, de volna ötleted, hogyan lehetne ezt továbbfejleszteni, bátran ragadj billentyűzetet, a fórum topic nyitva áll. Ha pedig csak a reggeli kávéd elszürcsölése közben futottad át a cikket, úgy köszönöm, hogy velem kezdted a napodat.
Ja, ha esetleg megépítenéd és majdan milliomos leszel belőle, kérlek, gondolj rám.