Kiemelkedően jól sikerült robotok


Nyájas olvasóim, követőim! Ezennel bejelentem, hogy megszületett a 80-ik robotom. Hűen a hagyományokhoz, ez a készülék is látványos és játékos módon kötődik a sorszámához, jelen esetben a 80-as számhoz.

Az alapötletet az "Itt a piros, hol a piros" játék ihlette. Mivel azonban törekedtem a minél egyszerűbb, de ugyanakkor látványos megvalósításra, de főleg az eredeti játék alapját képező csalás mellőzésére, némileg átalakítva, mondhatni robotosítva valósítottam meg.

Hogy hogyan? Remélem, hogy ez a jobb oldali leírásból és a szemléltető videóból kiderül.

Egy függőleges tengelyű tárcsa nyúlványaira 120 fokonként 3 db korongot lehet felhelyezni úgy, hogy az egyik alá egy 80-as számjegyet tartalmazó kis fa zsetont teszünk. A tárcsát egy léptetőmotor forgatja. Egy forgási fázisban az elfordulás irányát és azt, hogy hányszor 120 fokos legyen, a program véletlen szerűen választja meg. A fázisok addig követik egymást, ameddig a jobb oldali érintő (touch) szenzort megérintve tartjuk. Ha elengedjük, akkor az utolsó, megkezdett fázist még befejezi, így valóban csak a véletlenen múlik, hogy milyen pozícióban áll le a tárcsa. A közepén lévő kupak néhány szerkezeti csavart takar el, így azok helyzetéből sem lehet következtetni, hogy melyik korong alatt van a 80-as zseton.

Egy billenthető megfogó (gripper) feladata az éppen alatta álló korong felemelése és visszahelyezése. A korong emelése során győződhetünk meg arról, hogy ott van-e vagy sem a 80-as zseton. (A gripper nyitását/zárását és billentését szervomotorok végzik, a korongok palástjára ragasztott filc a jobb tapadást szolgálja megfogáskor.)

A lényeg: a tárcsa kialakítása és speciális működtetése miatt nem lehet előre kikövetkeztetni, hogy az a korong áll-e meg a gripper alatt, amely a 80-as zsetont takarja. Erről csak a korong felemelése révén győződhetünk meg. Ha ott a zseton, akkor "nyertünk", ha nem, akkor a touch szenzort ismét megérintve és egy "tovább" hangparancsra folytatódik a keresés. Mindezt addig ismételjük, amíg megtaláljuk a zsetont.

A szemléltető videó elején a főbb egységek láthatók statikus állapotban, ezt követően a már megszokott "Gabi bácsi" hangparancsra először egy "bemutató" indul, mely során a gripper a korongokat egyesével felemeli, így győződhetünk meg arról, hogy nincs csalás-ámítás, valóban csak egy korong alatt van a 80-as zseton. Azután indul élesben a forgatás-keresés, egészen a végcélig...


1838. január 6-án mutatta be először Samuel Morse az elektromos távírókészülékét. Az azóta világszerte megismert morze-kódrendszert számos területen használják ma is.

A morzekód olyan kommunikációs kód, mely latin betűs írott szöveg (számjegyek és írásjelek is) átvitelét teszi lehetővé pontokból és vonásokból álló jelcsoportok formájában.

Ez a bő 180 éves találmány ihlette a videóban és a mellékelt leírásban bemutatott legújabb készülékem megalkotását.

Előre bocsájtom, hogy a készülék csak a 26 betűből álló angol ABC kódolására/dekódolására szorítkozik, számjegyekkel és írásjelekkel nem foglalkoztam.

A készülék mechanikai felépítése nagyon egyszerű, a főszerep most az elektronikának illetve a programozásnak jutott.

A tartósín jobb végénél - nevezzük adó oldalnak - egymás mellett két érintő szenzor található. A bal oldali tölti be a hagyományos morze billentyű szerepét, vagyis ennek megérintésével lehet rövid vagy hosszú jeleket generálni. A jobb oldali szenzor megérintése egy-egy karaktert reprezentáló jelsorozatot zár le és azt egy pufferbe tölti. Ha mindkét szenzort egyszerre érintjük meg, akkor a bal, azaz a vevő oldalon elhelyezett forgó tárcsán a megfelelő karakterek fordulnak a kis négyszög ablak alá, így dekódolva a pufferből kiolvasott jelsorozatokat.

Az adó és a vevő közötti kommunikációs csatornát (mely a valóságban távíró vezeték vagy rádióhullám) a középen elhelyezett optikai csatolás reprezentálja. A jelek itt fény impulzusok formájában továbbítódnak a LED-es fényforrástól a fényérzékelő szenzorig. A környezet zavaró fényhatásaitól ezen eszközöket árnyékolni kellett.

Néhány szó a kódolásról/dekódolásról. A program a rövid impulzusokat 1-es, a hosszúakat 2-es számjeggyé konvertálja, és mivel a morze ABC szerint 4 a maximális jelsorozat hossza (pl. Y = _ . _ _), praktikus okokból ennél kevesebb jel esetén a hiányzókat 0-kal pótolja. Kódolás után pl. az E karakter így néz ki: 1000. Ezek a négyes jelcsoportok rövid időre megjelennek az árnyékolóra szerelt kijelzőn is.

