Autorul poate fi contactat la adresa: Login pentru adresa
Sistemul permite inregistrarea unui sunet si redarea lui intr-un ciclu infinit. In timpul redarii, se poate inregistra un alt sunet, astfel incat la reluarea buclei sa poata fi redate toate sunetele anterioare combinate.
Scopul acestuia este sa poti combina mai multe melodii / efecte pentru ca in final sa poti de unul singur sa creezi o melodie complexa.
Ideea de la care am pornit e ca uneori vreau sa cant pe mai multe voci si nu pot sa o fac simultan.
Proiectul este deja confirmat ca fiind util, deoarece sisteme de sunet similare sunt folosite de mai multi artisti de strada sau beatboxeri.
Microcontroller-ul ATMEGA324 va fi folosit pentru:
Cardul SD va fi folosit pentru stocarea melodiei.
Conectorii de input si output audio vor primi / trimite semnalul analogic cu melodia.
Input-ul utilizatorului va consta intr-o pedala si cateva switch-uri.
Componenta | Model | Cantitate |
---|---|---|
DAC 16 biti | DAC8571IDGKG4 | 1 |
Memory card connector | 502570-0893 | 1 |
Amplificator operational | MCP6002 | 1 |
Rezistente amplificator | - | 1 |
Cabluri mama-mama | - | 1 |
Placa PM2016 | - | 1 |
Componente baza placa | - | 1 |
Translator de nivel logic | - | 1 |
Header pini | - | 1 |
Soclu jack 6.3mm | NMJ4HFD2 | 2 |
Aceasta este schema electrica a PCB-ului de care am nevoie in afara de placa de baza cu microcontroller-ul, a carei schema este aproximativ comuna pentru toate proiectele (de aceea nici nu o mai pun aici).
Sunetul de la input este primit prin ADC-ul microcontroller-ului Atmega324PA, cu rezolutie de 10 biti.
Cardul SD este accesat prin SPI.
Comunicarea cu DAC-ul este facuta prin I2C.
Melodia curentă se află într-un buffer de 256 uint_16 (pentru că DAC-ul are rezolutie pe 16 biți). Sample-ul care urmează să fie pus pe DAC este adunat cu sample-ul primit de la ADC (care este pe 10 biti) si trimis prin I2C la DAC.
Atunci când se termină cele 256 de sample-uri, acestea sunt stocate împreună cu noua melodie combinată pe cardul SD.
Atunci când se dorește reluarea melodiei, se stochează la începutul fișierului lungimea melodiei (pentru ca programul să știe când unde să facă loop) și se reia melodia.
Am reusit sa colectez date de la microfon conectat la input si sa le salvez pe cardul SD.
Facand un plot pe datele de pe cardul SD, am obtinut urmatorul grafic:
Se poate observa semnalul shiftat in spectrul pozitiv de voltaj, cu centrul pe 512 volti (fiind ADC pe 10 biti ventrul este la jumatatea lui 1024).
Am reusit sa comunic cu DAC-ul prin I2C, pot sa generez sunete neplacute pe el, dar din pacate atunci cand ii dau o melodie frumoasa nu mai merge. Mai trebuie sa imi dau seama de ce.
Cu ocazia acestui proiect am invățat:
[22.04.2016] Lipit componente pe placa de baza
[14.05.2016] Terminat design PCB
[20.05.2016] Trecut placa la 3v3 ⇒ am reusit sa comunic cu cardul SD (LLC-ul distorsiona semnalul ceasului)
[24.05.2016] Imprimat al doilea PCB pe care vor sta mufele jack (cu amplificator la intrare), DAC-ul si cardul SD.