This shows you the differences between two versions of the page.
|
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 proiectului: surse, 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> | ||