Differences

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

Link to this comparison view

pm:prj2024:rpascale:andrei.nedelcu1503 [2024/05/05 22:24]
andrei.nedelcu1503 created
pm:prj2024:rpascale:andrei.nedelcu1503 [2024/05/27 17:40] (current)
andrei.nedelcu1503
Line 1: Line 1:
-====== ​Paper Piano ======+====== ​Record & Play Piano ======
 ===== Introducere ===== ===== Introducere =====
-Proiectul presupune construirea unui pian prin care se canta atigand clapele corespunzatoare desenate ​cu creionul pe o foaie de hartie folosind atingerea capacitiva.+Proiectul presupune construirea unui pian cu butoane care are functia ​de inregistare si apoi redare pe repeat a continutului inregistrat. 
 ===== Descriere generală ===== ===== Descriere generală =====
  
-Acest proiect implică crearea unui pian de hârtie utilizând un Arduino ​și tehnologia de senzorizare capacitivăSenzorizarea capacitivă permite detectarea atingerii umane printr-un material izolatorcum ar fi plasticul sau lemnulfără contact direct. Arduino-ul măsoară timpul ​de încărcare al unui capacitorestimând capacitivitatea senzoruluiTastatura pianului este desenată ​pe hârtie folosind un creion cu plumbiar Arduino-ul ​detectează atingerile ​și produce sunete corespunzătoare ​pe un difuzor conectatEste o combinație între inginerie simplă și creativitate pentru ​crea o interfață muzicală interactivă cu materiale obișnuite și tehnologie Arduino.+Butoanele ​de apasare vor fi conectate la Arduino ​prin pinul analog A0Vom folosi functia tone() a Arduino-ului pentru a genera semnale de frecvente diferiteproducand diverse sunete prin intermediul buzzerului. În loc sa utilizam pini individuali pentru fiecare butonvom folosi o tehnică de divizare a tensiunii folosind valori diverse ale rezistentelorreducand astfel necesitatea de a folosi mai multi piniAcest lucru ne permite sa includem componente suplimentare,​ precum afișajul LCD unde vom putea vizualiza actiunile ​pe care le facem. 
 +În timpul modului de inregistrareutilizatorii pot reda melodiile dorite in timp ce Arduino-ul ​inregistrează secventa ​și durata apasarilor butoanelor. Acest lucru este realizat prin monitorizarea tensiunilor analogice de pe pinul A0 și determinarea butonului apasatSecventa si durata inregistrata sunt stocate în tablouri. La comutarea în modul de redare, Arduino-ul reda secvența inregistrata de tonuri pe baza datelor stocate. 
 + 
 + ​{{:​pm:​prj2024:​rpascale:​pm_project_piano.png?700|}}
  
 ===== Hardware Design ===== ===== Hardware Design =====
Line 10: Line 14:
 Lista de componente utilizate: Lista de componente utilizate:
   * Arduino Uno   * Arduino Uno
 +  * LCD 1602 cu interfata I2C
   * Breadboard   * Breadboard
   * Fire de conexiune   * Fire de conexiune
-  * Resistoare ​1M ohm +  * Resistoare 
-  * Speaker +  * Buzzer 
-  * Foaie, creion+  * Switch 
 +  * 8 Butoane 
 + 
 +Schema electrica:​ 
 +{{ :​pm:​prj2024:​rpascale:​rec_play_piano_scheme.png?​700 |}} 
 +{{ :​pm:​prj2024:​rpascale:​record_and_play_piano_elec_scheme.jpg?​800|}} 
 +{{:​pm:​prj2024:​rpascale:​proof_of_concept_piano.jpeg?​600|}}
  
 ===== Software Design ===== ===== Software Design =====
  
 +Mediu de Dezvoltare: Arduino IDE
  
