This shows you the differences between two versions of the page.
|
pm:prj2026:andrei.batasev:ciprian.munteanu04 [2026/05/03 23:20] ciprian.munteanu04 created |
pm:prj2026:andrei.batasev:ciprian.munteanu04 [2026/05/04 21:01] (current) ciprian.munteanu04 |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Nume proiect ====== | + | ====== Vocal Coach ====== |
| ===== Introducere ===== | ===== Introducere ===== | ||
| - | <note tip> | + | Vocal Coach este un dispozitiv embedded care ajuta utilizatorul |
| - | Prezentarea pe scurt a proiectului vostru: | + | sa exerseze intonatia vocala. Dispozitivul reda o nota muzicala de |
| - | * ce face | + | referinta folosind un buzzer pasiv, capteaza vocea utilizatorului |
| - | * care este scopul lui | + | printr-un microfon analogic cu amplificare, analizeaza semnalul audio |
| - | * care a fost ideea de la care aţi pornit | + | folosind algoritmul Goertzel si ofera feedback in timp real: nota |
| - | * de ce credeţi că este util pentru alţii şi pentru voi | + | cantata este prea joasa (LOW), corecta (OK) sau prea inalta (HIGH). |
| - | </note> | + | |
| - | ===== Descriere generală ===== | + | |
| - | <note tip> | + | Ideea a pornit de la nevoia unui instrument simplu si accesibil pentru |
| - | 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ă. | + | incepatorii in muzica, care sa permita exersarea intonatiei fara a |
| + | depinde de un smartphone sau conexiune la internet. Spre deosebire de | ||
| + | aplicatiile generale de tuning, acest dispozitiv este construit special | ||
| + | pentru antrenament vocal pe un set restrans de note (C4-C5), ceea ce il | ||
| + | face fezabil pe hardware cu resurse limitate. | ||
| - | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | + | **Repository GitHub:** https://github.com/ciprianmunteanu1/vocal-coach |
| - | </note> | + | |
| + | ===== Descriere generala ===== | ||
| + | |||
| + | {{:pm:prj2026:andrei.batasev:diagrama_bloc.png?600|}} | ||
| + | |||
| + | Sistemul este organizat in urmatoarele module: | ||
| + | |||
| + | **Module hardware:** | ||
| + | * **Intrare audio** — microfon MAX4466 capteaza vocea utilizatorului, iesirea analogica conectata la ADC-ul Arduino | ||
| + | * **Iesire audio** — buzzer pasiv reda nota de referinta prin PWM | ||
| + | * **Feedback vizual** — modul LED semafor (rosu/galben/verde) | ||
| + | * **Afisaj** — OLED 128x64 I2C afiseaza starea sistemului, nota tinta si rezultatul | ||
| + | * **Intrare utilizator** — 3 butoane (START/NEXT/BACK) si potentiometru pentru selectarea notei tinta | ||
| + | |||
| + | **Module software:** | ||
| + | * **Masina de stari** — IDLE -> PLAY_NOTE -> LISTEN -> ANALYZE -> RESULT | ||
| + | * **Esantionare ADC** — configurata prin registre pentru ~8kHz | ||
| + | * **Motor Goertzel** — calculeaza energia pe 8 frecvente tinta | ||
| + | * **Calibrare zgomot** — masurare zgomot ambiental la pornire | ||
| + | * **Logica feedback** — compara nota detectata cu nota tinta | ||
| + | |||
| + | **Interactiunea modulelor:** | ||
| + | Utilizatorul selecteaza nota tinta cu butoanele. La apasarea START, | ||
| + | Arduino reda nota pe buzzer, apoi deschide o fereastra de ascultare | ||
| + | in care ADC-ul esantioneaza microfonul intr-un buffer. Algoritmul | ||
| + | Goertzel proceseaza bufferul si identifica frecventa dominanta. | ||
| + | Rezultatul este comparat cu nota tinta si afisat pe OLED si prin | ||
| + | modulul LED. | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| - | <note tip> | + | **Lista de componente:** |
| - | Aici puneţi tot ce ţine de hardware design: | + | |
| - | * listă de piese | + | ^ Componenta ^ Cantitate ^ Rol ^ |
| - | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | | Arduino Nano ATmega328P + CH340 | 1 | Microcontroller principal | |
| - | * diagrame de semnal | + | | Modul microfon MAX4466 ajustabil | 1 | Intrare audio | |
| - | * rezultatele simulării | + | | Afisaj OLED 128x64 I2C SSD1306 | 1 | Afisare informatii | |
| - | </note> | + | | Buzzer pasiv 5V | 1 | Redare nota de referinta | |
| + | | Modul LED semafor 3.3-5V | 1 | Feedback vizual | | ||
| + | | Buton tactil 6x6x5mm | 3 | Intrare utilizator | | ||
| + | | Potentiometru 10K WH148 | 1 | Selectare nota tinta | | ||
| + | | Rezistor 220 ohm | 5 | Limitare curent LED-uri | | ||
| + | | Condensator electrolitic 10uF | 2 | Filtrare alimentare | | ||
| + | | Breadboard 830 puncte | 1 | Platforma de prototipare | | ||
| + | | Fire Dupont tata-tata / mama-tata | 40+40 | Interconectare | | ||
| ===== Software Design ===== | ===== Software Design ===== | ||
| + | //(De completat in etapele urmatoare)// | ||
| - | <note tip> | + | ===== Rezultate Obtinute ===== |
| - | 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 Obţinute ===== | + | //(De completat in etapele urmatoare)// |
| - | + | ||
| - | <note tip> | + | |
| - | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
| - | </note> | + | |
| ===== Concluzii ===== | ===== Concluzii ===== | ||
| + | |||
| + | //(De completat in etapele urmatoare)// | ||
| ===== Download ===== | ===== Download ===== | ||
| - | <note warning> | + | //(De adaugat in etapele urmatoare)// |
| - | 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ă ;-). | + | |
| - | + | ||
| - | 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 ===== | ||
| - | <note tip> | + | ^ Data ^ Activitate ^ |
| - | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | | Etapa 1 | Documentatie initiala, lista componente, schema bloc | |
| - | </note> | + | |
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
| - | <note> | + | **Resurse Hardware:** |
| - | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf|ATmega328P Datasheet]] — Microchip |
| - | </note> | + | * MAX4466 Datasheet — Maxim Integrated |
| - | + | * SSD1306 Datasheet — Solomon Systech | |
| - | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | + | |
| + | **Resurse Software:** | ||
| + | * [[https://github.com/olikraus/u8g2|U8g2 Library]] — olikraus, GitHub | ||