Mikrokontroler, PWM, zvuk, ukratko

scope_sinewave

Za snimanje i reprodukciju zvuka postoje namenska integrisana kola, ali: ako je potrebna samo reprodukcija unapred pripremljenih kratkih zapisa, i ne zahteva se visok kvalitet, može se relativno lako iskoristiti memorija samog mikrokontrolera.

Ukratko:

1. Na računaru se napravi zvućni zapis u sirovom, .wav formatu. Učestanost uzorkovanja i broj bita po uzorku podesi se po želji i mogućnostima, tj. po količini raspoložive memorije u mikrokontroleru. Učestanost uzorkovanja mora biti dva puta viša od najviše učestanosti u analognom audio signalu. Više bita daje viši kvalitet. Za govor, na primer: 8 KHz, 8 bita.

images

2. Ukloni se zaglavlje i kraj datoteke, da ostanu samo uzorci (osmobitni brojevi).

3. Uzorci se učitaju u memoriju mikrokontrolera. Verovatno će im prethodno trebati malo obrade da se uvedu u optimalan raspon, tj. da se podesi dinamika.

4. U programu u mikrokontroleru, uzorci se jedan za drugim, prirodnom brzinom, šalju na jedan PWM izlaz. Brzina se može menjati, čime se utiče na visinu tonova. Ko hoće, mogao bi dodavati interpolirane nove vrednosti između postojećih uzoraka.

5. Signal sa PWM izlaza vodi se na jednostavan pasivni niskopropusni filter.

6. To je to. Na izlazu filtra dobija se sasvim upotrebljiv zvuk.

U manje od 60 kB (ni pola ATmega128) stalo je 11 kratkih zapisa od po reč ili dve, koji se međusobno kombinuju da daju smislene poruke.

Najveći posao bila je priprema zapisa, tj. nizova uzoraka. Reprodukcija je skoro trivijalna.

Primer jednostavnog filtra, otprilike za nužne govorne učestanosti:

fil01

(Elektrolitski kondenzator sasvim desno – nije deo filtra u užem smislu. On je dodat da bi zaustavio jednosmernu komponentu, tj. da bi ka sledećem stepenu propustio samo naizmeničnu komponentu analognog signala.)

Za zvučni opseg do oko 16 kHz može:

fil03

Malo šire, na primer:

sire

Ako se neko bavi Arduinom, i u njegov ATmega328 moglo bi stati nekoliko sekundi u pomenutom kvalitetu, sa programom koji to reprodukuje. Na SD karticu stalo bi mnogo više. Imaju negde da se nađu i već pripremljeni zvučni zapisi, za probu.

Primer:
http://hackerspace-ffm.de/wiki/index.php?title=SimpleSDAudio

cpld-pwm-01-lg

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s