Kissé szokatlan megoldást választottam: vízszintes síkban mozgó, és két olyan részből álló robotkart építettem, melyek egymáshoz képest is el tudnak fordulni. A végén pedig egy kettős csukló van, mely az egyik irányban egy villát, a másik irányban pedig egy horgot billent le-fel, így különböző idomokat képes mozgatni.
A kar központi tagját meghatározott szögtartományon belül egy, az állványhoz erősített encoder motor forgatja szíjhajtáson keresztül. A második tag pedig egy csukló szerepét betöltő szervomotorral kapcsolódik az elsőhöz, így ahhoz képest - szintén adott szögtartományon belül - el tud fordulni.
A második tag végéhez erősített kettős csuklót egymásra merőleges síkokban két, egymástól független mikró szervomotor billenti. Az egyik irányban egy villa-szerű kialakítás, a másik irányban egy horog arra alkalmas idomokat tud felemelni illetve lerakni a kar különböző szöghelyzeteiben.
A szemlétető videóban a horog egy I idomot, a villa pedig egy T idomot mozgat. Az I idom esetében a kar mindkét tagja együtt mozog, azaz a kar itt "merev rúdként" viselkedik, a T idom esetében viszont mindkét tagja külön-külön elfordul.
A videóban a már megszokott módon először a robot szerkezeti felépítését láthatjuk, ezt követi a két idom mozgatását szemléltető rész.
Marad a gyerek, ha játszik... Egy régóta meglévő Ferrari FXX modell autó felhasználásával építettem ezt az egyszerű szerkezetet, mely a garázsból történő kiállást, illetve az oda történő beállást szimulálja.
A készülék fő részei:
Egy előre-hátra mozgó, és elfordulni képes platform, melyre a Ferrari rögzíthető. A kétféle mozgatást két léptetőmotor végzi.
a "belső"világítással is bíró garázs, melynek billenő ajtaja stílszerűen távirányítóval működtethető. A billentést egy szervomotor végzi.
A távirányító indító jelére kinyílik a garázsajtó, kijön a Ferrari, az ajtó lecsukódik és kialszik a világítás. Majd a kocsi megfordul és várja, hogy a távirányító újabb parancsára behajthasson a garázsba. Ezután bent megfordul, és várja az újabb ciklust.
A videóban a készülék bemutatása után egy ciklus látható, melyet rögzített kamerával és a jobb láthatóság érdekében mozgó kamerával is felvettem.
Végy egy ötszintes polcot és 4 db gyufás skatulyát. A dobozokat számozd be 1-től 4-ig, az egyik oldalukat a számozásnak megfelelően lásd el fekete-fehér kódokkal. Építs a polccal közös alapra egy magasraktári felrakó gépet szimuláló robotot. A robothoz írj egy olyan programot, mely a polcokra tetszőleges sorrendben elhelyezett gyufás skatulyákat úgy rendezi, hogy azok végül a számozásuknak megfelelő polcra kerüljenek.
Viszonylag hosszú vajúdás után így született meg a Magasraktár-nak elkeresztelt legújabb robotom. A mechanikáját a szükséges precizítás miatt többször módosítanom kellett, de a programozás is komoly kihívást jelentett.
A készülék 4 fő részegységből áll: az ötszintes polcból, a függőlegesen mozgó szánból, az ahhoz rögzített fekete-fehér, már többször használt szenzorból és a vízszintesen mozgó kiemelő- és szállító fejből. A függőleges szánt léptető motor, a kiemelő fejet szervomotor, a kiemelő fej leszorító karját pedig mikró szervomotor mozgatja.
Az ötszintes polc legalsó szintje átmeneti (puffer) tároló, melyre a négy darab gyufásdoboz sorba rendezése során van szükség. A másik négy polc számozása alulról indul, tehát egy ciklus végén a dobozok helyes sorrendje alulról felfelé: 1, 2, 3, 4.
Egy-egy ciklus indítása előtt a dobozokat kézzel, tetszőleges sorrendben helyezem a polcokra. Ebből következően lehet olyan kiinduló helyzet, hogy egy doboz sincs a helyén, de előfordulhat, hogy egy vagy két doboz igen.
A működtető program alapját képező algoritmus logikája a következő. Először alulról indulva a fekete-fehér kódok révén meghatározza a dobozok kiinduló sorrendjét, majd véletlenszerűen kiválaszt egyet és azt a pufferbe helyezi. Az esetlegesen eleve helyén lévő doboz(oka)t természetesen ilyenkor figyelmen kívül hagyja. Aztán megkeresi és beteszi a pufferbe került doboz megüresedett helyére passzoló dobozt, majd ennek eredeti helyére keresi és teszi be a megfelelőt. Ha a puffer kiürült, akkor oda újabbat választ, és így tovább...
A két halmaz (dobozok és polcok) közül fizikailag csak a dobozok számozása követhető a fekete-fehér kódok révén, a polcok számozását szoftveresen kellett nyomon követni. Ez a kettősség jelentette a programozás nehézségét.
A videóban példaként három ciklust mutatok be. Az elsőben induláskor egy doboz sincs a helyén, a másodikban egy, a harmadikban pedig kettő eleve a helyén van. Az első ciklus eredeti sebességgel, a másik kettő pedig 50%-al felgyorsítva látható.
Újabb kerek számhoz érkeztem: elkészült "A hetvenedik".
A jeles alkalomra egy egyszerű készüléket építettem, most inkább a látványosságra törekedtem.
A kerek számot, azaz a 70-et római szám, azaz az LXX jeleníti meg, melynek karaktereit egy-egy motor forgatja be 90 fokkal: az "L"-et egy léptetőmotor, az "X"-eket pedig encoder motorok.
Ahogy a videóban is látható, a számkijelző az eddigi repertoárom 50. ill. 60. sorszámáig tízesével számol és jelenik meg az LX római szám, majd a mostani készülék "sorszámáig", azaz 70-ig egyesével. Ezt követően már a teljes LXX római szám látható, melyet különböző színű fényekkel megvilágítva igyekeztem még jobban kiemelni, ezzel is nagyobb hangsúlyt fektetve a jubileumra.
Ez az elődjénél jobban hasonlít egy félkarú rablóhoz, mert elforduló tárcsákon lévő számokat sorsol ki véletlenszerűen. Viszont a hardver készletem korlátai miatt itt csak 3 számra van lehetőség, és zseton adagolásra sincs mód. De akár van nyeremény, akár nincs, mindkettőt - a hitvesem ötlete alapján - szimbolikusan jelzi a készülék.
A készülék első sorban a mechanikai felépítése miatt érdekes. A három darab, palástjukon 1-től 4-ig számozott tárcsák közül a középsőt fixen rögzítettem a tengelyhez, a két szélső viszont ezen a tengelyen csapágyakon szabadon el tud fordulni. A tengelyt - és így a középső tárcsát - közvetlenül léptetőmotor hajtja, a másik két tárcsát fogasszíj hajtás közbeiktatásával egy-egy encoder motor. Így végső soron a három tárcsa szögbeállása egymásól független, azaz a motorok véletlenszám generátorral történő vezérlése adja meg a "kisorsolt" számokat, melyek egy "ablakban" jelennek meg.
A tárcsák az "1"-es alaphelyzeti számtól kezdenek forogni és ha a kisorsolt 3 számból legalább kettő egyezik, az már nyereményt jelent. Ezt jelzi a szervó motor által beforgatott mosolygó "smiley". Ha nincs nyeremény, azt egy szomorú emoji jelzi. (Megjegyzem, hogy az 1-es szám nincs kizárva a sorsolásból, ilyenkor az adott tárcsa nem fordul el.)
A sorsolás és a nyeremény kiértékelése után a szerkezet alaphelyzetbe áll, azaz minden tárcsa - ha szükséges- elforog az "1"-esig. Ez utóbbi a videón csak az első ciklusban látható, a másik kettőnél ezt a fázist időspórolás miatt elhagytam.
Ennél a vasúti átjárónál nincs szükség sem bakterre, sem jelzőőrre. Működik magától is...
Egy fémépítőből készült teherautó, egy félsorompóval kiegészített fénysorompó, egy vonat imitáció és természetesen Makeblock elemek alkotják ezt a szerkezetet, amely egy vasúti átjárót hivatott modellezni.
A teherautót léptetőmotor, a félsorompót szervómotor és a vonatot egy encoder motor mozgatja. A fénysorompót a 4 LED-es kijelző alkotja a felesleges LED kitakarásával.
Mivel a szintbeli kereszteződés nem megoldható, a vonatot egy felső vezetősínről belógatott kép reprezentálja.
A működése egyértelműen kiderül a videóból, így annak írásbeli részletezésétől eltekintek.
A Honda 2000-ben alkotta meg Asimo-t, a humanoid robotot. Bármennyire is szeretném, de hasonlót sem tudok összerakni, viszont apró emberi tulajdonságokkal sikerült felvértezni ezt a kis szerkezetet.
A léptetőmotorral hajtott csúszósínhez erősítettem ezt a némileg emberi formájú szerkezetet. Hívó vezényszóra elmosolyodik és hátulról közelebb jön, aztán körülnéz, és ha a "szemei" (UH érzékelő) előtt kezet lát, a jobb karjával integet. Újabb vezényszóra pedig elszomorodik, és visszatolat.
A fej és a kar mozgatását szervó motorokkal oldottam meg.
A videó egy távolabbi és egy közelebbi kameraállásból is megmutatja kis barátom képességeit.
A hang utasításokat persze nem érti, csupán a hangerősséget érzékeli. Hogy a "gyere!" és a "menj!" vagy "menjél!" utasításoknak látszólag értelme legyen, egy apró trükköt vetettem be: az emberke helyzetétől függően egy változónak két értéke lehet, és a kellő erősségű hang érzékelésekor ezek függvényében jön előre, vagy megy hátra.
Egy példa arra, hogy a fogazott gumiszalagon egy ugyancsak fogazott kerék úgy tud kapaszkodni, mint a Fogaskerekű.
Egy rúdhoz erősített gumiszalag fogazott oldalán egy ugyancsak fogazott kerék gördül végig, melyet egy encoder motor hajt. Ez utóbbi egy szánszerkezethez van erősítve. A két párhuzamos rudat pedig fogaskerék áttételen keresztül egy léptetőmotor kb. 55 fokos dőlésszögig tudja megdönteni.
A már megszokott hangvezérlésre induló ciklusban először a szán a fogazott szíj-kerék kombó révén vízszintes helyzetben ide-oda halad, majd a megdöntött pályán teszi ugyan ezt, a ciklus végén pedig ismét vízszintes helyzetben.
A szervó motor által mozgatott 4 LED-es kijelző mindig a mozgás irányát mutatja, de a videóban sajnos az erre utaló színek (fehér, zöld, piros és kék) torzultak.
Legújabb szerzeményem egy robusztus szervó motor. Kísérleti jelleggel ezt építettem be a Sebességváltóba.
Az új szervó motor egy tolórúdhoz erősített DC motornak illetve az annak tengelyére rögzített meghajtó fogaskeréknek 3 helyzetet biztosít: egy semleges középállást, és két, különböző méretű fogaskerékhez való kapcsolódást. A bal oldali fogaskerék meghajtásakor a lassító áttétel értéke 3, a jobb oldali esetében pedig 5.
A hajtott kerekekre csak a csapágy súrlódásból eredő nyomaték hat, más terhelésük nincs.
Szinkronizáló egység hiányában az esetleges károsodások elkerülése érdekében a fogaskerekek mindig álló helyzetben kapcsolódnak. Hogy ez melyik oldalon történjen, azt a megfelelő oldali szenzor megérintésével lehet kiválasztani. A kapcsolódás után a motor 5 mp-ig forog, majd megállás után visszatér középállásba.
A fentieket szemlélteti a videó.
Hosszú vajúdás után jött az ötlet...
... amelyet a Makeblock egyik alkatrészének sajátossága adta.
A Makeblock készlet része egy gumi szegmensekből, fémtüskék révén összerakható szalag, melyből pl. lánctalpat vagy konvejort lehet kialakítani (ld. Triangular önjáró). Minden szegmens két-két furattal is rendelkezik, melyek lehetővé teszik, hogy a gumiszalaghoz csavarokkal úgy erősítsünk valamit, hogy az ne zavarja a szalag belső felületének szíjtárcsával való érintkezését.
Ez adta az ötletet a Libegő megépítéséhez. A már ismert fémépítő játék elemeiből készítettem egy kis ülőkét, mely a saját súlya következtében a szalaghoz erősített tartók között, egy tengely körül átfordul, amikor a szalag áthalad a szíjtárcsákon.
A teljes készülék nagyon egyszerű: egy vázszerkezetből, két szíjtárcsából, néhány csapágyból és tengelyből, egy (optical encoder) motorból és néhány áramkörből áll.
A videó elején a fentebb említett, szíjhoz erősített ülőke és a teljes készülék látható, ezt követi egy ciklus (hegymenet, kis szünet, és kétszeri átfordulás után alaphelyzetbe állás) nagytotálban, és - a részletek jobb megfigyelhetősége miatt - premier plánban is.
Ez a készülék lényegében csak azt hivatott szemléltetni, hogy az elemkészletből hányféle mozgásra képes részegységek állíthatók össze illetve vezérelhetők.
Ez a robot nem emel, nem tologat, nem válogat sem korongokat, sem dobozokat. Nem is rajzol és nem önjáró, viszont a vázon és az elektronikán kívül mindene mozog. Olyan, mint egy hiperaktív gyerek...
Két normál DC, egy encoder és egy szervó motor, valamint fogaskerék és szíjáttétel is beépítésre került. A felső, központi nagy tárcsa - amely az ide-oda csúszkáló elemeket is tartalmazza - hátoldalán egy fekete csíkot érzékel a már ismert érzékelő, ez számolja a fordulatait.
A bal alsó ide-oda forgó és a jobboldali billegő kar a központi tárcsa forgásával szinkronizált.
Ahogy a nem egészen 1 perces videóban is látható, egy ciklus 5 központi tárcsa fordulatból áll.
A TukTuk főleg Ázsiában használatos háromkerekű jármű, melyet főként taxiként használnak. Elöl ül a sofőr, mögötte pedig egy ponyvával letakart platón az utasok. Én ugyan Tunéziában láttam először, de már Budapesten is használják városnéző célra.
Fő célom az volt, hogy a robot előre programozott módon, vagyis ne direkt kézi irányítással mozogjon. Ezért a mellső, hajtott kerék kormányzását egy szervó motor végzi, magát a kereket pedig egy encoder motor hajtja. Ez utóbbinak a szögsebessége és a megtett fordulatok száma egymástól függetlenül állíthatók be.
Hab a tortán, hogy a vezetőfülkét a korábban már említett fém építő játék elemeiből applikáltam a szerkezethez.
A videóban példaként egy földre helyezett tárgy (szegény Angol Magyar szótár) kikerülése látható két perspektívából. Hangvezérlésre először 30 cm-nyire megközelíti az objektumot, majd elvégzi a kikerülést, és megáll.
Sajnos azonban van egy szépséghibája a rendszernek: a programozás során tapasztaltam, hogy a szervó motor és az encoder motor egyidejű működése problémás, vélhetően összegerjedésről van szó. Ezért a kormányzás és a kerék forgása időben elkülönül, azaz kényszerből késleltetések vannak a programban.
A Korong rendező két szempontból is ellentéte a Korong válogatónak. Egyrészt a korongokat nem szétválasztja, hanem éppen ellenkezőleg. Másrészt kihasználja, hogy a korongok gurulni is tudnak.
A szerkezet 3 fő egységből áll:
két, egymással párhuzamos adagoló vályúból, melyekbe 3 db fekete és 3 db fehér korongot lehet gurulóképes állapotban behelyezni,
egy hosszabb fogadó vályúból, mely az adagoló vályúkkal szembe állítható, és melyben mind a 6 korong elfér,
valamint két "sorompóból", melyek az adagoló vályúkban lévő korongokat vagy blokkolják, vagy kiengedik.
A korongok gurulása a vályúk megdöntésének hatására lehetséges, ezt egy fogaskerék áttételen keresztül egy encoder motor végzi. A fogadó vályút önmagával párhuzamosan egy forgattyús mechanizmus révén léptető motor mozgatja. A sorompók szervó hajtásúak.
Mindezek jól láthatóak az alig 1 perces videóban is, melyben két ciklus fut le: az elsőben a fekete korongok után a fehérek gurulnak át a fogadó vályúba, a másodikban pont fordítva.
Az eredeti elképzelésem az volt, hogy váltakozó színű korongok guruljanak át, azaz két azonos színű ne kövesse egymást. Ehhez viszont az szükséges, hogy a sorompók csak egy-egy korongot engedjenek át. Nos, ennek a vezérlésén még dolgozni kell.
Ha sikerül, akkor lesz 2.0 is...
A legújabb robotom, a Korong válogató alapelve hasonlít egy korábbi szerkezethez, a Válogatóhoz, de ez nem dobozokat szeparál szín szerint, hanem fekete és fehér műanyag korongokat.
A korongok egyébként gyerekkorom kedvenc NDK -s társasjáték készletéből a dáma játék figurái. A teljes Spiele Magazin még ma is megvan!
A robot két fő részből áll: egy - tetszőleges sorrendbe betöltött, 5 db korong befogadására és adagolására alkalmas - rekeszből és egy, a korongokat egyesével megfogó ún. gripper -ből. A rekesz tetejére épített érzékelő az éppen soron következő korong színét érzékeli, és ettől függ, hogy a gripper az adott korongot a jobb vagy a bal oldalon elhelyezett tálcába engedi (a jobb oldaliba a fehérek, a bal oldaliba a feketék kerülnek). A tálcák a Laci bácsi féle ételek elmosott maradványai.
A video -ban látható a készülék felépítése, egy korong rekeszbe helyezésének módja, majd egy teljes ciklus, mely 3 db fekete és 2 db fehér korongot választ szét. A számláló azt mutatja, hogy hányadik korong következik, az alatta lévő LED -es indikátor kéken világít, ha ez fekete, ellenkező esetben fehéren. A zöld szín a ciklus lefutása után az adagoló alaphelyzetbe állását jelzi.
A szerkezetben nincs léptetőmotor. Az adagolót (szíjhajtással kombinálva) és a gripper elfordulását közvetlenül, egy-egy "optical encoder" motor, a gripper nyitását-zárását pedig a saját kis DC motorja működteti.
Ez a szerkezet nem lesz a robotjaim non plus ultrája, csupán egy kis ujjgyakorlat...
Még távolról is kerülöm a nagyképűség látszatát, de ezt a legújabb szerkezetet csak "ujjgyakorlatnak" tekintem. Mivel nem jött a nagy ötlet és nem volt kéznél rothadt alma (Hemingway) sem, most csak ezt a robotot sikerült összehozni. Azért neve van: Őrszem.
És akkor menjünk tovább a millitáns vonalon: amennyiben a környéket ultrahang távmérővel pásztázó (léptető motorral forgatott szervomotoros "pan-tilt kit") egység vészesen közel idegen testet, azaz behatolási szándékot észlel, akkor azt 4 piros LED-el jelzi.
Megjegyzem, hogy az említett "pan-tilt kit" elnevezésnek nem találtam magyar nyelvű megfelelőt. Lényegében ez egy két szervomotoros, kétirányú mozgásra (billegésre) alkalmas csuklós szerkezet.
Sokan szeretnek kártyázni, de lapot osztani lényegesen kevesebben. Nos, ezt az unalmas és monoton tevékenységet miért ne bízzuk egy robotra?
Ez motivált a legújabb robot elkészítésére, mely 20 lapos snapszerhez (VII-esek, VIII-asok és IX-esek nélküli magyar kártya pakli) az osztó szerepét veszi át. Az egymással szemben ülő játékosoknak először 3-3 lapot oszt, aztán középre kidobja az adu színt jelentő lapot, majd még 2-2 lapot oszt, a maradékból húznak a játékosok.
A 20 db lapot keverés (és esetleges emelés) után színnel lefelé egy tartóba tesszük, ahonnan a legfelsőt egy gumiabronccsal ellátott kerék tolja ki. A mindenkori két legfelső lap esetleges összetapadásának elkerülésére a keréknek van egy kis hátrafelé forgása is, ez jól látható a videó azon részében, ahol a működést közeli felvételen mutatom be.
Az adagoló kereket egy "optical encoder" motor hajtja, a megfelelő helyzetbe fordítást pedig léptetőmotor végzi, ezért hybrid hajtású a robot.
A videó először néhány fotón a készülék felépítését mutatja, majd egy távolabbi és egy közelebbi felvételen az osztás folyamatát.
Az első ilyen készülék - melynek a Szkenner nevet adtam - lényege, hogy egy "optical encoder" motor egy kettéágaztatott fogaskerék-fogasszíj kombót hajt meg, mely végső soron egy önmagával párhuzamosan elmozduló rudat, az ún. csatlót mozgatja. Erre építettem rá az ultrahangos távmérőt, így az több helyzetben is képes mérni, innen a Szkenner név. Van egy tárgyasztala is, melyet viszont léptetőmotor forgat el.
A videón látható Szkenner egyelőre arra képes, hogy a tárgyasztal két, 180 fokos pozíciójában a távmérő a bal és a jobb oldalon 3-3 mérés átlagából képes megállapítani, hogy üres-e a tárgyasztal, vagy pedig rajta van-e a forgástest. Az üres állapotot két vízszintes irányban, a nem üres állapotot pedig két függőleges irányban kigyulladó LED jelzi.
A készülék nem szimmetrikus tárgyak helyzetét is képes megállapítani, némi átalakítás után erre a célra született meg a Szkenner 2.0 verziója. Egyrészt a jobb láthatóság érdekében 180 fokkal átfordítottam, másrészt a tárgyasztalt egy rögzítő aggyal váltottam ki. És az is újdonság, hogy a tárgyat 90 fokonként fordítja el, így négy jobboldali és négy baloldali mérési eredményt jelez ki, illetve tárol.
A videón is látható, hogy a vizsgálandó tárgy egy talppal ellátott lap. A készülék az ultrahangos távmérő nyolc-nyolc mérési eredménye alapján állapítja meg , hogy a tárgy fekvő vagy álló helyzetben van-e behelyezve. Az eredményt két-két, vízszintes vagy függőleges irányban kéken villogó LED jelzi.