Registrare Audio

Salve a tutti,
avrei bisogno di registrare audio in ingresso da un microfono per qualche secondo (massimo 10) con Arduino UNO.
La memoria di arduino per contenere i dati registrati non è sufficiente, per questo ho pensato di scrivere ciò che "entra" dall'analogRead() su un scheda SD.
E' fattibile come cosa secondo voi? Idee in merito? Grazie :slight_smile:

Sul sito di Futura Elettronica ci sono degli shield per Arduino che dovrebbero essere idonne alle tue necessità, prova a dare un'occhiata

Se volessi farlo senza shield invece? C'è qualche grossa limitazione?

La limitazione la vedo nell'ADC dell'ATmega328 che oltre ad essere solo 10 bit non ha una frequenza di campionamento tale da poter gestire una frequenza BF....In altre parole perderesti troppi dati che al momento della ricostruzione del segnale campionato si traducono in rumore e non in audio...

Ianero:
Se volessi farlo senza shield invece? C'è qualche grossa limitazione?

Forse con un AtMega1284 riesci a fare qualcosa in bassissima risoluzione, con Arduino hai poca memoria

Potresti spiegarmi cosa è la frequenza BF di cui parli?
Comunque in ogni caso mi sembra di aver capito che il vero problema è che l'ATMega328 è troppo "lento" per registrare ad una frequenza sufficiente a ricostruire/riprodurre il suono con una decente qualità, dico bene?
Quindi la shield che prenderò ha montato un micro più veloce?

La shield ha un integrato dedicato e apositamente costruito che registra e riproduce l'audio.

Puoi volendo usare quel tipo di integrati senza una shield facendoti una scheda Tua.

Ciao Uwe

Ho capito, mentre per ricostruire i dati registrati dalla shield? Come potrei fare ad esempio ad ottenere un file mp3?
grazie a tutti :slight_smile:

Potresti spiegarmi cosa è la frequenza BF di cui parli?
Comunque in ogni caso mi sembra di aver capito che il vero problema è che l'ATMega328 è troppo "lento" per registrare ad una frequenza sufficiente a ricostruire/riprodurre il suono con una decente qualità, dico bene?
Quindi la shield che prenderò ha montato un micro più veloce?

Esatto .

Ianero:
Ho capito, mentre per ricostruire i dati registrati dalla shield? Come potrei fare ad esempio ad ottenere un file mp3?
grazie a tutti :slight_smile:

con un integrato che registra in formato MP3.
per esempio Watterott electronic

Esemio di altri schede disponibili Watterott electronic

Ciao Uwe

Grazie Uwe,
quella che mi hai linkato mi dice che non è compatibile con Arduino UNO.
Guarda cos'altro ho trovato:
http://ruggedcircuits.com/html/rugged_audio_shield.html

Con questa posso registrare audio sulla sd card, fin qui perfetto.
Il mio obiettivi sarebbe poi quello di inviare questa registrazione al pc, quello dovrei farlo con la shield wifi? Chiedo perchè non ho mai utilizzato nemmeno quella...

é piú semplice staccare la SD e leggerla dal PC.
Ciao Uwe

Ovviamente si hahahah :slight_smile:
Ma er il progetto che sto facendo mi servirebbe inviarla al momento in wifi

Il parlato intellegibile (quello telefonico per intenderci) ha una banda di 4KHz quindi, per il teorema di Nyquist, abbisogna di un campionamento ad almeno 8kHz.

Questo si traduce in una lettura dall'ADC ogni 125 us

Il convertitore AD di Arduino necessita di un tempo per caricare il condensatore di almeno 100us, a cui bisogna aggiungere il tempo "consumato" dalle istruzioni per memorizzare il dato su SD, quindi siamo proprio al limite.

Tuttavia un tentativo lo potresti anche fare, magari abbassando un po' la frequenza di campionamento: otterrai una banda minore, quindi meno comprensibile, ma ancora intellegibile.

Ok, quindi leggo i dati del microfono con l'ADC,e e fin qui ci sono.
Poi bisogna trasferire ad ogni lettura, questi 10 bit nella SD, qui mi serve di sicuro un supporto per il collegamento della SD all'Arduino, cosa mi consigli?
Poi appena termina la scrittura, riparto con la lettura dall'ADC.

Non ho esperienza a riguardo, ma da FUTURA www.futurashop.ittrovi il necessario ARDUINOSDLETT

Do uno sguardo, grazie :slight_smile:

Dunque, cercando e ricercando su internet, ho trovato questa:

E' la shield wifi di arduino, che sembra fare proprio al caso mio...
Mi offre sia la possibilità di inviare i dati al pc tramite wifi, sia di salvare qualcosa su una SD.
Direi che è questa la scelta ideale per le mie esigenze, che ne pensate?