Reproduzindo voz personalizada com EchoVision.

Seja bem-vindo de volta ao ecossistema Zion! Hoje vamos dar vida — e voz — à sua EchoVision. Se piscar um LED já é satisfatório, imagine sua placa falando com você, dando avisos sonoros ou tocando música com alta fidelidade.

Neste tutorial, vamos dominar o amplificador NS4168 integrado à EchoVision usando o protocolo I2S e o sistema de arquivos LittleFS. Vamos passar por todo o processo: desde criar o áudio com IA até a configuração correta da IDE para evitar erros de memória.

O que você vai precisar:

  • Placa EchoVision (ESP32-S3 N16R8)
  • Alto-falante (4Ω ou 8Ω) conectado ao conector do amplificador(Já disponível com a placa).
  • Cabo USB-C de dados
  • Plugin “ESP32 LittleFS Uploader” instalado na Arduino IDE

Antes de tudo, vamos Habilitar o Upload de Arquivos LittleFS na Arduino IDE 2.0 (Windows e Mac)

Se você trabalha com ESP32 ou ESP8266 e precisa criar interfaces web profissionais, armazenar arquivos HTML, CSS, JavaScript ou imagens diretamente na memória flash do microcontrolador é essencial. Antigamente, na IDE 1.8, usávamos um plugin Java. Agora, na moderna Arduino IDE 2.0, o processo mudou e ficou mais integrado à arquitetura do editor. Neste tutorial, a Zion Automation te ensina o passo a passo para configurar o LittleFS Upload e como forçar o modo de gravação na sua placa.

O que você vai precisar

  1. Arduino IDE 2.0 ou superior instalada.
  2. O arquivo do plugin (.vsix).
  3. Uma placa EchoVision Zion.

Passo 1: Baixar o Plugin

A ferramenta que utilizaremos é o arduino-littlefs-upload.

  1. Acesse o repositório oficial no GitHub (procure por earlephilhower/arduino-littlefs-upload) ou nesse link.
  2. Vá na aba Releases.
  3. Baixe o arquivo mais recente com a extensão .vsix (Exemplo: arduino-littlefs-upload-1.0.0.vsix).

Passo 2: Instalação

A instalação consiste em colocar esse arquivo na pasta de plugins da IDE.

🪟 Para Usuários Windows

  1. Feche a Arduino IDE se estiver aberta.
  2. Navegue até a pasta de usuário: C:\Usuários\{SEU_USUARIO}\.arduinoIDE\
  3. Se não existir, crie uma pasta chamada plugins.
  4. Copie o arquivo .vsix baixado para dentro de: C:\Usuários\{SEU_USUARIO}\.arduinoIDE\plugins\
  5. Abra a Arduino IDE.

🍎 Para Usuários macOS (Apple Silicon & Intel)

  1. Feche a Arduino IDE.
  2. Abra o Terminal ou use o Finder (menu “Ir” > “Ir para a Pasta…” ou Cmd+Shift+G).
  3. Digite o caminho: ~/.arduinoIDE/
  4. Crie uma pasta chamada plugins (caso não exista).
  5. Copie o arquivo .vsix para dentro desta pasta.
    • Nota: O caminho final será ~/.arduinoIDE/plugins/arquivo.vsix.
  6. Abra a Arduino IDE.

Atenção (macOS): Na primeira execução, o sistema pode bloquear o plugin por segurança. Vá em Ajustes do Sistema > Privacidade e Segurança e clique em “Abrir Mesmo Assim” se solicitado.


Passo 3: Preparando os Arquivos (A Pasta “data”)

Para que o plugin saiba o que enviar, você precisa seguir uma estrutura rígida:

  1. Abra a pasta do seu projeto (Sketch).
  2. Crie uma pasta chamada data (tudo minúsculo).
  3. Coloque seus arquivos HTML, CSS, JSON ou imagens dentro dessa pasta.

Passo 4: Como Fazer o Upload (Modo Boot)

Diferente da IDE antiga, o comando não fica no menu “Ferramentas”.

  1. Na Arduino IDE 2.0, pressione:
    • Windows: Ctrl + Shift + P
    • Mac: Command (⌘) + Shift + P
  2. Uma barra de busca abrirá. Digite: Upload LittleFS.
  3. Selecione a opção: Upload LittleFS to Pico/ESP8266/ESP32.

⚡ O Segredo do “Modo Boot” (Download Mode)

Muitas vezes, ao tentar enviar os arquivos, você pode receber o erro A fatal error occurred: Failed to connect to ESP32: Timed out. Isso acontece porque, diferentemente do upload do código (sketch), o upload de arquivos via ferramenta externa às vezes não consegue resetar a placa automaticamente.

Para resolver, você deve colocar a placa em Modo de Download Manualmente:

  1. Conecte a placa ao USB.
  2. Mantenha pressionado o botão BOOT da placa.
  3. Sem soltar o BOOT, dê um toque rápido no botão EN (ou RESET).
  4. Solte o botão EN.
  5. Por fim, solte o botão BOOT.

Agora a placa está em modo de espera. Execute o comando de upload novamente na IDE. Assim que o terminal mostrar “Writing…”, o processo começou. Após finalizar, aperte o botão EN (Reset) uma vez para reiniciar a placa e rodar seu sistema. O próximo passo é gerar o áudio e enviar seu código normalmente via arduino upload, vamos lá!

