Differences

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

Link to this comparison view

pm:prj2023:avaduva:electronic_piano_keyboard [2023/05/06 16:38]
iulia_nicole.mihai [Descriere generală]
pm:prj2023:avaduva:electronic_piano_keyboard [2023/05/29 23:39] (current)
iulia_nicole.mihai [Bibliografie/Resurse]
Line 3: Line 3:
 <​nowiki>​ <​nowiki>​
 Acest proiect Arduino este în esența un joc în care utilizatorul va putea să "​cânte"​ la pian. Acest proiect Arduino este în esența un joc în care utilizatorul va putea să "​cânte"​ la pian.
-Proiectul conține o tastatura formată din 7 butoane ce simulează 7 note muzicale ale unui pian, împreună cu un ecran LCD care afișează nota apăsată și un buton separat pentru a selecta unul dintre cele cântece presetate. ​+Proiectul conține o tastatura formată din 7 butoane ce simulează 7 note muzicale ale unui pian, împreună cu un ecran LCD care afișează nota apăsată și un buton separat pentru a selecta unul dintre cele cântece presetate. ​
 Scopul proiectului este de a crea o modalitate interactivă și distractivă de a învăța și de a produce muzică folosind tehnologia. Scopul proiectului este de a crea o modalitate interactivă și distractivă de a învăța și de a produce muzică folosind tehnologia.
 Acest proiect este util pentru o varietate de persoane, inclusiv pentru cei care doresc să învețe mai multe despre programare și electronică,​ dar și pentru cei care își doresc o modalitate distractivă de a produce muzică. Acest proiect este util pentru o varietate de persoane, inclusiv pentru cei care doresc să învețe mai multe despre programare și electronică,​ dar și pentru cei care își doresc o modalitate distractivă de a produce muzică.
Line 9: Line 9:
 ===== Descriere generală ===== ===== Descriere generală =====
 <​nowiki>​ <​nowiki>​
-Tastatura muzicală pe care o construiți ​se bazează pe placa de dezvoltare Arduino Uno și folosește o combinație de butoane, rezistențe,​ un potențiometru,​ un ecran LCD și un buzzer pentru a produce sunetele muzicale. +Tastatura muzicală pe care o construiesc ​se bazează pe placa de dezvoltare Arduino Uno și folosește o combinație de butoane, rezistențe,​ un potențiometru,​ un ecran LCD și un buzzer pentru a produce sunetele muzicale. 
-Butoanele sunt utilizate pentru a selecta notele muzicale și sunt conectate la pinii digitali ai plăcii Arduino Uno, iar rezistențele sunt utilizate pentru a limita curentul electric care circulă prin butoane. Potențiometrul este utilizat pentru a controla ​volumul ​și este conectat la un alt pin digital ​de pe placa Arduino+Butoanele sunt utilizate pentru a selecta notele muzicale și sunt conectate la pinii digitali ai plăcii Arduino Uno, iar rezistențele sunt utilizate pentru a limita curentul electric care circulă prin butoane. Potențiometrul este utilizat pentru a controla ​luminozitatea LCD-ului ​și este conectat la pinul Vo de pe LCD
-Ecranul LCD este utilizat pentru a afișa nota muzicală selectată de utilizator și este conectat la pinii digitali ​și analogici ​ai plăcii Arduino. Buzzer-ul este utilizat pentru a produce sunetele muzicale și este conectat la un alt pin digital ​de pe placa Arduino. +Ecranul LCD este utilizat pentru a afișa nota muzicală selectată de utilizator și este conectat la pinii digitali ai plăcii Arduino. Buzzer-ul este utilizat pentru a produce sunetele muzicale și este conectat la un pin analogic ​de pe placa Arduino. 
-În momentul în care utilizatorul selectează o notă muzicală apăsând butonul corespunzător,​ placa Arduino va trimite semnalul ​corespunzător ​pentru a activa buzzer-ul și a produce sunetul muzical. În același timp, ecranul LCD va afișa nota muzicală selectată. +În momentul în care utilizatorul selectează o notă muzicală apăsând butonul corespunzător,​ placa Arduino va trimite semnalul ​adecvat ​pentru a activa buzzer-ul și a produce sunetul muzical. În același timp, ecranul LCD va afișa nota muzicală selectată. 
-În plus, utilizatorul poate selecta unul dintre cele cântece presetate prin apăsarea butonului separat. Placa Arduino va trimite semnalul ​corespunzător ​pentru a produce sunetele muzicale pentru melodia selectată.+În plus, utilizatorul poate selecta unul dintre cele cântece presetate prin apăsarea butonului separat. Placa Arduino va trimite semnalul ​potrivit ​pentru a produce sunetele muzicale pentru melodia selectată.
 </​nowiki>​ </​nowiki>​
 {{:​pm:​prj2023:​avaduva:​schemapmproject.png|}} {{:​pm:​prj2023:​avaduva:​schemapmproject.png|}}
Line 25: Line 25:
   * Rezistente   * Rezistente
   * Diverse fire   * Diverse fire
