Differences

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

Link to this comparison view

pm:prj2022:sgherman:automaticguitartuner [2022/05/27 22:55]
tudor.hermenean [Software design]
pm:prj2022:sgherman:automaticguitartuner [2022/06/02 00:57] (current)
tudor.hermenean [Hardware design]
Line 20: Line 20:
 ==== Schema bloc ==== ==== Schema bloc ====
 {{:​pm:​prj2022:​sgherman:​diagrama_pm.drawio.png |}} {{:​pm:​prj2022:​sgherman:​diagrama_pm.drawio.png |}}
- 
-<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ă. 
- 
-Exemplu de schemă bloc: http://​www.robs-projects.com/​mp3proj/​newplayer.html 
-</​note>​ 
- 
  
  
 ===== Hardware design ===== ===== Hardware design =====
   * Arduino UNO   * Arduino UNO
-  * Breadboard+  * Breadboard ​X2
   * Fire de conexiune   * Fire de conexiune
   * Rezistente   * Rezistente
-  * Motor DC+  * Motor DC 6V
   * Buton   * Buton
   * Amplificator operational modul LM386   * Amplificator operational modul LM386
 +  * modul H bridge L293D
 +  * Condensatoare
 +  * baterie 9V
   * Misc.   * Misc.
  
Line 42: Line 38:
 ===== Software design ===== ===== Software design =====
  
-Software-ul este dezvoltat in Arduino IDE fara librarii externe iar ce face in mare este detectarea ​frecventei +Software-ul este dezvoltat in Arduino IDE fara librarii externe iar ce face in mare este detectarea ​frecventeisi ​calcularea ​ 
-calculand peak-urile semnalului si calcularea adjustarii facute din motorasul DC.+adjustarii facute din motorasul DC
 + 
 +Calculul de frecventa se intampla la fiecare valoare noua primita de la ADC prin intreruperea ISR. Acesta 
 +functioneaza pe un sistem de Generalized Pitch Detection in care se calculeaza de cate ori trece semnalul analog primit de la 
 +ADC prin punctul de 2.5V. Cod inspirat din acest helpful guide: https://​www.instructables.com/​Arduino-Frequency-Detection/​.
  
 Functii: Functii:
  
-autocorrelation() - +reset() - reseteaza diverse variabile
  
-frequency_detection() - calcularea frecventei+frequency_check() - compara frecventa actuala calculata din intreruperi cu o frecventa referinta (hardcoded) ​                   ​
  
-<note tip> +drive_motor(int dir) - trimite semnal motorului sa se invarta intr-o directie sau alta
-Descrierea codului aplicaţiei ​(firmware)+
-  * mediu de dezvoltare (if any) (e.g. AVR 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 obtinute ===== ===== Rezultate obtinute =====
  
-<note tip> +Rezultatele ​au fost mixed. Pe de-o parte, partile folosite in acest proiect au fost low-cost
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+Pe de alta parte ... modulul folosit de catre mine pentru amplificarea semnalului (LM386) nu este tocmai cel 
-</​note>​+mai bun pentru detectare de sunet, astfel tunerul de multe ori are prea mult zgomot pentru a distinge notele 
 +muzicale de la chitara.
  
 +{{:​pm:​prj2022:​sgherman:​proiect_chitara_tuner_30.jpeg |}}
 ===== Concluzii ===== ===== Concluzii =====
 +A fost o experienta placuta in care am invatat multe lucruri despre folosirea si prelucrarea de semnale analogice.
 +Mi-a placut faptul ca am putut sa imi combin munca cu pasiunea dar vazand ca proiectul nu este "​reliable"​ as fi
 +incercat mai multe prototipuri daca timpul imi permitea.
  
-<note tip> +Rock on~
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​ +
 ===== Download ===== ===== Download =====
  
-<note warning> +Cod sursa: 
-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ă ;-).+ 
 +{{:pm:​prj2022:​sgherman:​tudor_hermenean_331cc.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>​ 
  
 ===== Jurnal ===== ===== Jurnal =====
Line 93: Line 89:
  
 <​note>​ <​note>​
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.+Listă cu documente, datasheet-uri,​ resurse Internet folosite.
 </​note>​ </​note>​
 +
 +**Resurse Software**
 +  * https://​www.instructables.com/​Arduino-Frequency-Detection/​
 +  * https://​www.instructables.com/​Arduino-Guitar-Tuner/​
 +
 +**Resurse Hardware**
 +  * https://​lowvoltage.wordpress.com/​2011/​05/​15/​lm386-mic-amp/​
 +  * https://​www.circuitbasics.com/​how-to-use-microphones-on-the-arduino/​
 +  * https://​www.alldatasheet.com/​datasheet-pdf/​pdf/​22432/​STMICROELECTRONICS/​L293D.html
 +  * https://​www.ti.com/​lit/​ds/​symlink/​lm386.pdf
 +
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Tudor_Hermenean_331CC</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Tudor_Hermenean_331CC</​a></​html>​
  
pm/prj2022/sgherman/automaticguitartuner.1653681321.txt.gz · Last modified: 2022/05/27 22:55 by tudor.hermenean
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