Disciplina: Sistemas Embarcados 2 – 2025/1
Autor: Breno Uliana de Angelo
Kit de Desenvolvimento: EFM32 Giant Gecko STK3700
Este projeto consiste no desenvolvimento de uma bateria eletrônica utilizando o kit de desenvolvimento EFM32STK3700. O objetivo é criar um sistema embarcado capaz de reproduzir diversos ritmos musicais, combinando três sons de percussão diferentes em velocidades variadas.
Os sons utilizados são gerados a partir de arquivos de áudio no formato .wav e convertidos para arrays em C, que são então compilados e armazenados na memória do microcontrolador.
- Reprodução de Sons: O sistema utiliza amostras de áudio (
.wav) para gerar os sons de percussão. - Mixagem de Ritmos: Capacidade de misturar até três sons diferentes para criar ritmos complexos.
- Controle de Velocidade: Permite a alteração da velocidade (BPM - Batidas Por Minuto) dos ritmos.
- Saída de Áudio: O áudio é gerado através de uma das seguintes abordagens de hardware:
- DAC (Conversor Digital-Analógico): Utiliza o DAC integrado ao EFM32 para gerar um sinal de áudio analógico.
- PWM (Modulação por Largura de Pulso): Usa um temporizador para gerar um sinal PWM, que é então filtrado (filtro passa-baixas) para se obter o sinal analógico.
- I²S (Inter-IC Sound): Emprega o barramento I²S para enviar o áudio digital para um amplificador ou codec externo compatível.
⚠️ Atenção com o Hardware: A placa de desenvolvimento EFM32STK3700 não tolera tensões de entrada superiores a 3.3V. Todo hardware externo conectado deve respeitar este limite para evitar danos permanentes ao microcontrolador. Certifique-se de que as conexões de terra (GND) estão corretas.
O projeto está organizado nos seguintes diretórios:
.
├── Doxyfile # Arquivo de configuração do Doxygen
├── Makefile # Makefile principal do projeto
├── README.md # Este arquivo
├── firmware/ # Drivers e código de baixo nível (ex: lcd.c, led.c)
├── main.c # Arquivo principal da aplicação
├── scripts/ # Scripts para o computador host (ex: Wave2C)
├── sounds/ # Arquivos de som (.wav) e os arrays em C gerados
└── startup/ # Arquivos de inicialização do microcontrolador (CMSIS)
Este projeto utiliza make para automatizar todas as tarefas de compilação, geração de arquivos e gravação no hardware.
-
Compilar o Firmware:
make build
Para gerar o binário final (
.bin), usemake all. -
Converter Arquivos de Som: Este comando utiliza o script
Wave2Cpara converter todos os arquivos.wavdo diretóriosounds/para arquivos.c.make sounds
-
Gerar a Documentação: Gera a documentação do código-fonte usando Doxygen. O resultado fica no diretório
html/.make docs
-
Gravar na Placa: Compila o projeto e grava o binário na memória flash do EFM32.
make flash
-
Limpar o Projeto: Remove todos os arquivos gerados durante a compilação (arquivos objeto, binários, documentação, etc.).
make clean
- Wave2C: Um programa utilitário que converte arquivos de áudio
.wavem arrays C. Isso permite que os sons sejam facilmente incorporados ao firmware do microcontrolador. O código-fonte e o executável para o host estão no diretórioscripts/.
- Visualização de Ritmos:
- Exemplos de Ritmos:
- Repositórios e Amostras de Som: