Logo Robotika.SK Faculty of Electrical Engineering and Information Technology, Slovak University of Technology  Logo Faculty of Mathematics, Physics and Informatics, Comenius University 

Team name: M-TEAM

About the team: Tím ZŠ v Marhani

Assignment: Food delivery

Program, ktorý sme spravili k tejto úlohe je pomerne dlhý. Robili sme ho po častiach a keď sme jednotlivé časti spojili do jedného programu, tak Lego Mindstorms EV3 prestalo reagovať. Preto sme prvýkrát v Robotickej lige použili My blocks. Vytvorili sme 3 vlastné bloky - zadavanie_kodu, vyber_adresy, novy_kod. Potom už program fungoval správne.

Náš robot obsahuje 2 veľké motory na pohon, 1 stredný motor, ktorý otvára a zatvára schránku na jedlo. Ďalej sme použili 4 senzory - 3 optické senzory a 1 dotykový senzor. 2 optické senzory využívame pri pohybe po čiernej páske - to je naša cesta. 1 optický snímač hľadá dom podľa zadanej adresy. 

Postup:

1. Po štarte programu sa na displeji zobrazí "ROZVOZ JEDLA". Pritom sa otvára schránka na jedlo.

2. Po úplnom otovrení sa na displeji zobrazí "Vlož objednávku!". Robot čaká, kým kuchár nevloží objednané jedlo. Schránka na jedlo má pohyblivú podlahu, ktorá sa dotýka dotykového snímača. Po vložení jedla sa podlaha zaťaží a robot vie, že jedlo bolo vložené - dotykový snímač bol stlačený. Na displeji zobrazí "OK". Počká 0,5 s - aby kuchár dal preč ruku a začína zatvárať schránku. 

3. Po zatvorení schránky štartuje My block "zadavanie_kodu". Náš kód je štvormiestny, na každom mieste može byť 0 alebo 1. Na displeji je  zobrazené "Zadaj kód" a 0000. Prvá nula je vo štvorčeku - to znamená, že najprv meníme prvú číslicu v kóde. Zmena sa robí tlačidlami hore a dole - stlačením tlačidla hore zmeníme číslicu na 1, stlačením tlačidla dole zmeníme číslicu na 0. Stlačením stredného tlačidla potvrdíme nastavenú číslicu a prechádzame na druhé miesto v kóde. Teraz je štvorčekom orámovaná druhá číslica - meníme druhú číslicu v kóde. Vložené číslice v kóde sú uložené v logických premenných 1 cislo, 2 cislo, 3 cislo, 4 cislo. Po potvrdení každej číslice v kóde sa ozve zvukový signál.

4. Po nastavení všetkých 4 miest v kóde a potvrdení stredným tlačidlom robot čaká na výber adresy doručenia jedla. Pripravili sme 5 domčekov, ktoré sa náchádzajú popri kľukatej ceste z čiernej izolačnej pásky. Máme teda Modrý, Červený, Žltý, Zelený a Čierny dom. Na displeji je "Vyber adresu" a pod sebou sú zobrazené adresy. Stláčaním tlačidiel hore a dole sa na dispeji pohybuje šípka - nastavíme ju na to mieste, kde ideme doručovať. Máme premennú riadok, do ktorej sa zapisuje číslo, ktoré hovorí o tom, ako  nízko je šípka na displeji. Presnejšie - ak je vybratý Modrý dom - šípka je 20 bodov od vrchu displeja a premenná riadok obsahuje číslo 20. Stlačením tlačidla dole sa šípka posunie nižšie - 40 bodov a do premennej riadok sa zapíše číslo 40. Postupne teda môže býť šípka 20, 40, 60, 80 a 100 bodov od vrchu displeja. Podľa tejto premennej riadok vieme teda aký dom bol vybratý. Ak je šípka v poslednom riadku a kuchár stlačí tlačidlo dole, tak šípka preskočí na prvý riadok. Podobne - ak je šípka v prvom riadku a kuchár stlačí šípku hore, tak šípka preskočí do posledného riadku - ku poslednému domčeku v zozname. Výber adresy skončí stlačením stredného tlačidla.

5. Potom nasleduje switch, v ktorom zisťujeme, že čo je v premennej riadok. Ak je vnútri číslo 20, tak do premennej adresa zapíšeme 2 - to je kód modrej farby, ak je vnútri 40, tak do premennej adresa zapíšeme 5 - to je kód červenej farby, ak je vnútri 60, tak do premennej adresa zapíšeme 3 - to je kód zelenej farby. A tak postupne vytvoríme vetvy vo switchi pre všetkých 5 adries - 5 farieb.

