A robotok felépítése
Az elveszettAz elveszett robot forgó tornyán elhelyezkedõ villogó lámpákkal ad le vészjeleket a mentõegységnek. A mentõ, miután eljut az elveszetthez, a peremébe beleakaszkodva visszavontatja a bázishoz. A sérült robot könnyen húzható, mert a négyzet alakú talapzat négy sarkán elhelyezett forgó kerekek a húzás irányába fordulnak. | |
A tornyot lassító fogaskerékáttételen keresztül csigakerékkel forgatja a motor. A tornyon a lámpák nem egy síkban helyezkednek el, hanem szöget zárnak be egymással, így nagyobb területet szórnak be fényükkel. A mögöttük lévõ fehér elemek növelik a fényerõt. |
A mentõrobot
A mentõ robot eredetileg lánctalpas volt, de nagyon rázkódott, ami jóformán lehetetlenné tette a nyomásérzékelõ által szolgáltatott jel kiértékelését, ezért a lánctalpat lecseréltük lánccal meghajtott kerekekre. Ez a konstrukció menettulajdonságaiban nagyon hasonlít a lánctalpra, de kiküszöböli annak hibáját. A robot mozgatását két motor biztosítja, az egyik a fodulásért, a másik a haladásért felelõs. | |
A mentõrobot elején hosszú, kampós végû rúd található, ezzel ragadja meg a segítségre szoruló robotot. A rúd alatt helyeztük el a nyomásérzékelõt, ami alaphelyzetben benyomott állapotban van -- míg a rúd be nem akad a másik robot peremébe, mert az a rudat megemeli. A mentõakció indulásakor a rudat rögzíti a képen is látható zöld lyukas kettes elem, hogy ne tudjon elfordulni. A vontatás alatt az elsõ fordulás megkezdése elõtt ezt a rögzítõ elemet egy külön mikromotorral felemeljük, hogy a mentõegység ugyanolyan könnyen tudjon fordulni, mint teher nélkül. | |
A fent említett meghajtást a képen látható -- két differenciálmûbõl felépített -- szerkezet teszi lehetõvé. A-val és B-vel jelölve a két motor erejét, az egyik oldali kerekek A+B, a másik oldaliak pedig A-B sebességgel forognak. Ha a B motort blokkoljuk, akkor az A segítségével egyenesen tudunk elõre vagy hátra haladni, míg az A-t blokkolva helyben tudunk forogni. |
Érzékelők:
A mentõroboton egy elõre nézõ fényérzékelőt használunk a vészjelek érzékelésére, és a már említett nyomásérzékelõt annak megállapítására,
hogy sikerült-e már megfogni a sérültet.
A programok:
A mentõakció programjai a legOS 0.2.5 könyvtárait használva
C-ben íródtak. Windows 95 alatt -- a Cygwin segítségével -- fordítottuk le a
legOS kernelét, C könyvtárát és segédprogramjait.
A programok forrásai:
halad.c | A mentõrobot programja. |
karvissza.c | Külön program a rögzítõ elem visszaengedésére. |
villog.c | A sérült robot programja. |
komm.h | A kommunikációhoz használt közös header fájl -- az üzenetek definíciója. |
Az elveszett robot programja:
Felváltva jobbra-balra forgatja a tornyot üzenetre várva, miközben egy külön szálon villogtatja a reflektorokat.
Kétféle üzenet lehetséges:
A mentõrobot programja:
A robot forogva keresi a másik robotot. Egy külön szál figyeli a felvillanásokat; ezek idõpontját listában tárolja, ennek
segítségével képes megállapítani, hogy az eltelt 1 másodpercben hány felvillanást érzékelt.
Ha ezek száma nagyobb egy, a villogás frekvenciája alapján megállapított küszöbértéknél,
akkor úgy veszi, hogy meglátta a másik robotot, és üzenetet küld neki, hogy azonnal hagyja
abba a forgást. Ekkor õ is abbahagyja a forgást, és elindul elõre (hisz ekkor nagyjából szemben van
egymással a két robot). Addig megy, amíg el nem kapja a sérültet vagy el nem veszti a fényt.
A nyomásérzékelõ állapotából tudja, hogy sikerült elkapni, ha viszont elveszti a fényt, akkor tovább
kell keresnie. Ilyenkor kicsit hátratolat, majd forog, míg újra meg nem látja a fényt, hogy újra
próbálkozhasson.
Keresés közben a forgások illetve haladások idõtartamát és irányát feljegyzi magának, és ha
sikerült az összekapcsolódás, akkor ezen feljegyzések alapján jut vissza a bázishoz egy némileg
egyszerûsített útvonalon. Összekapcsolódás után átszól a másiknak, hogy hagyja abba a villogást.
A következõ felvételeken meggyõzõdhettek róla, hogy nem mese volt, amit itt leírtunk: 1. felvétel 2. felvétel
Készítették:
Locher Kornél
Oroszi Sándor
Szabó
Dániel
Vitéz László