Egy belső lista mind a 26 db jelcsoporthoz tartozó betű tárcsán elfoglalt pozícióját tartalmazza. A kiinduló helyzet az 1-es pozíció, azaz az A (1200), a 26-os pedig a Z (2211). Dekódoláskor a program megkeresi a listában a pufferből érkező jelcsoport pozícióját, és ennek megfelelően fordítja el a tárcsát egy léptető motor.

Bízom benne, hogy a fentieket könnyen érthetővé teszi a videó, mely példaként a MORZE szó kódolását illetve dekódolását szemlélteti. A végén csak a forgó tárcsás dekódolást külön is megmutatom.

A Libegő átalakítása révén született meg ez a robot. A szalagot vízszintes síkba forgattam, a kis átforduló ülőkét lecseréltem négy fixen rögzített függesztékre, melyek rendre 1-től 4-ig számozottak és fekete-fehér kódolással is elláttam őket.

Főként az elektronikája esett át nagyobb átalakításon, több áramkörből áll, a kódok kiolvasását ill. dekódolását a korábban már ismertetett érzékelő végzi. (Ld. például a Dekóder-nél!)

És természetesen a programja is bonyolultabb, mint a Libegőé.


Egy ciklus - melynek az elején mindig az 1-es függeszték van az érzékelőnél - hangvezérlésre indul. Először a kijelzőn látható 9999 karakterek 0000-ra váltanak, majd infra távirányítóval a kívánt sorrendben egyenként kerül betáplálásra a függesztékek sorszáma. A kijelzőn az adatbevitel után megjelenik ez a négy szám, a bal szélső sorrendben az elsőt, a jobb szélső pedig az utolsót jelenti. Ezt követően elindul a konvejor szalag, és az érzékelőnél megállítja a soron következő függesztéket. Ha annak sorszáma megegyezik a betáplálttal, a kijelzőről ez a szám eltűnik és csak a még hátralévők látszanak. A folyamat akkor ér véget, ha a kijelző 0-ákat mutat.

A videó két ciklust mutat be. Különösen a második érdekes, egyrészt azért, mert az az 1-es függesztékkel indul, vagyis az első fázisban nincs mozgás, másrészt a következő függeszték a 4-es. Hogy ne kelljen a szalagnak 3 egységnyit növekvő irányban (jobbra) mozognia, ellenkező irányban egy lépéssel mozgatja be a 4-est.

Nos, hosszú vajúdás után megszültem a legújabb robotjaimat. Olybá tűnik, hogy ezzel sikerült még magasabbra jutnom a Himaláján, a K2-t már elértem, de a Mount Everest még hátra van...

A szerkezetet találóan „Csereberélő”-nek neveztem el. Lényege, hogy alaphelyzetben az 1-től 3-ig számozott pozíciókban ugyancsak 1-től 3-ig számozott bábuk (kupakok) vannak. Alaphelyzetben a mozgatófej egy számozatlan segédpozícióban (parkoló pályán) áll, mely a további működéshez is nélkülözhetetlen.

A ciklus hangjelzésre (mondjuk tapsra) indul, ezt a négy karakteres kijelzőn megjelenő 0-ák nyugtázzák. Először egy véletlen szám generátor kiválaszt két számot a háromból, melyek a felcserélendő bábuk sorszámát jelzik (a két szám azonossága kizárva). Ez a két szám a kijelző első és utolsó pozíciójában jelenik meg, a két középső karakter a helyben maradó kupak számát jelzi (a szimmetria kedvéért duplán). Pl. a „3221” azt jelenti, hogy a 3-as és az 1-es bábuknak kell helyet cserélnie, a 2-es marad a saját pozícióján.

A mozgatófej ezt követően először elmegy (elfordul) az első cserélendő bábuig, azt megfogva elviszi a parkoló pályáig, ahol leteszi. Majd elmegy a második cserélendő bábuért és azt elviszi és leteszi az első helyére. Végül a fej elmegy a parkoló pályáig, és az ott lévő bábut elviszi és leteszi a második megüresedett helyére. A ciklus végén a fej üresen parkoló pályára áll.

Azóta továbbfejlesztettem a robotot (Csereberélő 2.0), a működése kiegészült egy második fázissal, mely során visszaállítja a kiindulási állapotot, azaz a felcserélt kupakokat visszahelyezi az eredeti pozíciójukba. A Csereberélő 2.0 eddigi munkáim csúcsa, ebben összegződik amit eddig tapasztaltam és összeállítottam ebben a műfajban. Az első fázis a már ismert módon tapsa indul és jelen esetben az 1. -es és a 2 -es kupakot cseréli fel.

A fejet fogasszíj áttételen keresztül egy olyan motor mozgatja, melynek végállását bizonyos számú fordulat megtétele után egy optoelektronikai szenzor biztosítja (Optical Encoder Motor). A pillanatnyi pozíciókat pedig egy bütyköstárcsa-mikrokapcsoló kombó érzékeli (számolja). A két eszköz korlátos pontossága miatt késleltetéseket kellett közbeiktatnom, mert ha véletlenül a mozgatófej túlfut, akkor végzetes károsodás (pl. mozgó vezeték csatlakozójának túlfeszítése) léphet fel.

Betartottam az ígéretemet, elkészült a mindhárom bábut négy lépésben (2-3-1 vagy 3-1-2 sorrendre) felcserélő változat is, a Csereberélő 3.0 is.