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
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)
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
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
Se atentar a versão que é compatível com o ESP-ADF: https://espressif-docs.readthedocs-hosted.com/projects/esp-adf/en/latest/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
Parabéns pela publicação!!!
ResponderExcluirObrigado!
Excluir