El Espejo Maldito. Construcción.

OBJETIVO: Construir un espejo de Halloween que detecte la presencia de una persona, reproduzca una música inquietante y una locución que invite a mirarse en el espejo y a continuación, se produzca la rotura del cristal. Por último, la voz recuerda a modo de maldición que la rotura del espejo implica 7 años de mala suerte y se ríe.

El efecto se logra mediante un espejo falso o un “semi-espejo”, que en nuestro caso se trata de un cuadro de cristal RIBBA del IKEA donde se pega un film semitransparente al cristal. Este tipo de espejo podría ser más rústico o inquietante ya que se trata de asustar. Pero creo que precisamente al ser un espejo moderno minimalista creo que causa más efecto.

Sobre el espejo hay que pegarle una cartulina que recorte la forma de “rotura” que queramos crear:

En la cartulina vamos a pegar los leds que provocaran el efecto de rotura y también le adherimos un film tipo metálico porque es necesario que los leds brillen lo más posible. De hecho, la primera versión tenía 3 “roturas” en lugar de 2, pero al repartir más los leds, el efecto era peor a la luz del día. La versión original de 3 roturas se quedó en el camino porque se veía menos:

Los leds los puse en salidas digitales en grupos de dos, con una resistencia de pull-down, en total uso 4 salidas, dos para simular la rotura de arriba y dos para la de abajo, con un total de 8 leds. Se podrían haber usado más incrementar la luz, porque de noche se aprecia bien, pero de día le falta un poco de intensidad, pero estaba cansado de soldar cables a los leds. Es un espejo para usarlo de noche, jejeje. Una cartulina separa ambas zonas para que no se mezcle la iluminación.

El efecto de rotura es fácil, consiste en encender los leds para que parezca que se ha producido una rotura, pero el sonido es lo que marca la diferencia. En este proyecto hemos utilizado un módulo MP3 que funciona fantástico. En concreto se trata del módulo DFPLAYER MINI MP3 que permite ejecutar sonidos de una tarjeta SD . Por 3€ tenemos un completo reproductor MP3 o WAV que lee ficheros de sonido de una tarjeta SD y los reproduce por un altavoz pequeño conectado directamente. Muy completo en funcionalidades, lo mejor es conectarlo al puerto serie con una resistencia (ojo) . Aquí un tutorial simple para utilizarlo. Merece la pena comprender su funcionamiento porque nos permite añadir la capacidad de generar todo tipo de frases, efectos sonidos y controlarlos desde Arduino con mucha facilidad en nuestros proyectos. En este proyecto utilizo el método de transmitirle un pulso desde Arduino al DF Player para que reproduzca el siguiente fichero, pero es mejor utilizar el puerto serie y direccionar el fichero de sonido deseado, es un método fácil y más potente.

Para los efectos de sonido he utilizado un par de roturas de cristal de una base de datos de efectos de sonido gratuítos, muy útiles para nuestros proyectos.

Y para la grabación de las frases “inquietantes” he utilizado un software de edición de sonido de licencia libre llamado AUDACITY . Merece también la pena aprender a usar la aplicación para entender cómo editar los sonidos para recortarlos, añadirle efectos tipo reverberación o mezclarlos con la música de fondo. En nuestro espejo hemos usado el tema principal de HALLOWEEN de John Carpenter, un clásico del cine de terror. Tiene derechos de autor, pero no creo que el bueno de John venga a casa a llevarse un susto con el ESPEJO MALDITO.

Aunque en la foto de arriba está alimentado con un powerbank, al final le he puesto una alimentación a pilas. También añadimos un interruptor en la parte trasera para evitar que el espejo esté siempre en funcionamiento.

El sensor de movimiento he utilizado un módulo SENSOR-PIR pequeño, mucho mejor que los sensores que había usado hasta ese momento, más discreto.

El marco de Ikea está diseñado para que la parte de atrás no esté separada del cristal, pero se puede hacer el apaño. Básicamente he atornillado en las esquinas aprovechando de las guías de metal del espejo tenían unos agujeros. Ha sido un poco trabajoso, pero ha funcionado.

Respecto a la programación de arduino es simple, ya que se trata de esperar 30segundos desde que se conecta la alimentación, detectar el movimiento en el sensor de proximidad, iniciar el sonido de “acercate al espejo”, a continuación la iluminación de la parte de arriba sincronizada con el efecto de rotura y lo mismo con la de abajo y por último el mensaje de la maldición de 7 años de mala suerte y el apagado del conjunto.

Adjunto el código del sketch de Arduino, muy sencillito:

//PROYECTO ESPEJO HALLOWEEN v1.3

int sensorpir = 2;
int led_a1 = 7;
int led_a2 = 3;
int led_b1 = 4;
int led_b2 = 5;
int sonido = 6;
int pausa_inicio = 30000; //Pausa antes de empezar
int pausa_ab = 1000; //Pausa entre zonas de rotura
int pausa_fin = 20000; // Pausa antes de apagarse
int long duracion = 0;
int long inicio = 0;
int long pulso = 0;

void setup()
{
//Asignamos las entradas y salidas
pinMode(sensorpir,INPUT);
pinMode(sonido,OUTPUT);
pinMode(led_a1,OUTPUT);
pinMode(led_a2,OUTPUT);
pinMode(led_b1,OUTPUT);
pinMode(led_b2,OUTPUT);
//Asignamos el estado inicial de entradas y salidas
digitalWrite(led_a1, LOW);
digitalWrite(led_a2, LOW);
digitalWrite(led_b1, LOW);
digitalWrite(led_b2, LOW);
digitalWrite(sonido, HIGH);
digitalWrite(sensorpir, LOW);
delay(pausa_inicio);
inicio = millis();
pulso = millis();
}

void loop()
{
if (digitalRead(sensorpir) == HIGH){
pulso = millis();
}
else
{
inicio = millis();
}
duracion = pulso – inicio;
if(duracion > 3000) //Cuando el sensor detecte algun movimiento mayor de dos segundos se inicia la secuencia de iluminación y sonido
{
digitalWrite(sonido, LOW); // Se crea un pulso para que EF Player ejecute el efecto de sonido “Mirate en el espejo”
delay(200);
digitalWrite(sonido, HIGH); //
delay(15000); //tiempo de la narración “mirate en el espejo” menos 3 segundos
digitalWrite(sonido, LOW); // Se crea un pulso para que EF Player ejecute sonido de rotura de la primera zona de rotura
delay(200);
digitalWrite(sonido, HIGH);
delay(300); // espera para sincronizar con los leds
digitalWrite(led_a1, HIGH);
digitalWrite(led_a2, HIGH);
delay(pausa_ab); // Se espera antes de iniciar la segunda zona de rotura
digitalWrite(sonido, LOW);
delay(200);
digitalWrite(sonido,HIGH);
digitalWrite(led_b1, HIGH);
digitalWrite(led_b2, HIGH);
delay(3000);
digitalWrite(sonido, LOW); //se crea un pulso para que EF Player ejecute efecto sonido “Siete años de mala suerte”
delay(200);
digitalWrite(sonido,HIGH);
delay(pausa_fin);
digitalWrite(led_a1, LOW);
digitalWrite(led_a2, LOW);
digitalWrite(led_b1, LOW);
digitalWrite(led_b2, LOW);
pulso = millis();
inicio = millis();
delay(pausa_inicio);
}

}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *