Sarcini practice pentru robot. Portal educațional
Programul Idol
Robot interpret
Cine este interpretul robotului?
- Imaginează-ți un câmp în carouri (ca o foaie dintr-un caiet cu model în carouri) pe care se află un anumit obiect, pe care îl vom numi Robot. Folosind comenzi speciale, putem controla acest robot - mutați-l în jurul celulelor, pictați peste celule. Și în cele mai multe cazuri, sarcina noastră va fi să scriem un program pentru Robot, în care va picta anumite celule.
Configurarea mediului Idol pentru robotul interpret
- Programul Idol lansat arată așa.
Mediul de pornire al robotului
- Înainte de a începe execuția programului, este necesar să setați mediul de pornire pentru executorul Robot. Aceasta înseamnă plasarea Robotului în poziția dorită, așezarea pereților, vopsirea celulelor necesare etc. Acest pas este foarte important. Dacă îl ignorați, este posibil ca programul să nu funcționeze corect sau chiar să se blocheze.
presa Editați mediul
Robot interpret. Comenzi simple.
- sus
- jos
- stânga
- dreapta
- vopsea peste
Rezultatul executării acestor comenzi este clar din numele lor:
- sus - mutați robotul cu o celulă în sus
- jos - mutați robotul cu o celulă în jos
- stânga - mutați robotul cu o celulă la stânga
- dreapta - mutați robotul cu o celulă la dreapta
- paint over - pictează peste celula curentă (celula în care se află Robotul).
Exemplu de algoritm
- Mai întâi trebuie să scrieți fraza:
- utilizare Robot
Dacă știți câte celule trebuie vopsite, atunci algoritmul de soluție va fi următorul!
Sarcina nr. 1
- Scrieți un program pentru a rezolva următoarea problemă dacă știți câte celule trebuie să fie umbrite
Cicluri
- 1. Bucla cu contor folosit când se știe dinainte câte repetări trebuie făcute.
nc timp
…
kts
Aici trebuie să precizăm numărul de repetări (numărul) și comenzile care vor fi repetate. Comenzile care sunt repetate într-o buclă sunt apelate corpul ciclului.
Sarcina nr. 2
- Scrieți un program pentru a rezolva următoarea problemă folosind o buclă cu un contor
- 2. Bucla cu condiție - în timp ce condiția este adevărată, bucla este satisfăcută, dacă este falsă, nu este îndeplinită
- Artistul Robot are mai multe condiții
liber pe deasupra
liber de jos
lăsat liber
liber pe dreapta
perete de deasupra
zidul de dedesubt
peretele stâng
perete din dreapta
- Particule pe care le puteți folosi: NU, ȘI, SAU
Structura de buclă condiționată
nts pentru moment liber pe dreapta
dreapta
vopsea peste
kts
Sarcina nr. 3
- Scrieți un program pentru a rezolva următoarea problemă folosind o buclă condiționată:
Sarcina nr. 4
- Scrieți un program pentru a rezolva următoarea problemă folosind bucle condiționate:
Rezolvarea problemelor:
- 2. Robotul trebuie mutat din pozitia de start in pozitia finala, vopsindu-se peretii
Sarcina nr. 5
- Există un perete orizontal pe un câmp nesfârșit. Lungimea zidului este necunoscută. Robotul este situat deasupra peretelui, la capătul său din stânga. Figura arată locația robotului față de perete (robotul este desemnat cu litera „P”):
Răspuns la sarcina nr. 5
- nc nu încă (fund liber)
vopsea peste
Începutul ciclului (nc) și condiția (nu încă (liber de jos)) sunt scrise pe o singură linie.
Proiecta Dacă
- sus liber jos liber stânga liber dreapta liber
- Aceste comenzi pot fi utilizate împreună cu o condiție "Dacă", având următoarea formă:
- Dacă condiție Acea
- succesiune de comenzi
- De exemplu, pentru a muta o celulă la dreapta, dacă nu există niciun perete în dreapta, și pentru a picta celula, puteți utiliza următorul algoritm:
- dacă dreptul este liber atunci
- dreapta
- vopsea peste
Sarcina nr. 7
Lungimile zidurilor sunt necunoscute.
Răspuns la sarcina nr. 7
până când vârful este liber
vopsea peste
dreapta
în timp ce vârful este liber
dreapta
în timp ce este liber în dreapta
vopsea peste
dreapta
nu este încă liber pe dreapta
vopsea peste
jos
în timp ce este liber în dreapta
jos
nu este încă liber pe dreapta
vopsea peste
jos
Sarcina nr. 8
Lungimile zidurilor sunt necunoscute.
Fiecare zid are exact un pasaj, locația exactă a pasajului și lățimea acestuia sunt necunoscute.
Răspuns la sarcina nr. 8
în timp ce vârful este liber
până când vârful este liber
vopsea peste
în timp ce vârful este liber
până când vârful este liber
vopsea peste
până când fundul este liber
vopsea peste
în timp ce fundul este liber
până când fundul este liber
vopsea peste
Sarcina nr. 9
Lungimile zidurilor sunt necunoscute.
Fiecare zid are exact un pasaj, locația exactă a pasajului și lățimea acestuia sunt necunoscute.
Răspuns la sarcina nr. 9
în timp ce fundul este liber
până când fundul este liber
vopsea peste
în timp ce fundul este liber
până când fundul este liber
vopsea peste
până când vârful este liber
vopsea peste
în timp ce vârful este liber
până când vârful este liber
vopsea peste
Sarcina nr. 10
Lungimile zidurilor sunt necunoscute.
Fiecare zid are exact un pasaj, locația exactă a pasajului și lățimea acestuia sunt necunoscute.
Răspuns la sarcina nr. 10
în timp ce stânga este liberă
până când stânga este liberă
vopsea peste
în timp ce stânga este liberă
în timp ce stânga este liberă
vopsea peste
nu este încă liber pe dreapta
vopsea peste
în timp ce este liber în dreapta
nu este încă liber pe dreapta
vopsea peste
Sarcina nr. 11
Lungimile zidurilor sunt necunoscute.
Fiecare zid are exact un pasaj, locația exactă a pasajului și lățimea acestuia sunt necunoscute.
Răspuns la sarcina nr. 11
până când vârful este liber
până când vârful este liber
vopsea peste
în timp ce fundul este liber
până când vârful este liber
vopsea peste
Sarcina nr. 12
Există o scară pe câmpul nesfârșit. Scara coboară mai întâi de la dreapta la stânga, apoi de la stânga la dreapta. Înălțimea fiecărei trepte este de un pătrat, lățimea este de două pătrate. Robotul este situat în dreapta treptei de sus a scărilor. Numărul de pași care duc la stânga și numărul de pași care duc la dreapta sunt necunoscute. Figura arată una dintre modalitățile posibile de a poziționa scara și robotul (robotul este desemnat prin litera „P”).
Răspuns la sarcina nr. 12
Coborăm sub scări de la dreapta la stânga până ajungem la intersecția scărilor:
nts partea de jos este gratuită pentru moment
jos
stânga
stânga
Coborăm până la capătul scării care coboară, pictând celulele necesare pe parcurs:
nts nu este încă liber în stânga
vopsea peste
dreapta
vopsea peste
dreapta
jos
Răspuns la sarcina nr. 13
nts stânga este liberă deocamdată
vopsea peste
stânga
sus
nts nu este încă liber în stânga
vopsea peste
sus
Sarcina nr. 14
Pe un câmp infinit există un dreptunghi delimitat de pereți. Lungimile laturilor dreptunghiului sunt necunoscute. Robotul se află în interiorul unui dreptunghi. Figura arată una dintre modalitățile posibile de a poziționa pereții și robotul (robotul este desemnat prin litera „P”).
Răspuns la sarcina nr. 14
în timp ce este liber în dreapta
dreapta
în timp ce vârful este liber
sus
vopsea peste
nts stânga este liberă deocamdată
stânga
vopsea peste
Răspuns la sarcina nr. 15
în timp ce este liber în dreapta
vopsea peste
dreapta
în timp ce fundul este liber
vopsea peste
jos
vopsea peste
nu încă (fund liber)
stânga
jos
nu încă (liber în dreapta)
vopsea peste
jos
vopsea peste
dreapta
nu încă (gratuit deasupra)
vopsea peste
dreapta
Răspuns la sarcina nr. 16
nu este încă liber pe dreapta
vopsea peste
jos
vopsea peste
dreapta
până când vârful este liber
vopsea peste
dreapta
în timp ce vârful este liber
sus
în timp ce este liber în dreapta
vopsea peste
dreapta
nu este încă liber pe dreapta
vopsea peste
jos
Performer Robotul există într-un câmp dreptunghiular, împărțit în celule, între care pot exista pereți și se potrivește în întregime într-o singură celulă.
Robotul se poate mișca pe câmp, picta celule, poate măsura temperatura și radiația. Robotul nu poate trece prin pereți, dar poate verifica pentru a vedea dacă există un perete lângă el.
- Sistemul de comandă al interpretului „Robot” include:
- 5 comenzi care declanșează acțiunile Robotului (stânga, dreapta, sus, jos, pictură)
- 10 comenzi de verificare a stării:
- 8 comenzi de forma [stânga/dreapta/jos/sus] [perete/liber]
- 2 comenzi de tipul celulei [complete/gol]
2 comenzi de masurare (temperatura, radiatii)
Comenzi de acțiune
Verificați comenzile | Echipă |
Descriere | logul din stânga este gratuit |
Returnează da dacă robotul se poate deplasa la stânga, altfel nu. | log-ul din dreapta este gratuit |
Returnează da dacă robotul se poate deplasa la dreapta, altfel nu. | log de sus gratuit |
Returnează da dacă robotul se poate mișca în sus, altfel nu. | log mai jos gratuit |
Returnează da dacă robotul se poate mișca în jos, altfel nu. | buștean perete stâng |
Returnează da dacă există un perete în stânga robotului, în caz contrar nu. | buștean perete din dreapta |
Returnează da dacă există un perete în dreapta robotului, în caz contrar nu. | log pe peretele de sus |
Returnează da dacă există un perete deasupra robotului, în caz contrar nu. | bușteni sub perete |
Returnează da dacă există un perete sub robot, în caz contrar nu. | celula de jurnal este completată |
Returnează da dacă celula este completată și nu dacă celula nu este completată. | jurnal celula curata |
Returnează nu dacă celula este completată și da dacă celula nu este completată.
Comenzi de măsurare
Să fie necesar să se transfere de la celula din stânga peretelui la celula din dreapta peretelui:
Algoritmul ar putea arăta astfel:
utilizați robotul
alg exemplu 1
început
. jos
. dreapta
. sus
con
Dacă încercați să ghidați robotul prin perete, va avea loc un eșec. Robotul se va izbi de perete și nu va mai putea urma comenzile.
Algoritmul ar putea arăta astfel:
Să scriem un algoritm pentru un robot care trece printr-un labirint din punctul A în B:
alg exemplu 1
. jos
Alg de la A la B
. sus ; sus ; dreapta ; jos ; jos ; dreapta
. sus
Comenzile pentru trecerea fiecărei secțiuni pot fi grupate într-o singură linie - acest lucru scurtează înregistrarea algoritmului și îl face mai ușor de înțeles. Pentru a scrie comenzi pe o singură linie, acestea trebuie separate prin punct și virgulă.
Ea pentru munca in continuareși a învățat să întrebe. Acum să trecem direct la compilarea algoritmilor pentru Robot folosind comenzi simple.
Dacă preferați informații în format video tutorial, atunci există un tutorial video pe site
Orice interpret trebuie să aibă un sistem de comandă ( SCHI — sistem de comandă a executorului). Sistem de comandă a executorului- setul tuturor comenzilor pe care executantul le poate executa. Ca exemplu, luați în considerare un câine dresat. Ea știe cum să execute unele comenzi - „Stați”, „Întindeți”, „În apropiere”, etc. Acesta este sistemul ei de comenzi.
Comenzi simple ale robotului
Robotul nostru are și un sistem de comandă. Astăzi ne vom uita la comenzi simple Robot. Sunt 5 în total:
- sus
- stânga
- dreapta
- vopsea peste
Rezultatul executării acestor comenzi este clar din numele lor:
- sus— mutați Robotul cu o celulă în sus
- jos— mutați robotul cu o celulă în jos
- stânga— mutați robotul cu o celulă la stânga
- dreapta— mutați robotul cu o celulă la dreapta
- vopsea peste— pictați peste celula curentă (celula în care se află robotul).
Aceste comenzi pot fi scrise de la tastatură, sau puteți folosi taste rapide (prin apăsarea lor, comenzile vor fi inserate automat):
- sus - Escape, Up (săgeată sus)
- jos - Escape, Down (săgeată în jos)
- stânga - Escape, Left (săgeată la stânga)
- dreapta - Escape, Right (săgeata dreapta)
- pictează peste – Evadare, Spațiu (spațiu)
Vă rugăm să rețineți că trebuie să introduceți combinația de taste rapide dorite nu intr-un fel cu care suntem obisnuiti! Suntem obișnuiți să apăsăm simultan tastele, dar aici avem nevoie de ele apăsați secvențial. De exemplu, pentru a introduce comanda sus, trebuie să apăsați Escape, să o eliberați și apoi să apăsați săgeata sus. Acest lucru trebuie amintit.
Acum suntem gata să scriem primul algoritm pentru Robot. Vă sugerez să începeți cu unul simplu - desenați un pătrat cu o latură de 3 celule. Merge!
Hai să lansăm Idol, el. Pot începe să scriu un program? Desigur că nu! Nu au fost! Hai să o facem. Vă sugerez să utilizați acesta:
Acum totul este gata. Să începem să scriem programul. În timp ce ea arată așa
Eliminarea simbolului „|”. și numiți algoritmul nostru „Pătrat”
Vă sugerez să desenați un pătrat, mișcându-se în sensul acelor de ceasornic. Mai întâi, să pictăm celula curentă dând comanda vopsea peste. Apoi facem un pas spre dreapta și pictăm din nou peste celulă. Și încă o dată pas la dreapta și pictează.
Să încercăm să rulăm programul și să vedem ce se întâmplă. Pentru a începe apăsați F9 sau un buton din bara de instrumente
Ca rezultat, ar trebui să vedem o imagine ca aceasta
Dacă o astfel de fereastră Robot nu apare pentru dvs., atunci pe bara de instrumente faceți clic pe „ Afișați fereastra robotului„sau în meniul Robot selectați „ Afișați fereastra robotului". Să continuăm mai departe.
Acum ne vom deplasa în jos și ne vom picta partea dreapta pătrat:
jos
vopsea peste
jos
vopsea peste
Apoi să mergem la stânga, pictând marginea de jos a pătratului
stânga
vopsea peste
stânga
vopsea peste
Mai avem o celulă nevopsită. Hai să o vopsim
sus
vopsea peste
Totul este gata! Ca urmare, programul nostru arată astfel:
utilizați robotul
alg Pătrat
început
vopsea peste
dreapta
vopsea peste
dreapta
vopsea peste
jos
vopsea peste
jos
vopsea peste
Întregul proces constă din două etape: asamblare și programare. Pentru a asambla un robot bun, aveți nevoie de cunoștințe de mecanică. Pentru a programa un robot să efectueze anumite acțiuni, trebuie să cunoașteți un limbaj pe care îl va înțelege placa de baza sau bloc software. Cunoștințele școlare de informatică nu sunt suficiente aici.
De unde pot lua materialul?
Mai întâi trebuie să decideți cum doriți să asamblați robotul: din truse gata făcute sau selectând singur materialele. Avantajul setului este că nu trebuie să căutați piesele separat. Cel mai adesea, mai multe dispozitive pot fi asamblate dintr-un set.
Se numește o structură neasamblată dintr-un kit gata făcut sistem deschis. Are și avantajele sale: robotul tău va avea propria personalitate, iar tu însuți vei putea îmbunătăți designul. Dar cu siguranță vei petrece mai mult timp și efort.
În ce constă un robot?
Carcasa - metal sau plastic "corp", de care sunt atașate părțile rămase. Fiecare robot are o sursă de energie - baterii sau acumulator. În funcție de sarcina pe care o va îndeplini robotul, se aleg senzori: aceștia pot detecta culoarea și lumina și pot răspunde la atingere.
Pentru a face robotul să se miște, veți avea nevoie de motoare. "Cap"întregul mecanism - placa de sistem sau unitatea software. Cu ajutorul lor, robotul se conectează la un computer și primește un set de sarcini.
Cum pot să-l fac să facă ceva?
Pentru ca robotul să efectueze o anumită acțiune, trebuie să creați program de calculator. Complexitatea acestei etape depinde de asamblare. Dacă robotul este asamblat dintr-un set Lego Mindstorms sau mBot, atunci chiar și copiii își pot gestiona software-ul.
Dacă construiți singur robotul, va trebui să învățați elementele de bază ale programării și limbajul în care veți scrie programul, cum ar fi C++.
De ce ar putea un robot să nu execute un program?
Când ajunge într-un loc nou, poate deveni confuz și poate executa incorect programul. Pentru ca robotul să facă totul corect, senzorii trebuie reglați. De exemplu, iluminarea prea puternică vă poate împiedica să recunoașteți culorile în mod adecvat. In functie de suprafata pe care se misca robotul se regleaza puterea motoarelor.
Puteți învăța să asamblați și să programați la școală?
În ciuda faptului că robotica nu este inclusă în programa școlară, profesorii de fizică și informatică pot învăța un copil cum să asambleze și să programeze. În Belgorod, unele școli au cluburi în care fac roboți.
„După lecții cu profesori de fizică și informatică, învățăm să programăm. Știm deja cum să lucrăm în LegoMindstorms și Robolab ( software pentru roboți - aprox. auto). De asemenea, uneori învățăm să facem desene 3D ale pieselor”, au spus studenții de la Belgorod Engineering Youth Boarding Lyceum și participanții la RoboFest 2018. Anton PershinȘi Dmitri Cernov.
Unde, în afară de școală, poți deveni robotician?
La școala de ingineri BelSU există o clasă unde se învață cum să asamblați și să programați roboți. În 2017, Quantorium s-a deschis la Belgorod, unde robotica este predată elevilor de la vârsta de nouă ani.
Pentru a deveni un robotist adevărat, te poți înscrie la departamentul de robotică. În Belgorod nu există încă astfel de oameni, dar la BSTU. Şuhov are un departament de cibernetică tehnică. Elevii ei primesc premii la competiții de robotică din toată Rusia.
Este posibil să înveți pe cont propriu?
Da. Există multe resurse pe Internet unde poți învăța ce să construiești și cum să programezi un robot.
Va fi util robotul?
Poate fi adaptat pentru sarcinile de zi cu zi și transformat într-un asistent în casă. Există multe exemple pe Internet despre cum inventatorii de acasă creează roboți pentru coacerea clătitelor sau pentru curățarea unui apartament.
Cum îți poți dovedi succesul în crearea roboților?
Participați la competiții precum RoboFest. În funcție de vârstă și direcție, există nominalizări diferite. Practic, fiecare tip de robot are o pistă pe care îndeplinește sarcini: apucă un cub sau trage o linie. Există și sisteme statice în care judecătorii evaluează prezentarea proiectului și funcționarea mecanismelor.
De regulă, participanții vin la competiții cu roboți asamblați iar în timpul pregătirii ei petrec timp doar pentru calibrarea senzorilor și reglarea programului.
Redactorii doresc să mulțumească participanților la RoboFest 2018 pentru asistența acordată în crearea materialului. Dmitri Agafonov, Dmitri Cernov, Anton PershinaȘi Danila Migrina.
Natalia Malykhina