Skip to main content

Convertidor I2S a CSV

Este proyecto demuestra cómo capturar datos de audio desde la interfaz I2S utilizando la placa reSpeaker Lite y convertirlos a formato CSV para análisis o procesamiento posterior. La reSpeaker Lite es una placa de audio con un microcontrolador XIAO ESP32S3 integrado, que cuenta con un micrófono de dos canales y altavoz.

Funcionalidad

  • Captura datos de audio desde la interfaz I2S
  • Convierte los datos de audio capturados a formato CSV
  • Transmite los datos CSV a través de la interfaz serial para su procesamiento
  • Utiliza el framework AudioTools para procesamiento y transmisión de audio
  • Emplea AudioLogger para depuración y monitoreo de manera sencilla

Código

#include "AudioTools.h"

AudioInfo info(16000, 2, 32);
I2SStream i2sStream; // Acceso a I2S como flujo
CsvOutput<int32_t> csvStream(Serial);
StreamCopy copier(csvStream, i2sStream); // Copia i2sStream a csvStream

// Configuración de Arduino
void setup(void) {
Serial.begin(115200);
AudioLogger::instance().begin(Serial, AudioLogger::Info);

auto cfg = i2sStream.defaultConfig(RX_MODE);
cfg.copyFrom(info);
cfg.i2s_format = I2S_STD_FORMAT; // también puedes probar con I2S_LSB_FORMAT
cfg.is_master = false; // este módulo necesita un reloj maestro si el ESP32 es maestro
cfg.use_apll = false; // también puedes probar con true
i2sStream.begin(cfg);

// Asegúrate de que los canales estén correctamente configurados
csvStream.begin(info);
}

// Bucle principal de Arduino - copia de datos
void loop() {
copier.copy();
}

Configuración

info: Define la configuración de audio, incluyendo la tasa de muestreo (16000 Hz), el número de canales (2 para estéreo, 1 para mono) y los bits por muestra (32 bits).

i2sStream: Crea una instancia de la clase I2SStream para acceder a la interfaz I2S como flujo de datos.

csvStream: Crea un objeto CsvOutput para convertir los datos de audio a formato CSV y transmitirlos por la interfaz serial.

copier: Crea un objeto StreamCopy para copiar los datos de audio desde el flujo I2S hacia el flujo CSV.

cfg: Configura el flujo I2S con los ajustes deseados, como el formato de audio, el modo maestro/esclavo y el uso del APLL.

Abre el Serial Plotter de Arduino para visualizar las ondas de salida capturadas en tiempo real.

pir

Loading Comments...