This is an old revision of the document!


Sintetizator digital autonom

1. Introducere

1.1 Prezentarea pe scurt a proiectului

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.

1.2 Scopul proiectului

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:

  • Generarea de forme de undă variate (sinusoidală, sawtooth, square).
  • Implementarea hardware a unei anvelope de amplitudine de tip ADSR (Attack, Decay, Sustain, Release).
  • Realizarea unui dispozitiv portabil, alimentat prin baterie, cu sistem de amplificare audio integrat.

1.3 Ideea de la care am pornit

Ideea a luat naștere din dorința de a demistifica 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 “bare-metal” pentru a obține o latență minimă și o fidelitate audio acceptabilă pe un hardware limitat.

2. Hardware Design

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ă.

2.1 Listă de piese

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

2.2 Schema Electrică

Designul electric se bazează pe distribuția paralelă a tensiunii de 5V către modulele digitale și analogice.

Configurația pinilor Arduino Nano:

  • Pini Analogici (A0 - A3, A6): Conectați la pinii centrali (Wiper) ai celor 5 potențiometre pentru citirea ADC.
  • Pini I2C (A4 - SDA, A5 - SCL): Conectați la display-ul OLED.
  • Pin Digital D2: Intrare pentru buton (folosește întreruperea externă INT0).
  • Pin Digital D9 (PWM): Ieșirea audio principală către lanțul de filtrare.

2.3 Lanțul de Semnal și Diagrame

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:

  • Generare: Pinul D9 scoate un semnal PWM cu duty cycle variabil.
  • Filtrare Low-Pass (RC): Rezistența de 1kΩ împreună cu condensatorul de 100nF formează un filtru care elimină frecvența purtătoare a PWM-ului.
  • DC Blocking: Condensatorul de 10μF elimină componenta de curent continuu (offset de 2.5V), lăsând să treacă doar unda audio (AC).
  • Amplificare: Semnalul filtrat intră în pinii L-IN și R-IN ai PAM8403.

2.4 Rezultatele simulării și Calcule

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$):

  • $f_c \approx 1591 Hz$

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.

Software Design

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

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2026/florin.stancu/ianis.opritescu.1778250047.txt.gz · Last modified: 2026/05/08 17:20 by ianis.opritescu
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