Differences

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

Link to this comparison view

pm:prj2022:cstan:800 [2022/05/30 02:03]
nicu_catalin.iovita [Schema electrica]
pm:prj2022:cstan:800 [2022/05/30 02:30] (current)
nicu_catalin.iovita [Introducere]
Line 10: Line 10:
  
 {{:​pm:​prj2022:​cstan:​screenshot_2022-05-30_at_01.41.18.png?​700|}} {{:​pm:​prj2022:​cstan:​screenshot_2022-05-30_at_01.41.18.png?​700|}}
 +
 +{{:​pm:​prj2022:​cstan:​mpc2.jpeg?​600|}}
 +
 +{{:​pm:​prj2022:​cstan:​mpc1.jpeg?​600|}}
 +
 ===== Descriere generală ===== ===== Descriere generală =====
  
Line 44: Line 49:
 Matricea de leduri am legat-o la pinii rămași D9, D10, D11 pentru CLK, DIN  Matricea de leduri am legat-o la pinii rămași D9, D10, D11 pentru CLK, DIN 
  
 +
 +== 1x Buzzer ==
 +Buzzer-ul l-am legat la pin-ul 13 rămas pe placa Arduino.
 ===== Software Design ===== ===== Software Design =====
  
  
-<note tip+Ca si biblioteci, am folosit: 
-Descrierea codului aplicaţiei (firmware): +  * <Keypad.h>  
-  * mediu de dezvoltare ​(if any) (e.gAVR StudioCodeVisionAVR+  * <​LedControl.h>​ 
-  * librării şsurse 3rd-party (e.gProcyon AVRlib) +  * <​LiquidCrystal_I2C.h>​ 
-  * algoritmi şstructuri ​pe care plănuiţsă le implementaţ+ 
-  ​* ​(etapa 3surse şfuncţii implementate + 
-</note>+== Ecran LCD == 
 + 
 +Ca si implementare,​ pentru ecranul LCD I2C, mi-am creat funcții care vor printa pe ecran diferite mesaje. Aceste funcții ​(printVolume,​ printMelodyTitle,​ etc), vor apela lcd.clear(), pentru curățarea ecranului, apoi vor poziționa cursorul pe ecran și vor afișa mesajul dorit 
 + 
 +== Matrice leduri == 
 + 
 +Pentru afisarea pe matricea de leduri, m-am folosit de o funcție ce parcurge fiecare led din interiorul matricei (printByte),​ apelând-o cu diferiți bytesInițialam creat o funcție ce se va apela în modul de StandBy (mod în care utilizatorul nu dorește sa acționeze). În acest mod, matricea va cicla cu niște modele specifice, pana când utilizatorul va apasă o tasta anume. De fiecare data când utilizatorul apasă o tasta, modelul de pe matrice se va recolora. Pentru recolorarea matricilor, am folosit un software găsit online, numit Form, ce te ajuta sa creezi modele pe aceasta matrice 8x8, generand o secvența de octeti în binar sau hexazecimal. ​ 
 + 
 +[[https://​www.youtube.com/​watch?​v=IwH9vzC4BKI]] 
 + 
 +== Keypad == 
 + 
 +Pentru tastatura cu membrana, nu a fost complicata partea de software: în funcția de loop voi prelua de fiecare data caracterul apăsat de utilizator, șvoi verifica valoarea acestuia. Cum am specificat, pentru tastele de la 1 la 9, se vor emite sunete generate de către difuzoare. La apăsarea tastei D, voi emite sunetul memorat anterior pana când tasta D va fi din nou apăsată. 
 + 
 +== Difuzoare == 
 + 
 +Pentru difuzoare, m-am folosit de funcțiile tone() și noTone()Ce nu am reușit prin implementarea mea a fost sa elimin partea de delay din apelul acestor funcțiiEu doream sa pot emite un sunet cu buzzerul (independentșsa pot emite sunete diferite prin cele trei difuzoare; nu a fost posibil, deoarece sunetele se emiteau ​pe rând. Am încercat sa elimin o parte din delay, spre exemplu din afișarea pe matrice, creând funcția simulateDelay(),​ ca sa pot emite sunete în acelaștimp șsa colorez matricea în timp real. 
 + 
 +Pentru melodia cântată automat ​(Game of Thrones theme), am găsit repository-ul lăsat în documentație pe GitHub, unde notele erau generate șmelodia era deja existenta (împreună cu delay-ul notelor). Inițial am pus mai multe melodii, însă am renunțat și am lăsat doar una în final, deoarece am vrut sa implementez și partea de Loop, cât și incrementul și decrementul BPM. 
 + 
 +Partea de increment și decrement BPM se referă la simularea unui metronom; un instrument ce rulează pe fundal, de obicei niște ​note mai joase, pentru ca tu sa te poți sincroniza cu acesta, când dorești sa creezi diferite note (funcția freeStyle() din cod) 
 + 
 +== Buzzer ==
  
 +Cum spuneam, buzzerul va lua rolul de '​metronom',​ creând ciclicitatea la dorința userului de a reda sunete joase sau înalte, pe care iei poate exersa talentul.
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
pm/prj2022/cstan/800.1653865437.txt.gz · Last modified: 2022/05/30 02:03 by nicu_catalin.iovita
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