Konštrukcia a funkcia robota
Náš robot používa jeden farebný senzor, tri svetlá (červené, žlté, zelené) a množstvo premenných (prehľad premenných uvedený nižšie). Karty sú vyrobené z papiera, na ktorom je nalepená čierná páska tak, že pásiky sú v poradí: 2cm biely pásik a potom čierny, biely a opäť čierny pásik rôznej šírky. Pri programovaní sme počítali s tým, že človek vsúva kartu do zámku po celý čas približne rovnakou rýchlosťou. Keď náš zámok zistí prítomnosť nejakej karty, najprv zisťuje, ako dlho ,,vidí" 2cm biely pásik a túto hodnotu zapíše do premennej ,,k". Tá je potom použitá pri čítaní každého pásiku, čím robot vypočíta jeho šírku. Premenná k sa zisťuje pri každom čítaní karty, takže pri rovnakej karte dostane robot približne rovnakú šírku (nepresnosti sú tolerované použitím rozsahu).
Na začiatku programu je zadefinovaná premenná NovaKarta = true, čiže robot sa ,,učí" správnu kartu. Po naučení je táto premenná nastavená na false a zmeniť sa dá len držaním tlačidla po vložení správnej karty.
Svetlá: keď sa robot učí novú kartu, svietia všetky tri svetlá. Potom sa rozsvieti žlté, čo znamená ,,pripravený". Po vložení karty ho nahradí buď zelené (správna karta) alebo červené svetlo (nesprávna karta).
Prehľad premenných
u1, u2, u3 (uložená 1,2, 3) - šírka pásikov 1, 2 a 3 uloženej (správnej) karty
p1, p2, p3 (prečítaná 1, 2, 3) - šírka pásikov 1, 2 a 3 práve prečítanej karty
k - pomer vyjadrujúci 2cm = k milisekúnd
NovaKarta - true = robot zapisuje (resp. učí sa) novú správnu kartu
Pekné riešenie, jednoduché, rýchle, super ! Ručné meranie rýchlosti by v praxi malo byť sústavné, málokto dodrží konštantú rýchlosť počas vkladania karty. Celková kvalita spracovania riešenia je výborná!