-<note tip> +===Configurare pini=== 
-Aici puneţi tot ce ţine de hardware design+// Pentru butoane://  
-  * listă de piese +  *Primul buton este conectat la pinul digital 1 la Arduino Uno; 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) +  *Al doilea buton este conectat la pinul digital 2 la Arduino Uno; 
-  * diagrame de semnal ​ +  *Al treilea buton este conectat la pinul digital 3 la Arduino Uno; 
-  * rezultatele simulării +  *Al patrulea buton este conectat la pinul digital 4 la Arduino Uno; 
-</note>+  *Al cincilea buton este conectat la pinul digital 5 la Arduino Uno; 
 +  *Al saselea buton este conectat la pinul digital 6 la Arduino Uno; 
 +  *Al saptelea buton este conectat la pinul digital 7 la Arduino Uno; 
 +//Pentru buzzer:// 
 +  *Pinul buzzer-ului este conectat la pinul A2 la Arduino Uno. 
 + 
 +//Pentru ecranul LCD 16x2:// 
 +  *RS -conectat la pinul digital 8 al Arduino Uno; 
 +  *EN -conectat la pinul digital 9 al Arduino Uno; 
 +  *D4 -conectat la pinul digital 10 al Arduino Uno; 
 +  *D5 -conectat la pinul digital 11 al Arduino Uno; 
 +  *D6 -conectat la pinul digital 12 al Arduino Uno; 
 +  *D7 -conectat la pinul digital 13 al Arduino Uno. 
 +//Pentru butonul separat://​ 
 +  *Ultimul buton separat este conectat la pinul A1 al Arduino Uno. 
 +//Pentru LED:// 
 + 
 +  *LED-ul este conectat la pinul A5 al Arduino Uno. 
 + 
 +===Schema Electrica=== 
 +{{:​pm:​prj2023:​avaduva:​schemapmproject2.png?​500}} 
 +===Design final=== 
 +{{:​pm:​prj2023:​avaduva:​placuta-finala.jpg?​500}} 
 + 
 +{{:​pm:​prj2023:​avaduva:​placuta_finala2.jpg?​500}}
  
 ===== Software Design ===== ===== Software Design =====
  
 +Software-ul meu implementează un pian manual controlat de butoane, cu afișaj LCD și un buzzer. Codul utilizează biblioteca //​LiquidCrystal//​ pentru controlul afișajului LCD și definește obiecte și pini pentru butoane, LCD și buzzer. Există două funcții principale în cod: **manualPiano()** și **presets()**.\\ ​
  
-<note tip> +Funcția **manualPiano()** verifică starea butoanelor și în funcție ​de butonul apăsatgenerează un ton corespunzător folosind buzzer-ul șafișează notele muzicale corespunzătoare pe afișajul LCD.\\ ​
-Descrierea codului aplicaţiei ​(firmware)+
-  ​mediu de dezvoltare (if any) (e.g. AVR StudioCodeVisionAVR) +
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) +
-  * algoritmi şstructuri pe care plănuiţi să le implementaţi +
-  * (etapa 3) surse şi funcţii implementate +
-</​note>​+
  
-===== Rezultate Obţinute =====+Funcția **presets()** verifică starea butoanelor și selectează un preset specific pentru a reda o melodie predefinită. Afișajul LCD afișează numele melodiei selectate, iar buzzer-ul redă melodia respectivă.\\ ​
  
-<note tip> +În plus, LED-ul se aprinde atunci când pianul este în modul de "​presets"​ și redă melodiile predefiniteAceasta oferă un feedback vizual utilizatorului că melodia este în curs de redare. Pe de altă parte, LED-ul se va stinge atunci când pianul se află în modul de "pian manual",​ unde utilizatorul poate cânta manual notele. Astfel, LED-ul servește ca o indicare vizuală a modului de funcționare curent al pianului.\\ ​
-Care au fost rezultatele obţinute ​în urma realizării proiectului vostru. +
-</​note>​+
  
-===== Concluzii =====+În funcția **setup()**,​ sunt inițializați pini și obiecte necesare, cum ar fi pinii butoanelor, pinul buzzer-ului și obiectul pentru controlul LCD-ului.\\ ​
  
-===== Download =====+În funcția **loop()**, se verifică dacă a fost apăsat un buton pentru a alege între modul manual (pian) sau modul preset (redare melodie). În funcție de modul selectat, se apelează funcțiile corespunzătoare pentru a afișa notele muzicale și a reda sunetele pe buzzer sau pentru a selecta și reda o melodie predefinită.
  
-<note warning>​ +Software-ul utilizează două fișiere header suplimentare pentru gestionarea melodiilor și notelor muzicale.\\  
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etcUn fişier README, un ChangeLog, un script de compilare şcopiere automată pe uC crează întotdeauna o impresie bună ;-).+ 
 +Fișierul header **"​songs.h"​** conține definițiile și implementările funcțiilor pentru melodiile predefiniteAceste funcții sunt apelate în funcția **presets()** pentru a reda melodiile specifice. \\  
 + 
 +Fișierul header **"​notes.h"​** conține definițiile șconstantele pentru notele muzicale utilizate. Aceste note sunt utilizate în funcții pentru a genera frecvențele corespunzătoare pentru buzzer.\\  
 + 
 +{{:​pm:​prj2023:​avaduva:​schema_software-design.png|400}} 
 + 
 +Demo: https://​youtu.be/​_fADIbFztgs 
 + 
 +===== Concluzii =====
  
-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 Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. 
-</​note>​ 
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +**Idee proiect** 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse ​Hardware**. +  *https://​www.instructables.com/​Manual-Piano-W-Presets-Songs-Using-Arduino/​ 
-</note>+**Resurse ​software** 
 +  *https://​docs.arduino.cc/​learn/​electronics/​lcd-displays 
 +  ​*Github song repository: https://​github.com/​robsoncouto/​arduino-songs 
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2023/avaduva/electronic_piano_keyboard.1683380310.txt.gz · Last modified: 2023/05/06 16:38 by iulia_nicole.mihai
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