Differences

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

Link to this comparison view

pm:prj2023:dene:pianinteligent [2023/05/07 19:28]
athanasia.popa created
pm:prj2023:dene:pianinteligent [2023/05/29 22:58] (current)
athanasia.popa [Rezultate Obţinute]
Line 18: Line 18:
  
 <note tip> <note tip>
-O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. +{{:pm:prj2023:​dene:​schema_bloc_pian.png?400|}}
- +
-Exemplu de schemă blochttp://​www.robs-projects.com/​mp3proj/​newplayer.html+
 </​note>​ </​note>​
  
Line 26: Line 24:
  
 <note tip> <note tip>
-Aici puneţi tot ce ţine de hardware design+Lista de piese
-  * listă de piese +  * 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) +  * Potentiometru 
-  * diagrame de semnal ​ +  * Card SD + Modul scriere/citire card SD 
-  * rezultatele simulării+  * Ecran LCD 
 +  * Buzzer 
 +  * Butoane 
 +  * Multiplexor 16 canale  
 +  * Rezistente, fire si breadboard
 </​note>​ </​note>​
 +
 +===== Schema electrica =====
 +
 +<note tip>
 +{{:​pm:​prj2023:​dene:​pm.png?​600|}}
 +{{:​pm:​prj2023:​dene:​pian_pm.jpg?​600|}}
 +{{:​pm:​prj2023:​dene:​pian_pm_0.jpg?​600|}}
 +</​note>​
 +
  
 ===== Software Design ===== ===== Software Design =====
Line 37: Line 48:
  
 <note tip> <note tip>
-Descrierea codului aplicaţiei (firmware)+Mediul de dezvoltare folosit a fost Arduiono IDE, iar bibilotecile utilizate sunt
-  * mediu de dezvoltare (if any) (e.gAVR StudioCodeVisionAVR+  * <​LiquidCrystal.h> pentru utilizarea modulului LCD I2C 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib+  * <Tone.h> pentru redarea sunetelor  
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +  * <​SD.h>​ si <​SPI.h>​ pentru folosirea modulului de scriere/​citire a cardului SD 
-  * (etapa 3) surse şi funcţii implementate+ 
 +Implementare:​ 
 +  * global se initializeaza si declarat un array cu valorile frecventelor specifice notelor muzicaleun array cu denumirea acestora si pini utilizati;​ 
 +  * modul in care se afla pianul (canta, inregistrare,​ redare, joceste reprezentat de variabila state care care corespunde unea dintre aceste stari 
 +  * setup():se declar modul fiecarui pin, se initializeaza lcd-ul si se seteaza seed-ul pentru generatorul de numere random folosit la partea de joc 
 +  * changeState():se citeste valoarea receptate de la potentiometru si se mapeaza aceasta valoare cu modul in care se afla pianul, prin incadrarea valorii citite in intr-un interval specific modului respectiv 
 +  * pressedButton():​determina ce clapa/buton a fost apelat si intoarce indexul acestuia sau -1 in cazul in care niciun buton nu a fost apasat prin selectarea secventiala a canalelor multiplexorului si determinarea starii de HIGH/LOW a acestora 
 +  *  loop(): se verifica in ce mod este pianul(cu ajutorul functiei state) si se executa codul specific starii respective 
 +   - starea 0(canta): se determine butonul/​clapa apasata (cu ajutorul functiei pressedButton()),​ se reda nota corespunzataoare clapei respective si se afiseaza pe ecranul lcd denumirea notei muzicale 
 +   - starea 1(inregistrare):​ se determine butonul/​clapa apasata (cu ajutorul functiei pressedButton()),​ se reda nota corespunzatoare clapei respective, se deschide fisierul corespunzator inregistarii de pe cardul SD si se scrie indexul ntei tocmai apasta in acesta; in cazul in care nu a fost introdus cardul sd se va afisa un mesaj specific  
 +   - state 2(redare): se citesc din fisierul corespunzator inregistarii,​ de pe cardul sd, notele muzicale ce compun melodia si se redau; in cazul lipsdi cardului sd sau a inregistarilor se va afisa un mesaj specific pe ecranul lcd; 
 +   - state 3(joc): se va afusa pe ecranul lcd nota muzicala random ce se doreste a fi apasata, se asteapta inputul utilizatorului,​ daca aceasata este corect se genereaza o alta nota muzicala, altfel se va afisa pe ecran un mesaj specific 
 </​note>​ </​note>​
  
Line 47: Line 70:
  
 <note tip> <note tip>
-Care au fost rezultatele obţinute în urma realizării proiectului vostru.+{{:​pm:​prj2023:​dene:​pian_pm_1.jpg?​400|}} 
 +{{:​pm:​prj2023:​dene:​pian_pm_2.jpg?​400|}} 
 +{{:​pm:​prj2023:​dene:​pian_pm_3.jpg?​400|}} 
 +{{:​pm:​prj2023:​dene:​pian_pm_4.jpg?​400|}}
 </​note>​ </​note>​
  
 ===== Concluzii ===== ===== Concluzii =====
 + ​Realizarea acestui proiect a contribuit la aprofundarea subiectiva a cunostintelor dobandite atat la laborator, cat si la curs. Acesta a reprezentat un prilej spre a a-mi consolida skill-urile de utilizare si interconectare a componentelor hardware, aceasta nefiind o activitatea tocmai familara mie. De asemenea, gasirea solutiilor cu privire la implementare au reprezentat o provocare: repartizarea eficienta a pinilor de pe placuta Arduino, utilizarea unui multiplexor pentru a reduce numarul de pini corespunzatori butoanelor-caple,​ utilizarea modulului scriere/​citire pentru cardul SD si a ecranului LCD.
 ===== Download ===== ===== Download =====
  
-<​note ​warning+<​note>​ 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). +Arhiva resurse software{{:pm:prj2023:dene:proiect_pm_popa_athanasia.zip|}}
- +
-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>​ </​note>​
  
 ===== Jurnal ===== ===== Jurnal =====
  
-<note tip> +  * 05.05.2023 - Milestone proiect - documentație: alegerea temei proiectului ​și a funcționalităților ​de bază 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul ​de proiect progresul proiectului+  * 19.05.2023 - Milestone - hardware: conectarea elementelor hardware și realizarea schemei electrice 
-</​note>​+  * 26.05.2023 - Milestone - software: implementarea codului și finalizarea proiectului
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
 <​note>​ <​note>​
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** ​şi **Resurse Hardware**.+**Resurse Software**
 +  * https://​arduinogetstarted.com/​tutorials/​arduino-write-variable-to-sd-card 
 +  * https://​reference.arduino.cc/​reference/​cs/​language/​functions/​advanced-io/​tone/​ 
 +  * laboratoare ocw  
 +**Resurse Hardware**
 +  * https://www.youtube.com/​watch?​v=R00FpEipWY4&​list=WL&​index=20 
 +  * https://​forum.arduino.cc/​t/​using-the-cd74hc4067-multiplexer-with-push-buttons/​636536 
 +  * https://​www.electrokit.com/​uploads/​productfile/​41015/​41015739_-_SD_Card_Module.pdf 
 +  * laboratoare ocw
 </​note>​ </​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/prj2023/dene/pianinteligent.1683476896.txt.gz · Last modified: 2023/05/07 19:28 by athanasia.popa
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