-<note tip> +Librarii si Surse 3rd-Party
-Descrierea codului aplicaţiei (firmware)+Codul utilizeaza biblioteca LiquidCrystal_I2C.h pentru a facilita interactiunea cu afisajele LCD I2CAceasta permite controlul ecranului LCD pentru a afisa mesaje text.
-  * mediu de dezvoltare (if any) (e.gAVR Studio, CodeVisionAVR) +
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) +
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +
-  * (etapa 3) surse şi funcţii implementate +
-</​note>​+
  
-===== Rezultate Obţinute =====+Algoritmi si Structuri Implementate 
 +Aplicatia implementeaza un sistem de inregistrare si redare a notelor muzicale. Jucatorul poate apasa butoane care corespund unor note muzicale, iar sistemul inregistreaza secventa acestora si o reda ulterior.
  
-<note tip> +Initializarea LCD-ului: 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +Functia setup() initializeaza afisajul LCD si afiseaza un mesaj introductiv.
-</​note>​+
  
-===== Concluzii =====+Detectarea apasarii butoanelor:​ 
 +Functia Detect_button() citeste valoarea analogica de la un pin si determina ce buton a fost apasat. Valorile detectate sunt stocate intr-un array pentru a fi redate ulterior.
  
-===== Download =====+Redarea sunetelor:​ 
 +Functia Play_tone() gestioneaza redarea sunetelor corespunzatoare fiecarui buton apasat. De asemenea, aceasta afiseaza nota curenta pe ecranul LCD si inregistreaza durata fiecarei note.
  
-<note warning> +Surse si Functii Implementate:​ 
-O arhivă ​(sau mai multe dacă este cazulcu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script ​de compilare şi copiere automată pe uC crează întotdeauna o impresie ​bună ;-).+setup() 
 +Configureaza initial pinurileafisajul LCD si afiseaza ​un mesaj de bun venit.
  
-Fişierele se încarcă ​pe wiki folosind facilitatea **Add Images or other files**Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** ​(dacă este cazul). **Exemplu:​** Dumitru Alin331CC -> **:pm:prj2009:cc:dumitru_alin**. +loop() 
-</​note>​+Bucleaza continuu pentru a detecta apasarile de buton si a reda notele inregistrate. Comuta intre modurile de inregistrare si redare ​pe baza starii unui buton. 
 + 
 +Detect_button() 
 +Detecteaza ce buton a fost apasat pe baza valorii analogice citite ​de la un pin si stocheaza aceste informatii in array-uri pentru redare ulterioara. 
 + 
 +Play_tone() 
 +Reda sunetul corespunzator butonului apasat si afiseaza nota pe LCDInregistreaza durata fiecarei note. 
 + 
 + 
 +===== Rezultate Obţinute si Concluzii ===== 
 +Am creat un pian capabl sa inregistreze si sa redea sunetele inregistrare. Proiectul include un ecran LCD pentru afișarea notelor și mesajelorprecum și un buzzer pentru redarea sunetelor. Interfața intuitivă permite utilizatorilor să înregistreze și să redea cu ușurință melodii. 
 + 
 +===== Download ===== 
 + 
 +{{:pm:prj2024:rpascale:record_play_piano_code.zip|}}
  
 ===== Jurnal ===== ===== Jurnal =====
  
 <note tip> <note tip>
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. +03.04.2024 - alegerea temei
-</​note>​+
  
-===== Bibliografie/​Resurse =====+02.05.2024 - crearea paginii ocw
  
-<​note>​ +03.05.2024 - documentație inițială 
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.+ 
 +14.05.2024 ​finalizare hardware 
 + 
 +19.05.2024 - finalizare software
 </​note>​ </​note>​
  
-<​html><​a class="media mediafile mf_pdf"​ href="?do=export_pdf">​Export to PDF</a></​html>​+===== Bibliografie/Resurse ===== 
pm/prj2024/rpascale/andrei.nedelcu1503.1714937072.txt.gz · Last modified: 2024/05/05 22:24 by andrei.nedelcu1503
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