Po tom, co sme sa v ulohe Danovy urad naucili ako pouzivat Bluetooth komunikaciu, sme sa rozhodli urobit zase dvoch robotov ktori spolu komunikuju - jeden prijima signaly z monitora a druhy na nich reaguje.
Signal
Rozhodli sme sa, ze robot bude rozoznavat bielu, ciernu a cervenu a pomocou nich dostane cislo v dvojkovej sustave. Biela a cierna budu sluzit na vysielanie 0 a 1 a cervena bude sluzit ako medzera (znamenie pre robota, ze prave sme mu vyslali jednu cifru a ma sa pripravit na dalsiu). Takto mu vysleme styri cifry = stvorciferne cislo v dvojkovej sustave, robot si ho skonvertuje do desiatkovej sustavy a posle druhemu robotovi. Vysielame mu cisla z rozsahu 0 az 9 (0 az 1001).
Prvy robot (prijem signalov)
Robot ma premennu kod, v ktorej ma na konci ulozene cislo, ktore posle druhemu robotovi. Najprv caka na zmenu farby monitora 8-krat, vzdy vyhodnoti o aku farbu sa jedna - ked je to biela, tak kod = kod*2, ked je to cierna, tak kod = kod*2+1, ked je to cervena, tak nespravi nic. Tento robot funguje velmi spolahlivo, dokonca ani nie je zavisly od dlzky blikania jednotlivych farieb - pokial je to viac ako cca 0.1 sekundy, tak je mu uplne jedno, ako dlho svietia - on iba caka na zmenu farby.
K tomuto robotovi patri prijmac.ev3
Druhy robot (reakcia)
Naucili sme robota tychto desat akcii (su cislovane od 1, aj ked v skutocnosti su 0, teda Pohyb vpred je 0, Pohyb vzad 1, atd):
Robot je rovnaky ako v Misii na Mars, len ma pripevnene dva medium servo motory - jeden ovlada velmi jednoduchy prst, druhy ovlada vyhadzovanie kocky. Chceli sme mu este pridat tvaricku z ulohy reklama (taky robot by vedel zastrasit nepriatelov uz len pohladom :)), ale zial vsetky styri porty boli uz obsadene.
K tomuto robotovi patri druhy_program.ev3
Bonus - WPF-C# aplikacia
Urobili sme WPF-C# aplikaciu, ktorou mozno ovladat na monitore blikanie. Staci do textbox-u zadat cislo, stlacit ok a aplikacia prislusne cislo zablika, pripadne zahlasi, ze pouzivatel zadal nespravnu hodnotu, pokial nebolo zadane cislo 0-9.
Videa
Prve video je riesenie tejto ulohy - predviedli sme na nom vsetkych desat pokynov. Poznamka k zvuku: Prvy robot vzdy, ked sa zmeni farba na monitore vyda zvuk "Click", ktory ale skoro nepocut. Ked precital vzor, vyda zvuk "Download", posle druhemu robotovi spravu a druhy robot povie cislo signalu.
Na druhom videu je nahrane blikanie znazornujuce jednotlive cisla (ktore cita prvy robot).
Tretie video je kratka ukazka toho, ako robot spolupracuje s aplikaciou. Kedze aplikacia sme dokoncili tyzden po tom, co bolo nakrutene prve video, tak druhy robot bol uz v tom case prestavany na reklamneho robota :). Tak sme nakrutili aspon kratke video, ako robot precita cisla 2, 7 a 9 a povie ich.
Spoločné poznámky: naštastie reklám bolo viac ako bojových robotov. Snáď nás teda v budúcnosti čaká viac komercie ako vojen. Ako vždy nás najviac potešili dôkladné kompletné riešenia v jednom i druhom prípade. Tvorivá úloha naznačila veľký potenciál. LEGO + roboty + tvorivosť patria k sebe a nie je to len tak - sadnúť a niečo spraviť. Možno je táto liga trochu iný formát, ale dúfam, že sa k tvorivým úlohám s otvoreným koncom ešte dostanete. Krásnym príkladom je kategória onStage v súťaži RoboCup Junior, ktorá spája techniku s umením - tancom, hudbou i výtvarným stvárnením a dáva súťažiacim možnosť vyšantiť sa po technickej i umeleckej stránke a harmonicky obe zladiť do jedného presvedčivého výsledku. Zároveň sú takéto úlohy príležitosťou na diskusiu, na vyjadrenie svojich myšlienok. V tomto kole sme väčšinou prideľovali body viac zhovievavo, najmä ak ste vynaložili primerané úsilie i keď výsledok nebol práve vhodný na nasadenie v armáde alebo vysielanie v prestávke hokejového finále na Jednotke. 2sestry: Výborne. V armáde by mali byť iba ženy. To by na seba potom vojaci iba mávali rukami a nanajvýš si pohadzovali LEGOvé kocky. Neberte to, prosím, ale ako cielenú pozvánku pre vaše budúce povolanie. :) A áno, ako naznačil jeden z rohodcov, zaujímavé by bolo zmerať, ako rýchlo program EV3 ešte dokáže zachytiť signál - ako veľmi môžete čas 0,1 s ešte skrátiť, aby prenos informácie prebehol správne. Zaujímavé by bolo zistiť, ako sa táto hodnota líši v rozličných programovacích jazykoch. Hodnotenie rozhodcov: 1. Za úlohu Vojna získavate 3b. Chválim pekne spísaný popis riešenia ako aj kvalitne odvedenú prácu. 2. Pekná konštrukcia, roboty robia, čo majú, vtipne vymyslené kódovanie. Jediná malá výhrada, že by to celé možno mohlo prebiehať aj rýchlejšie, veď stroje sú dosť rýchle, takže aj to blikanie by zvládli prečítať rýchlejšie ako človek. 3. Pekné. Páčili sa mi jednoznačné pohyby robota. Aj, že video reprezentovalo všetkých 10 pohybov. Popis ste mali ozaj rozsiahly.
Tato uloha sa nam velmi pacila a dobre sme sa pri nej zabavili :) Urobili sme dve reklamy:
1. reklama - Sprej proti nadche
K tejto reklame sme vyrobili roboticku tvaricku s dvoma large servo motormi, ktore ovladaju robotove usta, cim sme vedeli vyvorit rozne emocie. Dalej ma robot dva color senzory, ktore blikaju a jeden infracerveny senzor, ktorym ho ovladame. Lego dialkove ovladanie ma styri tlacitka, lave dolne sposobi, ze robot zaplace a oci mu blikaju namodro, prave dolne sposobi, ze robot si kychne, lave horne stlacime, ked mu dame ten "spravny liek" - robot sa usmeje a ozvu sa stastne zvuky, no a prave horne tlacitko sposobi, ze robot "otvori" usta a vyda dalsie stastne zvuky, ked je uz vylieceny :)
Program je velmi jednoduchy, robot sa v cykle pozera, ktore tlacitko je stlacene a podla toho rozosvieti color senzory, vyda zvuky a potoci motory a potom ich vrati do povodnej pozicie.
2. reklama - Tic-Tac
Robot 1 obsahuje 2 medium servo motory (jeden na pohyb dopredu a dozadu a druhy na otvaranie a zatvaranie robotickej ruky). Na podvozku ktory pohana medium servo motor je roboticka ruka (postavana podla navodu lego mindstorms robotical arm), ktora potiahne packu aby z automatu vypadol Tic Tac.
Robot 2 obsahuje 2 large servo motory (jeden na pohyb kolies a druhy na pohyb ramena). Robot ide dopredu az kym nepride k automatu a potom tam posunutim ramena vlozi mincu.
Robot 3 obsahuje 4 large servo motory (dva na pohyb kolies a dva na roboticke usta), 2 color senzory (na oci robota). Ma zakladny podvozok s dvoma kolesami a pomocnym kolieskom - gulickou a na tom ma s pomocou sivych obdlznikovych lego technic kociek upevnenu roboticku tvar, ktora vie vyjadrit rozne emocie.
K tejto ulohe sme zostrojili aj automat, ktory vydava cukriky. Na zaciatku nevieme potiahnut packu lebo je zasunuta v stene. Ked do otvoru vlozime mincu, packa sa posunie a mozeme ju vytiahnut. Ked ju vytiahneme, ziskame Tic Tac .
Programy:
S automatmi na potraviny býva niekedy zábava. Občas nevydávajú peniaze, inokedy zasa vypadnú dve veci namiesto jednej. Dúfam, že u vás ani u vašich robotov nikdy nevyvolajú závislosť a radšej si donesiete čerstvé jablko alebo hrušku z domu. 1. Za úlohu Reklamný robot získavate 3b. Páči sa mi, ze sa vam tema zapacila a vytvorili ste viacej reklam s robotmi v hlavnej úlohe:) 2. Skvelá reklama, aj roboty sa mi veľmi páčia. Taký sprej by sa mi aj hodil a na základe tejto reklamy by som ho istotne kúpil. 3. Veľmi sa mi páčil robot, ktorého ste vyrobili :)