Un (molesto) theremin con Arduino y un HC-SR04

Detalle theremin con Arduino

El theremin o eterófono es un instrumento muy peculiar. Se basa en el hecho físico de que un cuerpo dentro de un campo electromagnético producido por un modulación de radiofrecuencia, produce cambios de frecuencia en dicho campo. El theremin usa dos circuitos con dos antenas: uno de volumen y otro de tono. Construir un theremin no es sencillo, pero usando un Arduino y un sensor de ultrasonidos podemos crear algo mucho más básico que no nos va a servir para hacer música, pero sí divertirnos un poco.

Si te gusta la serie Big Bang Theory, seguramente recuerdas al doctor Sheldon Cooper tocando un theremin. Si no recuerdo mal, la sintonía de inicio de Star Trek. Con este montaje vamos a poder emularlo, no tanto como músico, sino más bien como compañero de piso molesto.

Sheldon tocando el theremin

 

Además del Arduino, necesitamos un sensor de ultrasonidos como el económico HC-SR04 y un buzzer (yo he usado un TMB12A05).

Esquema theremin con Arduino

Y el código para Arduino es éste.

#define MIN_DISTANCIA 30

int echo = 9;     // Pin para echo                          
int trigger = 10; // Pin para trigger                               
int speaker = 11; // Pin para el buzzer
unsigned long tiempoRespuesta;
unsigned long distancia;
float freqRad;
int tono;

void setup() {
  pinMode(speaker, OUTPUT);                  
  pinMode(trigger, OUTPUT);                     
  pinMode(echo, INPUT);                    
 } 

void loop() {
  digitalWrite(trigger, HIGH);            // Enviamos pulso de 10 microsegundos
  delayMicroseconds(10);                        
  digitalWrite(trigger, LOW);                   
  tiempoRespuesta = pulseIn(echo, HIGH);  // Y esperamos pulso de vuelta
  distancia = tiempoRespuesta/58;         // Calculo de distancia en cm

  if (distancia < MIN_DISTANCIA) {
    freqRad = sin(distancia*(3.14/180)); // Pasamos frecuencia a radianes
    tono = 2000+(int(freqRad*1000));     // calculamos el tono        
    tone(speaker, tono, 500);
  } 
}

El funcionamiento es muy sencillo. Con el sensor de ultrasonidos se hace una medida de distancia. Esto es, se emite un pulso usando la señal trigger y se recoge a través de la patilla echo. El tiempo que tarda en reconocerse el pulso de vuelta al rebotar en el obstáculo nos indica la distancia. No voy a entrar en más detalle ya que hay miles de documentos en Internet explicando el funcionamiento de este sensor a fondo.

Si la distancia al objeto (en este caso la mano) es inferior a 30 cm se calcula la frecuencia del tono como función sinusoidal de dicha distancia y se emite el tono a través del buzzer. En el siguiente vídeo se puede ver el (desastroso) resultado de intentar tocar una melodía con este montaje.

 

 

Sé el primero en comentar en «Un (molesto) theremin con Arduino y un HC-SR04»

Dejar un comentario

Tu dirección de correo electrónico no será publicada.


*