ESP-ADF: Framework para desenvolvimento de aplicação para áudio com o ESP32


{getToc} $title={Índice}

Introdução

ESP-ADF (Espressif Audio Development Framework)

O ESP-ADF (Espressif Audio Development Framework) é um framework de desenvolvimento de software de código aberto desenvolvido pela Espressif. Foi projetado especificamente para criar aplicações de áudio em dispositivos baseados no ESP32, uma plataforma de microcontrolador de baixo custo e baixo consumo de energia.
O ESP-ADF fornece uma variedade de componentes e bibliotecas de software para facilitar o desenvolvimento de aplicativos de áudio. Ele oferece suporte para recursos como reprodução e gravação de áudio, assim como processamento em tempo real, reconhecimento de voz e muito mais. Os recursos suportados pelo framework ESP-ADF estão documentados mais precisamente no link: https://github.com/espressif/esp-adf/tree/master

ESP-IDF (Espressif Iot Development Framework)

A Espressif fornece os recursos básicos de hardware e software que ajudam os desenvolvedores de aplicativos a desenvolver suas ideias utilizando o hardware da série ESP32. O ESP-IDF destina-se ao desenvolvimento rápido de aplicativos de Internet das Coisas (IoT), com Wi-Fi, Bluetooth, gerenciamento de energia e vários outros recursos do sistema embarcado.
Para utilizar o framework ESP-ADF é preciso configurar primeiramente o ESP-IDF (Espressif IoT Development Framework)

Hardware

O hardware utilizado neste exemplo foi a dev board Lyrat v4.3 da Espressif

Fonte: https://espressif-docs.readthedocs-hosted.com/projects/esp-adf/en/latest/design-guide/dev-boards/board-esp32-lyrat-v4.3.html

Hands-On

A aplicação demonstrada nesse exemplo recebe e transmite áudio via Bluetooth para um dispositivo (ex: Smartphone). A placa com a aplicação é capaz de atender/desligar ligações e controlar mídias.
Foi utilizado o A2DP bluetooth profile junto com HFP profile para desenvolvimento dessa aplicação. Este exemplo será mais focado na configuração do framework ESP-ADF que depende do ESP-IDF já amplamente difundido .
Ferramentas utilizadas:
- PC com Linux Ubuntu 20.04.2 LTS
- ESP-IDF release/v4.4
- ESP-ADF master
- Dev board Lyrat V4.3

Passo 1 - Configurando ESP-IDF

Para instalar e configurar corretamente o framework ESP-IDF basta seguir a documentação oficial: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html


Instalando as ferramentas necessárias: 

```bash
luiz@luiz-Inspiron-5447:~/esp/esp-idf$ ./install.sh
```

Configurando variáveis de ambiente:

```bash
luiz@luiz-Inspiron-5447:~/esp/esp-idf$ . ./export.sh
```

Testando as configurações com menuconfig

Vamos apens abrir as configurações do projeto com a finalidade de validar as configurações feitas previamente, se o menuconfig abrir corretamente podemos seguir com as configurações do ESP-ADF.

```bash
luiz@luiz-Inspiron-5447:~/esp/esp-idf/examples/get-started/blink$ idf.py menuconfig
```



Passo 2 - Configurando ESP-ADF

Após a configuração do ESP-IDF vamos clonar e configurar o ESP-ADF...

Clonando o repositório

```bash
cd ~/esp
git clone --recursive https://github.com/espressif/esp-adf.git
```

Configurando o ADF_PATH

```bash
export ADF_PATH=~/esp/esp-adf
```

Testando nos exemplos do ESP-ADF

```bash
luiz@luiz-Inspiron-5447:~/esp/esp-adf/examples/get-started/pipeline_a2dp_sink_and_hfp$ idf.py menuconfig
```

Menuconfig



Audio Hal

Verifique a versão do hardware utilizado, no caso estamos utilizado a Lyrat V4.3



Codec

Verifique se o codec usado na placa está contemplado na configuração abaixo, nessa versão de placa usa-se o ES8388.



SPI flash driver

Marcar a primeira opção para verificar a escrita da SPI na flash, tive muitos problemas por esta opção estar desabilitada.



Compilando    

```bash
luiz@luiz-Inspiron-5447:~/esp/esp-adf/examples/get-started/pipeline_a2dp_sink_and_hfp$ idf.py build
```

Caso seja a primeira compilação o processo pode demorar alguns minutos, dependendo do PC.

Gravando a aplicação na placa

Coloque a placa no modo bootloader, no caso da Lyrat temos que segurar o botão "boot" e precionar o "rst" com o "boot" pressionado.
Agora podemos enviar a imagem.

```bash
luiz@luiz-Inspiron-5447:~/esp/esp-adf/examples/get-started/pipeline_a2dp_sink_and_hfp$ idf.py -p /dev/ttyUSB0 flash
```

Ao finalizar a gravação vamos resetar a placa e podemos parear o celular via bluetooth na placa Lyrat e mandar áudio do celular para placa, assim como atender ligações e controlar mídias pela placa Lyrat.

Conclusão

O mercado de desenvolvimento de aplicações embarcadas para áudio é carente de profissionais qualificados. Entender as peculiaridades de hardware e software é de extrema importância para o engenheiro de software embarcado. 

Referências 

Imagem de capa do artigo : https://github.com/espressif/esp-adf

Luiz Fillipe de Lima

Engenheiro de software/hardware embarcado formado em engenharia de telecomunicações. Experiencia em desenvolvimento de software/firmware embarcado para sistemas de segurança eletrônica e broadcasting. linkedin github

2 Comentários

Deixe seu comentário ou sua sugestão!

Postagem Anterior Próxima Postagem

Formulário de contato