Skip to main content

Grove - Grabadora de Sonido

La Grove-Grabadora de Sonido está basada en APR9600, que ofrece verdadera grabación de voz de un solo chip, almacenamiento no volátil y capacidad de reproducción de 32 a 60 segundos. La muestra es de 8k y el total de 32s para la Seeed Twig-Grabadora de Sonido, dividida en 4 secciones, cada sección puede ser controlada por separado. Además, esta Grabadora de Sonido también tiene interfaz compatible con Grove y puede ser controlada manualmente o con Arduino/Seeeduino.

Características

  • Interfaz compatible con Grove
  • Puede ser controlada tanto manualmente como por MCU
  • Tecnología de memoria Flash no volátil, no requiere respaldo de batería
  • Amigable para el usuario, operación fácil de usar
  • Bajo consumo de energía
  • Tasa de muestreo y duración cambiables reemplazando una sola resistencia.
tip

Más detalles sobre los módulos Grove consulte Sistema Grove

Ideas de Aplicación

  • Juguetes

Especificaciones

Elemento

Mín

Típico

Máx

Unidad

Voltaje

3.0

5.0

5.25

V

Corriente de Operación

25

mA

Corriente en Espera

1

uA

Rango

±1.5

g

Uso

Este Grove-Grabador de Sonido soporta 4 segmentos de mensaje de duración fija. Cada segmento puede ser controlado manualmente o por el MCU(Arduino/Seeeduino). Y la duración de cada segmento puede ser cambiada por el cliente. Método del Grabador

Controlar el grabador manualmente es muy fácil. OK, echemos un vistazo: El interruptor(SW1) es para seleccionar grabación/reproducción, empújalo a "Rec" cuando quieras grabar voz, y empújalo a "Play" cuando quieras reproducir la voz en el grabador. Los 4 botones(K1~K4) son los botones de control, puedes controlar qué segmento grabar/reproducir presionando el botón relacionado. El conector de salida es para conectar un altavoz de 8 0.5w, y el conector Grove es para alimentación y control del MCU.

Cómo controlarlo manualmente

Paso 1: Alimenta el grabador. Podrías conectar el "control" al Base Shield a través del cable grove de 4 pines o cualquier fuente de voltaje de 5V.

Nota

Si lo conectas al Base Shield a través del cable de 4 pines, debes asegurarte de que SEL1 y SEL2 estén en bajo programando los pines conectados.

Conecté el conector "Control" al puerto Digital D1. Y configuré D1 y D2 en bajo mediante:

const int D1 =  1;
const int D2 = 2;
int State = LOW;
void setup() {
pinMode(D1, OUTPUT);
pinMode(D2, OUTPUT);
digitalWrite(D1, State );
digitalWrite(D2, State );
}
void loop()
{
}

Paso 2: Empuja el SW1 a "rec".

Paso 3: Mantén presionado el botón del segmento relacionado, K1 por ejemplo, para comenzar la grabación, y suelta el botón para detener la grabación, y escucharás "DI" tanto al comenzar como al detener la grabación.

Nota

El tiempo de grabación para cada segmento no debe ser más de 15s, o se detendrá automáticamente incluso si mantienes el botón presionado.

Paso 4: Cuando quieras reproducir el sonido que grabaste, simplemente empuja el SW1 a "Play", y presiona el botón relacionado (No necesitas mantenerlo presionado), entonces escucharás el sonido que has grabado en este segmento.

Cómo controlar la Grabadora por Arduino/Seeeduino

La Grabadora también puede ser controlada por el MCU (Arduino o Seeeduino), esta característica hace que este módulo grabador sea adecuado para muchas más aplicaciones y le da al usuario una sensación fantástica. Ok, comencemos el control MCU para esta grabadora. Nota que definimos los 4 segmentos que son controlados por K1/K2/K3/K4 como Sección_1/Sección_2/Sección_3/Sección_4.

Paso 1: Prepara el hardware: conecta el conector "Control" al puerto digital D2 del Base Shield. Y empuja el SW1 a "Rec".

Paso 2: Prepara el software. Para controlar la selección de la sección para Grabar/Reproducir, cada decodificación de Sel_1 y Sel_2 apunta a una sección diferente.

Sel_1(D2)/Sel_2(D1)Segmento seleccionado
0 0Ninguno (No hay segmento seleccionado)
0 1Sección_2
1 0Sección_3
1 1Sección_4

