Üdvözlünk mindenkit a PAS csapat oldalán!
Bevezetés:
A Magyarok a Marson fedõnevû versennyel évekkel ezelõtt találkoztunk elõször, viszont már akkor is megragadott a hangulata és a szellemisége. Egy olyan versenynek ismertük meg, ahol bármi megtörténhet és az ellenkezõje is. Sõt, rendszeresen meg is történik. Csapatunk több tagja már visszatérõ versenyzõ, ám idén elõször indultunk ebben a felosztásban. Tagok:
Panyi Tamás, Lipécz
Ádám, Erdélyi
Soma.
Miután összeállt a csapat és figyelmesen elolvastuk a kiírást rögtön le kellett vonnunk pár súlyos következtetést. Mivel mind a hárman idén érettségiztünk, az írásbeli vizsgák után csupán egy hetünk maradt a robot építésére, elõtte pedig rengeteg másik elfoglaltsága volt mindannyiunknak. Így nagyon kevés idõnk volt a robot fejlesztésére. Ezért már az elején tudtuk, hogy nem leszünk képesek olyan gépet létrehozni, amely maradéktalanul eleget tesz a kiírásnak és saját magát navigálva infra keresõjével találja meg a piramisokat. Szerencsére idén is lehetett indulni kézi távirányítással, a 15 másodperces késleltetés megtartása mellett. Ez pont kapóra jött nekünk, így rögtön olyan robotban kezdtünk gondolkodni, melyet mi fogunk irányítani.
Így indult a fejlesztés, melynek célja a legminimalistább robot létrehozása volt. Elgondolásunk szerint ha nehéz a robot teste, nagy motorok kellenek. A nagy motorokhoz nagy akksi is dukál. Ez viszont lehet, hogy már nem fér bele a vázba, vagy olyan nehéz, hogy még erõsebb motor kell. Ahhoz meg megint új váz, nagyobb akksi stb. Hogy ezt a spirált elkerüljük, minél könnyebb és kisebb robotot szerettünk volna építeni, melyre így kisebb motorok is megfelelõek, melyek kisebb akkumulátorról is kielégítõen mûködnek.
Hardver:

Könnyû és itthon is megtalálható alkatrészeket használtunk, ezzel gyorsítva és egyszerûsítve az építkezést. A robot alvázát elnyújtott H-alakban összeragasztott orvosi spatulák alkotják. Nagyon könnyû ám egyszerûen megmunkálható fa, melybõl ha 3-4 darabot összeragasztunk, akkor már erõs és tartós is. A korábbi évek tapasztalatai azt mutatták, hogy azok a robotok navigálnak könnyen, melyek saját tengelyük körül tudnak fordulni. Ezt vagy két közvetlenül hajtott kerékkel és görgõvel lehet megvalósítani, vagy négy közvetlenül hajtott kerékkel és a tankokhoz hasonló vezérléssel. Mi ezt választottuk, így nem állt fenn a veszélye annak, hogy a görgõ kilengése eltéríti a robotunkat eredeti irányától. A meghajtáshoz 4 darab HS311 típusú végtelenített szervó motort használtunk. Fogyasztásuk is ideális volt, és erejükkel sem volt probléma. Már csak az árukat kellett volna lejjebb vinni...

A kerekek egyszerû befõttesüveg-tetõk voltak. Átmérõjük pont ideális volt, kellemes magasságot adtak a robotnak, mely így gond nélkül kelt át a kábeleken. Tapadásról nem beszélhetünk, a zománcozott felület nagyon hamar elpörgött. Viszont hála a lassú szervóknak és a robot kis súlyának, még így is gond nélkül mozgatták a kész robotot. Ahogy a szabályokban is benne volt, elkerülhetetlen a robotok ütközése. Ez ellen sokan úgy próbáltak védekezni, hogy erõs és nehéz gépet készítettek. Viszont az összes konkurencia járgányánál nehezebbet és erõsebbet nem egyszerû készíteni. Így mi inkább a lehetõ legkönyebbet csináltuk. Ha ütközünk, vagy falnak megyünk a kerekünk gond nélkül elpörög, másik robot gond nélkül arrébb tol. Nincs leégett motor, és nem mennek rajtunk kereszül mert nem mozdulunk az útjukból. Elsõre furcsának tûnhet ez a stratégia, ám élesben csodálatosan mûködött.

Mivel kevés idõnk volt a fejlesztésre, azt a mikrokontrollert választottuk, melyiket a legjobban ismerünk és legmegbízhatóbbnak tartunk. Így esett a választásunk a LEGO MINDSTORMS NXT-re. Bár nagyon sok korlátja van, mégis is egy kész rendszer, amelyre csak át kell tölteni a programot és rádugni a motorokat. Viszont nekünk szervó motoraink voltak, amelyeket a hagyományos módon nem tudtunk rákapcsolni. Szerencsére rövid Google bányászat után megjelent a megoldás. Az NXT tégla tud I2C-n kommunikálni és így rá lehetett kötni egy 8 csatornás I2C szervó vezérlõt. Miután megérkezett a csomag Gaia anyánk túloldaláról, izgatottan bontottuk ki. Rövid csavarozás és programozás után eljött a várva várt pillanat; megnyomtuk az idító gombot. Szerencsére gond nélkül forogtak a motorok.
Az NXT téglába építettek saját Bluetooth modult, így PC-vel vagy mobiltelefonnal gond nélkül lehet irányítani vezeték nélkül is.

