This shows you the differences between two versions of the page.
pm:prj2025:apredescu:rares.carbunaru [2025/05/10 19:33] rares.carbunaru [Hardware Design] |
pm:prj2025:apredescu:rares.carbunaru [2025/05/28 10:32] (current) rares.carbunaru [Rezultate Obţinute] |
||
---|---|---|---|
Line 2: | Line 2: | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | <note tip> | + | |
Proiectul meu este un **Mini Player Audio** care redă fișiere `.wav` cu melodii de pe un card microSD, permite reglarea volumului printr-un potențiometru și oferă feedback vizual al nivelului sonor printr-un VU-meter format din LED-uri. | Proiectul meu este un **Mini Player Audio** care redă fișiere `.wav` cu melodii de pe un card microSD, permite reglarea volumului printr-un potențiometru și oferă feedback vizual al nivelului sonor printr-un VU-meter format din LED-uri. | ||
Line 11: | Line 11: | ||
Considerăm că este un proiect util atât pentru învățare, cât și ca o improvizație de boxă portabilă — o alternativă low-cost și ușor de replicat. | Considerăm că este un proiect util atât pentru învățare, cât și ca o improvizație de boxă portabilă — o alternativă low-cost și ușor de replicat. | ||
- | </note> | ||
Line 18: | Line 17: | ||
- | <note tip> | ||
Schema bloc ilustrează principalele componente hardware și fluxul de date din proiect. Modulul SD comunică cu Arduino prin interfața SPI, trimițând fișierul audio .wav către microcontroler. Acesta procesează datele și generează un semnal PWM proporțional, transmis către amplificatorul audio care alimentează difuzorul. | Schema bloc ilustrează principalele componente hardware și fluxul de date din proiect. Modulul SD comunică cu Arduino prin interfața SPI, trimițând fișierul audio .wav către microcontroler. Acesta procesează datele și generează un semnal PWM proporțional, transmis către amplificatorul audio care alimentează difuzorul. | ||
Line 29: | Line 27: | ||
{{:pm:prj2025:apredescu:rares.carbunaru_block-scheme-pm.png?300|}} | {{:pm:prj2025:apredescu:rares.carbunaru_block-scheme-pm.png?300|}} | ||
- | </note> | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 46: | Line 43: | ||
{{:pm:prj2025:apredescu:rares.carbunaru_tinkerpad-hardware.png?300|}} | {{:pm:prj2025:apredescu:rares.carbunaru_tinkerpad-hardware.png?300|}} | ||
+ | {{:pm:prj2025:apredescu:rares_carbunaru_schema-electrica.png?600|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | ➤ Mediu de dezvoltare: | ||
+ | |||
+ | Proiectul a fost dezvoltat în Arduino IDE, folosind platforma Arduino UNO. Testarea și încărcarea s-au realizat prin conexiune USB, iar pentru debugging s-a folosit Serial Monitor. | ||
+ | |||
+ | ➤ Librării și surse 3rd-party utilizate: | ||
+ | • TMRpcm.h – pentru redarea fișierelor .wav de pe cardul SD folosind PWM audio. | ||
+ | • SD.h – pentru comunicarea cu cardul microSD prin interfața SPI. | ||
+ | • SPI.h – necesară pentru comunicația SPI între Arduino și modulul SD. | ||
+ | |||
+ | ➤ Algoritmi și structuri implementate: | ||
+ | • Inițializare SD și detecția fișierelor .wav numerotate secvențial (short2.wav – short6.wav). | ||
+ | • Redare audio secvențială: aplicația redă automat fiecare fișier pe rând, trecând la următorul doar după ce s-a terminat cel precedent. | ||
+ | • Control volum cu potențiometru: semnalul analogic de la potențiometrul conectat la A0 este citit periodic și mapat pe intervalul 0–4 pentru a seta volumul audio. | ||
+ | • Afișare vizuală a volumului prin LED-uri: 3 LED-uri conectate la D6, D7, D8 se aprind progresiv în funcție de valoarea citită de pe potențiometru. | ||
+ | • Comandă de tip skip prin serial: apăsarea tastei s în Serial Monitor oprește melodia curentă și trece la următoarea. | ||
- | <note tip> | + | ➤ Surse și funcții implementate: |
- | 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> | + | |
+ | Fișierul principal Arduino (.ino) conține următoarele funcții și secțiuni: | ||
+ | • setup(): | ||
+ | • Inițializarea pinii pentru LED-uri. | ||
+ | • Inițializarea cardului SD și verificarea fișierelor. | ||
+ | • Setarea inițială a volumului și pornirea primei melodii. | ||
+ | • loop(): | ||
+ | • Verifică dacă s-a apăsat s pentru a sări la următoarea melodie. | ||
+ | • La finalul unei melodii, încarcă automat următorul fișier .wav. | ||
+ | • La fiecare 100 ms: | ||
+ | • Actualizează volumul audio în funcție de poziția potențiometrului. | ||
+ | • Aprinde LED-urile corespunzător pragurilor (ex: peste 200, 400, 600). | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | Proiectul a fost finalizat cu succes, atingând toate obiectivele propuse: |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | • Redare audio funcțională direct de pe cardul SD, folosind fișiere .wav în format compatibil (8-bit, mono, 16 kHz), prin modulul TMRpcm. |
- | </note> | + | • Control dinamic al volumului printr-un potențiometru conectat la pinul A0, cu reglare în timp real a intensității sunetului în intervalul 0–4. |
+ | • Indicație vizuală a volumului prin aprinderea progresivă a 3 LED-uri în funcție de poziția potențiometrului. | ||
+ | • Redare secvențială a fișierelor audio (short2.wav până la short6.wav), automatizat fără intervenție manuală. | ||
+ | • Funcție de skip implementată prin Serial Monitor (comanda s), pentru a trece la următorul track si funcție de back (comanda b). | ||
===== Concluzii ===== | ===== Concluzii ===== |