Nota

Cuando es controlado por MCU, la Sección_1 no puede ser seleccionada.

¿No te interesa tal tabla, es confusa! ¿Solo quieres el código? Descarga el siguiente código a tu Arduino/Seeeduino.

/****************************************************************************/

#include "APR9600.h"

/*macro definition of the Grove interface on the Sounder Recorder*/
#define SEL1 2
#define SEL2 3
ARP9600 recorder(SEL1,SEL2);

/*Store the command from the serial monitor you type.*/
char index;//can be '2','3','4',that is the index of section 2,section 3,section 4
char control;//control byte, can be 'r' for record, 's' for stop recording,
//'p' for play

void setup()
{
Serial.begin(9600);
recorder.begin();
}
void loop()
{
getCommand();
delay(50);
}
void getCommand()
{
if (Serial.available()>0)
{
/*Get the command from the serial monitor*/
index = Serial.read();
control = Serial.read();
}
while(Serial.available()>0)Serial.read();//clear the receive buffer
if((index > '1')&&(index < '5'))// index should be 2~4
{
if(control == 'r')//if it is record command?
{
recorder.record(index - 0x30);
Serial.print("get the ");
Serial.write(index);
Serial.write(control);
Serial.print(" command, ");
Serial.print("begin to record section_");
Serial.println(index - 0x30);
}
else if(control == 'p')//if it is play command
{
recorder.play(index - 0x30);
Serial.print("get the ");
Serial.write(index);
Serial.write(control);
Serial.print(" command, ");
Serial.print("begin to play section_");
Serial.println(index - 0x30);
}
else if(control == 's')//if it is stop command
{
recorder.stop();//stop recording
Serial.print("get the ");
Serial.write(index);
Serial.write(control);
Serial.print(" command, ");
Serial.print("stop recording");
}
/*Clear the command*/
index = 0;
control = 0;
}
}

Ahora, puedes comenzar a controlar la grabadora, con el siguiente comando (Velocidad de Baudios: 9600):

ComandoDescripciónEstado de SW1
2rbComenzar a grabar Sección_2REC
2rsDetener grabación Sección_2REC
2pReproducir Sección_2Play
3rbComenzar a grabar Sección_3REC
3rsDetener grabación Sección_3REC
3pReproducir Sección_3Play
4rbComenzar a grabar Sección_4REC
4rsDetener grabación Sección_4REC
4pReproducir Sección_4Play

Nota

Section_1 no puede ser controlada por el MCU.

Después de descargar el firmware a tu Arduino/Seeeduino, asegúrate de que el conector "Control" esté conectado a D2&D3&V&G.

Cambia el SW1 a Rec, y escribe el comando con cualquier transceptor de puerto serie. OCTOPUS por ejemplo. Escribe primero el comando "2rb" para comenzar a grabar la section_2, escribe "2rs" para detener la grabación. Ten en cuenta que la grabación terminará automáticamente después de aproximadamente 15s si no se escribió "2rs".

Y ahora, puedes escribir "2p" para reproducir la Section_2, ten en cuenta que debes asegurarte de que el SW1 esté empujado a "Play".

Puedes grabar las 3 Secciones (Section_2, Section_3, Section_4) primero, y luego, con el puerto serie, controlar qué sección quieres reproducir.

Cómo cambiar la frecuencia de muestreo y duración para cada sección

Puedes controlar el equilibrio calidad/duración controlando la frecuencia de muestreo. La frecuencia del oscilador puede cambiarse modificando la resistencia**(R7 en la PCB)** desde el pin OscR a GND. La tabla resume los valores de resistencia y las frecuencias de muestreo correspondientes, así como el ancho de banda de entrada y la duración resultantes.

ResistenciaFrecuencia de MuestreoAncho de Banda de EntradaDuración
44 K4.2 KHZ2.1 KHZ60 S
38 K6.4 KHZ3.2 KHZ40 S
24 K8.0 KHZ4.0 KHZ32 S

El R7 es de 24K cuando se envía a tus manos, puedes cambiarlo a 38K/44K para obtener una duración de grabación más larga, con el compromiso de una menor frecuencia de muestreo.

Visor de Esquemas en Línea

Recursos

Soporte Técnico y Discusión de Productos

¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.

Loading Comments...