Passo 1: Gerando o Áudio (TTMaker)

Não precisa gravar sua própria voz. Vamos usar uma IA para gerar um arquivo limpo.

  1. Acesse o site TTMaker.
  2. Digite a frase que deseja (ex: “Sistema Zion iniciado com sucesso”).
  3. Escolha uma voz brasileira e digite o código de verificação.
  4. Importante: Ao baixar, o arquivo geralmente vem em MP3. Recomendamos converter para WAV (16-bit, 16000Hz ou 44100Hz) para garantir compatibilidade total e performance.
  5. Renomeie o arquivo para audio.wav.

Passo 2: Preparando a Arduino IDE

Para o ESP32 tocar áudio via I2S, usaremos a melhor biblioteca disponível para isso.

  • Vá em Sketch > Incluir Biblioteca > Gerenciar Bibliotecas.
  • Busque por “ESP32-audioI2S” (autor: Schreibfaul1).
  • Instale a versão mais recente.

Passo 3: A Configuração “Pulo do Gato” (Partition Scheme)

Aqui é onde muita gente trava. A EchoVision é poderosa (16MB de Flash), mas precisamos configurar a memória corretamente para caber o código e o sistema de arquivos LittleFS sem dar conflito com o plugin de upload.

Vá em Ferramentas e configure exatamente assim:

  • Board: ESP32S3 Dev Module
  • Flash Size: 16MB (128Mb)
  • PSRAM: OPI PSRAM (Essencial para áudio sem travas)
  • Partition Scheme: 8M Flash (3MB APP / 1.5MB SPIFFS)

Por que escolher 8MB se a placa tem 16MB?

O plugin atual do LittleFS tem dificuldade em reconhecer partições customizadas de 16MB (FAT). Ao selecionar o esquema de 8MB SPIFFS, garantimos que o upload do áudio funcione de primeira, mantendo 3MB livres para seu código, o que é mais que suficiente.

Passo 4: Upload do Arquivo de Áudio

  1. Salve seu sketch (código) em uma pasta.
  2. Dentro dessa pasta, crie uma subpasta chamada data.
  3. Cole seu arquivo audio.wav dentro da pasta data.
  4. Na IDE, feche o Monitor Serial (se estiver aberto).
  5. Vá em Ferramentas > ESP32 LittleFS Data Upload. Aguarde a mensagem “LittleFS Image Uploaded”. Caso não encontro essa opção, pressioane Ctrl+shift+P, pesquisa upload LittleFS e selecione esse upload.

Passo 5: O Código (Sketch)

Agora vamos ao código que faz a mágica acontecer. Note que na EchoVision, o pino GPIO 46 é fundamental: ele é o gatilho que liga o amplificador.

#include <Arduino.h>
#include <WiFi.h>
#include "Audio.h"
#include "FS.h"
#include "LittleFS.h"

// --- Definição dos Pinos (Baseado no seu Esquemático) ---
#define I2S_BCLK      48
#define I2S_LRC       45
#define I2S_DOUT      3
#define AMP_ENABLE    46  // Pino CTRL do NS4168

Audio audio;

void setup() {
    Serial.begin(115200);

    // 1. Inicializa o LittleFS
    if (!LittleFS.begin()) {
        Serial.println("Falha ao montar LittleFS");
        return;
    }

    // 2. Configura e ATIVA o amplificador (Crucial!)
    pinMode(AMP_ENABLE, OUTPUT);
    digitalWrite(AMP_ENABLE, HIGH); // Liga o NS4168

    // 3. Configura o I2S
    // setPinout(BCLK, LRC, DOUT)
    audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);

    // Ajusta o volume (0 a 21)
    audio.setVolume(21);

    // 4. Reproduz o arquivo
    // Tenta abrir o arquivo no LittleFS
    if(LittleFS.exists("/audio.wav")){
       Serial.println("Reproduzindo audio.wav...");
       audio.connecttoFS(LittleFS, "/audio.wav");
    } else {
       Serial.println("Erro: Arquivo audio.wav não encontrado na memória!");
    }
}

void loop() {
    // Esta função deve rodar constantemente para processar o buffer de áudio
    audio.loop();
    
    // Se quiser ver logs ou controlar algo via serial, faça sem delay()
}

// Funções opcionais de debug da biblioteca
void audio_info(const char *info){
    Serial.print("info        "); Serial.println(info);
}
void audio_eof_stream(const char *info){
    Serial.print("Fim do arquivo: "); Serial.println(info);
}

Dica de Mestre: Volume Baixo?

Se mesmo no volume 21 o som parecer baixo, o “culpado” geralmente não é a placa, mas o arquivo de áudio.

O amplificador digital apenas reproduz o que recebe. Se seu áudio foi gravado em um nível baixo (ex: -10dB), ele tocará baixo. Antes de colocar na pasta data, use um editor de áudio (como Audacity) e aplique o efeito Normalizar para 0dB. Outra opção é no TTSmaker e deixar áudio em 200%. Isso garante que a EchoVision use toda a potência disponível do NS4168.

Agora é com você! Que tal fazer a EchoVision dar boas-vindas quando alguém entrar na sala? Compartilhe seus resultados marcando a Zion nas redes sociais.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *