Metodika výučby programovania - stavebnice RoboLab |
---|
Prírodovedecká fakulta UPJŠ, Ústav informatiky |
mapa diplomového webu |
komunikácia potvrdená | komunikácia vetvená | komunikácia opakovaná | komunikácia a udalosti | komunikácia s kontajnermi |
Jedného dňa sa vo vašej škole koná súťaž najšikovnejších prstov. Každý si povie, že čo zasa treba namaľovať, pripraviť z papiera alebo vymodelovať. Ale nie je to tak. Je to súťaž, keď v priebehu 2 sekúnd máte čo najviackrát stlačiť dotykový senzor. Aby to nebolo len také fádne, tak váš kamarát má spočítať, koľkokrát sa vám to podarilo.
Je to dosť náročné pozerať na prsty kamaráta a počítať. A čo ešte vtedy, keď vás pošlú za plachtu. Ako teda nato?
Myslím si, že každý z vás prišiel nato, že na to použijeme nejaké zariadenie. Lego pozná každý a mnohí poznajú aj RoboLab.
Po vašich predchádzajúcich skúsenostiach s RoboLabom, asi každý dokáže zostaviť takéto počítadlo.
Jednoducho zoberieme dotykový senzor, ktorý pripojí napríklad na vstupný port 1. Zoberie žiarovku a pripojí ju na výstupný port napríklad B, a počítadlo je hotové. Len pre vysvetlenie. Dotykový senzor slúži na počítanie klikov v priebehu 2 sekúnd a svetielko nám toľkokrát zabliká, koľkokrát sme senzor stlačili.
Potom by program mohol vyzerať takto:
Čo však v prípade, ak toho, čo počíta, vážne pošlú za plachtu a bude vidieť len žiarovku? Bolo by dosť nepraktické, ak by súťaž prebiehala na takto zostavenej kocke. Preto by bolo dobré, ak by žiaci v jednej dvojici boli od seba vzdialení. Kocka sa však nedá rozrezať. Ale môžeme pracovať s dvoma. A tak sa dostávame ku komunikácii medzi kockami.
Jednou z najdôležitejších podmienok, je to, aby kocky, ktoré majú spolu komunikovať, boli namierené oproti sebe. Ich vzdialenosť môže byť maximálne 1 meter a uhol, pod ktorým dokážu ešte stále komunikovať si skúste zistiť. Je to rôzne pri rôznych modeloch.
Myslím si, že je každému jasné, že ak majú dve kocky komunikovať, tak každá z nich musí mať svoj vlastný program. Jedna kocka bude ako počítadlo a tá druhá? Bude sa používať ako blikačka.
Program, ktorý sme si už napísali, nám bude veľmi nápomocný. Ak sa na neho pozrieme, tak vidíme, že obsahuje podprogram blikačky aj počítadla. Preto ho musíme rozdeliť na dva programy.
Každý, kto už robil v Robolabe vie, že takto napísané programy nebudú fungovať tak, ako by sme chceli. Chýba nám tu samotné prepojenie kociek.
Komunikácia medzi kockami prebieha na základe mailov (správ), ktoré si kocky posielajú.
Preto ak chceme poslať správu, tak musíme mať ikonu na posielanie správy. | |
Na druhej strane kocka čaká, kedy jej bude správa doručená. | |
To by nám však bolo nanič, keby sme nevedeli zistiť, obsah správy. | |
A nakoniec, keď ste písali nejaký program so senzormi, tak vás upozorňovali, že ich najprv musíte vynulovať. Rovnaké pravidlo platí aj pri komunikácii. Preto pred akoukoľvek komunikáciou použijeme vynulovanie schránky ( mailboxu ). | |
V programe počítadlo máme spočítať počet klikov za 2 sekundy a toto číslo poslať druhej kocke. Všetko okrem posielania už máme urobené. Vieme, že počet klikov je uložený v modrom kontajneri. Tak v správe pošleme jeho hodnotu. Potom program pre počítadlo bude vyzerať takto:
Program pre blikačku bude o niečo ťažší, ale nie o veľa. Predtým ako začne kocka blikať, musí prijať správu a na základe hodnoty v maily, vykonať už pripravený cyklus. Nakoniec program bude mať takúto podobu:
A nakoniec zhrnutie toho, čo sa nám podarilo zostaviť. Je to príklad na jednoduchú komunikáciu, v ktorom prvá kocka pošle správu druhej a tá niečo vykoná. Ak ste tento príklad pochopili, ste na najlepšej ceste vedieť vytvoriť program na jednoduchú komunikáciu.