A korábbi évek tapasztalataiból okulva nem bíztunk mindent egy rendszerre, tehát készítettünk egy B kommunikációt is. Az idõ rövidsége miatt nem a leggyorsabbat kerestük, hanem a leghamarabb elkészíthetõt. Egyik eldugott doboz eldugott sarkába találtuk meg a megoldást két darab panel személyében. Kínai távirányítós autóból és annak távirányítójából kioperált elektronikáról volt szó, melyeket kis átalakítással felkészítettünk a feladatra.

A távirányító gombjait egy másik, a földi bázison lévõ NXT "nyomkodta" optocsatolókkal. A vevõ oldalon az autóban lévõ panel fogadja az utasításokat és mindig a megfelelõ portján ad ki feszültséget, melyek szintén optocsatolókkal különbözõ ellenállásokon engedik át az áramot. Az NXT szenzor portjai képesek 10 bites A/D konverterrel ellenállást mérni. Így az NXT bemenetére egymással párhuzamosan kötöttük az ellenállásokat, melyekkel sorban voltak az opticsatolók. A program vagy az egyik ellenállásnál nyitotta vagy a másiknál vagy egyiknél sem. Ezt a három értéket kellett a fogadó programnak megkülönböztetnie. A saját kommunikáció átviteli sebessége sajnos nem fogja lealázni az optikai kábelt, csúcsidõben is csak 4 b/s azaz 0,5 B/s. A versenyen ennek a felével üzemelt, 2 b/s-al ám élesben soha nem kellett használni, a Bluetooth kapcsolat gond nélkül mûködött.
A robotra került egy digitális iránytû is, mely a pontos fordulást segítette volna. Ezt azonban soha nem használtuk élesben, nem sikerült hozzá megfelelõ szoftvert készíteni.

Az egyszerûségre törekedve a roboton minden fekete szilikon hajgumikkal rögzítettünk (ötletért köszönet Briginek), melyek elég erõsek voltak a stabil tartáshoz, de akár puszta kézzel egy perc alatt mindent le is lehetett kapni a vázról. Csavarokat és fémeket csak a derékszögû elemeknél voltunk kénytelenek használni, melyek a mechanikai védelem és a CPU panel megtartása miatt kerültek fel. Utolsó pillanatban még egy Windows Mobile alapú okostelefon is helyet kapott robotunk orrába, mely WiFi-s webkameraként üzemelve élõképet közvetített. A fõ elemek tehát a váz, rajta a motorok és kerekek; a váz alá volt gumizva a szervók áramforrása és az I2C-s vezérlõjük. A vázra került az NXT és a B kommunikációért felelõs modul. A 18 cm magasan biztosítandó felfogatási pontok menetes szárral megemelt CD-tokon kerültek kialakításra. Ide rögzítettük a két színes kört is, melyeket a mûholdképen láthattunk viszont.
Az elsõ teszten még csak az NXT, szeróvezérlõk és áramforrásuk volt a roboton, ám csütörtök éjjelre minden összeállt.
Szoftver:

Ahogy a fenti videókon is jól látható, a robot irányító programja, a "földi bázis" valójában nem PC-n futott. Hála a Google mérnökeinek, Android operációs rendszerre elérhetõ az
App Inventor nevû egyszerûsített Java alapú grafikus programozási környezet. Rövid gyakorlás és pár oktató videó után hála a beépített NXT vezérlõ parancsoknak, gyerekjáték volt mozgásra bírni robotunkat, ki közben Vrekinek (Roncsi angolul...) lett elkeresztelve. A négy irány gombbal állítható be, hány egységet szeretnénk fordulni és utána hány egységet szeretnénk haladni, valamint azt milyen irányba.

Egy egység fordulás a tereptõl függõen kb. 5-10°-nak felelt meg a valóságban. Miután beállítottuk a kívánt értékeket, a pipával indíthatjuk a visszaszámlálást (a várakozás kikapcsolható). A 15. másodperc leteltével a fordulás és haladás számát a program a csatlakoztatott NXT megfelelõ mailboxába helyezi el, majd egy újabb mailbox logikai értékét igazra állítja, jelezve a robotnak hogy kiolvashatja az adatokat.

