Tohto robota som
zostrojil na súťaž Robocup Junior – Rescue. Robot Rescue
podobne ako Beanpole chodí po čiernej čiare a prechádza
rozličnými prekážkami (tehla, prerušenie, rampa). V
súťaži Robocup je k tejto kategórií pridané
ešte aj hľadanie obetí (zelení a alobaloví
pajáci). Robot používa neLego snímač Sharp
GP2D120, aby prešiel okolo (takmer) akejkoľvek
prekážky, ktorú voláme troska. Trosku detekuje
dvomi LegoTouch snímačmi. Na detekciu čiary používa
dva LegoLight snímače a na detekciu obetí tretí
LegoLight snímač. Podvozok robota je nasvietený štyrmi
IR LED diódami napájanými 9V batériou. Keďže RCX kocka umožňuje
použiť iba tri vstupy (samozrejme aj paralelné zapojenia LegoLight a
LegoTouch snímačov a ich kombinácií) a robot potrebival ešte štvrtý
vstup (neLego snímač Sharp
GP2D120), ako "hack na oklamanie RCX kocky" som použil AMUX (Active
Multiplexor), kde sa prepínanie jednotlivých vstupov rieši softwareovo.
Procesor: Lego RCX (Hitachi H8)
Pamäť: 32kB
Frekvencia: 16MHz
Snímače: 3x LegoLight, 2x LegoTouch, 1x Sharp GP2D120 IDS (Infrared Distance Sensor)
Pohon: 2x Lego motor
Napájanie: 6x 1.2V NiMH, 1x 9V
Jazyk: NQC
Ak krajnými LegoLight snímačmi nevidí čiernu čiaru, tak robot predpokladá, že čiara je v strede a ide rovno. Ak akýmkoľvek krajným snímačom zbadá čiernu čiaru, vyrovná sa tak, aby čiara bola opäť v strede a zapamätá si, na ktorej strane ju videl (túto informáciu použije po detekcii a označení obete).
Prerušenie čiary robot ignoruje (robot vie, že prerušenie je na rovnej čiare a že nie je dlhé) a chová sa tak, akoby čiara bola stále v strede (dokonca ani nevie, že nejaké prerušenie čiary bolo :-))
Ak robot narazí na tehlu (stlačený LegoTouch snímač), zacúva a otočí sa doľava. Tehlu bude obchádzať zľava. Potom na základe snímača vzdialenosti Sharp GP2D120 ide buď vpravo bližšie k tehle, alebo vľavo ďalej od nej. Ak by aj náhodou do nej narazil, znova sa otočí vľavo a pokračuje v obchádzaní. Keď pri obchádzaní tehly nájde čiernu čiaru, vyjde až poza ňu a otočí sa doľava, aby sa čiara nachádzala v strede medzi krajnými LegoLight snímačmi.
Obete robot detekuje stredným LegoLight snímačom. Po označení obete robot hľadá pokračovanie čiernej čiary v smere, kde ju naposledy videl. Ak ju po istom čase nenájde, skúsi to v opačnom smere a ak ani tu čiaru nenájde, tak predpokladá, že obeť bola v prerušení (aj tam môže byť obeť :-)) a popojde kúsok dopredu, kde hľadanie čiary zopakuje.