6. Ďalej už je to celkom jednoduhé - za výbere adresy začína doprava na správnu adresu. Pomocou 2 optických snímačov a 2 veľkých motorov sa robot pohybuje po ceste - čiernej páske. Teda vykonáva sa slučka - až kým bočný optický snímač nenájde takú farbu, ktorej kód zodpovedá kódu uloženému v premennej adresa. Ak ju nájde tak zastaví - sme na správnej adrese. 

7. Teraz sa spustí My block "novy_kod". Na displeji sa zobrazí "Zadaj kod". Kód už zadáva ten, ktorý objednával jedlo. Postup je rovnaký ako keď zadával kód kuchár. Akurát s tým rozdielom, že vložený kód sa ukladá do premenných 1 nove, 2 nove, 3 nove, 4 nove.   

8. V ďalšom kroku sa idú porovnávať kuchárovo a objednávateľovo heslo. Použijeme 7 blokov na porovnávanie logických premenných. Najprv porovnáme premenné 1 cislo a 1 nove, potom  2 cislo a 2 nove, potom 3 cislo a 3 nove, potom 4 cislo a 4 nove. Z každého porovnania získame buď pravdu - 1 alebo nepravdu - 0. Výsledky z prvého porovnania a z druhého porovnania znova porovnáme  - ak boli obidve vstupy 1, tak aj výstup bude 1. Takisto porovnáme výstupy z tretieho a štvrtého porovnania - ak sú obidve výstupy 1, tak aj výstup bude 1. Ostali už nám len dva výstupy - tie tiež porovnáme - ak sú obidve 1 - tak sú kódy rovnaké a jedlo sa môže vydať.

9. Ak je zadaný kód správny, tak na displeji zobrazíme obrázok Accept, schránka sa otvorí a robot čaká na vybratie jedla. Keď objednávajúci vyberie jedlo, tak sa snímač pod podlahou odľahčí a robot vie, že jedlo bolo vybraté. Na displeji sa zobrazí "Objednávka vydaná, návrat do kuchyne". Zatvorí sa schránka, robot sa na ceste otočí o 180 stupňov a vráti sa do kuchyne. Kuchyňa je vyznačená zelenou kockou po pravej strane cesty - keď ju robot nájde, tak vie, že je doma, znova sa otočí o 180 stupňov a je pripravený na ďalší rozvoz. 

10. Ak je zadaný kód nesprávny - na dispeji sa zobrazí obrázok Decline a po 2 sekundách môže objednávateľ zadať kód ešte raz. Aby nemohol triafať heslo do nekonečna, tak sme vyrobili premennú počet pokusov - je to vlastne počítadlo pokusov. Po každom zlom pokuse sa premenná zvýši o jedna - obsah premennej sa kontroluje vo switchi - ak sú už 3 zlé pokusy, tak robot to stopne, zobrazí na displeji "3 - krát vložené zlé heslo. Návrat do kuchyne". Otočí sa o 180 stupňov a po ceste sa vráti do kuchyne s nedoručeným jedlom. Po príchode do kuchyne sa znova otočí o 180 stupňov a na dispeji zobrazí "Objednávka nedoručená, zlé heslo". Otvorí sa schránka - aby kuchár mohol vybrať nedoručené jedlo. Po vybratí jedla sa schránka zatvorí a robot je pripravený na nový rozvoz.

Teraz je to už všetko ... :)    

Photos:

Videos:

Programs:

Rating:

Ku kvalite z Marhane ťažko niečo povedať. Páči sa mi, že displej riadiacej jednotky je na veľmi dobrom mieste a dobre viditeľný!

1. Ahojte! Veľmi pekné, originálne riešenie a prezentácia (páčili sa mi domčeky ;)). Prosím, do budúcna si dávajte pozor na dĺžku video-prezentácie, ktorá by mala byť cca 2-3min. Mali ste skvelý popis riešenia, takže tak dlhé video naozaj nebolo potrebné a ľahko by sa dalo "zosekať" do tých 3 minút.

2. Za riešenie úlohy rozvoz jedla získavate 3b. Je vidieť, že sa Vám úloha zapáčila, pretože ste sa veľmi pekne vyhrali s každým detailom. Pekná práca :)

3. Brutálna dokumentácia! oceňujem aj gramaticky a esteticky upravený text. Asi ste si dali záležať :)
Super nápad s farebným označením domov.
Nabudúce skúste nestrihať video až tak, skôr len zrýchliť niektoré zdĺhavé zábery. Lepšie tak vieme ohodnotiť funkciu programu v praxi.

4. Roboto robí všetko čo treba, pekné riešenie. Páči sa mi aj to, že ste riešenie pekne zdokumentovali.