Differences

This shows you the differences between two versions of the page.

Link to this comparison view

info2:laboratoare:02 [2021/03/08 02:02]
alexandru.vochescu
info2:laboratoare:02 [2021/03/09 14:55] (current)
alexandru.vochescu [Exerciții]
Line 7: Line 7:
 ===== Cuvinte cheie ===== ===== Cuvinte cheie =====
   * for, if, while, vector   * for, if, while, vector
 +  * basic, music 
 +  * show_string,​ show_number,​ show_leds, clear_screen,​ pause 
 +  * play_tone, start_melody
 ===== Concepte de programare ===== ===== Concepte de programare =====
  
Line 31: Line 33:
 </​code>​ </​code>​
  
-Un lucru atipic la python ​față de multe limbaje de programare clasice, este faptul că acesta ne permite să avem valori din tipuri diferite de date în cadrul aceluiași vector (numere întregi, șiruri de caractere și valori logice).+Un lucru atipic la Python ​față de multe limbaje de programare clasice, este faptul că acesta ne permite să avem valori din tipuri diferite de date în cadrul aceluiași vector (numere întregi, șiruri de caractere și valori logice).
  
 ==== If - Else ==== ==== If - Else ====
Line 134: Line 136:
 basic.pause(1000) basic.pause(1000)
 </​code>​ </​code>​
 +
 +==== Sunete folosind Python ==== 
 +Funcții pentru redarea sunetelor folosind simulatorul de Microbit:
 +  * Redarea unei singure note folosind obiectul "​Note":​
 +<code python>
 +freq = Note.D
 +music.play_tone(Note.C,​ 1000)
 +</​code>​
 +
 +  * Redarea unei melodii o singură dată:
 +<code python>
 +melody = music.built_in_melody(Melodies.ENTERTAINER) ​     # Vom folosi o melodie predefinită
 +music.start_melody(melody,​ MelodyOptions.ONCE) ​           # Redă o singură dată melodia
 +</​code>​
 +
 +  * Redarea unui sample până când se termină acel sample:
 +<code python>
 +soundExpression.giggle.play_until_done()
 +</​code>​
 +
 +Funcționalitățile explicate mai sus, dar și altele pot fi găsite în [[https://​makecode.microbit.org/​reference|documentație]].
  
 ===== Exerciții ===== ===== Exerciții =====
-Toate exercițiile vor fi realizate ​pe [[https://​www.tinkercad.com/​| Tinkercad]] +  - Generați o secvență de imagini care să apară ​pe ecran la un anumit interval de timp
-  - Folosind un **VOLTMETRU** masurați voltajul de pe pinul GPIO 3Setați pinul pe LOW/HIGH șobservați cum se modifică valorile+  - Generați o secvență folosind ecranul din LED-uriVeți genera mai întâi o imagine, iar după 2 secunde de întârziere,​ vă veț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)
-  - Folosind un **ARDUINO**,​ un **LED** ​și o **REZISTENȚĂ ​de 220 ohmi**, aprindeti LED-ul **(NU folositi pinii GPIO)**, apoi masurați curentul și voltajul circuitului+  - Afișpe ecranul format din led-uri numerele ​de la 1 la 10. 
-  - Folosind un **ARDUINO**,​ un **LED** șo **REZISTENȚĂ ​de 220 ohmi**faceți un LED să clipească (rezolvați exercițiul în 2 modalități)+  ​Afișați pe ecran numerele pare de la 1 la 20.  
-  - Folosind ​un **ARDUINO**,​ **LED-uri** ​și **REZISTENȚE de 220 ohmi**, simulați un semafor de mașini ​și un semafor ​de pietoni ​care să fie sincronizate. Semafoarele vor fi implementate folosind led-uri ​și parcurgerea acestora trebuie făcută cu **șiruri/​vectori** (rezolvați exercițiul în 2 modalități). +  - Parcurgețnumerele ​de la 1 la 30: dacă numărul este divizibil cu 5afișați o inimă, dacă numărul este divizibil cu 3 (dar nu și cu 5), afișați o față zâmbitoare,​ iar în orice alt caz afișați o față tristă
-  - Conectați la un **ARDUINO**, un **7 SEGMENT DISPLAY** șfolosind ​funcții ajutătoare, ​afișați fiecare ​număr ​(0-9) pe displayRezolați în 2 modalitați:​ folosind un **7 SEGMENT DISPLAY** cu **anod comun**respectiv cu **catod comun**+  - Generați ​un vector de 20 de elemente aleatoare între 0 și 100. Apoi parcurgeți vectorul generat ​și calculați numărul ​de elemente ​care sunt divizibile cu 10 și numărul de elemente divizibile cu 9. Dacă numărul de elemente divizibile ​cu 10 este mai mare, afișați o față zâmbitoare pe ecranÎn caz contrar, afișați o față tristă. ​**Hint**: pentru generarea de elemente aleatoareuitați-vă în secțiunea Math, la funcția //​randint//​. 
-  - Folosind montajul anterior implementați un numarator ce afiseaza cifrele de la 0 la 9. +  - Modificați proiectul anterior pentru a găsi numărul prim cel mai mare din vector și se va afișa ​pe ecran. Dacă nu există niciun ​număr ​prim în vector, se va genera o secvență în care toate led-urile se aprind de 3 ori cu o întârziere de 500 ms între ele. 
-{{:​info2:​laboratoare:​arduino-7-segment-display.png?​200|100}} +  - Modificați proiectul anterior astfel încât ​în caz de succes se va cânta melodia "​Entertainer"​iar dacă numărul nu este găsit se va reda melodia "​Funeral"​. Se va folosi funcția //​music.built_in_melody//​
-  - Conectati 5 LED-uri si controlati-le astfel incat fiecare sa clipeasca pe rand: primul ​data, al doilea de doua ori etc+  - Căutați pe google notele pentru melodia "​Twinkle Twinkle little star" și creați un vector cu notele respectiveApoi folosiți funcția //​play_tone//​ pentru a reda melodia
-  - Folositi ​un LED pentru a lumina un cuvant in cod morse+  - Adaptați proiectul anterior pentru a genera câte imagine diferită pentru fiecare notă care este redată
-  - Folositi ​un buzzer cu acelasi scop.+  - Creați ​un proiect nou în care veți reda aceeași melodie, folosind funcția //​music.play_melody//​ (mai multe detalii în platformă, în meniul de //music//, primul bloc). Încercați să adaptați codul pentru a genera imagini în mod similar exercițiului anterior
 +  - Implementați redarea primelor note din melodia preferată. Modificați diverse variabile precum tempo-ul și volumul. 
 +  - Redați ​un sample precum cel din laborator și afișați o față zâmbitoare. 
info2/laboratoare/02.1615161746.txt.gz · Last modified: 2021/03/08 02:02 by alexandru.vochescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0