Differences

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

Link to this comparison view

pm:prj2022:cristip:music-board [2022/05/09 14:47]
mihai.pasca
pm:prj2022:cristip:music-board [2022/06/01 23:59] (current)
mihai.pasca
Line 1: Line 1:
-====== Music Board ======+====== Music Board - Pasca Mihai Alexandru 331CA======
 Mihai Alexandru Pasca, 331CA Mihai Alexandru Pasca, 331CA
 ===== Introducere ===== ===== Introducere =====
  
-Proiectul consta in realizarea un pian simplu ​cu functie de ritm reprezentata ​de sunete de percutiefunctie de record si playback.+Proiectul consta in realizarea un pian cu functie de record/​playback si functie ​de learnpentru a ajuta utilizatorul sa cante diferite melodii.
  
 ===== Descriere generală ===== ===== Descriere generală =====
  
-Pentru control se folosesc urmatoarele potentiometre:​ +Tastele pianului vor fi reprezentate de 8 butoane, ​care reprezinta ​o octava. 
-  * volumul pianului  +Cand se porneste functia de learn, cele 8 led-uri se vor aprinde indicand butonul care trebuie apasatTempo-ul este schimbat cu ajutorul unui potentiometru,​ astfel se poate incepe invatarea unei melodii la un tempo mai scazut
-  * volumul percutiei +
-  * tempo-ul percutiei +
-Pentru percutie ritmurile sunt predefinite si vor fi selectat prin 2 butoane(inainte si inapoi). ​Tastele pianului vor fi reprezentate de 8 butoane, o octava. +
-Pe LCD va fi afisat numele ritmului si starea potentiometrelor(volum si tempo)Led-urile vor indica daca ritmul percutiei ​este pornit si daca intregul aparat este pornit.+
  
 === Schema Bloc === === Schema Bloc ===
  
 {{ :​pm:​prj2022:​cristip:​schema_bloc_music_board.png?​600 |}} {{ :​pm:​prj2022:​cristip:​schema_bloc_music_board.png?​600 |}}
 +  * Claviatura si butoanele de control sunt amplasate pe keypad-ul 4x4 de butoane. Primele 8 butoane sunt tastele pianului. Restul de 8 butoane au diferite folosinte: pentru selectarea modului de functionare (learn, playback, playback loop, selectarea pitch-ului si normal), stanga dreapta pentru navigarea in meniuri, play si stop.
  
 +  * Prin intermediul difuzorului se redau sunetele. Acesta este conectat prin intermediul modulului amplificator care are un potentiometru pentru volum. Celalalt potentiometru controleaza tempo-ul melodiilor care sunt cantate
 +
 +  * Led-urile sunt amplasate pe breadboard in aceeasi forma ca butoanele care reprezinta tastele pianului de pe keypad. In modul de learn al pianului acestea se aprind indicand tasta care trebuie apasata pentru a se canta urmatoarea nota din melodie.
 +
 +  * Pe ecranul LCD se afiseaza meniul si diferite informatii precum tempo sau pitch in functie de statusul board-ului.
 ===== Hardware Design ===== ===== Hardware Design =====
  
 === Lista de piese === === Lista de piese ===
-  * Arduino ​UNO+  * Arduino ​Mega 2560
   * Breadboard   * Breadboard
-  * Difuzor +  * Difuzor ​de 8 Ω 
-  * LCD +  * Modul amplificator LM386 
-  * Butoane +  * LCD cu modul I2C 
-  * Potentiometre +  * Tastatura de 16 butoane 
-  * LED-uri +  * Potentiometru 
-  * Fire +  * LED-uri 
-  * Rezistente+  * 8 rezistente de 1k 
 + 
 +=== Schema electrica === 
 +{{ :​pm:​prj2022:​cristip:​schema_electrica_music_board.jpg?​600 |}}
  
 ===== Software Design ===== ===== Software Design =====
  
-===== Rezultate Obţinute =====+ Am folosit biblioteca "​LiquidCrystal_I2C"​ pentru interactiunea cu LCD-ul. 
 + ​Mediul de dezvoltare a fost Arduino IDE.
  
-<note tip> + In fisierul **utils.h** am definit frecventele pentru notele pianului, am denumit pinii, butoanele si am denumit starile in care se poate afla pianului. 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+ 
-</note>+ Am salvat notele melodiilor folosind keyword-ul PROGMEM pentru a le salva in memoria flash. Acestea vor fi citite folosind functia specifica pgm_read_word_near(). 
 + 
 + In setup se intializeaza LCD-ul si pinii folositi. In loop se citeste input-ul de la potentiometru pentru calcularea tempo-ului si se citeste si input-ul de la keypad. Keypad-ul are 4 pini de input si 4 pini de output, 
 +se trimite input pe una din intrari, care reprezinta selectarea unei linii, iar in cazul in care primim output pe una din intrari, am detectat apasarea unui buton. In functie de pinii pe care se trimit si primesc date se calculeaza care buton a fost apasat si se efectueaza actiunea pentru care acesta este folosit, se reda o nota in cazul in care facea parte din tastele pianului sau in caz contrar se efectueaza o operatiune de control/in meniu
 + 
 + ​Aplicatia se poate afla in una dintre starile: Normal, Record, Playback, Learn. Acestea sunt selectate prin butoanele de control. De asemenea se poate schimba pitch-ul la care pianul canta. 
 +===== Rezultate obtinute ===== 
 + 
 +Demo: https://​youtu.be/wg0XmZUWB_8
  
 ===== Concluzii ===== ===== Concluzii =====
 +
 +O experienta interesanta avand in vedere ca e primul(daca nu si singurul) proiect fizic facut in facultate. M-am lovit de lucruri noi precum lipitul pieselor si am invatat ce inseamna sa aplici in viata reala notiuni de electronica,​ dar si notiunile noi invatate in cadrul acestei materii.
 +In principiu forma finala a proiectului este asa cum am gandit-o, am reusit sa implementez functionalitatile pe care le aveam in plan.
  
 ===== Download ===== ===== Download =====
 +
 +Cod sursa:​{{:​pm:​prj2022:​cristip:​pasca_mihai_proiectpm.zip|}}
  
 ===== Jurnal ===== ===== Jurnal =====
  
   * 22.04 -> alegere tema proiect.   * 22.04 -> alegere tema proiect.
-  * 09.05 -> adaugare tema proiect, descriere, lista de piese și schema bloc.+  * 09.05 -> Milestone 1 
 +  * 30.05 -> Milestone 2
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
 +1. https://​www.youtube.com/​watch?​v=aaqaAXlZbuc&​t=140s
 +
 +2. https://​github.com/​rydepier/​Arduino-and-4x4-Matrix-Keyboard
  
-<​note>​ +3https://​lastminuteengineers.com/​i2c-lcd-arduino-tutorial/
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. +
-</note>+
  
 <​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/prj2022/cristip/music-board.1652096844.txt.gz · Last modified: 2022/05/09 14:47 by mihai.pasca
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