This is an old revision of the document!
Acest proiect constă în proiectarea și realizarea unui sintetizator digital autonom, bazat pe microcontrolerul ATmega328P. Dispozitivul este un instrument muzical electronic capabil să genereze sunete prin tehnica DDS (Direct Digital Synthesis).
Sintetizatorul primește comenzi de note muzicale prin interfața serială (de la tastatura unui laptop) și permite modelarea sunetului în timp real folosind o interfață hardware compusă din 5 potențiometre și un buton multifuncțional. Vizualizarea parametrilor se realizează prin intermediul unui ecran OLED de 0.96 inch.
Scopul principal este crearea unui sistem integrat care să demonstreze capacitățile de procesare digitală de semnal ale unui microcontroler de 8 biți. Proiectul urmărește:
Ideea a luat naștere din dorința de a dezvălui modul în care funcționează sintetizatoarele comerciale scumpe. Am pornit de la conceptul de “Digital Audio Workstation (DAW) in a box”, dorind să transfer controlul sunetului din mediul virtual al mouse-ului într-un mediu tactil, unde fiecare modulație a sunetului este rezultatul unei modificări fizice de tensiune prin potențiometre. A fost o provocare de a optimiza codul pentru a obține o latență minimă și o fidelitate audio acceptabilă pe un hardware limitat.
Proiectarea hardware a fost realizată având în vedere două obiective principale: fidelitatea semnalului audio (reducerea zgomotului digital) și ergonomia interfeței de control. Dispozitivul este construit modular, separând etajul de procesare digitală de etajul de amplificare analogică.
| Componentă | Specificații Tehnice | Cantitate | Rol în Proiect |
|---|---|---|---|
| Microcontroler | ATmega328P | 1 | Creierul sistemului, sinteză DDS |
| Display | OLED 0.96” I2C (SSD1306) | 1 | Feedback vizual parametri ADSR/Wave |
| Amplificator | PAM8403 Stereo 2x3W | 1 | Amplificare semnal audio la nivel de boxe |
| Potențiometre | 10kΩ Liniare (B10K) | 5 | Control Attack, Decay, Sustain, Release, Pitch |
| Buton | Momentary Push-Button 16mm | 1 | Selectare formă de undă (Cycle waveforms) |
| Difuzoare | 4Ω, 3W, 40mm | 2 | Redare audio stereo |
| Rezistență | 1kΩ | 1 | Parte a filtrului Low-Pass (RC) |
| Condensator | 100nF (Ceramic 104) | 1 | Filtrare zgomot PWM (Filtru RC) |
| Condensator | 10μF (Electrolitic) | 1 | Cuplaj audio (DC Blocking) |
| Condensator | 1000μF (Electrolitic) | 1 | Stabilizare alimentare amplificator |
| Switch | MTS-102 Toggle (Metal) | 1 | Pornire/Oprire generală |
| PCB | Prototipare FR4 4x6cm | 2 | Suport mecanic și electric componente |
Designul electric se bazează pe distribuția paralelă a tensiunii de 5V către modulele digitale și analogice.
Configurația pinilor ATpega328P:
Sunetul este generat digital prin PWM (Pulse Width Modulation) la o frecvență purtătoare înaltă. Pentru a obține un semnal audio analogic curat, semnalul parcurge următorul traseu:
Pentru filtrul de reconstrucție (Low-Pass), am calculat frecvența de tăiere ($f_c$) folosind formula:
$$f_c = \frac{1}{2 \pi R C}$$
Înlocuind valorile alese ($R = 1000 \Omega$ și $C = 100 \times 10^{-9} F$):
Această valoare a fost aleasă pentru a oferi un sunet “cald”, eliminând eficient zgomotul digital ascuțit generat de tactul microcontrolerului.
Notă privind alimentarea: Simularea comportamentului amplificatorului la volum maxim a indicat necesitatea unui condensator de tip “buffer” de 1000μF. Acesta previne resetarea Arduino-ului în momentele în care boxele solicită un curent de vârf (peste 500mA) din bateria de 5V.
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.