7 de dezembro de 2021

Do bit Ao Byte

Embarcados, Linux e programação

Microfone omnidirecional com ESP32

microfone omnidirecional com esp32

O processo para configurar esse microfone omnidirecional com ESP32 foi feito de um jeito bem diferente. Comecei com uma implementação experimental, depois utilizei o código do ThatProject, cujos experimentos dele estão nesse link. O som não ficou muito bom, mas dá pra ajustar, por isso vou disponibilizar a implementação completa, com o código meu, código de experimentos e o código dele. Coloquei o projeto no meu repositório no github.

Já escrevi sobre o uso de microfone de eletreto no ESP32, fazendo streaming para um Raspberry. Foi mais fácil ainda fazer streaming de áudio no ESP8266. Com a resolução usada aqui não dá pra fazer streaming, como explico mais adiante.

Microfone omnidirecional com ESP32

Esse é um microfone de alto desempenho, cujo resultado dependerá da implementação. Pretendo melhorar o som do meu, claro, mas mesmo sendo quase todo o código de terceiros, deu muito trabalho chegar no resultado. Até porque tentei fazer streaming, mas será impossível, pois o áudio agora foi gravado em 16KHz.

Esse microfone tem um filtro de antialiasing, usa a interface i2s, por isso implementei com ESP32. Fiquei impressionado com o resultado da gravação, mesmo tendo ficado com som ruim. Isso porque dá pra ver que é “apenas” falta de ajuste. No vídeo ficará claro.

Esse microfone omnidirecional tem 24bits de resolução, trabalha entre 1.8v e 3v3 com consumo de 1.4mA, ou seja, não precisa de alimentar externa. A resposta de frequência vai de 60Hz à 15KHz.

O modelo é o INMP441 e acompanha as barras de pinos para soldagem.

Procedimento de teste

Gravar o áudio

O procedimento é simples. No sketch que grava tem minhas credenciais de WiFi, mas para gravar não estou usando WiFi, portanto tudo o que precisa ser feito é subir o sketch e abrir o monitor serial em 115200. Esse sketch se chama recording.ino. O arquivo será gravado no sistema de arquivos do ESP32 com o nome recording.wav.

Baixar o áudio gravado

Com as configurações utilizadas o áudio ficou com 640KB. Ele deverá ser baixado do ESP32. Para isso, abra o sketch padrão disponível em Arquivo > Exemplos > Webserver > FSBrowser. Nesse sketch só precisamos mudar as credenciais de WiFi. Ao subir, abra a serial. Ele mostrará o arquivo e o IP para acessar o ESP32 pelo browser. Troque o edit da URL por recording.wav. Use seu programa preferido para tocar o arquivo.

Onde comprar o microfone omnidirecional INMP441?

Esse microfone está disponível, obviamente, na CurtoCircuito, que é quem traz mais sensores para o mercado maker no Brasil. O link para esse espetáculo de microfone, que vale muito a aquisição! Tem brincadeira mais pra frente, a qualquer momento retomo.

Vídeo

O vídeo estará disponível no canal DobitaobyteBrasil no Youtube tão logo seja editado. Inscreva-se no canal e clique no sininho para receber notificações!