Snimanje i reprodukcija zvuka s Arduinom, iliti Arduino Sound Recorder

Probamo snimanje i reprodukciju zvuka s Arduinom, za primer gradimo Voice Keyer, koji snima i reprodukuje kratke glasovne poruke.

Softverska osnova jeste Arduino biblioteka TMRpcm, koja omogućava asinhronu reprodukciju zvuka s microSD kartice, kao i snimanje preko ADC ulaza na Arduinu. (Funkcija se izvršava ‘asinhrono’ ako program koji ju je pozvao ne stoji dok se ona izvršava.)

Zaključak posle testiranja: to sve – radi.

Upotrebio sam SdFat.h, ali se u početku javljao problem: čim se učestanost uzorkovanja (sample rate) digne preko 10 kHz, počinjala su preskakanja u snimku. Pri nižim učestanostima uzorkovanja zvuk je inače “mračan”, nedostaje viših tonova više nego što bi se očekivalo. A onda sam probao s karticom baš malog kapaciteta, samo 128 MB. S njom radi kako treba, i pri 14 kHz i pri 16 kHz. Datoteke se inače snimaju u sirovom .wav formatu. Mogu se reprodukovati iz pina D9 (PWM), i to zvuči sasvim pristojno – u kontekstu radio-amaterskih potreba, ništa hi-fi.

Inače, elektrolitski kondenzator koji se vidi na gornjoj fotografiji povezan je na Vin pin Arduina: bio je potreban nekada davno za neku probu, ali je zalepljen, i tako ostao. 🙂

Sve u svemu, koncept je načelno upotrebljiv. Doduše, kada su potrebni tek kraći snimci, do nekoliko desetina sekundi, verovatno je lakše raditi s namenskim čipovima koji snimaju zvuk, ali kartica ima svoje prednosti – veliki kapacitet i lako uklapanje u ekosistem Arduina. Ovo je najpre za duže snimke ili za veliki broj zvučnih zapisa: na karticu od samo 128 MB stalo bi preko DVA SATA zvuka (uz učestanost uzorkovanja 16 kHz). Napravljen je za probu jedan snimak od 30 minuta, i reprodukovan bez problema.

Na početku programa data je šema povezivanja Arduina s modulima za microSD karticu i mikrofon. Algoritam programa približno imitira već opisivani YU1ZZ Contest Voice Keyer s četiri memorije (ovde po 15 sekundi), s istim postupkom snimanja, pokretanja reprodukcije, ponavljanja poruka itd. Program je napisan na brzinu, samo za ovo kratko testiranje, ali čini se da radi korektno, a svakako pokazuje kako upotrebiti funkcije za pokretanje i zaustavljanje snimanja ili reprodukcije itd.

Primeri zvučnih zapisa i program (.zip):
https://app.box.com/s/i6cv8d58ht8fhe6fg4elaao02kzyffj0

Mnoge dodatne funkcije i primeri primene biblioteke:
https://github.com/TMRh20/TMRpcm

Među žicama: Arduino Nano, modul SD kartice, audio-pojačavač, zvučnik. Od modula s mikrofonom vidi se samo manji deo, sasvim levo.

2 thoughts on “Snimanje i reprodukcija zvuka s Arduinom, iliti Arduino Sound Recorder”

  1. Pingback: Arduino-Based Talking Multimeter with SCPI Protocol | YU2ZZ ····· Elektronika. Radio. Hobi.

  2. Pingback: "Talking Multimeter": Arduino-Based Speech Add-on for Modern Multimeters with SCPI Protocol - YU2ZZ ····· Elektronika. Radio. Hobi.

Leave a Reply