This is an old revision of the document!
Functionalitate: Proiectul reprezinta un mini-sintetizator de sunet generat digital de microcontroller-ul ATmega328P. Interfata muzicala principala este asigurata de un senzor capacitiv tactil TTP229 cu 8 canale functionale, care actioneaza ca o tastatura de clape (Do-Do2), iar un senzor capacitiv independent MPR121 (HW-017) cu 12 electrozi joaca rolul unui pedale de sustain — la atingerea oricarui electrod, este redata o secventa de note aleatoare. Utilizatorul poate controla parametrii sunetului prin 6 butoane tactile (3 pentru schimbarea octavei intre valorile 1-6, cate doua octave per buton, si 3 pentru selectarea formei de unda: patrat, sine sau triunghi) si 2 potentiometre citite prin canalele ADC (PC0 pentru controlul tempoului de sunet si PC1 pentru modularea globala a frecventei). Generarea semnalului audio se realizeaza prin tehnica PWM folosind Timer1 al microcontroller-ului. Semnalul rezultat este curatat printr-un filtru trece-jos RC (rezistenta de 1kΩ si condensator de 100nF), amplificat de un modul de clasa D PAM8403 si redat prin doua difuzoare de 3W. Pe un ecran LCD 1602 conectat via I2C sunt afisate in timp real nota muzicala curenta, octava, frecventa sunetului emis si forma de unda activa.
Utilitate: Mini-sintetizatorul este atat un proiect de integrare hardware-software (procesare semnal audio, citire senzori capacitivi prin protocoale SPI si I2C, afisare I2C), cat si un instrument de divertisment interactiv. El ofera utilizatorilor posibilitatea de a experimenta cu crearea de sunete electronice, de a intelege cum formele de unda, modularea frecventei si controlul gate-ului afecteaza timbrul si caracterul muzical al unui sunet, si de a canta melodii simple pe o scara de o octava. Poate fi folosit ca material didactic pentru demonstrarea practica a conceptelor de convertoare ADC, filtre pasive, amplificare de putere si generare PWM.
Inspiratie: Ideea proiectului a pornit de la nostalgia pentru muzica electronica a anilor '90, in special pentru peisajele sonore ambientale ale proiectului muzical Enigma. Dorinta de a recrea, macar conceptual, experienta utilizarii unui sintetizator hardware clasic, a dus la decizia de a transforma placa de dezvoltare ATmega328P Xplained Mini intr-un instrument muzical retro-futurist, tactil si complet autonom.
Scop: Scopul principal al proiectului este de a proiecta, asambla si programa un sistem embedded functional capabil sa genereze si sa proceseze semnal audio in timp real. Din punct de vedere tehnic, proiectul urmareste aprofundarea cunostintelor despre timere, PWM, comunicare I2C si SPI, conversie analog-digitala si citirea senzorilor capacitivi pe platforma AVR.
Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html
Lista de piese: * Unitate de procesare: ATmega328P Xplained Mini
Stadiu hardware fizic:
Lipituri necesare:
Bara de pini pe ATmega328P Xplained Mini (PB1 + PD0-PD7) Bara de pini pe PAM8403 (VIN, GND, IN_L, IN_R, LOUT+, LOUT-, ROUT+, ROUT-) Bara de pini pe HW-017 (3.3V, GND, SDA, SCL, ADD, IRQ) Bara de 16 pini între modulul I2C (PCF8574) și LCD 1602 Fire cu capăt dezgolit pe terminalele difuzoarelor (+ și - pe fiecare)
Conexiuni complete:
Alimentare:
ATmega 5V → șina +5V breadboard ATmega GND → șina GND breadboard Șina +5V breadboard 1 → șina +5V breadboard 2 Șina GND breadboard 1 → șina GND breadboard 2
I²C bus (SDA + SCL):
ATmega PC4 → SDA (HW-017, PCF8574) ATmega PC5 → SCL (HW-017, PCF8574, TTP229)
TTP229:
VCC → +5V GND → GND SCL → PC5 SDO → PD3
HW-017:
3.3V → ATmega 3.3V GND → GND SDA → PC4 SCL → PC5 IRQ → PD2 (INT0)
PCF8574 + LCD:
VCC → +5V GND → GND SDA → PC4 SCL → PC5 16 pini → LCD 1602 (lipit direct)
Audio:
ATmega PB1/OC1A → rezistor 1kΩ → condensator 100nF → PAM8403 IN_L PAM8403 VIN → +5V PAM8403 GND → GND PAM8403 LOUT+ / LOUT- → Difuzor stânga PAM8403 ROUT+ / ROUT- → Difuzor dreapta
Butoane (6x):
Un pin → GND Celălalt pin → PD4, PD5, PD6, PD7, PB2, PB3
Potențiometre (3x):
Pin stânga → +5V Pin dreapta → GND Pin mijloc (wiper) → PA0, PA1, PA2
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.