Differences

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

Link to this comparison view

pm:prj2024:mdinica:gabriela.limberea [2024/05/03 11:40]
gabriela.limberea [Hardware Design]
pm:prj2024:mdinica:gabriela.limberea [2024/05/26 19:18] (current)
gabriela.limberea [Hardware Design]
Line 6: Line 6:
 ===== Descriere generală ===== ===== Descriere generală =====
  
-<note tip> +Microcontrolerul Arduino va fi componenta principala a proiectului. Acesta va primi input de la chitara prin mufa jackamplitudinea semnalului fiind marita cu ajutorul amplificatorului operational. Utilizatorul va trebui sa aleaga ce coarda vrea sa acordeze, folosind butoanele si urmarind mesajele ​de pe ecranul LCD, pentru ​stabili frecventa de referinta ​semnaluluiIn functie ​de cat de cat de dezacordata este coarda, LED-ul se va comporta astfel: 
-O schemă bloc cu toate modulele ​proiectului ​vostruatât software cât şi hardware însoţită ​de o descriere ​acestora precum şi modului în care interacţionează. +  * coarda este acordata corect (frecventa input = frecventa referinta) ⇒ LED verde 
- +  * coarda trebuie stransa (frecventa input frecventa referinta) ⇒ LED rosu 
-Exemplu ​de schemă bloc: http://​www.robs-projects.com/​mp3proj/​newplayer.html +  * coarda trebuie slabita (frecventa input > frecventa referinta) ⇒ LED albastru
-</note> +
  
 +Se va folosi acordajul acordajul standard in Mi:
 +  * Mi - 329.6Hz
 +  * Si - 246.9Hz
 +  * Sol - 196Hz
 +  * Re - 146.8Hz
 +  * La - 110Hz
 +  * Mi - 82.4Hz
  
 {{ :​pm:​prj2024:​mdinica:​gabriela.limberea:​guitar-tuner-diagram-glb.png |}} {{ :​pm:​prj2024:​mdinica:​gabriela.limberea:​guitar-tuner-diagram-glb.png |}}
 +
  
 ===== Hardware Design ===== ===== Hardware Design =====
  
-<note tip> +{{:​pm:​prj2024:​mdinica:​gabriela.limberea:​schematic2.png?​700|}} 
-Aici puneţi tot ce ţine de hardware design+ 
-  * listă ​de piese +Flow si explicatii: 
-  scheme electrice (se pot lua şi de pe Internet şi din datasheet-urie.g. http://www.captain.at/​electronic-atmega16-mmc-schematic.png) + 
-  * diagrame ​de semnal ​ +  ​- Signal input: ​  
-  ​* rezultatele simulării +    ​ ​Semnalul ​de la chitara este preluat prin mufa jack si transmis mai departe la amplificatorul operational. 
-</​note>​+    Amplificatorul este alimentat cu 2 baterii ​de 9V si este montat intr-o configuratie non-inverting (1KOhm pentru gain10KOhm pentru feedback), astfel incat semnalul sa fie amplificat de la +/-200mV la +/-2.5VIn continuare, se foloseste un condensator si un divizor de tensiune pentru a centra semnalul in 2.5V in loc de 0V, astfel incadrandu-se in intervalul de 0-5V acceptat ​de Arduino 
 +  ​- SPI LCD connection: 
 +    * Pentru a realiza conexiunea dintre Arduino si modulul LCD a fost nevoie de un 8bit level shifter, pentru a face conversia de la cei 5V produsi de pinii GPIO ai Arduino in 3V3 suportati de LCD
  
 Lista piese: ​ Lista piese: ​
   * Arduino Uno R3   * Arduino Uno R3
   * Mufa Jack 6.3mm mama   * Mufa Jack 6.3mm mama
-  * Op-Amp OP07 +  * [[https://​www.ti.com/​lit/​ds/​symlink/​op07c.pdf?​ts=1714635590482&​ref_url=https%253A%252F%252Fwww.google.com%252F|Op-Amp OP07]] 
-  * Butoane+  * Butoane
   * Rezistente   * Rezistente
-  * LED +  ​* Condensatoare 
-  * Modul SPI LCD+  ​* LED RGB 
 +  * [[https://​www.displayfuture.com/​Display/​datasheet/​controller/​ST7735.pdf|Modul SPI LCD ST7735]] 
 +  * [[https://​www.ti.com/​lit/​ds/​symlink/​txs0108e.pdf?​ts=1715831820872&​ref_url=https%253A%252F%252Fwww.google.com%252F|8bit Level Shifter TXS0108E]]
   * Baterii   * Baterii
 +
 +Cablaj:
 +{{ :​pm:​prj2024:​mdinica:​gabriela.limberea:​cablaj-unrefined.jpg?​200 |}}
 ===== Software Design ===== ===== Software Design =====
  
 +[[https://​github.com/​Gabi-Limberea/​PM-Fair|Source Code]]
 +
 +Mediu de dezvoltare: PlatformIO (VSCode)
 +
 +Surse folosite: [[https://​www.instructables.com/​Arduino-Frequency-Detection/​|Arduino-Frequency-Detection]]
 +
 +Codul este structurat pe mai multe fisiere sursa, astfel incat sa exista o separare a componentelor. In mare, tuner-ul este compus din 2 parti software importante.
 +
 +  - Preluarea input-ului de la utilizator prin butoane, astfel setand si afisand frecventa de referinta si generarea output-ului la ecran
 +  - Preluarea semnalului analogic de la chitara, determinarea frecventei si compararea acesteia cu frecventa de referinta  ​
 +
 +**Input utilizator:​** ​
 +  * Pentru a prelua input-ul de la butoane se folosesc intreruperile ''​INT0''​ si ''​INT1''​. Ele modifica o variabila in care se tine minte ce frecventa de referinta se foloseste
 +  * Din ''​loop()''​ se scrie pe ecran, folosind biblioteca ''​Adafruit_ST7735.h''​ pentru comunicarea prin SPI, ce frecventa (deci ce coarda) este selectata.
  
-<note tip> +**Input chitara:** 
-Descrierea codului aplicaţiei (firmware)+  * Implementarea este aproape identica cu cea din sursa mentionata mai susPentru a mari sampling rate-ul de la 8000Hz la ~40KHzs-a renuntat la folosirea functiei ''​analogRead()''​ si s-a scazut rezolutia de la 1023 la 255 
-  * mediu de dezvoltare (if any) (e.gAVR StudioCodeVisionAVR) +  * Atunci cand o intrerupere de conversie ADC este generata, se citeste semnalul din ''​ADCH''​ si apoi se calculeaza perioada si amplitudinea semnalului primit, ​care sunt salvate in variabile dedicate 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib+  * In ''​loop()'',​ daca amplitudinea semnalului este peste un threshold dat, atunci se va calcula frecventa si se va compara cu referinta. In functie de rezultatul comparatiei,​ led-ul RGB se va aprinde appropriately.
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +
-  * (etapa 3surse şi funcţii implementate +
-</​note>​+
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
pm/prj2024/mdinica/gabriela.limberea.1714725659.txt.gz · Last modified: 2024/05/03 11:40 by gabriela.limberea
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