Să învățăm programare jucându ne în Scratch - pacosv.ro Scratch_Mihai Agape.pdf · Scratch...

of 63 /63
Palatul Copiilor Drobeta Turnu Severin Filiala Orșova Să învățăm programare jucându-ne în Scratch Curs pentru începători Auxiliar curricular Prof. Mihai Agape Orșova 2016

Embed Size (px)

Transcript of Să învățăm programare jucându ne în Scratch - pacosv.ro Scratch_Mihai Agape.pdf · Scratch...

  • Palatul Copiilor Drobeta Turnu Severin

    Filiala Orova

    S nvm programare

    jucndu-ne n Scratch

    Curs pentru nceptori

    Auxiliar curricular

    Prof. Mihai Agape

    Orova

    2016

  • S nvm programare jucndu-ne n Scratch

    Pagina 1 din 61

    Cuprins

    CUVNT NAINTE .......................................................................................................................................... 3

    1 SCURT INTRODUCERE N LIMBAJUL SCRATCH ..................................................................................... 4

    1.1 CE ESTE SCRATCH? ......................................................................................................................................... 4

    1.2 EDITORUL SCRATCH 2.0 - ONLINE SAU OFFLINE? .................................................................................................. 4

    1.3 INTERFAA SCRATCH 2.0 ................................................................................................................................. 4

    1.4 SALUT! ......................................................................................................................................................... 6

    1.5 REMIXEAZ ................................................................................................................................................... 6

    2 MICARE I SUNET ............................................................................................................................... 7

    2.1 INTRODUCERE ................................................................................................................................................ 7

    2.2 TUTORIAL 1: S FACEM PUIN MICARE ............................................................................................................ 7

    2.3 TUTORIAL 2: ADUGAREA UNUI SUNET ............................................................................................................... 8

    2.4 TUTORIAL 3: E TIMPUL PENTRU DANS ................................................................................................................. 8

    2.5 TRANSFER ..................................................................................................................................................... 9

    3 EVENIMENTE I CONTROL .................................................................................................................. 10

    3.1 INTRODUCERE .............................................................................................................................................. 10

    3.2 TUTORIAL 1: IAR I IAR .................................................................................................................................. 10

    3.3 TUTORIAL 2: STEAGUL VERDE ......................................................................................................................... 11

    3.4 TRANSFER ................................................................................................................................................... 12

    4 S NE JUCM CU CULORILE ................................................................................................................ 13

    4.1 INTRODUCERE .............................................................................................................................................. 13

    4.2 TUTORIAL 1: MODIFICAREA CULORII ................................................................................................................ 13

    4.3 TUTORIAL 2: CONTROLAREA ACIUNILOR DIN TASTE ............................................................................................ 14

    4.4 TRANSFER ................................................................................................................................................... 15

    5 CREEAZ-I PROPRIILE PERSONAJE ..................................................................................................... 16

    5.1 INTRODUCERE .............................................................................................................................................. 16

    5.2 TUTORIAL: CREAREA UNUI PERSONAJ ............................................................................................................... 16

    5.3 TRANSFER ................................................................................................................................................... 17

    6 VORBIRE I GNDIRE .......................................................................................................................... 18

    6.1 INTRODUCERE .............................................................................................................................................. 18

    6.2 TUTORIAL: VORBIREA .................................................................................................................................... 18

    6.3 TRANSFER ................................................................................................................................................... 19

    8 SUNETE, VOCI I MUZIC .................................................................................................................... 20

    8.1 INTRODUCERE .............................................................................................................................................. 20

    8.2 TUTORIAL: SUNETE, VOCI, MUZIC .................................................................................................................. 20

    8.3 TRANSFER ................................................................................................................................................... 21

    9 CREAREA ANIMAIILOR ...................................................................................................................... 22

    9.1 INTRODUCERE .............................................................................................................................................. 22

    9.2 TUTORIAL: CREEAZ ANIMAII ........................................................................................................................ 22

    9.3 TRANSFER ................................................................................................................................................... 23

    10 ROBOT CARE MERGE LA INT ........................................................................................................... 24

  • S nvm programare jucndu-ne n Scratch

    Pagina 2 din 61

    10.1 INIIALIZAREA POZIIEI I ORIENTRII PERSONAJULUI PE SCEN.......................................................................... 24

    10.2 DEPLASEAZ-L PE KAREL LA INT ............................................................................................................... 24

    10.3 LIMITEAZ VITEZA .................................................................................................................................... 25

    10.4 TREI INTE ............................................................................................................................................. 27

    10.5 DRAWBOT.............................................................................................................................................. 31

    10.6 INT MOBIL ........................................................................................................................................ 37

    11 ROBOT CARE EVIT OBSTACOLELE ...................................................................................................... 38

    11.1 CE ESTE UN ROBOT CARE EVIT OBSTACOLELE? .............................................................................................. 38

    11.2 SENZORI TACTILI ...................................................................................................................................... 39

    11.3 EVITAREA OBSTACOLELOR ......................................................................................................................... 40

    11.4 MAI MULTE TESTE, MAI MULT DISTRACIE ................................................................................................... 40

    11.5 DOI ROBOI PE SCEN .............................................................................................................................. 42

    12 ROBOT CARE URMRETE PERETELE ................................................................................................... 43

    12.1 CE ESTE UN ROBOT CARE URMRETE PERETELE? ........................................................................................... 43

    12.2 SENZORUL DE DISTAN ............................................................................................................................ 43

    12.3 ROBOT CARE URMRETE PERETELE CU AJUTORUL UNUI SINGUR SENZOR ............................................................ 45

    12.4 ROBOT CARE URMRETE PERETELE CU AJUTORUL A DOI SENZORI ...................................................................... 46

    13 ROBOT URMRITOR DE LINIE ............................................................................................................. 48

    13.1 CE ESTE UN ROBOT CARE URMRETE LINIA? ................................................................................................. 48

    13.2 ROBOT CARE URMRETE LINIA CU AJUTORUL A DOI SENZORI ........................................................................... 49

    13.3 ROBOT URMRITOR DE LINIE CU 12 SENZORI ................................................................................................. 50

    14 ROBOT CARE SOLUIONEAZ LABIRINTUL DIN LINII ............................................................................ 53

    14.1 INTRODUCERE N LABIRINT ......................................................................................................................... 53

    14.2 REZOLVAREA LABIRINTULUI - PROVOCARE ..................................................................................................... 54

    14.3 SOLUIE PENTRU REZOLVAREA LABIRINTULUI ................................................................................................. 54

    14.4 SOLUIE MBUNTIT PENTRU REZOLVAREA LABIRINTULUI ............................................................................ 54

    BIBLIOGRAFIE .............................................................................................................................................. 56

    LIST DE FIGURI .......................................................................................................................................... 57

    ANEXA A - REGULAMENTUL CONCURSULUI INTERNAIONAL DE PROGRAMARE N SCRATCH SCRIPT ............ 59

  • S nvm programare jucndu-ne n Scratch

    Pagina 3 din 61

    Cuvnt nainte Bine ai venit la cursul S nvm programare jucndu-ne n Scratch, unde te vei juca

    pentru a nva s programezi.

    Scratch este un limbaj de programare destinat copiilor, dezvoltat de grupul Lifelong

    Kindergarten din cadrul MIT Media Lab. Scratch este un mediu de programare grafic

    prietenos, n care poi s creezi animaii, jocuri, muzic, simulri, poveti

    Proiectele Scratch sunt realizate din obiecte numite personaje. Poi modifica modul n care

    arat un personaj folosind diferite costume. Poi face un personaj s arate ca o persoan, un

    tren, un fluture sau orice altceva. Poi folosi orice imagine ca i costum: poi desena o

    imagine n Editorul Grafic, o poi importa de pe hard disc sau de pe un site web i chiar poi

    s-o capturezi cu camera de pe laptop. Poi s-i dai instruciuni personajului, spunndu-i s se

    deplaseze, s cnte, s vorbeasc sau s reacioneze la celelalte personaje. Pentru a-i spune

    personajului ce s fac, mbini mpreun blocuri grafice n stive numite scripturi. Cnd

    clichezi pe un script, Scratch ruleaz blocurile din script ncepnd de la partea de sus ctre

    partea de jos.

    n acest curs introductiv vei nva rapid cum s foloseti cteva dintre posibilitile oferite

    de Scratch. n prima parte vei nva lucrurile de baz precum: micarea personajelor,

    adugarea sunetelor, schimbarea culorilor, controlarea aciunilor cu mouse-ul i tastatura i

    crearea propriilor personaje. n partea a doua vei nva s programezi diferite

    comportamente pentru robotul Karel.

    Sloganul cursului nostru este:

    - Exploreaz proiectele altor utilizatori

    Scratch de pe site-ul oficial Scratch.

    - Proiecteaz concepe proiecte

    Scratch scriind scenarii, crend

    personaje i decoruri.

    - Programeaz scrie scripturile pentru

    personaje i decoruri.

    - mprtete proiectul pe site-ul

    oficial Scratch.

    Prezentul auxiliar curricular are la baz dou lucrri ale subsemnatului: auxiliarul curricular

    Scratch Curs pentru nceptori 2011 [1] i cursul Robo Scratch [2], publicat pe platforma

    Moodle a portalului Scientix. Cursul este tradus n toate limbile oficiale ale UE, versiunea n

    englez aflndu-se la http://moodle.scientix.eu/course/view.php?id=161.

    Mihai Agape

    http://moodle.scientix.eu/course/view.php?id=161

  • S nvm programare jucndu-ne n Scratch

    Pagina 4 din 61

    1 Scurt introducere n limbajul Scratch Obiectiv: s foloseti corect denumirile principalelor elemente ale interfeei programului

    Scratch 2.0.

    1.1 Ce este Scratch?

    Scratch este un limbaj de programare elaborat de Lifelong Kindergarten Group din cadrul

    MIT Media Lab i oferit cu titlu gratuit. Adresa site-ului oficial Scratch este

    http://scratch.mit.edu/.

    Cu ajutorul lui Scratch, programarea animaiilor interactive, povetilor, jocurilor, graficii,

    simulrilor etc. devine o joac de copil. Pentru a-i face o idee asupra tipului de proiecte pe

    care le poi realiza cu Scratch, te invit s arunci o privire pe pagina cu proiecte pentru

    nceptori a site-ului oficial Scratch, la adresa http://scratch.mit.edu/starter_projects/.

    Pentru a rula un proiect, clicheaz pe steagul verde.

    1.2 Editorul Scratch 2.0 - online sau offline?

    n cadrul acestui curs, vei scrie programe folosind versiunea Scratch 2.0. Poi folosi editorul

    online sau offline. i recomand folosirea variantei online.

    1.2.1 Editorul online

    Scratch 2.0 poate rula n browser, nefiind necesar instalarea sa pe computerul tu. Pentru a

    folosi editorul online, acceseaz site-ul Scratch, http://scratch.mit.edu/, apoi clicheaz pe

    butonul Creeaz, sau acceseaz direct editorul online Scratch, la adresa

    http://scratch.mit.edu/projects/editor/?tip_bar=getStarted.

    Poi ncepe s scrii programe Scratch cu ajutorul leciei Primii pai cu Scratch (Getting

    Started with Scratch), care poate fi accesat apsnd butonul Sfaturi.

    Dac doreti s-i salvezi programele n cloud, trebuie s i creezi un cont Scratch. Pentru

    aceasta, acceseaz site-ul Scratch, http://scratch.mit.edu/ i clicheaz pe butonul Altur-te

    Scratch.

    1.2.2 Editorul offline

    Dac nu vrei s foloseti editorul online Scratch 2.0, poi instala editorul offline Scratch 2.0

    pe calculatorul tu. n acest scop, urmeaz instruciunile de pe pagina corespunztoare, de la

    adresa http://scratch.mit.edu/scratch2download/.

    1.3 Interfaa Scratch 2.0

    n continuare, vei nva principalele elemente ale interfeei Scratch 2.0 (Figura 1).

    1.3.1 Paleta de blocuri

    Pentru a programa un personaj, trebuie s tragi blocuri din paleta de blocuri n zona de

    scripturi. Blocurile sunt grupate n zece categorii: Micare, Aspect, Sunet, Creion, Date,

    Evenimente, Control, Detecie, Operatori i Mai Multe Blocuri.

    http://scratch.mit.edu/http://scratch.mit.edu/starter_projects/http://scratch.mit.edu/http://scratch.mit.edu/projects/editor/?tip_bar=getStartedhttp://scratch.mit.edu/http://scratch.mit.edu/scratch2download/

  • S nvm programare jucndu-ne n Scratch

    Pagina 5 din 61

    Pentru a testa un bloc, clicheaz pe el. Dac vrei s tii ce face respectivul bloc, f clic

    dreapta pe el i selecteaz Ajutor din meniul contextual.

    1.3.2 Zona de scripturi

    Blocurile din paleta cu blocuri sunt plasate n zona de scripturi, fiind combinate n scripturi

    (programe) prin simpla mbinare a blocurilor sub forma unei stive. Dac clichezi oriunde pe

    stiv, scriptul va fi executat de sus n jos.

    Cnd tragi un bloc n zona de scripturi, o zon evideniat cu alb i indic locul unde poi

    plasa blocul pentru a forma o conexiune corect cu un alt bloc. Pentru a deplasa o stiv,

    selecteaz-o cu ajutorul blocului din vrf. Dac scoi un bloc din mijlocul unei stive, toate

    blocurile aflate sub acesta se vor deplasa odat cu el.

    Pentru a elimina un bloc, trage-l n paleta de blocuri. O alt modalitate de a terge un bloc,

    este de a face clic dreapta pe el i a selecta terge din meniul contextual.

    Figura 1 Interfaa Scratch 2.0

    1.3.3 Scena

    Scena este spaiul n care proiectele tale prind via. Personajele se deplaseaz i

    interacioneaz unele cu altele pe scen. Pentru a executa un proiect, clicheaz pe steagul

    verde. Pentru a-l ntrerupe, clicheaz pe butonul rou.

    Scena (Figura 2) are o lime de 480 uniti i o nlime de 360 de uniti. Mijlocul scenei

    are coordonatele (x, y) = (0, 0).

    1.3.4 Lista cu personaje

    Lista cu personaje afieaz miniaturi pentru toate personajele dintr-un proiect. Numele

    fiecrui personaj apare sub miniatura sa.

    Pentru a vedea i modifica scripturile, costumele i sunetele unui personaj, clicheaz pe

    miniatura acestuia din lista cu personaje.

  • S nvm programare jucndu-ne n Scratch

    Pagina 6 din 61

    Figura 2 Dimensiunile scenei

    1.3.5 Rucsacul

    Rucsacul permite utilizatorilor s fac schimb de costume, personaje, sunete i scripturi ntre

    proiecte (s plaseze elemente dintr-un proiect n rucsac, apoi din rucsac n alt proiect).

    Mai multe detalii gseti pe pagina wiki Interfaa Utilizatorului Scratch (Scratch User

    Interface), la adresa http://wiki.scratch.mit.edu/wiki/Scratch_User_Interface.

    1.4 Salut!

    Bnuiesc c deja te-ai nscris pe site-ul Scratch. Dac vrei s remixezi (i.e. s creezi un remix)

    proiectele altora, s le modifici i s le salvezi ca pe propriile proiecte, trebuie s fii nscris pe

    site-ul Scratch.

    Remixeaz programul Salut!, https://scratch.mit.edu/projects/102736099/#editor. Dac nu

    vrei s foloseti editorul online, poi descrca fiierul programului i s lucrezi cu editorul

    offline.

    Arunc o privire pe scripturi i modific-le cum doreti.

    1.5 Remixeaz

    Exploreaz tipurile de proiecte gzduite pe site-ul oficial Scratch, care poate fi accesat la

    adresa https://scratch.mit.edu/ i ruleaz-le. O s-i faci o idee despre ceea ce poi face cu

    Scratch.

    http://wiki.scratch.mit.edu/wiki/Scratch_User_Interfacehttps://scratch.mit.edu/projects/102736099/#editorhttps://scratch.mit.edu/

  • S nvm programare jucndu-ne n Scratch

    Pagina 7 din 61

    2 Micare i sunet Obiectiv: s programezi personajul s se mite la stnga i la dreapta i s adaugi sunete.

    2.1 Introducere

    n aceast lecie vei folosi elementele de programare de baz (Figura 3) pentru mica un

    personaj nainte sau napoi. Vei nva cum s selectezi blocurile de programare din diferite

    meniuri (ncepnd cu meniul albastru pentru Micare) i cum s execui o aciune cu un

    simplu clic. Apoi vei aduga cte un sunet (de tob) de fiecare dat cnd are loc o micare.

    Vei nva cum s selectezi blocurile pentru meniul Sunete i cum s interconectezi 2 blocuri

    pentru a le executa unul dup cellalt. Blocul cnt la toba () pentru () timpi i permite s

    selectezi tipul de sunet i durata sunetului.

    Figura 3 Micare i sunet

    2.2 Tutorial 1: S facem puin micare

    Trage un bloc nainteaz (10) pai din meniul Micare n zona de scripturi.

    Clicheaz pe blocul nainteaz (10) pai pentru a mica personajul la dreapta.

    Modific numrul n unul negativ i personajul se va mica la stnga.

    Repet aciunile din tutorial. Experimenteaz cu mrimea i direcia pailor.

    Figura 4 Blocul nainteaz () pai

    Tutorialul video poate fi urmrit la adresa https://youtu.be/yivonrobat8. Mai jos este dat

    transcriptul filmului.

    Transcriptul tutorialului video S facem puin micare

    1) n acest exerciiu vei nva s deplasezi personajul folosind blocul nainteaz (10) pai

    din meniul Micare.

    2) Trage blocul nainteaz (10) pai din meniul Micare, n zona de scripturi.

    3) Dac clichezi pe blocul nainteaz (10) pai, observi c personajul se mic nainte.

    4) De fiecare dat cnd clichezi pe blocul nainteaz (10) pai, pisica nainteaz 10 pai.

    5) Poi modifica numrul de pai n unul negativ, ceea ce va face pisica s se deplaseze

    napoi.

    6) De fiecare dat cnd clichezi pe blocul nainteaz (10) pai, pisica se mic 10 pai napoi.

    https://youtu.be/yivonrobat8

  • S nvm programare jucndu-ne n Scratch

    Pagina 8 din 61

    7) n continuare vei experimenta cu numrul pailor:

    a) Modific numrul de pai la 50 i clicheaz pe bloc. Personajul se deplaseaz nainte

    pe o distan mai mare, respectiv 50 de pai.

    b) Modific numrul de pai la -50 i clicheaz pe bloc. Personajul se deplaseaz napoi

    pe o distan de 50 de pai.

    8) Acum tii s foloseti blocul nainteaz (10) pai.

    2.3 Tutorial 2: Adugarea unui sunet

    Trage un bloc nainteaz (10) pai din meniul Micare n zona de scripturi.

    Trage un bloc cnt la toba () pentru () timpi din meniul Sunete n zona de scripturi.

    Conecteaz cele dou blocuri.

    Clicheaz pe stiv: personajul se mic i se aude un sunet.

    Modific numrul care urmeaz dup tob, pentru a selecta un instrument diferit.

    Figura 5 Adugarea unui sunet

    Repet aciunile din tutorial. Experimenteaz cu alte sunete.

    Tutorialul video poate fi urmrit la adresa https://youtu.be/hCZmflPkJBg. Mai jos este dat

    transcriptul filmului.

    Transcriptul tutorialului video Adugarea unui sunet

    1. n acest exerciiu vei nva s adaugi sunete de fiecare dat cnd personajul se mic.

    2. Pentru asta ai nevoie de blocul nainteaz () pai din meniul Micare i blocul cnt la

    toba () pentru () timpi din meniul Sunete.

    3. Blocul cnt la toba () pentru () timpi red sunetul unui instrument de percuie (pe care

    l putem selecta) pentru o durat pe care o putem modifica.

    4. Dac apropii un bloc de cellalt, ele se conecteaz. Cnd clichezi pe unul dintre blocuri,

    cele 2 blocuri vor fi executate unul dup cellalt.

    5. Dac apropii un bloc de cellalt, ele se conecteaz. Cnd clichezi pe unul dintre blocuri,

    cele 2 blocuri vor fi executate unul dup cellalt. Pisica nainteaz 10 pai i toba cnt

    pe durata selectat.

    6. Dac clichezi pe prima caset a blocului cnt la toba () pentru () timpi, poi selecta un

    alt instrument.

    7. Acum poi experimenta cu diverse sunete i diferite durate.

    2.4 Tutorial 3: E timpul pentru dans

    Trage n zona de scripturi un bloc nainteaz () pai din meniul Micare.

    Trage n zona de scripturi un bloc cnt la toba () pentru () timpi din meniul Sunete.

    Mai trage un bloc nainteaz () pai din meniul Micare.

    https://youtu.be/hCZmflPkJBg

  • S nvm programare jucndu-ne n Scratch

    Pagina 9 din 61

    Trage nc un bloc cnt la toba () pentru () timpi din meniul Sunete.

    Conecteaz cele 4 blocuri.

    Schimb valoarea pentru cel de al doilea bloc nainteaz () pai la -10 pai.

    Pentru cel de al doilea bloc cnt la toba () pentru () timpi modific numrul pentru

    a selecta un alt instrument.

    F clic pe stiv i urmrete dansul personajului pe scen.

    Repet aciunile din tutorial. Experimenteaz mrimea pailor i diferite sunete.

    Figura 6 E timpul pentru dans

    Tutorialul video poate fi urmrit la adresa https://youtu.be/GZcVofqZgXU. Mai jos este dat

    transcriptul filmului.

    Transcriptul tutorialului video E timpul pentru dans

    1. n acest tutorial vei nva cum s faci civa pai de dans. Vei face personajul s se mite

    mai nti la dreapta i apoi la stnga. Fiecare micare este acompaniat de un sunet de

    tob.

    2. n acest exerciiu ai nevoie de 2 blocuri nainteaz () pai din meniul Micare i de 2

    blocuri cnt la toba () pentru () timpi din meniul Sunet.

    3. Aranjeaz blocurile astfel nct personajul s se mite la dreapta, urmat de un sunet i

    apoi s se mite la stnga urmat de un alt sunet.

    4. Conecteaz toate blocurile ntr-o singur stiv. Dup ce clichezi pe stiv, personajul

    ncepe s danseze.

    5. Dac inversezi locurile celor 2 blocuri nainteaz () pai, personajul se deplaseaz mai

    nti la stnga i apoi la dreapta.

    6. Experimenteaz cu diverse valori ale pailor i diferite sunete. nva personajul i ali

    pai de dans.

    2.5 Transfer

    Revezi subiectele principale introduse n aceast lecie i discut temele propuse n

    seciunea Extinderi.

    2.5.1 Extinderi

    1. Experimenteaz cu mrimea pailor: foarte mici, mici, mari, foarte mari.

    2. Experimenteaz cu sunete: selecteaz i combin diferite sunete.

    3. Experimenteaz cu dansurile: 2, 3, mai muli pai n dans. Selecteaz i combin pai

    scuri i pai lungi.

    https://youtu.be/GZcVofqZgXU

  • S nvm programare jucndu-ne n Scratch

    Pagina 10 din 61

    3 Evenimente i control Obiectiv: s repei aciunile cu blocul pentru totdeauna, s porneti scriptul cu steagul

    verde i s-l opreti cu semnul stop.

    3.1 Introducere

    n aceast lecie vei folosi bloc de control pentru totdeauna, din meniul Control. Vei muta

    cele 4 blocuri din exemplul precedentnainteaz () pai i cnt la toba () pentru () timpi

    n gura blocului de control pentru totdeauna. Cnd clichezi pe stiv, aciunile sunt

    repetate pentru totdeauna, fcnd personajul s danseze n continuu. Pentru a opri dansul

    trebuie s foloseti iconia stop. n aceast lecie vei folosi de asemenea o nou iconi,

    steagul verde. Cnd clichezi pe steagul verde, blocurile conectate la el vor fi executate.

    Figura 7 Evenimente i control

    3.2 Tutorial 1: Iar i iar

    ncepe cu cele 4 blocuri din lecia anterioar.

    Trage un bloc pentru totdeauna din meniul Control n zona de script.

    Trage stiva cu cele 4 blocuri conectate n interiorul blocului pentru totdeauna.

    Apas pe stiva de blocuri i observ ce se ntmpl.

    Experimenteaz cu diferite valori pentru numrul pailor i pentru durata sunetelor.

    Exerseaz aciunile din tutorial. Experimenteaz adugnd un al doilea bloc de repetare.

    Figura 8 Bucl infinit

  • S nvm programare jucndu-ne n Scratch

    Pagina 11 din 61

    Tutorialul video poate fi urmrit la adresa https://youtu.be/LviKwzBENOU. Mai jos este dat

    transcriptul filmului.

    Transcriptul tutorialului video Iar i iar

    1. n acest exerciiu vei nva cum s repei o aciune la nesfrit. Exist cteva blocuri

    care ne permit s repetm aciuni i aceste blocuri se afl n meniul Control.

    2. Vei folosi blocurile din tutorialul anterior E timpul pentru dans pe care le vei face s

    se repete prin utilizarea blocului pentru totdeauna.

    3. Selecteaz blocul pentru totdeauna, care are forma literei C. Clicheaz pe primul bloc

    al stivei i gliseaz-o n gura blocului pentru totdeauna.

    4. Remarc linia alb din interiorul blocului pentru totdeauna, atunci cnd ajungi n

    poziia corect. Apoi elibereaz mouse-ul.

    5. Dac clichezi pe stiva de blocuri, personajul va repeta micrile (fr s oboseasc).

    6. Pentru a-l opri, clicheaz pe semnul rou de stop aflat n dreapta sus.

    7. Dac vrei s schimbi puin coregrafia, poi folosi alt bloc pentru repetarea aciunilor i

    anume repet de (10) ori. Trage un astfel de bloc din grupul Control.

    8. Modific numrul de repetiii la 2 i copiaz blocul repet de (2) ori printr-un clic

    dreapta pe bloc i selectarea opiunii duplic.

    9. Scoate stiva cu patru blocuri din interiorul buclei infinite pentru totdeauna, apucnd

    cu mouse-ul de primul bloc al stivei. Separ stiva de 4 n dou stive de 2, trgnd de

    cel de al treilea bloc.

    10. Gliseaz n interiorul primului bloc repet de (2) ori prima instruciune pentru

    deplasare i sunetul corespunztor. Dac clichezi pe stiv vei observa c personajul

    face doi pai n aceeai direcie, n loc de unul.

    11. Procedeaz similar pentru al doilea bloc repet de (2) ori i cea de a doua

    instruciune de deplasare.

    12. Asambleaz blocurile astfel nct personajul s repete la nesfrit urmtorul dans: de

    dou ori la stnga i de dou ori la dreapta.

    13. Poi experimenta cu diferite valori ale pailor i diferite sunete. Pentru a face dansul

    mai rapid sau mai lent, micoreaz sau mrete durata sunetelor.

    3.3 Tutorial 2: Steagul verde

    Figura 9 Instruciunea cnd se clicheaz pe steagul verde

    https://youtu.be/LviKwzBENOU

  • S nvm programare jucndu-ne n Scratch

    Pagina 12 din 61

    ncepe cu cele 5 blocuri din lecia anterioar i trage blocul cnd se clicheaz pe

    steagul verde din meniul Evenimente n zona de script.

    Ataeaz blocul cnd se clicheaz pe steagul verde deasupra blocului pentru

    totdeauna.

    Figura 10 Steagul verde i iconia roie stop se afl deasupra scenei n colul din dreapta

    Cnd clichezi pe iconia steagul verde (Figura 10), de deasupra scenei, personajul

    ncepe s danseze.

    Dac clichezi pe iconia roie stop, de deasupra scenei, personajul se oprete din

    dans. Repet aciunile din tutorial. Experimenteaz adugnd steagul verde la toate

    blocurile de repetiie.

    Tutorialul video poate fi urmrit la adresa https://youtu.be/kYz2KgVsah8. Mai jos este dat

    transcriptul filmului.

    Transcriptul tutorialului video Steagul verde

    1. O modalitate de a porni executarea unui script, este folosirea steagului verde situat

    deasupra scenei.

    2. Blocul cnd se clicheaz pe steagul verde se afl n grupul Evenimente.

    3. Ataeaz blocul cnd se clicheaz pe steagul verde deasupra blocului pentru

    totdeauna din exerciiul anterior.

    4. Dac clichezi pe steagul verde de deasupra scenei, vei activa scriptul.

    5. Pentru a opri executarea scriptului apas pe semnul stop (de culoare roie) de

    deasupra scenei.

    6. Acum tii cum s faci ca s vizualizezi proiectele tale ntr-o fereastr mai mare.

    3.4 Transfer

    Revezi temele principale introduse n aceast lecie i discut cu colegii temele propuse n

    seciunea Extinderi.

    3.4.1 Extinderi

    1. Experimenteaz cu un al doilea bloc de repetiie pentru un al doilea personaj.

    2. Experimenteaz crearea a dou sau trei blocuri de repetiie i controleaz-le n

    acelai timp cu steagul verde i semnul stop.

    https://youtu.be/kYz2KgVsah8

  • S nvm programare jucndu-ne n Scratch

    Pagina 13 din 61

    4 S ne jucm cu culorile Obiectiv: s modifici culorile personajului i s-i controlezi aciunile cu tastatura.

    4.1 Introducere

    Din meniul Aspect vei folosi n acest tutorial blocul modific efectul [] cu (). Cnd clichezi pe

    acest bloc, personajul i schimb culoarea cu o anumit cantitate specificat. Poi selecta,

    de asemenea, alte modificri grafice, cum ar fi vrtej, mozaic, etc. n aceast lecie vei folosi

    un alt bloc de control pentru a executa aciunile. Blocul cnd tasta [] este apsat va

    executa toate aciunile blocurilor conectate la el.

    Figura 11 S ne jucm cu culorile

    4.2 Tutorial 1: Modificarea culorii

    Trage n zona de script un bloc modific efectul [] cu () din meniul Aspect.

    Clicheaz pe bloc de mai multe ori, pentru a modifica culoarea personajului.

    Seteaz efectul la strlucire i clicheaz pentru a face personajul mai luminos sau mai

    ntunecat.

    Observ efectul de vrtej asupra discului colorat din proiectul de la adresa

    https://scratch.mit.edu/projects/102617366/.(Figura 13).

    Figura 12 Modificarea culorii

    Repet aciunile din tutorial. Experimenteaz cu diferite valori de modificare a efectelor.

    Tutorialul video poate fi urmrit la adresa https://youtu.be/hGeedu_UzKg. Mai jos este dat

    transcriptul filmului.

    Transcriptul tutorialului video Modificarea culorii

    1. Exist mai multe efecte pe care le poi aplica personajelor tale. Unul dintre ele este

    modificarea culorii.

    2. Pentru aceasta selecteaz blocul modific efectul [] cu () din meniul Aspect.

    3. Dac clichezi pe acest bloc, culoarea personajului se modific.

    4. Dac clichezi pe blocul anuleaz efectele grafice din grupul Aspect, personajul revine

    la aspectul de dinaintea aplicrii efectului.

    https://scratch.mit.edu/projects/102617366/https://youtu.be/hGeedu_UzKg

  • S nvm programare jucndu-ne n Scratch

    Pagina 14 din 61

    5. Poi modifica valoarea cu care se schimb efectul editnd numrul din caseta text a

    blocului.

    6. Experimenteaz cu diferite valori pentru modificarea culorii.

    7. Alege efectul strlucire i clicheaz pentru a face personajul mai luminos sau mai

    ntunecat.

    8. Experimenteaz modul n care este afectat personajul de diferitele efecte.

    Figura 13 Crearea efectelor de imagine

    4.3 Tutorial 2: Controlarea aciunilor din taste

    Trage n zona de programare blocul cnd tasta [] este apsat din meniul Control.

    Conecteaz-o deasupra blocului modific efectul [] cu () i alege efectul culoare prin

    clicarea sgeii i selectarea din meniul derulant.

    Apas tasta spaiu i observ c de fiecare dat cnd o apei, personajul i schimb

    culoarea.

    Observ c poi folosi o alt tast, dac n cadrul blocului cnd tasta [] este apsat

    clichezi pe sgeata orientat n jos i o selectezi din meniul derulant.

    Repet aciunile din tutorial. Experimenteaz cu diferite taste.

    Figura 14 Controlarea aciunilor din taste

    Tutorialul video poate fi urmrit la adresa https://youtu.be/Q8kaxyi1KIQ. Mai jos este dat

    transcriptul filmului.

    Transcriptul tutorialului video Controlarea aciunilor din taste

    https://youtu.be/Q8kaxyi1KIQ

  • S nvm programare jucndu-ne n Scratch

    Pagina 15 din 61

    1. n acest exerciiu vei nva cum s controlezi aciunile personajului apsnd pe

    diferite taste ale tastaturii.

    2. Pentru asta vei folosi blocul cnd tasta [spaiu] este apsat din grupul Evenimente.

    3. Poi conecta blocul cnd tasta [spaiu] este apsat cu blocul modific efectul

    [culoare] cu (25).

    4. De fiecare dat cnd apei tasta spaiu, personajul i schimb culoarea.

    5. Dac rulezi programul prin apsarea steagului verde, personajul va dansa i dac

    apei tasta spaiu, acesta i va schimba culoarea.

    6. Tasta poate fi aleas din meniul derulant care apare dac se clicheaz pe micul

    triunghi din dreapta cuvntului spaiu. Experimenteaz cu alte taste ale tastaturii.

    4.4 Transfer

    Revezi principalele subiecte introduse n aceast lecie i discut cu colegii temele propuse n

    seciunea Extinderi.

    4.4.1 Extinderi

    1. Experimenteaz cu diferite viteze de modificare a culorii.

    2. Experimenteaz cu dou personaje pentru a vedea cum se modific culorile.

    3. Experimenteaz cu diferite taste pentru a controla modul n care se modific culorile.

    4. Experimenteaz adugarea de sunete cnd schimbi culorile.

    5. Experimenteaz cu toate efectele grafice: ochi de pete, vrtej, pixelare, mozaic,

    strlucire i fantom.

    6. Experimenteaz aplicarea a dou efecte de imagine simultan la acelai personaj.

    7. Experimenteaz controlarea valorilor efectelor aplicate imaginii.

    8. Experimenteaz adugarea de sunete la efectele de imagine.

  • S nvm programare jucndu-ne n Scratch

    Pagina 16 din 61

    5 Creeaz-i propriile personaje Obiectiv: s i creezi propriile personaje sau s le impori dintr-o bibliotec de personaje.

    5.1 Introducere

    n aceast lecie vei nva cum s impori personaje n proiectele tale. Ca alternativ, poi

    folosi editorul grafic pentru a-i crea propriile personaje.

    Figura 15 Personaje

    5.2 Tutorial: Crearea unui personaj

    Clicheaz pe butonul Alege personaj din bibliotec i import un personaj dintr-una

    din bibliotecile cu personaje.

    Clicheaz pe butonul Deseneaz personaj nou pentru a intra n editorul grafic i a

    desena propriul personaj. Poi ncerca s desenezi o fa vesel. Dup ce ai terminat

    de desenat apas butonul OK. Editorul grafic se nchide i personajul nou se afl pe

    scen i este pregtit s execute instruciunile.

    Clicheaz pe butonul ncarc personaj din fiier pentru a ncrca o imagine stocat

    ntr-un dosar.

    Clicheaz pe butonul Personaj nou de la camer pentru a folosi o imagine realizat

    cu camera laptopului.

  • S nvm programare jucndu-ne n Scratch

    Pagina 17 din 61

    Repet aciunile din tutorial. Experimenteaz crendu-i propriile personaje.

    Tutorialul video poate fi urmrit la adresa https://youtu.be/48vTcYlJa8I. Mai jos este dat

    transcriptul filmului.

    Transcriptul tutorialului video Crearea unui personaj

    1. Pn acum ai lucrat cu acelai personaj, pisica. Poi folosi i alte personaje n

    programele tale. n acest tutorial vei nva cum s adaugi un personaj nou.

    2. Poi importa personaje deja create. Pentru asta clicheaz pe butonul Alege personaj

    din bibliotec. Acum ai acces la bibliotecile de personaje din Scratch.

    3. Dac apei butonul Deseneaz personaj nou se deschide editorul grafic i poi

    desena propriul tu personaj.

    4. Poi ncepe prin a desena o fa zmbitoare. Selecteaz instrumentul pentru

    desenarea cercurilor.

    5. Mai nti deseneaz capul. Apoi, deseneaz un ochi. Folosete instrumentul tampil

    pentru a-l copia. Aaz ochii la locul potrivit n interiorul capului.

    6. Creeaz o copie a prii de jos a capului cu ajutorul instrumentului tampil,

    micoreaz-o la dimensiunea gurii i deplaseaz-o la locul potrivit.

    7. Poi ncrca un personaj dintr-un dosar personal clicnd pe butonul ncarc personaj

    din fiier .

    8. Dac clichezi pe butonul Personaj nou de la camer vei putea folosi imaginea pe care

    o vei captura cu camera video a laptopului.

    9. Acum poi experimenta cu cele patru modaliti de a aduga un personaj

    programului tu.

    5.3 Transfer

    Revezi subiectele principale introduse n aceast lecie i discut cu colegii temele propuse n

    seciunea Extinderi.

    5.3.1 Extinderi

    1. Experimenteaz desenarea i colorarea propriilor personaje.

    2. Experimenteaz dansul, modificarea culorilor i a sunetelor cu propriile personaje.

    3. Experimenteaz i exploreaz bibliotecile de personaje din Scratch.

    4. Experimenteaz crearea unor grupuri nrudite de personaje.

    https://youtu.be/48vTcYlJa8I

  • S nvm programare jucndu-ne n Scratch

    Pagina 18 din 61

    6 Vorbire i gndire Obiectiv: s programezi personajele s-i exprime ideile sau gndurile.

    6.1 Introducere

    n aceast lecie vei nva s foloseti blocurile de programare care i permit s afiezi o

    form pentru vorbire sau gnd i mesajul corespunztor. Mesajul este afiat permanent sau

    doar pentru o anumit durat de timp.

    Figura 16 Vorbire

    6.2 Tutorial: Vorbirea

    Selecteaz blocul spune [] din meniul Aspect.

    Modific textul Hello! cu textul Bun! Ce mai faci?

    Dac clichezi pe bloc, personajul afieaz mesajul.

    Poi afia mesajul pentru o anumit perioad de timp folosind blocul spune [] pentru

    () secunde.

    Selecteaz blocul gndete [].

    Selecteaz blocul gndete [] pentru () secunde.

    Testeaz executarea blocurilor pentru a observa diferenele dintre spune [] i

    gndete [] pentru o perioad nelimitat i pentru o anumit perioad de timp.

    Conecteaz patru blocuri:

    o spune [Bun!] pentru (1) secunde

    o spune [Ce] pentru (1) secunde

    o spune [mai] pentru (1) secunde

    o spune [faci?] pentru (1) secunde

    Testeaz scriptul pe care l-ai scris.

  • S nvm programare jucndu-ne n Scratch

    Pagina 19 din 61

    Tutorialul video poate fi urmrit la adresa https://youtu.be/a4B-Q_dcupU. Mai jos este dat

    transcriptul filmului.

    Transcriptul tutorialului video Vorbirea

    1. n acest tutorial vei asocia un text unui personaj.

    2. Pentru aceasta se folosete blocul spune [] din grupul Aspect.

    3. Scrie n interiorul blocului mesajul pe care vrei s-l transmit personajul tu, de exemplu

    Bun! Ce mai faci?

    4. Cnd clichezi bloc, personajul afieaz mesajul.

    5. Poi spune mesajul pentru un timp limitat folosind blocul spune [] pentru () secunde.

    6. Cu ajutorul a patru astfel de blocuri poi transmite mesajul anterior:

    spune [Bun!] pentru (1) secunde

    spune [Ce] pentru (1) secunde

    spune [mai] pentru (1) secunde

    spune [faci?] pentru (1) secunde

    7. mbin cele patru blocuri i observ care este efectul lor.

    8. Experimenteaz cu cele dou blocuri gndete [], care se afl n acelai grup Aspect.

    6.3 Transfer

    Revezi subiectele principale introduse n aceast lecie i discut cu colegii temele propuse n

    seciunea Extinderi.

    6.3.1 Extinderi

    1. Experimenteaz scrierea ideilor i a gndurilor.

    2. Experimenteaz cu dou personaje care vorbesc unul cu cellalt.

    3. Experimenteaz folosirea tastelor pentru a-i controla cnd vorbesc.

    4. Experimenteaz adugarea sunetelor cnd personajele vorbesc.

    https://youtu.be/a4B-Q_dcupU

  • S nvm programare jucndu-ne n Scratch

    Pagina 20 din 61

    8 Sunete, voci i muzic Obiectiv: s adaugi sunete, voci i muzic n programe.

    8.1 Introducere

    Folosind fila Sunete din zona blocurilor pentru scripturi, poi asocia personajelor fiiere

    audio nregistrate sau importate din alt parte.

    Fiecrui personaj i poi asocia mai multe fiiere audio.

    Figura 17 Sunete, voci, muzic

    8.2 Tutorial: Sunete, voci, muzic

    Clicheaz pe fila Sunete.

    Import cteva sunete.

    Clicheaz pe fila Scripturi.

    Trage n zona de programare blocul cnt sunetul [] din meniul Sunete.

    Clic pe blocul cnt sunetul [] pentru a reda unul din sunetele asociate personajului;

    schimb sunetul i execut blocul.

    Repet aciunile din tutorial. Experimenteaz cu diferite sunete.

    Tutorialul video poate fi urmrit la adresa https://youtu.be/-Oiono-POSA. Mai jos este dat

    transcriptul filmului.

    Transcriptul tutorialului video Sunete, voci, muzic

    1. n acest exerciiu vei nva s asociezi fiiere audio personajului.

    2. Pentru aceasta clicheaz pe fila Sunete din zona de programare.

    https://youtu.be/-Oiono-POSA

  • S nvm programare jucndu-ne n Scratch

    Pagina 21 din 61

    3. Poi alege sunete din bibliotec, le poi nregistra sau le poi importa din dosarele tale.

    4. Unui personaj i poi asocia ct de multe fiiere audio doreti.

    5. Selecteaz un fiier audio.

    6. Pentru redarea sunetului n program, apas pe fila Scripturi i din grupul Sunet, folosete

    blocul cnt sunetul [].

    7. Experimenteaz cu sunetele: nregistreaz sunete, import sunete i f personajul s

    vorbeasc sau s cnte.

    8.3 Transfer

    Revezi subiectele principale introduse n aceast lecie i discut cu colegii temele propuse n

    seciunea Extinderi.

    8.3.1 Extinderi

    1. Experimenteaz prin explorarea sunetelor din bibliotecile Scratch.

    2. Experimenteaz cu dou sau mai multe personaje care cnt mpreun.

    3. Experimenteaz mbinarea de efecte de imagine cu muzic.

    4. Experimenteaz controlarea secvenei de sunete de la tastatur.

  • S nvm programare jucndu-ne n Scratch

    Pagina 22 din 61

    9 Crearea animaiilor Obiectiv: s creezi animaii cu personaje existente n biblioteca programului sau cu cele

    proprii.

    9.1 Introducere

    Poi asocia imagini sau costume personajelor, folosind fila Costume din zona de blocurilor

    pentru scripturi. Poi importa costume existente sau poi folosi editorul grafic pentru a crea

    unele noi. Unui personaj i poi asocia mai multe costume. Dup ce le impori, poi modifica

    ordinea acestora.

    Poi folosi schimbarea costumelor pentru crearea efectelor de animaie. Cnd clichezi pe

    costumul urmtor, personajul i schimb costumul, crend iluzia de micare.

    Figura 18 Crearea animaiilor

    9.2 Tutorial: Creeaz animaii

    Clicheaz pe fila Costume, aflat n dreapta filei Scripturi.

    Import cteva costume.

    Trage din meniul Aspect blocul costumul urmtor n zona de scripturi.

  • S nvm programare jucndu-ne n Scratch

    Pagina 23 din 61

    De fiecare dat cnd clichezi pe blocul costumul urmtor, personajul i schimb

    poziia.

    Remarc faptul c schimbarea costumului nu nseamn schimbarea hainelor, ci doar

    schimbarea posturii personajului.

    Repet aciunile din tutorial. Experimenteaz cu diferite mrimi i direcii ale pailor.

    Tutorialul video poate fi urmrit la adresa https://youtu.be/0CD_mAqTcTs. Mai jos este dat

    transcriptul filmului.

    Transcriptul tutorialului video Creeaz animaii

    1. n acest tutorial nvei s creezi animaii folosind blocul costumul urmtor din meniul

    Aspect.

    2. Folosind fila Costume din zona de programare, poi asocia imagini sau costume unui

    personajului. Poi importa costume existente sau poi folosi editorul grafic pentru a crea

    propriile noastre costume.

    3. Poi asocia mai multe costume fiecrui personaj.

    4. Import mai multe costume i eventual schimb-le ordinea.

    5. Cnd clichezi pe costumul urmtor, personajul i schimb costumul, crend efectul de

    micare.

    6. Dac personajul se mic i i schimb costumele, poi face ca mersul personajului s

    par mai real.

    7. Observ care este efectul scriptului urmtor: pisica se deplaseaz de la stnga la dreapta

    scenei.

    8. Dac introducem n script instruciunea costumul urmtor, pisica i va schimba cele

    dou costume i mersul va prea mai natural.

    9. Poi experimenta cu alte seturi de costume i alte animaii.

    9.3 Transfer

    Revezi subiectele principale introduse n aceast lecie i discut cu colegii temele propuse n

    seciunea Extinderi.

    9.3.1 Extinderi

    1. Experimenteaz realizarea de animaii cu personaje din bibliotecile programului.

    2. Experimenteaz crearea costumelor personajelor i realizarea animaiilor proprii.

    3. Experimenteaz animarea a dou sau mai multe personaje n acelai timp.

    4. Experimenteaz adugarea de sunete redate n timp ce personajele se mic.

    https://youtu.be/0CD_mAqTcTs

  • S nvm programare jucndu-ne n Scratch

    Pagina 24 din 61

    10 Robot care merge la int Obiectiv: s foloseti cteva blocuri Scratch pentru a programa robotul Karel s

    ndeplineasc o serie de sarcini uoare.

    i poi face o idee despre ceea ce vei nva n aceast unitate, dac vei urmri filmul de la

    adresa https://youtu.be/498vHVw_ICs.

    10.1 Iniializarea poziiei i orientrii personajului pe scen

    Vrem ca personajele noastre s se afle la nceputul programului n anumite poziii i cu

    anumite orientri pe scen.

    10.1.1 Iniializarea poziiei i orientrii provocare

    Remixeaz proiectul de la http://scratch.mit.edu/projects/41637186/#editor. n acest

    proiect exist dou personaje: robotul Karel i o int. Scrie un program de iniializare a

    poziiilor celor dou personaje:

    - Karel trebuie amplasat n punctul de coordonate (-100, -100) i orientat spre est.

    - inta trebuie amplasat n punctul de coordonate (100, -100).

    Folosete urmtoarele blocuri:

    Testeaz-i programul (clicheaz pe steagul verde).

    10.1.2 Iniializarea poziiei i orientrii - soluie

    Testeaz proiectul de la adresa http://scratch.mit.edu/projects/41688062/#editor.

    Dac ai nevoie de ajutor, urmrete tutorialul video de la https://youtu.be/vVl1WOP0mKg.

    10.2 Deplaseaz-l pe Karel la int

    n aceast seciune vei scrie un script pentru a-l deplasa pe Karel la int.

    10.2.1 Direct la int provocare

    Folosete proiectul pe care l-ai creat anterior sau remixeaz proiectul de la adresa

    http://scratch.mit.edu/projects/41688204/#editor.

    Cele dou personaje ale proiectului sunt:

    - Karel, care iniial se afl n punctul (-100, -100) i este ndreptat spre est.

    - inta, care este amplasat n punctul (100, -100).

    https://youtu.be/498vHVw_ICshttp://scratch.mit.edu/projects/41637186/#editorhttp://scratch.mit.edu/projects/41688062/#editorhttps://youtu.be/vVl1WOP0mKghttp://scratch.mit.edu/projects/41688204/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 25 din 61

    Scrie un program pentru a-l deplasa pe Karel la int cnd apei tasta t.

    Poi folosi blocurile urmtoare:

    n locul blocului nainteaz () pai, poi folosi oricare dintre blocurile urmtoare:

    Pentru a-i testa programul, clicheaz pe steagul verde sau apas tasta t.

    10.2.2 Direct la int - soluii

    Clicheaz pe steagul verde i apas tasta t pentru a rula una dintre soluiile posibile.

    Compar urmtoarele patru soluii, disponibile la adresele urmtoare:

    - http://scratch.mit.edu/projects/41688302/#editor

    - http://scratch.mit.edu/projects/41688928/#editor

    - http://scratch.mit.edu/projects/41689048/#editor

    - http://scratch.mit.edu/projects/41689082/#editor

    Dup cum poi observa vedea, n cazul primelor trei soluii, Karel se deplaseaz spre int

    aproape instantaneu. n cazul ultimei soluii, care folosete blocul alunec n () secunde la x:

    () y: (), Karel se deplaseaz spre int cu o vitez constant. Acesta este comportamentul

    dorit al lui Karel.

    n urmtoarea seciune, vei nva cum l poi deplasa pe Karel cu o vitez limitat, folosind

    blocul nainteaz () pai.

    10.3 Limiteaz viteza

    n ultima seciune, ai nvat c poi folosi blocul alunec n () secunde la x: () y: () pentru a-l

    deplasa pe Karel spre int cu o vitez constant. Dezavantajul folosirii blocului alunec n ()

    secunde la x: () y: () este c acesta ntrerupe derularea scriptului ct timp personajul se

    deplaseaz, mpiedicnd astfel scriptul s execute i alte comenzi (fac i alte lucruri) n timp

    ce personajul alunec.

    Din acest motiv, vei ncerca s-l programezi pe Karel s se deplaseze cu o vitez constant,

    folosind blocul nainteaz () pai. n acest scop, vor fi repetate urmtoarele dou aciuni:

    http://scratch.mit.edu/projects/41688302/#editorhttp://scratch.mit.edu/projects/41688928/#editorhttp://scratch.mit.edu/projects/41689048/#editorhttp://scratch.mit.edu/projects/41689082/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 26 din 61

    - Karel se va deplasa un numr de pai;

    - Pauz de cteva fraciuni de secund.

    S presupunem c vrem s-l deplasm pe Karel 100 de pai timp de 1 secund. n cazul n

    care Karel face cte 10 pai o dat, trebuie s repetm urmtorul script de 10 de ori:

    Pentru a repeta scriptul anterior de 10 de ori, putem folosi blocul .

    10.3.1 Limiteaz viteza - provocare

    Remixeaz proiectul de la adresa http://scratch.mit.edu/projects/41690448/#editor.

    Scrie un program care s-l deplaseze pe Karel la int cnd apei tasta t. Karel trebuie s se

    deplaseze pe o distan de 200 de pai n dou secunde.

    Trebuie s foloseti urmtoarele blocuri:

    Testeaz-i programul (apas steagul verde i apoi tasta t).

    10.3.2 Limiteaz viteza - soluie

    n prima soluie, http://scratch.mit.edu/projects/41690702/#editor, robotul se deplaseaz

    de 200 ori, cte un pas o dat (200 de repetiii temporizate cu cte 0,01 secunde). Dac vei

    rula programul, vei vedea c robotul se deplaseaz mult mai ncet dect am anticipat

    (aproape apte secunde n loc de dou).

    n cea de a doua soluie, http://scratch.mit.edu/projects/41693402/#editor, Karel se

    deplaseaz doar de 20 ori, cte zece pai o dat (temporizare de 0,1 secunde). Karel se

    deplaseaz mai rapid ca n proiectul anterior, ns tot prea ncet.

    Comportamentul acesta se datoreaz faptului c folosim blocul de repetare (bucla), iar

    acesta este programat cu o mic ntrziere ntre repetiii, prin urmare aciunile sunt

    efectuate ncet.

    http://scratch.mit.edu/projects/41690448/#editorhttp://scratch.mit.edu/projects/41690702/#editorhttp://scratch.mit.edu/projects/41693402/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 27 din 61

    n cea de a treia soluia, http://scratch.mit.edu/projects/41690902/#editor, msurm timpul

    de execuie. Pentru aceasta, folosim o variabil numit moving time (timp de micare).

    Variabila este iniializat la nceputul deplasrii. Urmtorul bloc, reset timer (resetare timer),

    reseteaz cronometrul. La finalul deplasrii, variabila moving time este actualizat la

    valoarea cronometrului.

    Valorile variabilei moving time difer n funcie de setri. Modificai variabilele blocurilor din

    interiorul buclei de repetare conform valorilor din urmtorul tabel. Rulai programul i

    verificai dac valorile variabilei moving time (timp de deplasare) sunt similare cu valorile din

    Tabelul 1.

    Numr repetiii

    Numr pai

    Temporizare (secunde)

    Timp de deplasare anticipat (secunde)

    Timp de deplasare real (secunde)

    200 1 0,01 2,0 6,667

    100 2 0,02 2,0 3,333

    20 10 0,1 2,0 2,133 Tabelul 1 Introducerea de ntrzieri n interiorul buclelor

    Dup cum se observ, la o rezoluie mai mare, timpul de deplasare este mai mare dect cel

    anticipat.

    10.4 Trei inte

    Remixeaz proiectul de la adresa http://scratch.mit.edu/projects/42090906/#editor. Sunt

    patru personaje: Karel, Target1, Target2 i Target3. Am creat blocul initialisation

    (iniializare), necesar la iniializarea poziiei (i orientrii) personajului. Urmrete tutorialul

    de la adresa https://youtu.be/cfax_wg4id4 pentru a vedea cum se creeaz i folosete un

    bloc nou n Scratch.

    Dac vei consulta scripturile celor patru personaje, vei vedea c pornesc din urmtoarele

    poziii: Karel -> (-100, -100); Target1 -> (100, -100); Target2 -> (100, 100); Target3 -> (-100,

    100). Aceasta nseamn c personajele sunt amplasate n cele patru coluri ale unui ptrat

    (Figura 19) cu latura de 200 uniti (pai).

    http://scratch.mit.edu/projects/41690902/#editorhttp://scratch.mit.edu/projects/42090906/#editorhttps://youtu.be/cfax_wg4id4

  • S nvm programare jucndu-ne n Scratch

    Pagina 28 din 61

    Figura 19 Karel i trei inte

    10.4.1 Trei inte provocarea 1

    Scrie un script care s-l programeze pe Karel s viziteze fiecare int, apoi s revin la poziia

    i orientarea iniiale. Va trebui s foloseti blocul nainteaz () pai, iar Karel trebuie s se

    deplaseze cu o vitez limitat.

    10.4.2 Trei inte soluie pentru provocarea 1

    n Figura 20 prezint o posibil soluie.

    Figura 20 Trei inte - scripturi pentru provocarea 1

    10.4.3 Trei inte provocarea 2

    Ar fi frumos s-l programezi pe Karel s-i exprima bucuria reuitei (atingerea intei) cu un

    cntecel (cteva note). Continu cu programul anterior sau remixeaz proiectul

    https://scratch.mit.edu/projects/102920310/#editor.

    Creeaz un bloc cnt format din cteva instruciuni cnt nota () pentru () timpi i

    programeaz-l pe Karel s execute blocul cnt de fiecare dat cnd atinge inta. Karel nu

    trebuie s se opreasc n timp ce cnt.

    https://scratch.mit.edu/projects/102920310/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 29 din 61

    10.4.4 Trei inte provocarea 2 soluii

    Prima soluie care mi-a venit n minte are scripturile din Figura 21.

    Figura 21 Trei inte provocarea 2 scripturi soluie greit

    Poi crea un proiect cu aceste scripturi sau poi rula proiectul aflat la adresa

    https://scratch.mit.edu/projects/102920577/#editor.

    Din pcate, soluia dat n acest proiect nu este bun din dou motive:

    1. Karel cnt melodia nu numai cnd atinge inta, ci i cnd ajunge n poziia iniial.

    2. Karel nu se deplaseaz ct timp cnt.

    Putem soluiona aceste probleme folosind difuzarea: Karel va difuza mesajul cnt de fiecare

    dat cnd ajunge la o int. Acest eveniment va declana interpretarea cntecului. Astfel,

    Karel se va deplasa i va cnta n paralel (nu secvenial).

    n soluia de mai jos, poi observa c am folosit blocul dac () atunci pentru a stabili dac

    personajul Karel atinge o int. Condiia blocului dac () atunci este blocul boolean atinge

    culoarea [] ?, care raporteaz valoarea adevrat cnd Karel atinge o int. Bineneles,

    parametrul blocului boolean este culoarea roie a intelor.

    Figura 22 Trei inte provocarea 2 scripturi soluie bun

    https://scratch.mit.edu/projects/102920577/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 30 din 61

    Se pot observa i alte modificri. Deoarece durata cntecului era mai mare dect timpul n

    care Karel se deplasa ntre dou inte, am micorat cntecul, eliminnd note i stabilind

    tempoul la 360 bti pe minut. n acelai timp, am redus viteza lui Karel, crescnd numrul

    de repetiii ale buclei interne repet() i micornd ca atare numrul de pai ai blocului

    nainteaz () pai.

    10.4.5 Trei inte provocarea 3

    Ar fi interesant dac intele i-ar schimba aspectul cnd sunt atinse de Karel.

    Remixeaz programul https://scratch.mit.edu/projects/102923466/#editor.

    Dup cum observi, fiecare int are dou costume: unul rou i unul albastru.

    La nceput, toate intele vor trebui s fie roii. n acest scop, trebuie s faci modificri la

    blocul iniializare al fiecrei inte.

    Programeaz fiecare int s-i schimbe costumul din rou n albastru cnd este atins de

    Karel.

    10.4.6 Trei inte provocarea 3 soluie

    O posibil soluie pentru scripturile Target1 este reprezentat n Figura 23

    Figura 23 Trei inte provocarea 3 soluie scripturi

    10.4.7 Trei inte provocarea 4

    Remixeaz proiectul de la https://scratch.mit.edu/projects/102925015/#editor

    http://scratch.mit.edu/projects/42119332/ - editori efectueaz modificrile necesare la

    blocul iniializare al lui Karel, pentru a obine un comportament identic cu cel cu cel sugerat

    n Figura 24.

    Dac nu intuieti comportamentul cerut, poi rula proiectul (nu uita s clichezi pe steagul

    verde!) de la adresa https://scratch.mit.edu/projects/102926515/#editor, fr a te uita la

    scripturi.

    https://scratch.mit.edu/projects/102923466/#editorhttps://scratch.mit.edu/projects/102925015/#editorhttp://scratch.mit.edu/projects/42119332/#editorhttps://scratch.mit.edu/projects/102926515/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 31 din 61

    Figura 24 Evidenierea drumului parcurs i schimbarea culorii intelor

    10.4.8 Trei inte provocarea 4 soluie scripturi

    Modificarea comportamentului lui Karel se poate face prin modificarea scriptului care

    definete blocul iniializare, ca n Figura 25.

    Figura 25 Trei inte provocarea 4 modificare scripturi

    10.5 Drawbot

    Am vzut n ultima seciune c putem crea desene n Scratch. n cadrul acestei seciuni, vei

    nva s creezi diverse tipuri de desene. n acest scop, l vei folosi pe Drawbot (acronim care

    provine de la denumirea n englez, Drawing RobotRobot Desenator n limba romn)

    pentru a-l desena pe Karel.

    10.5.1 Desenarea unui dreptunghi provocare

    Remixeaz proiectul de la adresa http://scratch.mit.edu/projects/42136036/#editor.

    Creeaz blocul rectangle(x, y, width, height), care deseneaz un dreptunghi cu urmtorii

    parametri:

    http://scratch.mit.edu/projects/42136036/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 32 din 61

    (x, y) = coordonatele colului stnga jos al dreptunghiului

    width = limea dreptunghiului

    height = nlimea dreptunghiului

    10.5.2 Desenarea unui dreptunghi soluie

    O posibil soluie pentru definiia blocului rectangle(x, y, width, height) este dat n Figura

    26. Dup cum se observ din definiia blocului, desenarea dreptunghiului se face astfel:

    - Se ncepe din colul stnga jos al dreptunghiului;

    - Se deseneaz latura orizontal de jos;

    - Se schimb direcia cu 90 de grade n sens antiorar;

    - Se deseneaz latura vertical din dreapta;

    - Se schimb direcia cu 90 de grade n sens antiorar;

    - Se deseneaz latura orizontal de sus;

    - Se schimb direcia cu 90 de grade n sens antiorar;

    - Se deseneaz latura vertical din stnga;

    - Se schimb direcia cu 90 de grade n sens antiorar, ajungndu-se la orientarea

    iniial.

    Figura 26 Soluia pentru definiia blocului rectangle (x, y, width, height)

  • S nvm programare jucndu-ne n Scratch

    Pagina 33 din 61

    n proiectul de la adresa http://scratch.mit.edu/projects/40758538/#editor poi observa

    efectul optic al introducerii unui efect de nuan (Figura 27).

    Figura 27 Dreptunghiuri cu nuane diferite

    10.5.3 Desenarea unui poligon provocare

    Remixeaz proiectul http://scratch.mit.edu/projects/42136036/#editor. Creeaz blocul

    polygon(n, l, x, y), care deseneaz un poligon regulat cu n laturi cu lungimea l. Centrul

    poligonului este punctul de coordonate (x, y).

    10.5.4 Desenarea unui poligon soluie

    O posibil soluie pentru definiia blocului polygon(n, l, x, y) este dat n Figura 28. Pentru a

    nelege definiia acestui bloc, trebuie s-i aminteti cteva noiuni elementare de

    geometrie.

    http://scratch.mit.edu/projects/40758538/#editorhttp://scratch.mit.edu/projects/42136036/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 34 din 61

    Figura 28 Definiia blocului polygon(n, l, x, y)

    Ruleaz proiectul de la adresa http://scratch.mit.edu/projects/42137406/#editor pentru a

    vedea cum Drawbot deseneaz poligoane cu diferite culori i numr de laturi.

    Figura 29 Poligoane cu numr de laturi diferite

    Dup cum poi observa, un poligon cu multe laturi seamn cu un cerc. n continuare, vei

    folosi aceste cunotine pentru a desena cercuri.

    10.5.5 Desenarea un cerc provocare

    Remixeaz proiectul http://scratch.mit.edu/projects/42136036/#editor.

    http://scratch.mit.edu/projects/42137406/#editorhttp://scratch.mit.edu/projects/42136036/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 35 din 61

    Creeaz blocul circle(x, y, r) care deseneaz un cerc. Centrul cercului are coordonatele x i y.

    Raza cercului este r. Vei aproxima cercul cu un poligon cu 90 de laturi. Folosete variabila l

    pentru a stoca valoarea lungimii laturii poligonului.

    Folosete blocul circle pentru a desena o int.

    10.5.6 Desenarea unui cerc soluie

    Poi folosi programul Scratch Paint Editor pentru a crea desene, ns cred c este mai simplu

    s-l programezi pe Drawbot s fac acest lucru n locul tu.

    Figura 30 Scripturi pentru desenarea unui cerc i a unei inte

    n Figura 30 sunt prezentate scripturile pentru desenarea unui cerc i a unei inte. Ruleaz

    proiectul de la adresa http://scratch.mit.edu/projects/42188032/#editor i vei vedea cum

    deseneaz Drawbot o int.

    10.5.7 Desenarea lui Karel provocare

    l vei programa pe Drawbot s-l deseneze pe Karel.

    Remixeaz proiectul de la adresa http://scratch.mit.edu/projects/42193186/#editor, care

    cuprinde urmtoarele blocuri noi:

    draw rectangle(x, y, width, height)

    draw circle(x, y, r)

    set pen(color, shade, size)

    Creeaz blocul draw chassis pentru a desena asiul lui Karel conform imaginii din Figura 31.

    Folosete blocul du-te la x: () y: ().

    http://scratch.mit.edu/projects/42188032/#editorhttp://scratch.mit.edu/projects/42193186/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 36 din 61

    Figura 31 asiul robotului Karel

    Folosete blocurile draw rectangle (x, y, width, height), draw circle (x, y, r) i draw chassis

    pentru a-l desena pe Karel ca n Figura 32.

    Figura 32 Desenul robotului Karel

  • S nvm programare jucndu-ne n Scratch

    Pagina 37 din 61

    10.5.8 Desenarea lui Karel soluie

    n Figura 33 este prezentat definiia blocului draw chassis.

    Figura 33 Definiia blocului draw chassis

    n proiectul de la adresa https://scratch.mit.edu/projects/42193628/#editor, Drawbot l

    deseneaz pe Karel la o scar ntre 1 i 3, aleas de utilizator. Se folosete funcia recursiv

    check answer, pentru a verifica dac rspunsul se ncadreaz n domeniul 1 - 3. Vezi ce se

    ntmpl dac nu introduci un numr ntre 1 i 3.

    10.6 int mobil

    Unul din comportamentele unui robot const n urmrirea altui robot sau al unei persoane,

    asemntor unei escorte. n aceast seciune l vei programa pe Karel s urmreasc o int

    mobil.

    10.6.1 int mobil provocare

    Creeaz un proiect n care Karel se deplaseaz ctre o int mobil ca n filmul postat la

    adresa https://youtu.be/498vHVw_ICs. Programul va fi rulat dup clicarea pe steagul verde.

    Vei deplasa inta pe scen cu ajutorul mouse-ului. Traseul parcurs de robot va fi evideniat

    cu ajutorul creionului. Prin apsarea tastei c se va terge traseul desenat de creion.

    10.6.2 int mobil soluie

    Proiectul de la pagina http://scratch.mit.edu/projects/41846786/#editor reprezint o

    posibil soluie care respect constrngerile impuse n provocare.

    https://scratch.mit.edu/projects/42193628/#editorhttps://youtu.be/498vHVw_ICshttp://scratch.mit.edu/projects/41846786/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 38 din 61

    11 Robot care evit obstacolele Obiectiv: s programezi robotul Karel s evite obstacolele.

    11.1 Ce este un robot care evit obstacolele?

    Poi observa cum se comport roboii care evit obstacolele, dac urmreti filmul de la

    adresa https://youtu.be/4PzV8L0Ro2E.

    Scopul unui robot care evit obstacolele (Figura 34) este s evite coliziunea cu obiectele

    nconjurtoare dintr-un mediu necunoscut.

    Robotul are senzori care detecteaz obstacolele. De obicei, robotul se deplaseaz nainte.

    Cnd senzorii detecteaz un obstacol, robotul evit obstacolul i i continu deplasarea

    nainte.

    Figura 34 Robot care evit obstacolele

    11.1.1 Senzori pentru un robot care evit obstacolele

    Roboii adevrai folosesc senzori mecanici, optici sau cu ultrasunete pentru a detecta

    obstacolele. Cea mai accesibil variant de senzor tactil pentru un robot real poate fi

    realizat cu un comutator monostabil, acionat de un fir metalic rigid prin intermediul cruia

    este acionat comutatorul. Acesta comut n starea ON cnd lovete obstacolul.

    Senzorii sunt uor de simulat n Scratch. Putem concepe tamponul ca fiind un dreptunghi

    plin, amplasat n faa robotului. Pentru a detecta dac senzorul-tampon atinge un obstacol,

    folosim blocul de detecie boolean (Figura 35).

    Figura 35 Blocul

    https://youtu.be/4PzV8L0Ro2E

  • S nvm programare jucndu-ne n Scratch

    Pagina 39 din 61

    11.1.2 Controlul unui robot care evit obstacolele

    Un robot cu doi senzori frontali (drept i stng) poate fi controlat astfel:

    - Dac niciun senzor nu atinge obstacolul, robotul se deplaseaz nainte.

    - Dac senzorul stng atinge obstacolul, robotul se rotete spre dreapta (n sens orar).

    - Dac senzorul drept atinge obstacolul, robotul se rotete spre stnga (n sens antiorar).

    - Dac ambii senzori ating obstacolul, robotul se rotete cu 90 de grade.

    Pentru a menine robotul pe scen n cazul n care ajunge la marginea scenei, putem folosi

    blocul dac atingi marginea, ricoeaz (Figura 36).

    Figura 36 Blocul care nu las personajul s prseasc scena

    11.2 Senzori tactili

    n aceast seciune, i vei aduga doi senzori tactili lui Karel.

    11.2.1 Senzori tactili provocare

    Remixeaz proiectul de la http://scratch.mit.edu/projects/41723100/#editor. Dup cum

    observi, obstacolul este un cerc rou cu margine neagr, amplasat n mijlocul scenei. Senzorii

    trebuie s detecteze conturul negru al cercului.

    1. Adaug doi senzori n faa lui Karel (dou dreptunghiuri mici de culori diferite).

    2. Creeaz dou variabile care stocheaz starea senzorilor: left bumper (senzor stnga) i

    right bumper (senzor dreapta).

    3. Creeaz blocul read sensors (citete senzorii), care citete starea senzorilor i actualizeaz

    valorile celor dou variabile care stocheaz strile senzorilor: left bumper i right bumper.

    Senzorii iau valoarea 1 dac ating obstacolul (adic ating culoarea neagr) i 0 n rest. Poi

    folosi blocul pentru a verifica dac senzorii ating marginea obiectului

    (culoarea neagr).

    4. Testeaz programul deplasndu-l pe Karel n diverse poziii, cu orientri diferite, i

    verificnd valorile variabilelor left bumper i right bumper afiate pe scen.

    11.2.2 Senzori tactili soluii

    n Figura 37 sunt prezentate dou posibile soluii pentru definirea blocului read bumpers.

    Proiectele sunt disponibile la http://scratch.mit.edu/projects/41722776/#editor i

    http://scratch.mit.edu/projects/41722656/#editor. Clicheaz pe steagul verde pentru a rula

    soluia aleas. Dup cum observi, robotul urmrete cursorul mouse-ului. Deplaseaz

    senzorii peste culoarea neagr i verific strile celor doi senzori afiate pe scen. Asigur-te

    c n ambele soluii blocurile pentru citirea senzorilor au un comportament identic.

    http://scratch.mit.edu/projects/41723100/#editorhttp://scratch.mit.edu/projects/41722776/#editorhttp://scratch.mit.edu/projects/41722656/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 40 din 61

    Figura 37 Dou soluii posibile pentru definirea blocului read bumpers

    11.3 Evitarea obstacolelor

    n aceast seciune, vei scrie un program pentru un robot care evit obstacolele.

    11.3.1 Evitarea obstacolelor - provocare

    Remixeaz proiectul de la http://scratch.mit.edu/projects/41723854/#editor.

    Controleaz robotul folosind algoritmul din seciunea 11.1.2.

    Testeaz programul cu valori diferite ale vitezei (variabila speed).

    11.3.2 Evitarea obstacolelor - soluii

    Exist 2 soluii disponibile la http://scratch.mit.edu/projects/41722446/#editor i

    http://scratch.mit.edu/projects/41720918/#editor.

    Clicheaz pe steagul verde pentru a rula oricare dintre soluii. Modific viteza i observ ce

    se ntmpl.

    Compar cele dou implementri ale aceluiai algoritm n cele dou soluii.

    11.4 Mai multe teste, mai mult distracie

    Comportamentul robotului depinde de forma i poziia obstacolelor de pe scen. Este timpul

    s creezi mai multe teste pentru robot (decoruri diferite).

    11.4.1 Decoruri pentru testarea evitrii obstacolelor provocare

    Remixeaz proiectul de la adresa https://scratch.mit.edu/projects/41725006/#editor.

    Creeaz decoruri cu dispuneri diferite ale obstacolelor (e.g. Figura 38).

    Testeaz comportamentul lui Karel pentru decoruri diferite.

    Gsete soluii pentru modificarea scriptului n cazul n care Karel se blocheaz ntr-o

    anumit poziie.

    http://scratch.mit.edu/projects/41723854/#editorhttp://scratch.mit.edu/projects/41722446/#editorhttp://scratch.mit.edu/projects/41720918/#editorhttps://scratch.mit.edu/projects/41725006/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 41 din 61

    Figura 38 Decor pentru testarea evitrii obstacolelor

    11.4.2 Decoruri pentru testarea evitrii obstacolelor soluie

    Proiectul de la adresa http://scratch.mit.edu/projects/41725104/#editor are decoruri noi, cu

    ajutorul crora se poate testa abilitatea robotului de a se descurca n diferite medii.

    n cazul unuia dintre decoruri, Karel se mpotmolete, dup cum poi observa dac n

    proiectul anterior selectezi decorul din Figura 39 i rulezi programul prin clicarea steagului

    verde. Remixeaz proiectul i caut o soluie la problema lui Karel.

    Figura 39 Decor care i creeaz probleme lui Karel

    http://scratch.mit.edu/projects/41725104/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 42 din 61

    11.5 Doi roboi pe scen

    E timpul pentru o sarcin mai dificil. Vom avea doi roboi pe scen simultan (Figura 40).

    Roboii trebuie s evite obstacolele i s se evite unul pe cellalt. O soluie posibil ar fi s

    ntoarcei robotul cnd distana fa de cellalt robot scade sub o anumit valoare. Este o

    aciune uor de implementat n Scratch.

    Figura 40 Doi roboi pe scen

    11.5.1 Doi roboi pe scen provocare

    Remixeaz proiectul de la adresa http://scratch.mit.edu/projects/41726068/#editor.

    Dup cum observi, exist doi roboi pe scen: Karel1 i Karel2.

    1. Ruleaz programul pentru a verifica dac ambii roboi evit obstacolele.

    2. Creeaz blocul avoid robot (evit robot) pentru ca robotul Karel1 s-l evite pe Karel2.

    3. Testeaz programul.

    4. Scrie un bloc similar, cu ajutorul cruia Karel2 s-l evite pe Karel1 i repet testul.

    11.5.2 Doi roboi pe scen soluie

    La adresa http://scratch.mit.edu/projects/41727484/#editor este prezentat o soluie

    pentru doi roboi care evit att obstacolele ct i unul pe cellalt. Poi remixa i mbunti

    programul.

    http://scratch.mit.edu/projects/41726068/#editorhttp://scratch.mit.edu/projects/41727484/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 43 din 61

    12 Robot care urmrete peretele Obiectiv: s l programezi pe Karel s urmreasc un perete.

    12.1 Ce este un robot care urmrete peretele?

    Urmrete filmul postat la adresa https://youtu.be/p6MQ_LDUx3w, pentru a observa cum

    urmrete Karel peretele.

    Un robot urmrete un perete atunci cnd se deplaseaz pe lng perete pstrnd o

    anumit distan fa de acesta, fr s-l loveasc sau s se ndeprteze prea mult de el.

    Karel va urmri peretele cu ajutorul regulii minii stngii, care spune c peretele va fi

    ntotdeauna pe partea stng a robotului.

    12.1.1 Senzori pentru un robot care urmrete peretele

    Ca i n cazul robotului care evit obstacole, robotul care urmrete peretele va folosi senzori

    tactili digitali. Aceti senzori au dou stri: activat (senzorul atinge peretele) i dezactivat

    (senzorul nu atinge peretele).

    Roboii adevrai folosesc i senzori analogici, care raporteaz distana fa de perete. n

    cadrul acestei uniti, vom ncerca s simulm un senzor care raporteaz o distan cu valori

    din intervalul 1 - 6.

    12.1.2 Controlul unui robot care urmrete peretele

    Putem controla robotul care urmrete peretele dup cum urmeaz:

    - Dac senzorul raporteaz distana corect fa de perete, robotul se deplaseaz nainte.

    - Dac robotul este prea aproape de perete, se ndeprteaz de acesta.

    - Dac robotul este prea departe de perete, se va apropia de acesta.

    Aciunile robotului pot fi proporionale cu valoarea erorii reale.

    12.2 Senzorul de distan

    n aceast seciune, vei proiecta un senzor de distan.

    12.2.1 Introducere

    n mod normal, roboii folosesc senzori optici (IR) sau cu ultrasunete pentru a msura

    distana fa de un obiect.

    n Scratch, este uor s calculm distana dintre spiridui, definit drept distana dintre

    centrele acestora. Putem calcula distana dintre spiridui dac ambii sunt rotunzi, micornd

    distana dintre centre cu suma razelor celor doi spiridui. Metoda nu este ns bun pentru

    msurarea distanei fa de un zid.

    tim c putem folosi blocul pentru a crea un senzor tactil. Putem

    folosi acelai bloc pentru a crea un senzor de distan. Senzorul nostru va fi un b obinut

    https://youtu.be/p6MQ_LDUx3w

  • S nvm programare jucndu-ne n Scratch

    Pagina 44 din 61

    din dreptunghiuri de diferite culori. Cu ajutorul blocului , putem

    calcula distana fa de marginea unui obiect.

    12.2.2 Senzor de distan provocare

    Remixeaz proiectul de la adresa http://scratch.mit.edu/projects/41760210/#editor.

    Adug un senzor de distan n partea stng a lui Karel. Senzorul de distan este alctuit

    din ase dreptunghiuri de diferite culori (Figura 41). Senzorul nu este orientat perpendicular

    pe axa longitudinal a robotului, ci la un unghi de 45 de grade fa de axa longitudinal a

    robotului.

    Figura 41 Senzor de distan cu valori n intervalul 1 6

    Creeaz un bloc denumit read left sensor (citete senzorul stng), care va actualiza variabila

    left sensor (senzorul stng) cu o valoare variind ntre 0 i 6, n funcie de distana fa de

    perete. Valoarea 6 nseamn c senzorul nu atinge peretele.

    Creeaz un program care s citeasc valoarea senzorului stng, s o stocheze n variabila left

    sensor i s o afieze pe scen.

    Testeaz programul modificnd distana dintre senzor i perete i verificnd valoarea afiat

    a variabilei left sensor.

    12.2.3 Senzor de distan soluie

    O soluie este la adresa http://scratch.mit.edu/projects/41758864/#editor. Clicheaz pe

    steagul verde pentru a rula programul. Apas tasta sgeat stnga pentru a mica robotul

    spre stnga. Apas tasta sgeat dreapta pentru a mica robotul spre dreapta. Verific

    valoarea distanei afiate pe scen.

    Remixeaz i mbuntete soluia anterioar.

    http://scratch.mit.edu/projects/41760210/#editorhttp://scratch.mit.edu/projects/41758864/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 45 din 61

    12.3 Robot care urmrete peretele cu ajutorul unui singur senzor

    n aceast seciune, l vei programa pe Karel s urmreasc un perete folosind doar senzorul

    de distan proiectat n seciunea anterioar.

    12.3.1 Urmritor de perete cu un singur senzor introducere

    Vrem ca robotul Karel s urmreasc peretele la o distan dat (de exemplu, 3). Pentru a-l

    programa pe Karel s urmeze peretele, trebuie s citim valoarea senzorului, care poate varia

    ntre 0 i 6. Trebuie s calculm eroarea de distan, definit drept diferena dintre valoarea

    real a senzorului de distan i valoarea de referin (3).

    Eroarea are o valoare pozitiv dac distana robot perete este mai mare dect 3. n acest

    caz, Karel se va roti spre stnga (ctre perete). Eroarea are o valoare negativ dac distana

    robot perete este mai mic dect 3. n acest caz, Karel se va roti spre dreapta (se va

    ndeprta de perete). Unghiul de rotire va fi proporional cu valoarea erorii.

    12.3.2 Urmritor de perete cu un singur senzor provocare

    Remixeaz proiectul http://scratch.mit.edu/projects/41757022/#editor.

    Dup cum observi, Karel are un senzor de distan care poate fi citit cu ajutorul blocului read

    left sensor (citete senzorul stng). Distana real (un numr ntre 0 i 6) este stocat n

    variabila left sensor (senzorul stng).

    Creeaz o variabil denumit lateral error (eroarea lateral) pentru a stoca eroarea definit

    ca diferena dintre distana real stocat n variabila left sensor i distana de referin (de

    ex. 3).

    Controleaz comportamentul lui Karel astfel:

    - Dac distana fa de perete este mai mic dect valoarea de referin (3), ndeprteaz-te

    de perete.

    - Dac distana fa de perete este mai mare dect valoarea de referin (3), apropie-te de

    perete. Aciunea poate fi realizat foarte uor, rotind robotul n sens antiorar cu un unghi

    direct proporional cu valoarea variabilei lateral error.

    - Karel se deplaseaz nainte cu un numr de pai egal cu valoarea variabilei speed.

    Testeaz programul cu decoruri i diferite valori ale parametrilor lui Karel (de ex. vitez,

    constant de proporionalitate).

    12.3.3 Urmritor de perete cu un singur senzor soluie O posibil soluie este la adresa http://scratch.mit.edu/projects/41756484/#editor.

    Clicheaz pe steagul verde pentru a rula aceast soluie. Observ ce se ntmpl dac

    mreti viteza.

    http://scratch.mit.edu/projects/41757022/#editorhttp://scratch.mit.edu/projects/41756484/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 46 din 61

    Se observ c robotul Karel ntmpin probleme cu urmrirea peretelui atunci cnd mrim

    viteza. Vom ncerca s soluionm problema n urmtoarea seciune, n care vom proiecta un

    robot care urmrete peretele cu ajutorul a doi senzori de distan.

    Karel urmrete peretele doar dac este poziionat bine la nceput, el nefiind programat s

    gseasc peretele dac nu se afl n poziia iniial corect.

    Remixeaz i optimizeaz soluia prezentat.

    12.4 Robot care urmrete peretele cu ajutorul a doi senzori

    n aceast seciune vei mbunti comportamentul de urmrire a peretelui al lui Karel cu

    ajutorul a doi senzori de distan.

    12.4.1 Urmritor de perete cu doi senzori introducere

    Dup cum am vzut n seciunea anterioar, robotul care urmrete peretele cu un singur

    senzor poate ntmpina dificulti cnd mrim viteza. Situaia se datoreaz vitezei mici de

    reacie a robotului n cazul n care exist un perete n faa lui.

    Problema se poate soluiona folosind un senzor n faa robotului. Cnd acest senzor

    detecteaz un perete n faa sa, robotul se va roti spre dreapta i va continua s urmreasc

    peretele cu ajutorul senzorului lateral.

    12.4.2 Urmritor de perete cu doi senzori provocare

    Remixeaz proiectul http://scratch.mit.edu/projects/41753442/#editor.

    Dup cum observi, Karel are un senzor lateral care este citit folosind blocul read left sensor

    (citete senzorul stng). Variabila speed stocheaz viteza lui Karel.

    1. Adug un senzor de distan n faa lui Karel.

    2. Creeaz un bloc read front sensor (citete senzorul frontal) pentru a citi informaiile de la

    senzorul frontal i a le stoca n variabila front sensor (senzor frontal).

    3. Definete blocul read sensors (citeti senzorii) care citete ambii senzori (stnga i

    frontal).

    4. Calculeaz erorile ambilor senzori i stocheaz-le n variabilele frontal error (eroarea

    frontal) i lateral error (eroarea lateral).

    5. Controleaz-l pe Karel astfel:

    - Dac senzorul frontal detecteaz un perete, vireaz la dreapta.

    - n oricare alt situaie, urmrete peretele folosind informaii de la senzorul stng.

    6. Proiecteaz diverse decoruri pentru a testa comportamentul de urmrire a peretelui.

    Testeaz robotul la viteze i valori diferite ale parametrilor.

    http://scratch.mit.edu/projects/41753442/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 47 din 61

    12.4.3 Urmritor de perete cu doi senzori soluie

    O soluie posibil este la adresa http://scratch.mit.edu/projects/41750262/#editor.

    Clicheaz pe steagul verde pentru a rula aceast soluie.

    Remixeaz i optimizeaz soluia prezentat.

    http://scratch.mit.edu/projects/41750262/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 48 din 61

    13 Robot urmritor de linie Obiectiv: s l programezi pe Karel s urmreasc o linie neagr pe o suprafa alb.

    13.1 Ce este un robot care urmrete linia?

    Urmrete filmul postat la adresa https://youtu.be/HjdDp7oMXTA, pentru a observa modul

    n care Karel urmrete linia.

    Un robot urmritor de linie este capabil s se deplaseze de-a lungul unui traseu (Figura 42).

    De obicei, traseul este o linie neagr pe o suprafa alb sau o linie alb pe o suprafa

    neagr. Concursurile de urmrirea liniei sunt foarte populare i au regulamente similare cu

    cel din [3].

    Figura 42 Robot urmritor de linie

    13.1.1 Urmritor de linie senzori

    n mod normal, roboii care urmresc linia folosesc senzori optici (IR), plasai frontal, pentru

    a detecta linia. Robotul care urmrete linia poate fi prevzut doar cu un senzor digital, care

    poate fi analogic sau digital.

    n cazul simulrii n Scratch, vom folosi senzori digitali, care semnaleaz doar dac senzorul

    este deasupra liniei sau nu. n cadrul acestei lecii, vom proiecta dou variante de roboi: una

    cu doi senzori i alta cu 12 senzori.

    13.1.2 Urmritor de linie - control

    Putem controla robotul care urmrete linia dup cum urmeaz:

    - Dac robotul este deasupra liniei, atunci se va deplasa nainte.

    https://youtu.be/HjdDp7oMXTA

  • S nvm programare jucndu-ne n Scratch

    Pagina 49 din 61

    - Dac robotul este n stnga liniei, se va roti spre dreapta (n sens orar).

    - Dac robotul este n dreapta liniei, se va roti spre stnga (n sens anti orar).

    Aciunile robotului pot fi direct proporionale cu valoarea erorii reale.

    13.2 Robot care urmrete linia cu ajutorul a doi senzori

    Putem construi un robot care urmrete corect linia doar cu ajutorul a doi senzori. n aceast

    seciune, l vom transforma pe Karel ntr-un robot care urmrete linia cu ajutorul a doi

    senzori.

    n continuare voi prezenta caracteristicile senzorilor i modul de control al robotului.

    13.2.1 Senzorii unui urmritor de linie cu doi senzori

    Senzorii de linie sunt dou mici dreptunghiuri (sau cercuri) de diferite culori, amplasate n

    faa robotului, unul pe partea stng, altul pe dreapta (Figura 43). Distana dintre marginile

    senzorilor trebuie s fie egal cu limea liniei.

    Figura 43 Urmritor de linie cu doi senzori

    Vom folosi blocul pentru a verifica dac senzorul se afl deasupra liniei (de culoare neagr). Valoarea senzorului este 1 dac acesta se afl deasupra liniei i 0 n

    caz contrar.

    13.2.2 Urmritor de linie cu doi senzori control

    Este foarte uor s-l controlm pe Karel:

    1. Dac senzorii au aceeai valoarea (0 sau 1), Karel se deplaseaz nainte.

    2. Dac senzorii au valori diferite, Karel se rotete spre partea senzorului cu valoarea mai

    mare (de ex., dac senzorul stng = 1 i cel drept = 0, atunci Karel se rotete spre stnga,

    adic n sens antiorar).

    13.2.3 Provocare: Robot urmritor de linie cu doi senzori

    Remixeaz proiectul de la adresa http://scratch.mit.edu/projects/41779016/#editor.

    Pentru a-l face pe Karel s urmreasc linia poi urma urmtorii pai:

    http://scratch.mit.edu/projects/41779016/#editor

  • S nvm programare jucndu-ne n Scratch

    Pagina 50 din 61

    1. Amplaseaz doi senzori de linie (dreptunghiuri de diferite culori) n faa lui Karel.

    2. Creeaz blocul read sensors (citete senzorii), care actualizeaz valorile variabilelor left

    sensor (senzor stnga) i right sensor (senzor dreapta). Valoarea este 1 dac senzorul se afl

    deasupra liniei i 0 n caz contrar.

    3. Creeaz variabila error (eroare), care stocheaz diferena dintre variabilele left sensor

    i right sensor.

    4. Creeaz variabilele speed (viteza) i Kp (constanta de proporionalitate), care

    stocheaz doi parametri ai robotului: viteza i constanta de proporionalitate.

    5. Controleaz robotul astfel:

    - Robotul se rotete spre stnga cu un unghi egal cu produsul dintre Kp i error (de reinut

    c robotul se va roti spre dreapta dac unghiul este negativ).

    - Robotul se deplaseaz nainte cu un numr de pai egal cu variabila speed.

    Testeaz comportamentul lui Karel pe trasee diferite (pentru schimbarea traseului se alege

    alt decor), precum i cu valori diferite ale parametrilor Kp i speed.

    Ce se ntmpl dac mreti viteza?

    13.2.4 Soluie: Robot urmritor de linie cu doi senzori

    Clicheaz pe steagul verde pentru a rula una dintre soluiile posibile, care poate fi accesat la

    http://scratch.mit.edu/projects/41770786/#editor. Ce se ntmpl dac mreti viteza?

    Remixeaz soluia prezentat i mbuntete-o pentru a mri viteza maxim.

    13.3 Robot urmritor de linie cu 12 senzori

    n cadrul ace