Robot obsahuje 2 veľké motory na svoj pohon a 1 stredný motor spúšťa fotenie. 2 optické snímače používame pri jazde po čiernej páske, tretí optický snímač hľadá modrú páasku - koniec okruhu. Náš robotický strážnik je riadený 2 programami:
1. program - SKENOVANIE
Tento program je na to, aby robot získal predstavu o tom, ako vyzerá okolie okolo okruhu. Program pracuje takto:
a) Robot jazdí vyštartuje zo zo začiatku okruhu a jazdí po čiernej páske. Pomocou optického snímača neustále kontroluje , či nie je koniec okruhu - koniec je označený modrou páskou. Tiež pomocou ultrazvukového snímača hľadá objekt pri okruhu. Ak nájde niečo, čo je bližšie ako 20 cm od neho - tak to znamená, že našiel prvý okraj objektu pri okruhu. Hľadanie prebieha v slučke označenej 01. Robot zastaví, zaznie signál START, do súboru zaciatok_objektu zapíšeme počet stupňov z veľkého motora. Preruší sa beh slučky 01. Tak sme získali polohu prvého okraja objektu.
b) Robot pokračuje ďalej. Program beží v slučke 02 - robot pokračuje po čiernej páske a meria vzdialenosť. Keď zistí, že už nameral vzdialenosť väčšiu ako 20 - tak to znamená, že objekt skončil. Robot zastaví, zaznie signál STOP, do súboru koniec_objektu zapíšeme počet stupňov z veľkého motora. Preruší sa beh slučky 02. Takto vlastne sme si určili polohu druhého okraja objektu. Robot postupne získa umiestnenia všetkých objektov okolo okruhu - slučky 01 a 02 bežia vo veľkej slučke, ktorá sa ukončí vtedy, keď robot nájde modrú farbu - koniec okruhu.
2. program - KONTROLA
Tento program využíva súbory zaciatok_objektu a koniec_objektu. Takisto obsahuje dve slučky 01 a 02 vnorené do tretej slučky 03. Pracuje asi takto:
a) Zo súboru zaciatok_objektu načítame prvé číslo - súradnica prvého okraja prvého objektu. Zapíšeme ho do premennej zaciatok. Meranie otáčok a stupňov z motora nie je veľmi presné. Preto musíme urobiť malú úpravu. Od premennej zaciatok odčítame 20 stupňov. V slučke 01 robot jazdí po čiernej páske až kým počet stupňov veľkého motora nie je taký ako premenná zaciatok - 20 stupňov. Tá úprava spraví to, že robot kontroluje okruh len tesne pred prvý okraj objektu. Počas jazdy robot meria vzdialenosť - ak teraz nájde niečo, čo je bližšie ako 20 cm - tak to znamená. že našiel neočakávaný objekt, o korom nevie. Robot zastaví, zaznie signál OBJECT, počká 2 sekundy - mobil pomaly ostrí. Potom pomocou stredného motora pritlačí koncovku USB kábla o displej a odfotí objekt. Preruší sa beh slučky 01.
b) Zo súboru koniec_objektu načítame prvé číslo - súradnica druhého okraja prvého objektu. Zapíšeme ho do premennej koniec. K premennej koniec pričítame 20 stupňov. Beží slučka 02, robot jazdí po čiernej páske a meria neustále vzdialenosť. Slučka beží dovtedy, kým počet stupňov veľkého motora nie je taký ako premenná koniec + 20 stupňov. Robot je tesne za druhým okrajom prvého objektu. Ku číslu sme sa dostali pokusom - skúšali sme dovtedy, kým to nefungovalo správne.
c) Znova začína slučka 01 - robot jazdí po prvý okraj druhého objektu a počas toho meria vzdialenosť. Všetko sa to opakuje - už s hodnotami pre druhý objekt. Teda číslami, ktoré sa nachádzajú na druhom riadku v súboroch zaciatok_objektu a koniec_objektu. Ak nameria menej ako 20 cm - zasa našiel niečo neočakávané, čo nepozná. Začne sučka 02, robot nájde druhý okraj druhého objektu. Postup sa opakuje pre tretí a štvrtý objekt pri okruhu.
d) Takto program pokračuje až kým robot nenájde modrú pásku - preruší sa beh slučky 03. Vtedy už má skontrolované všetky časti okruhu a sfotené neznáme objekty.
Na videu sú zachytené 2 situácie. Robot nachádza najprv jeden neznámy objekt na istom mieste, potom nachádza iný neznámy objekt na inom mieste.
Profesionálne riešenie, nič nenecháte na náhodu. Ďakujeme, dorbá práca! 1. Za úlohu strážnik získavate 3b. Vaše riešenie úlohy je zaujímavé, hoci má jednu nevýhodu a to, že sa neráta s tým, že narušiteľ môže byť aj z vnútornej strany okruhu. Páči sa mi detailný popis riešenia a fotky :) 2. Veľmi sa mi páči, že ste robota najprv natrénovali aby vedel ako jeho obchôdzka má vyzerať a že teda dokáže naozaj rozpoznať "votrelca". 3. Ok, pekné riešenie, chcelo by to ale kratšie video :). 4. Super, že ste ako jedni z mála zaznamenali najprv objekty na trase a až potom zaznamenali nečakané objekty!