This shows you the differences between two versions of the page.
info2:laboratoare:01 [2021/03/01 23:53] alexandru.vochescu |
info2:laboratoare:01 [2021/03/16 00:35] (current) alexandru.vochescu [Exerciții] |
||
---|---|---|---|
Line 15: | Line 15: | ||
* 25 de LED-uri | * 25 de LED-uri | ||
* 3 pini programabili | * 3 pini programabili | ||
- | * Senzor tactil | + | * Senzori precum: atingere, lumină, temperatură, busolă sau accelerometru |
{{:info2:laboratoare:microbit_schema.png?700|}} | {{:info2:laboratoare:microbit_schema.png?700|}} | ||
Line 25: | Line 25: | ||
=== Visual Programming (Blockly) === | === Visual Programming (Blockly) === | ||
- | Visual Programming sau Blockly este o bibliotecă dezvoltată de Google care ne permite să scriem coduri folosind blocuri care se pot lega împreună folosind mouse-ul (drag-and-drop). Odată ce programul este "ansamblat" și rulat, în spate se generează codul echivalent într-un limbaj high-level precum Python sau JavaScript (în cazul platformei MakeCode, codul rezultat este în JavaScript). | + | Visual Programming sau Blockly este o bibliotecă dezvoltată de Google care ne permite să scriem coduri folosind blocuri care se pot lega împreună folosind mouse-ul (drag-and-drop). Odată ce programul este "asamblat" și rulat, în spate se generează codul echivalent într-un limbaj high-level precum Python sau JavaScript (în cazul platformei MakeCode, codul rezultat este în JavaScript). |
Avantajul la folosirea Blockly este că nivelul de cunoștințe de programare necesar este redus, iar un program minimal poate fi construit cu ușurință. Dezavantajul major apare în momentul în care dorim să construim programe mai mari și mai complexe, dezvoltarea acestuia într-un limbaj de programare normal fiind mult mai rapidă și mai facilă. | Avantajul la folosirea Blockly este că nivelul de cunoștințe de programare necesar este redus, iar un program minimal poate fi construit cu ușurință. Dezavantajul major apare în momentul în care dorim să construim programe mai mari și mai complexe, dezvoltarea acestuia într-un limbaj de programare normal fiind mult mai rapidă și mai facilă. | ||
Line 49: | Line 49: | ||
* Detectarea înclinării repetate a plăcii: | * Detectarea înclinării repetate a plăcii: | ||
- | {{:info2:laboratoare:shake.png?200|}} | + | {{:info2:laboratoare:shake.png?130|}} |
* Detectarea atingerii (senzorul se află sub logo): | * Detectarea atingerii (senzorul se află sub logo): | ||
- | {{:info2:laboratoare:logo_pressed.png?200|}} | + | {{:info2:laboratoare:logo_pressed.png?130|}} |
* Detectarea apăsării butonului: | * Detectarea apăsării butonului: | ||
- | {{:info2:laboratoare:button_pressed.png?200|}} | + | {{:info2:laboratoare:button_pressed.png?130|}} |
+ | == Bucle repetitive == | ||
+ | Secțiunea de block-uri cuprinsă în cadrul acestui block se va repeta de un număr specific de ori. Cele mai importante sunt: | ||
+ | |||
+ | * Repetarea unei secțiuni de un număr repetat de ori: | ||
+ | {{:info2:laboratoare:repeat.png?150|}} | ||
+ | |||
+ | * Repetarea unei secțiuni de un număr repetat de ori folosind o variabilă: | ||
+ | {{:info2:laboratoare:for.png?150|}} | ||
+ | |||
+ | * Buclă repetitivă condițională: | ||
+ | {{:info2:laboratoare:while.png?130|}} | ||
+ | |||
+ | * Întreruperea unei bucle repetitive: | ||
+ | {{:info2:laboratoare:break.png?80|}} | ||
+ | |||
+ | == Block-uri logice == | ||
+ | Aici avem block-uri care execută block-urile interioare doar dacă o anumită condiție este îndeplinită, dar și blocuri care întorc o valoare logică (adevărat sau fals). Cele mai importante sunt: | ||
+ | |||
+ | * Secțiune condițională - executată dacă valoarea este adevărată: | ||
+ | {{:info2:laboratoare:if.png?150|}} | ||
+ | |||
+ | * Verificarea egalității a două numere: | ||
+ | {{:info2:laboratoare:equal.png?150|}} | ||
+ | |||
+ | * Verificarea valorii logice a două valori: | ||
+ | {{:info2:laboratoare:and.png?150|}} | ||
+ | |||
+ | <note important> | ||
+ | Toate block-urile explicate pe categorii pot fi găsite [[https://makecode.microbit.org/reference|aici]]. | ||
+ | </note> | ||
+ | |||
+ | === Interacțiunea cu platforma === | ||
+ | |||
+ | Pentru a crea un proiect nou, intrăm pe pagina platformei [[https://makecode.microbit.org|MakeCode]] și apăsăm pe butonul "New Project". Vom scrie apoi un nume pentru noul proiect și apoi vom apăsa "Create". Mai jos vedem cum arată platforma atunci când creăm un proiect nou: | ||
+ | |||
+ | {{:info2:laboratoare:microbit_sim.png?700|}} | ||
+ | |||
+ | În partea stângă avem plăcuța cu care putem interacționa (fie apăsând unul din cele doua butoane sau logo-ul, fie înclinând placa). În partea centrală avem block-urile pe care le putem utiliza grupate în foldere, pe care le putem folosi cu "drag-and-drop" și apoi le putem uni. În partea din dreapta avem locul unde compunem programul din block-uri. | ||
+ | |||
+ | Platforma nu stochează proiectele pe care le scriem, aceasta folosindu-se de facilitățile de stocare ale browser-ului. De aceea, pentru a putea folosi proiectele ulterior, trebuie să le descărcăm folosind butonul "Download". Proiectul se va salva local sub forma unui fișier .hex . Ulterior, în pagina principală, în loc să creăm un proiect nou, avem opțiunea de a selecta "Import" și a încărca fișierul .hex . | ||
+ | |||
+ | Un exemplu de program care poate fi scris este următorul: | ||
+ | |||
+ | {{:info2:laboratoare:sample_code.png?450|}} | ||
+ | |||
+ | Acest cod va genera folosind LED-urile de pe placă un anumit tip de față în funcție de interacțiunea pe care o avem cu placa din partea stângă a browser-ului. De exemplu, dacă apăsăm butonul A, vom obține o față zâmbitoare ca mai jos: | ||
+ | |||
+ | {{:info2:laboratoare:result.png?300|}} | ||
+ | |||
+ | |||
+ | ==== Exerciții ==== | ||
+ | <note important> | ||
+ | După rezolvarea unui exercițiu, **salvați proiectul local** cu un nume sugestiv pentru a nu pierde ceea ce ați reușit să lucrați și pentru a putea accesa ulterior rezolvările. Pentru fiecare exercițiu **creați un proiect nou**. | ||
+ | </note> | ||
+ | |||
+ | - Creați un proiect nou în care să reproduceți codul dat mai sus în exemplu. Puteți să ștergeți block-urile de "on start" și "on forever" create automat la generarea proiectului. | ||
+ | - Simulați rostogolirea unui zar: la "scuturarea" plăcii se va afișa un număr aleator între 0 și 6. Hint: Grupul de block-uri "Math" | ||
+ | - Generarea unei secvențe folosind ecranul din LED-uri. Veți genera mai întâi o imagine, iar după 2 secunde de întârziere, vă veți scrie prenumele (de preferat prescurtat) sau o poreclă. În final după încă o întârziere de 200 de milisecunde, veți aprinde toate led-urile de pe plăcuță (simularea umplerii ecranului). | ||
+ | - În funcție de butonul apăsat pe placă generați o imagine care să fie afișată. | ||
+ | - Joc de sunet: Dacă se generează un zgomot, ecranul de LED-uri se va lumina pentru două secunde. În momentul în care este din nou liniște, ecranul de LED-uri va fi din nou gol. Hint-uri: grupul de block-uri "Input" și variabile. | ||
+ | - Generați o bară de tip "nivel" din ecranul de LED-uri, care să reflecte nivelul de luminozitate. Hint: grupul "Input". | ||
+ | - Generați o secvență de imagini pe ecran la un interval prestabilit. | ||
+ | - Creați un timer. La apăsarea butonului A, se va porni timerul și se va afișa o imagine pe ecran, iar la apăsarea butonului B, se va opri timerul, iar numărul de secunde va fi afișat pe ecran. Hint: grupul de block "Input" la "More" și grupul "Math". | ||
+ | - În funcție de interacțiunea cu placa (apăsarea unui buton, a logo-ului sau "scuturarea" plăcii) redați câte un sunet diferit și afișați pe ecran câte o imagine. | ||
+ | - Lumină inteligentă: dacă nivelul luminii scade sub un anumit prag, se va lumina complet ecranul; dacă nivelul crește peste un anumit prag se va lumina complet ecranul. Mai mult, se va reda și un sunet corespunzător pentru zi/noapte. | ||
+ | - Exercițiu avansat: Animal de companie | ||
+ | - Animalul este reprezentat printr-o față zâmnbitoare sau supărată afișată pe ecran. | ||
+ | - Pentru a "mângâia animalul" se apasă logo-ul. Se va reda un sunet corespunzător atunci când este apăsat logo-ul. | ||
+ | - Se va da drumul la un timer imediat ce programul pornește, iar dacă se trece de 10 secunde de când nu a mai fost mângâiat, "animalul" va scoate un sunet corespunzător. Dacă se trece de 20 de secunde de când nu a mai fost mângâiat, "animalul moare" și se afișează un "X" pe ecran sau o altă imagine reprezentativă (fiți creativi). | ||
+ | - Timer-ul este resetat de fiecare dată când se apasă logo-ul. |