Audio Synthesizer

Introducere

Proiectul consta in realizarea unui simplu sintetizator audio folosind un ESP32. Ideea mi-a venit de la Pocket Operators realizate de cei de la Teenage Engineering. Scopul proiectului este de a realiza o varianta portabila si accesibila a unui sintetizator audio. Proiectul se bazeaza pe dezvoltarea unei platforme hardware cat mai simple, sky's the limit cand vine vorba de software.

Descriere generală

Lab-uri Folosite: I2C - comunicatia esp32 cu Display-ul; PWM - feedback tactil la actionarea oricarui input (potentiometru sau buton) prin intermediul vibromotorului; ADC - input potentiometre; BONUS: DAC - output audio folosind dac-ul intern al ESP32, preluat si amplificat de LM386 si pasat catre speaker/casti.

Hardware Design

Piese: ESP32, LCD Display, I2C to 16 pins LCD Display adapter, sursa step down, vibromotor, LM386 Amp, Female 3.5mm stereo Jack, Speaker, 4×4 Button Matrix, potentiometre.

Software Design

Am folosit PlatformIO.

Am un tabel de frecvente asociat fiecarui buton. Setez frecventa folosind DAC write.

Cele 2 potentiometre urca/coboara tonalitatea notelor, si fiecare potentiometru are implementat o valoare de threshold, pentru a evita perceperea lor de catre ADC ca fiind activate constant (jitter intre valorile 0 si 1 spre exemplu).

La apasarea unui buton sau miscarea unui potentiometru, primim haptic feedback prin intermediul vibromotorului actionat prin PWM. Initial acesta era proportional cu schimbarea provocata asupra sistemului (creste potentiometrul 1, vibratie in crestere, scade potentiometrul 1, vibratie in scadere) doar ca de la o anumita valoare, vibromotorul nu se mai simtea deloc, asa ca a optat pentru o intensitate maxima a acestuia pentru fiecare actiune, inclusiv apasarea butoanelor.

Ecranul LCD afiseaza prin I2C diferenta fata de gama naturala astfel: o rotatie maxima a unui potentiometru reprezinta 1500, in sus sau in jos. Diferenta dintre aceste doua valori este afisata pe ecran.

Rezultate Obţinute

Download

Bibliografie/Resurse

pm/prj2024/sseverin/vladimir.marin0110.txt · Last modified: 2024/05/30 11:32 by vladimir.marin0110
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