Naučili se jej nastavit pro další práci. Nyní pojďme přímo ke kompilaci algoritmů pro robota pomocí jednoduchých příkazů.
Pokud dáváte přednost informacím ve formátu videonávodů, pak web obsahuje výukové video
Každý účinkující musí mít příkazový systém ( LYŽE — exekutorský příkazový systém). Exekutorský příkazový systém- sada všech příkazů, které může umělec provést. Jako příklad uveďme vycvičeného psa. Ví, jak vykonávat některé povely – „Sedni“, „Lehni“, „Další“ atd. Toto je její povelový systém.
Jednoduché příkazy robota
Náš robot má také příkazový systém. Dnes se podíváme na jednoduché příkazy robota. Je jich celkem 5:
- nahoru
- doleva
- že jo
- přemalovat
Výsledek provádění těchto příkazů je jasný z jejich názvu:
- nahoru— posuňte robota o jednu buňku nahoru
- dolů— posuňte robota o jednu buňku dolů
- doleva— posuňte robota o jednu buňku doleva
- že jo— posuňte robota o jednu buňku doprava
- přemalovat— přebarvit aktuální buňku (buňku, ve které se robot nachází).
Tyto příkazy lze psát z klávesnice nebo můžete použít horké klávesy (jejich stisknutím se příkazy vloží automaticky):
- nahoru - uniknout, nahoru (šipka nahoru)
- dolů - uniknout, dolů (šipka dolů)
- doleva - uniknout, doleva (šipka doleva)
- vpravo - Escape, Right (šipka vpravo)
- přemalovat - Útěk, Prostor (prostor)
Vezměte prosím na vědomí, že musíte vytočit požadovanou kombinaci horkých kláves ne obvyklým způsobem! Jsme zvyklí mačkat klávesy současně, ale tady jsou potřeba stiskněte postupně. Chcete-li například zadat příkaz nahoru, musíte stisknout klávesu Escape, uvolnit ji a poté stisknout šipku nahoru. Toto je třeba mít na paměti.
Nyní jsme připraveni napsat první algoritmus pro robota. Navrhuji začít s jednoduchým - nakreslete čtverec o straně 3 buněk. Jít!
Spouštíme Idol, to. Mohu začít psát program? Samozřejmě že ne! Nejsme! Pojďme na to. Doporučuji použít tento:
Nyní je vše připraveno. Začněme psát program. Dokud takhle vypadá
Smazat symbol "|" a nazvěte náš algoritmus "čtverec"
Navrhuji nakreslit čtverec ve směru hodinových ručiček. Nejprve namalujte aktuální buňku zadáním příkazu přemalovat. Pak uděláme krok doprava a znovu malujeme přes celu. A ještě jednou vykročte doprava a přemalujte.
Zkusme program spustit a uvidíme, co se stane. Stisknutím spustíte F9 nebo tlačítko na panelu nástrojů
Ve výsledku bychom měli vidět něco takového
Pokud takové okno robota nemáte, klikněte na panelu nástrojů na " Zobrazit okno robota“ nebo v nabídce Robot vyberte položku „ Zobrazit okno robota". Pokračujeme dále.
Nyní se přesuneme dolů a vybarvíme pravou stranu čtverce:
dolů
přemalovat
dolů
přemalovat
Pak jdeme doleva a namalujeme spodní okraj čtverce
doleva
přemalovat
doleva
přemalovat
Zbyla nám jedna nevybarvená buňka. Pojďme to namalovat
nahoru
přemalovat
Vše je připraveno! V důsledku toho náš program vypadá takto:
používat robota
alg Náměstí
brzy
přemalovat
že jo
přemalovat
že jo
přemalovat
dolů
přemalovat
dolů
přemalovat
Robotický umělec má příkazový systém. Zvážit jednoduché příkazy robota. Je jich celkem 5:
nahoru- posuňte robota o jednu buňku nahoru
dolů- posuňte robota o jednu buňku dolů
doleva- posuňte robota o jednu buňku doleva
že jo- posuňte robota o jednu buňku doprava
přemalovat
Cvičení 1. Nakreslete čtverec o straně 3 buněk.
Spuštění Kumir
Smazat symbol "|" a nazvěte náš algoritmus "čtverec" (vedle servisního slova alg napsat Náměstí)
přemalovat
přemalovat
přemalovat
Spusťte program a uvidíte, co se stane. Stisknutím spustíte F9 nebo tlačítko na panelu nástrojů Spusťte program
Pokud takové okno robota nemáte, klikněte na panelu nástrojů na " Zobrazit okno robota“ nebo v nabídce Robot vyberte položku „ Zobrazit okno robota". Pokračujeme dále:
dolů
přemalovat
dolů
přemalovat
Pak jdeme doleva a namalujeme spodní okraj čtverce
doleva
přemalovat
doleva
přemalovat
Zbyla nám jedna nevybarvená buňka. Pojďme to namalovat
nahoru
přemalovat
Vše je připraveno! V důsledku toho náš program vypadá takto:
používat robota
alg náměstí
přemalovat
přemalovat
přemalovat
přemalovat
přemalovat
přemalovat
přemalovat
přemalovat
Úkol 2.Použitím jednoduché příkazy robota, napsat program, který nakreslí písmeno P, R, W, W, T, N.
Podmíněná smyčka.
Robotický umělec má několik podmínek: nahoře volný dole volný levý volný pravý volný horní stěna spodní stěna
levá stěna pravá stěna
Úkol 3 .
kreslit svislá čára zleva doprava hranice pole používám smyčku s podmínkou. Zpočátku je robot v levém horním rohu.
Zdroj náš robotický program bude vypadat nějak takto:
používat robota
alg
brzy
přemalovat
nc, zatímco právo zdarma
že jo
přemalovat
kts
ošidit
V důsledku spuštění tohoto programu uvidíme následující obrázek:
Úkol 4.Napište program, který vytvoří rám kolem pracovního pole robota, bez ohledu na jeho velikost. Samozřejmě pomocí podmíněných smyček. Ve výsledku by to mělo dopadnout takto:
Celý proces se skládá ze dvou fází: montáže a programování. Sbírat dobrý robot je nutná znalost mechaniky. Chcete-li naprogramovat robota pro určité akce, musíte znát jazyk, kterému budete rozumět základní deska nebo programový blok. Školní znalosti z informatiky zde nestačí.
Kde získat materiál?
Nejprve se musíte rozhodnout, jak chcete robota sestavit: z hotových sad nebo vybrat materiály sami. Výhodou stavebnice je, že nemusíte jednotlivé díly shánět jednotlivě. Nejčastěji lze z jedné sady sestavit několik zařízení.
Struktura, která není sestavena z hotové sady, se nazývá otevřený systém. Má to také své výhody: váš robot bude individualita a vy sami budete moci vylepšit design. Ale určitě strávíte více času a úsilí.
Z čeho je robot vyroben?
Pouzdro - kovové nebo plastové "tělo", ke kterému jsou připojeny zbývající části. Každý robot má zdroj energie – baterie nebo akumulátor. Podle toho, jaký úkol bude robot vykonávat, se vybírají senzory: dokážou detekovat barvu a světlo a reagovat na dotyk.
Aby se robot pohyboval, potřebujete motory. "Hlava" celého mechanismu - základní desky nebo programového bloku. S jejich pomocí se robot připojí k počítači a dostane sadu úkolů.
Jak ho přimět, aby něco udělal?
Aby robot mohl provést nějakou akci, musíte vytvořit počítačový program. Složitost tohoto kroku závisí na montáži. Pokud je robot sestaven ze sady Lego Mindstorms nebo mBot, jejich software zvládnou i děti.
Pokud si stavíte robota sami, musíte se naučit základy programování a jazyk, ve kterém budete program psát, například C++.
Proč robot nemůže spustit program?
Když se dostane na nové místo, může sejít a spustit program nesprávně. Aby robot dělal vše správně, je nutné seřídit senzory. Například příliš jasné osvětlení může narušit adekvátní rozpoznání barev. V závislosti na povrchu, po kterém se robot pohybuje, se reguluje výkon motorů.
Mohu se ve škole naučit sestavovat a programovat?
Navzdory tomu, že robotika není součástí školních osnov, učitelé fyziky a informatiky mohou dítě naučit sestavovat a programovat. V Belgorodu mají některé školy kroužky, kde dělají roboty.
„Po hodinách s učiteli fyziky a informatiky se učíme programovat. Už víme, jak pracovat v LegoMindstorms a Robolab ( software pro roboty - cca. vyd.). Občas se také učíme, jak dělat 3D výkresy dílů,“ uvedli studenti Belgorod Engineering Youth Boarding Lyceum a účastníci RoboFest-2018. Anton Peršin A Dmitrij Černov.
Kde se kromě školy může stát robotníkem?
Inženýrská škola BelSU má třídu, kde se učí sestavovat a programovat roboty. V roce 2017 se v Belgorodu otevřelo Quantorium, kde se školáci učí robotice od devíti let.
Chcete-li se stát skutečným robotikem, můžete vstoupit na Fakultu robotiky. V Belgorodu zatím žádní takoví nejsou, ale v BSTU im. Shukhov má oddělení technické kybernetiky. Její studenti získávají ceny na celoruských soutěžích v robotice.
Dokážete se učit sami?
Ano. Na internetu je mnoho zdrojů, kde se můžete naučit, co postavit a jak naprogramovat robota.
Bude robot užitečný?
Lze jej přizpůsobit pro každodenní úkoly a udělat z něj pomocníka v domácnosti. Na internetu je mnoho příkladů, jak domácí vynálezci vytvářejí roboty na pečení palačinek nebo úklid bytu.
Jak potvrdit svůj úspěch ve vytváření robotů?
Zúčastněte se soutěží jako je RoboFest. Existují různé nominace v závislosti na věku a směru. V zásadě má každý typ robota dráhu, na které plní úkoly: zachycuje krychli nebo kreslí čáru. Existují i statické systémy, ve kterých rozhodčí hodnotí prezentaci projektu a fungování mechanismů.
Účastníci zpravidla přicházejí na soutěže s sestavené roboty a v přípravě tráví čas pouze kalibrací senzorů a nastavováním programu.
Redakce děkuje za pomoc při tvorbě materiálu účastníků RoboFestu-2018 Dmitrij Agafonov, Dmitrij Černov, Anton Peršin A Danila Migrina.
Natalia Malyihina
Robot řízení exekutora v systému KUMIRRobot existuje v určitém prostředí (obdélníkové kostkované pole). Mezi některými buňkami pole mohou být umístěny stěny. Některé buňky mohou být zastíněné (obr. 3.11).
Robot zabírá přesně jednu buňku pole.
Na příkazy nahoru, dolů, doleva a doprava se robot přesune do další buňky v určeném směru. Pokud je na cestě zeď, dojde k poruše - zobrazí se zpráva o nemožnosti provedení dalšího příkazu.
Na příkaz k přemalování robot přemaluje buňku, ve které stojí. Pokud již byla buňka přelakována, bude přelakována znovu, ačkoliv nedojde k žádným viditelným změnám.
Robot může provádět pouze správně napsané příkazy. Pokud místo příkazu zapíšete, pak Robot tomuto zadání nerozumí a okamžitě ohlásí chybu.
O chyby: 1 syntaktické; 2. logické
Popisy scén jsou uloženy v textové soubory speciální formát (formát .fil).
Aktuální- prostředí, ve kterém se robot nachází tento moment(včetně informací o poloze Robota).
Domov- prostředí, do kterého je Robot násilně umístěn na začátku provádění programu pomocí Robota.
Operační postup:
Dotázat se startovací prostředí podle zadání:
2. Uveďte dodavatele:
Nabídka Vložit → Použít robota
3. Napište algoritmus pro řešení problému.
4. Spusťte algoritmus (Menu Spustit → Spustit nepřetržitě / F9)
Systém příkazů vykonavatele Robota v systému KUMIR
tým |
Akce |
nahoru |
Robot se posune o 1 buňku nahoru |
dolů |
Robot se posune o 1 buňku dolů |
doleva |
Robot se posune o 1 buňku doleva |
že jo |
Robot se posune o 1 buňku doprava |
přemalovat |
Robot maluje buňku, ve které se nachází |
právo zdarma |
Robot kontroluje provedení příslušného jednoduchý podmínky |
ponechán volný |
↓ |
horní volný |
↓ |
dno volné |
↓ |
buňka je zastíněna |
↓ |
klec čistá |
↓ |
Cyklické algoritmy
Cyklus organizace opakujících se akcí, dokud není splněna určitá podmínka .
Tělo smyčky - soubor opakovatelných akcí.
podmínka - booleovský výraz (jednoduchý nebo komplexní (složený))
Typy cyklů:
1.Smyčka "Opakujte nkrát" 2. Smyčka "Sbohem"
nc n krát nashledanou
. . Tělo smyčky. . Tělo smyčky
kts kts
Příklad: nashledanou právo zdarma
Celkový pohled na smyčku "Opakujte nkrát:
OPAKOVÁNÍ n KRÁT
KONEC
kts
Celkový pohled na smyčku while:
KDYŽ DĚLAT
KONEC
Složené podmínky vytvořené z jednoho nebo více jednoduché podmínky a služební slova A NEBO NE.
Složený stav A a B(kde A, B jsou jednoduché podmínky) je splněna, když je splněna každá ze dvou jednoduchých podmínek v ní obsažených.
Ať A - nahoře zdarma V - zdarma vpravo pak složená podmínka A a B- zdarma nahoře A zdarma vpravo.
Složený stav A NEBO B je splněna, je-li splněna alespoň jedna ze dvou jednoduchých podmínek v něm obsažených: nahoře zdarma NEBO vpravo zdarma
Složený stav NE A- splněno, když podmínka A není splněna.
Příklad: Nechť A je stínovaná buňka (jednoduchá podmínka).
P Kontrola složeného stavu NE A:
a) A - hotovo, NOT A (NE šrafované) - nedokončeno.
b) A – nedokončeno, NE A (NEŠtínováno) – hotovo.
Příkaz větve
Větvení - forma organizace úkonů, při níž se v závislosti na splnění či nesplnění určité podmínky provádí buď ten či onen sled úkonů.
Obecný pohled na příkaz IF:
LI ŽE V OPAČNÉM PŘÍPADĚ
KONEC
V jazyce KUMIR:
Úplná větev: Částečná větev:
Li Že
Li Že
v opačném případě
všechny všechny
Pomocný algoritmus- algoritmus, který řeší nějaký dílčí problém hlavního problému.
V systému KUMIR jsou pomocné algoritmy zapsány na konci hlavního programu (po oficiální slovo ošidit) jsou volány ke spuštění v hlavním programu podle jména.
V průzkumy a úkoly
1. Zadejte všechny algoritmy tří příkazů, které přesunou robota z jeho původní pozice do buňky B.
Existuje algoritmus pro tento úkol, během kterého robot dělá:
a) dva kroky b) čtyři kroky; c) pět kroků; d) sedm kroků?
Péťa vytvořil algoritmus, který přenese robota z buňky A do buňky B s překreslenými buňkami. Co by měl Kolja s tímto algoritmem udělat, aby získal algoritmus, který vezme robota z B do A a vyplní stejné buňky?
7. Dva jsou známí pomocné algoritmy Robot
Nakreslete, co se stane, když robot provede následující základní algoritmy:
A) nc 5krát vzor_1 že jo; že jo; |
b) nc 7krát vzor_2 že jo; že jo |
PROTI) že jo; že jo; že jo nahoru; nahoru že jo; že jo; že jo dolů; dolů |
G) že jo; že jo že jo; že jo |
8. Vytvořte algoritmy, podle kterých bude robot malovat zadané buňky:
![](https://i0.wp.com/nenuda.ru/nuda/167/166713/166713_html_m7b310a4a.jpg)
![](https://i2.wp.com/nenuda.ru/nuda/167/166713/166713_html_m25c3291a.jpg)
10. Je známo, že někde napravo od Robota je zastíněná buňka.
S opusťte algoritmus, pod jehož kontrolou Robot vybarví řadu buněk až k zastíněné buňce a vrátí se do původní polohy.
11. Je známo, že Robot se nachází poblíž levého vchodu do horizontální chodby.
12. Je známo, že Robot je někde ve vodorovné chodbě. Žádná z cel chodby není vymalovaná.
Sestavte algoritmus, pod jehož kontrolou robot přetře všechny buňky této chodby a vrátí se do původní polohy.
13. V řadě deseti buněk napravo od robota jsou některé buňky stínované.
S opusťte algoritmus, který maluje buňky:
a) pod každou zastíněnou buňkou;
b) nad a pod každou zastíněnou buňkou.
14. Co lze říci o správnosti následujícího fragmentu algoritmu?
nashledanou buňka je zastíněna
LI právo zdarma ŽE
že jo; přemalovat
Na C
15. Napište program, pomocí kterého se Robot dostane do buňky B ve všech třech bludištích.
1
![](https://i1.wp.com/nenuda.ru/nuda/167/166713/166713_html_m153e0ebf.jpg)
Z adachi GIA
Chodba 1. Robot je někde ve vertikální chodbě. Žádná z cel chodby není vymalovaná. Vytvořte algoritmus, podle kterého robot překreslí všechny buňky této chodby a vrátí se do své původní polohy.
NA
NutnéDáno
chodba2. Robot je umístěn v horní buňce úzké vertikální chodby. Šířka chodby je jedna buňka, délka chodby může být libovolná.
Napište algoritmus pro robota, který vyplní všechny buňky uvnitř chodby a vrátí robota do původní polohy. Například pro výše uvedený obrázek by měl robot překreslit následující buňky (viz obrázek):
Na nekonečném poli je dlouhá vodorovná stěna. Délka zdi není známa. Robot je v jedné z klecí přímo nad zdí. Počáteční poloha robota je také neznámá. Jedna z možných pozic:
![](https://i2.wp.com/nenuda.ru/nuda/167/166713/166713_html_m143dfc65.png)
![](https://i0.wp.com/nenuda.ru/nuda/167/166713/166713_html_mcb4f12a.png)
Nutné
Dáno
Napište algoritmus pro robota, který vybarví všechny buňky nad a přiléhající ke stěně, bez ohledu na velikost stěny a počáteční polohu robota. Například pro daný výkres musí robot překreslit následující buňky:
Konečná pozice robota může být libovolná. Při provádění algoritmu by neměl být robot zničen.
Na nekonečném poli je dlouhá kolmá stěna. Délka zdi není známa. Robot je v jedné z klecí umístěných přímo napravo od zdi. Počáteční poloha robota je také neznámá. Jedna z možných pozic robota je znázorněna na obrázku (robot je označen písmenem „P“): Napište algoritmus pro práci, která maluje přes všechny buňky přiléhající ke zdi: vlevo, počínaje shora nenatřený a přes jeden; na pravé straně, počínaje zdola stínované a přes jednu. Robot musí přebarvit pouze buňky, které vyhovují tento stav. Například pro výše uvedený obrázek musí robot vyplnit následující buňky (viz obrázek): Konečné umístění robota může být libovolné. Algoritmus musí vyřešit problém pro libovolnou velikost stěny a jakoukoli platnou počáteční polohu robota. Při provádění algoritmu by se robot neměl zhroutit.
Napište algoritmus pro robota, který vybarví všechny buňky umístěné nalevo od svislé stěny a nad vodorovnou stěnou a přilehlé k nim. Robot musí přetírat pouze buňky, které splňují tuto podmínku. Například pro výše uvedený obrázek musí robot překreslit následující buňky (viz obrázek).
H napište algoritmus pro robota, který maluje buňky sousedící se stěnou, shora a zdola, počínaje zleva a přes jednu. Robot musí přetírat pouze buňky, které splňují tuto podmínku. Například pro daný obrázek a) musí robot překreslit následující buňky (viz obr. b).
Konečná pozice robota může být libovolná. Algoritmus musí vyřešit problém pro libovolnou velikost stěny a jakoukoli platnou počáteční polohu robota.
R | |||||
Na nekonečném poli je dlouhá kolmá stěna. Délka zdi není známa. Robot je v jedné z klecí umístěných přímo nalevo od zdi. Počáteční poloha robota je také neznámá. Jedna z možných poloh robota je znázorněna na obrázku (robot je označen písmenem „P“):
vše vlevo;
vpravo, počínaje shora nenatřeným a přes jeden.
B 1102_GIA2011
Na nekonečném poli jsou dvě vodorovné stěny. Délka stěn není známa. Vzdálenost mezi stěnami není známa. Robot je umístěn nad spodní stěnou v kleci umístěné na jejím levém okraji. Napište algoritmus pro robota, který vybarví všechny buňky umístěné nad spodní stěnou a pod horní stěnou a přilehlé k nim. Robot musí přetírat pouze buňky, které splňují tuto podmínku. Například pro výše uvedený výkres musí robot vyplnit následující buňky (viz obrázek):
Konečné umístění robota může být libovolné. Algoritmus musí vyřešit problém pro libovolnou velikost pole a jakékoli přípustné umístění stěn uvnitř obdélníkového pole. Při provádění algoritmu by se robot neměl zhroutit.
V 1103_GIA_2011
Na nekonečném poli je vodorovná stěna. Délka zdi není známa. Z pravého konce stěny se táhne dolů svislá stěna, rovněž neznámé délky. Robot je umístěn nad vodorovnou stěnou v kleci umístěné na jejím levém okraji. Obrázek ukazuje jeden z možné způsoby umístění zdí a Robota (Robot je označen písmenem „P“).
Napište algoritmus pro robota, který vybarví všechny buňky umístěné nad vodorovnou stěnou a napravo od svislé stěny a přilehlé k nim. Robot musí přetírat pouze buňky, které splňují tuto podmínku. Například pro výše uvedený obrázek musí robot překreslit následující buňky (viz obrázek).
Performer Robot existuje v obdélníkovém poli, rozděleném na buňky, mezi kterými mohou být stěny a vejde se zcela do jedné buňky. Robot se může pohybovat po poli, malovat buňky, měřit teplotu a záření. Robot nemůže projít stěnami, ale může zkontrolovat, zda je vedle něj zeď.
Příkazový systém umělce "Robot" zahrnuje:
- 5 příkazů, které způsobují akce robota (doleva, doprava, nahoru, dolů, přemalovat)
- 10 příkazů pro kontrolu stavu:
- 8 příkazů jako [vlevo/vpravo/dole/nahoře] [zeď/volno]
- 2 příkazy jako klec [stínovaný/čistý]
- 2 příkazy pro měření (teplota, záření)
akční příkazy
Zkontrolujte příkazy
tým | Popis |
log ponechán volný | Vrací ano, pokud se robot může pohybovat doleva, jinak ne. |
přihlášení vpravo je zdarma | Vrací ano, pokud se robot může pohybovat doprava, jinak ne. |
přihlásit top zdarma | Vrací ano, pokud se robot může posunout nahoru, jinak ne. |
přihlásit se níže volně | Vrací ano, pokud robot může jít dolů, jinak ne. |
log levá stěna | Vrací ano, pokud je nalevo od robota zeď, jinak ne. |
log pravá stěna | Vrací ano, pokud je napravo od robota zeď, jinak ne. |
log horní stěna | Vrací ano, pokud je nad robotem zeď, jinak ne. |
srub spodní stěna | Vrací ano, pokud je pod robotem zeď, jinak ne. |
buňka protokolu je stínovaná | Vrátí ano, pokud je buňka vyplněna, a ne, pokud buňka vyplněna není. |
přihlásit buňku vyčistit | Vrátí ne, pokud je buňka vyplněna, a ano, pokud není vyplněna. |
Příkazy pro měření
Nechť je požadováno přenést z buňky nalevo od stěny do buňky napravo od stěny:
Algoritmus může vypadat takto:
používat robota
příklad alg 1
brzy
. dolů
. že jo
. nahoru
ošidit
Pokud se pokusíte vést robota skrz zeď, dojde k selhání. Robot narazí do zdi a už nebude moci dále plnit příkazy.
Pojďme napsat algoritmus, podle kterého robot projde bludištěm z bodu A do bodu B:
používat robota
alg od A do B
brzy
. že jo
. nahoru ; nahoru ; že jo ; dolů; dolů; že jo
. nahoru ; nahoru ; že jo ; dolů; dolů; že jo
ošidit
Příkazy pro průchod každého úseku lze seskupit do jednoho řádku - to zkracuje záznam algoritmu a činí jej srozumitelnějším. Aby bylo možné psát příkazy na jeden řádek, musí být odděleny středníkem.