Ciao a tutti, avrei bisogno di una mano per un progetto e premetto di non essere molto pratica con Arduino. In pratica rilevo un segnale audio tramite microfono ma vorrei riuscire a rilevarne le frequenze per poi impostare delle soglie a determinati valori. Qualcuno può dirmi se c'è qualche libreria specifica che posso usare? Grazie!
Ma quello che serve a te, di preciso, e' la precisione nel rilevare la frequenza, oppure il sapere il livello di segnale entro diverse bande di frequenza ? (tipo per un'analizzatore di spettro audio, per intenderci)
Precisamente devo analizzare un segnale audio in frequenza, entro una certa banda. Poi per alcuni valori rilevati in questa banda, impostare delle soglie e dare un feedback (ad esempio accensione di un led)
No, con il solo Arduino NON riesci a fare quanto chiedi, devi necessariamente associargli un chip esterno e, per il tuo scopo, probabilmente tale chip è il MSGEQ7 ... se poi cerchi su Google "MSGEQ7 Arduino" trovi anche varie applicazioni già pronte.
Guglielmo
Creando un filtro passa banda per il segnale rilevato dal microfono, non dovrei già riuscire a visualizzare il segnale in quella determinata banda? Il chip esterno mi aiuterebbe a trovare i valori di frequenza del segnale audio?
Grazie per le risposte
gre_95:
... Il chip esterno mi aiuterebbe a trovare i valori di frequenza del segnale audio?
...ti sei studiata il datasheet che ti ho indicato e cercato gli esempi con Google ?
Guglielmo
Fino a 10kHz puoi provare a fare la FFT con Arduino... Auguri!
Datman:
Fino a 10kHz puoi provare a fare la FFT con Arduino... Auguri!
... infatti ... giusto auguri
Se si vuole fare da software con FFT e quant'altro, tocca passare a modelli di Arduino superiori, ad esempio quelli basati su MCU di architettura SAM D21 o, meglio ancora su una delle varie Teensy ( ... non so se avete visto la versione 4.x ... Cortex M7 a 600 MHz ... per 20 US$ :o :o :o)
Guglielmo
Stavo giusto pensando di cominciare a giocare con Teensy e processori audio...
Ok ho capito, mi chiedevo solo se si potesse fare ugualmente con Arduino. Grazie!
Sempre per lo stesso progetto avrei un'altra domanda, vi sarei grata se poteste aiutarmi..Una volta acquisito il segnale audio ne visualizzo l'andamento su un display oled, volendo campionare il segnale più velocemente però (1kHz) non riesco più a visualizzarlo... vorrei sapere se succede perchè il display non "regge" la stessa velocità.
In alternativa vorrei acquisire il segnale solo per un certo intervallo di tempo e quindi visualizzare solo quella porzione, è possibile?
Evidentemente in 1ms non riesce a mandare i dati al display. Devi aggiornare il display saltuariamente: raccogli i dati e una o due volte al secondo li invii tutti al display. Durante l'invio al display, però, credo proprio che tu non possa acquisire altri dati.
Datman:
Devi aggiornare il display saltuariamente: raccogli i dati e una o due volte al secondo li invii tutti al display.
D'accordo ho capito, grazie.. e in termini di codice come potrei farlo? Mi rendo conto che può sembrare una domanda banale ma è davvero il mio primo progetto