Aj pri tejto peknej úlohe sme sa niečo nové naučili. Vo videu sú ukážky správania v prípade, že obeť sa nachádza najskôr vľavo a potom vpravo od robota.
Pohyb robota je jednoduchý - riadený dvoma motormi. Vpredu je vybavený dvomi senzormi. Svetelný senzor slúži na sledovanie čiary a nahrádza aj čuch, meria s ním dĺžku "stôp" na každej strane. Ultrazvukový senzor je tiež vpredu a stopár s ním zisťuje, že sa už nachádza pred obeťou, ktorú treba zachrániť.
Program má niekoľko častí:
Na začiatku sa stopár pohybuje po plnej čiare najjednoduchším spôsobom. Ak svetelný senzor vidí čiernu čiaru, točí sa jeden motor, inak sa točí druhý motor. Na dĺžke plnej čiary nezáleží, jej koniec robot rozozná vtedy, keď čiaru nevidí dlhšie ako 0,2 sekundy. Vtedy zastaví a znova sa zarovná do línie čiary.
Na konci plnej čiary sa robot otočí najskôr vpravo, nájde prvú stopu a pomocou časovača zmerá čas potrebný na pomalé prejdenie prvého úseku. Hodnotu z časovača uloží do premennej DlzkaVpravo. Potom sa neotáča, ale cúvne na začiatok prvej stopy vľavo od plnej čiary. Meranie dĺžky stopy zopakuje rovnakým spôsobom a hodnotu uloží do premennej DlzkaVlavo.
Robot je nasmerovaný vpravo od plnej čiary. Porovnaním nameranej dĺžky stopy na každej strane sa rozhodne, či je potrebné otočiť sa na opačnú stranu. Ak je premenná DlzkaVpravo vačšia ako DlzkaVlavo, otočí sa o 180°, inak sa neotáča.
Stopár je už otočený smerom k obeti, ide teda rovno, až kým ultrazvukovým senzorom pred sebou nerozozná obeť a zastaví pred ňou.
Vaše riešenie vyzerá vždy bezchybne a super! :-)