Explorando Áudio
Digital Embarcado
com Micropython
Construindo um processador de audio com ESP32 e ADAU1401
Belo Horizonte Maio 2025
👋 Lucas Emerick
Engenheiro de Dados & Backend | Pythonista há +10 anos
📍 lucasemerick.com 🔗 github.com/lvdopqt 💼 linkedin.com/in/lucasvemerick
Explorando Áudio Digital Embarcado com Micropython
Function FM – Web Rádio Independente
Explorando Áudio Digital Embarcado com Micropython
CAIXA ALTA – Associação Cultural
Explorando Áudio Digital Embarcado com Micropython
Índice
Explorando Áudio Digital Embarcado com Micropython
Explorando Áudio Digital Embarcado com Micropython
Explorando Áudio Digital Embarcado com Micropython
Introdução
O que é um processador de áudio?
Explorando Áudio Digital Embarcado com Micropython
Introdução
O que é um DSP?
Explorando Áudio Digital Embarcado com Micropython
Introdução
O que é um DSP?
Explorando Áudio Digital Embarcado com Micropython
Introdução
Aplicações de um DSP:
Explorando Áudio Digital Embarcado com Micropython
Introdução
Aplicação exemplo: “Crossover Digital”
Explorando Áudio Digital Embarcado com Micropython
Introdução
Itens utilizados no projeto:
Explorando Áudio Digital Embarcado com Micropython
Sobre Micropython
Explorando Áudio Digital Embarcado com Micropython
Protocolos de Comunicação
I2C
O que é I²C? – Protocolo de comunicação serial síncrono, ideal para conectar múltiplos dispositivos com apenas dois fios (SDA e SCL).
Como funciona? – Comunicação controller-target com endereçamento único, onde o controller manipula a transmissão dos dados.
Vantagens – Simplicidade, baixo custo, suporte a múltiplos dispositivos no mesmo barramento.
Aplicações – Sensores, displays, EEPROMs, conversores AD/DA, microcontroladores e DSPs.
Explorando Áudio Digital Embarcado com Micropython
Protocolos de Comunicação
I2S
O que é I²S? – Protocolo de comunicação serial usado para transmissão de áudio digital entre dispositivos.
Como funciona? – Utiliza três linhas principais: BCLK (clock de bit), WS ou LRCLOCK (word select) e SD (dados de áudio).
Vantagens – Baixa latência, alta qualidade de áudio, suporte a múltiplos canais e fácil integração com DACs e ADCs.
Aplicações – Conversores digitais-analógicos (DACs), amplificadores de áudio, interfaces de áudio para microcontroladores e DSPs.
Explorando Áudio Digital Embarcado com Micropython
Protocolos de Comunicação
Resumo
📡 I2C (Inter-Integrated Circuit):
🎧 I2S (Inter-IC Sound):
Explorando Áudio Digital Embarcado com Micropython
Programando o DSP
Estrutura da Placa de desenvolvimento:
- EEPROM
Explorando Áudio Digital Embarcado com Micropython
Programando o DSP
Ligação I2C para programação
Explorando Áudio Digital Embarcado com Micropython
Programando o DSP
Configuração Inicial no SigmaStudio
Explorando Áudio Digital Embarcado com Micropython
Programando o DSP
Programa de um crossover digital
Explorando Áudio Digital Embarcado com Micropython
Programando o DSP
Configuração de cortes de frequência de um crossover 2 vias
Explorando Áudio Digital Embarcado com Micropython
Programando o DSP
Programando usando a API do SigmaStudio via Python
Explorando Áudio Digital Embarcado com Micropython
Programando o DSP
Metodologia de teste - Função de Transferência
Explorando Áudio Digital Embarcado com Micropython
Programando o DSP
Setup do DSP para testes
Explorando Áudio Digital Embarcado com Micropython
Programando o DSP
Setup do DSP para testes
Explorando Áudio Digital Embarcado com Micropython
Programando o DSP
Resposta de frequência pós crossover
Explorando Áudio Digital Embarcado com Micropython
Programando o ESP32
Instalação do Firmware;
Download: https://micropython.org/download/ESP32_GENERIC/
Explorando Áudio Digital Embarcado com Micropython
Programando o ESP32
Estrutura do Software
Explorando Áudio Digital Embarcado com Micropython
Programando o ESP32
Inicializando a comunicação com o ADAU1401
https://github.com/lvdopqt/sigmadsp_minimal
Explorando Áudio Digital Embarcado com Micropython
Programando o ESP32
Arquivo de Parâmetros:
Explorando Áudio Digital Embarcado com Micropython
Programando o ESP32
Representação do Filtro Biquad
Fórmula do Filtro Biquad
Explorando Áudio Digital Embarcado com Micropython
Programando o ESP32
Implementação de um filtro passa baixa
Explorando Áudio Digital Embarcado com Micropython
Programando o ESP32
Explorando Áudio Digital Embarcado com Micropython
Programando o ESP32
Implementação do LCD via I2c
Explorando Áudio Digital Embarcado com Micropython
Programando o ESP32
Implementação de um Bus de Eventos
Explorando Áudio Digital Embarcado com Micropython
Programando o ESP32
Implementação de um botão simples
Explorando Áudio Digital Embarcado com Micropython
Programando o ESP32
Event Bus + LCD + Inputs
Explorando Áudio Digital Embarcado com Micropython
Programando o ESP32
Memória Não Volátil
Explorando Áudio Digital Embarcado com Micropython
Referências
PERGUNTAS?
OBRIGADO!
Teoria do Controle
y(t) = x(t) * h(t)
O resultado de um sistema LTI é a convolução da entrada pela função de transferência
Teoria do Controle
Sinal de Impulso
Resposta ao Impulso
Filtro Biquad
Representação do Filtro Biquad
Fórmula do Filtro Biquad