A B kommunikáció is hasonló képpen mûködött, elõször a fordulás mértékét majd a haladásét kellett beállítanunk. A szabályok szerint a vezérlõ program visszaszámolásának jól nyomonkövethetõnek kell lennie, ezért a telefonnak és a B kom NXT-nek is áthoztuk a képét a földi laptopra.
A Vrekin lévõ NXT programja már összetettebb volt, hiszen egyszerre kellett több dologra is figyelnie. Azt nézte, nem érezik-e igaz érték a mailboxába (A kom) vagy az egyik szenzorának ellenállása nem esik-e gyorsan (B kom).

Ha valamelyik teljesült, akkor az ahhoz tartozó módszerrel kiolvasta az értékeket, majd fordult a kellõ irányba és elindult elõre vagy hátra. Ha valamelyik érték 0-volt akkor csak a másik számot hajtotta végre. Mozgás közben folyamatosan figyelte azt is, nem kap-e találatot. Ilyen esetben azonnal befejezte volna a mozgást de szerencsére nem történt ilyen a verseny alatt.
A mûhold kép túlságosan nagy segítség volt ahhoz, hogy ne használjuk ki képességeinkhez és rendelkezésünkrá alló idõnkhöz képest maximálisan.

Ezért készült egy másik földi program, C# nyelven mellyel a mûholdképen tudtunk bõvészkedni. A robot elején és végén színes körök voltak, pont olyan méretûek hogy a mûhold közel pontszerûnek látta, így nem volt gond azzal, hol is van a közepe. A programban elõször a robot elejére és hátuljára kellett kattintani végül a célpontra, ahova el akartunk jutni. A robot két pontjának koordinátáiból fel tudtuk írni a robot egyenesének és szakaszfelezõ pontjának (e pont körül fordultunk) egyenletét. A cél eléréséhez szükséges fordulást pontosan ki tudtuk számoltatni. A robot két pontja között ismertük a távolságot, ezért a célpont távolságát is könnyen megtudtuk. Szintén ismert adat volt a robot sebessége, így a program már rögtön azt adta vissza, hány másodpercet kell haladni és hány fokot kell fordulni. A gyakorlatban ez a kézi navigációs segédrendszer nagyon jól bevált, az esetek nagyrészében hasznos segítségnek bizonyult a mozgáshoz.
A verseny:

Pénteken négy elõtt szálltunk le robogó vasparipánkról és indultunk el a barátságos tornaterem felé, melynek webkamerás közvetítését már délelõtt óta követtük. Érkezésünk után nemsokkal el is foglaltuk helyünket és Vrekin végeztük az utolsó simításokat. A CPU és egyéb kötelezõen rögzítendõ modulok felfogatása után nekiláttunk élesben tesztelni a pályán. Az elsõ benyomások nagyon pozitívak voltak. Bár kicsit mindannyiunknak bele kellett tanulnunk, de amikor elõször haladtunk át a földi piramison éreztük hogy ez élesben is menni fog. Így is lett :) Szerencsére sokat szerelni már nem kellett így tudtunk nézelõdni is, a többi csapat remekmûveiben gyönyörködni.

A sorsolás után elég hátra kerültünk, utolsó elõtti körben léptünk pályára. Az elsõ körben 18 pontot sikerült szereznünk és csak egy hajszálom múlott hogy még 6-ot nem kapunk. A második menetet 16 ponttal zártunk, ezzel bekerültünk a legjobb 12 csapatba. A menet végén, mikor másodszor is át akartunk menni a földi piramis alatt, történt a kis baleset. Vreki önálló életre kelt és erejét fitogtatva felmászott a piramosra, égnek meredõ tekintettel várta mit lépünk. A 12-es döntõben éreztük, hogy nem vagyunk egy súlycsoportba az ellenfelekkel ezért hátradõltünk és csak élveztük a bemutatót.

A robotról lekerül a teteje, pusztán saccolással állítottuk irányba. Az ellenfelekkel több ütközés is történt, sõt egyszer még be is szorítottak. Itt jött jól, hogy robotunkat könnyen el tudták tolni, az okos enged elve szerint hagytuk hogy picit odébb tegyenek ahelyett, hogy összeakadtunk volna. A harmadik menet végére így is 15 pontot elértünk, tehát összpontszámunk 49 lett. Ez a hetedik hely megszerzéséhez volt elegendõ, ami egy fantasztikus eredmény és minden kezdeti várakozásunkat fellülmúlta. Több autonóm robotot is maga mögé utasított egy olyan rendszer, melynek elkészítésére egy hét állt rendelkezésünkre.
Összességében tehát egy remek napot zártunk, nagyon jól éreztük magunkat és a többi robot is érdekes, tanulságos volt. Ha minden kötél szakad jövõre is indulunk, már alig várjuk a feladatot. Reméljük több idõnk lesz fejleszteni és profibb rendszerrel tudunk elõállni.
Köszönettel tartozunk Sipos Attilának és minden közremûködõnek, akik a verseny lebonyolításában részt vettek.
A fényképek nagyrésze saját felvétel de forrás a magyarokamarson.hu képei, Brafilus és AdyCrovEr felvételei is.
További fényképek: