Mientras trabajaba en el primer proyecto del Espejo de Halloween o Maldito, la imaginación comienza a volar. Se me ocurrían alternativas, como por ejemplo, crear el efecto del “espejo mágico” del cuento de “Blancanieves y los 7 enanitos”. Para el que no sepa de que va esto, puede ver un fragmento en youtube.
Pero claro, el rollo espejo mágico de Disney era muy viejuno. Así que pensé en usar el mismo concepto, un espejo al que le preguntas “¿quién es la más guapa del reino?” y te responde, pero con un personaje más cercano (malagueño!!) y divertido: EL GRAN CHIQUITO DE LA CALZADA. Este espejo trata de rendirle un modesto homenaje a este humorista inmortal que cambió durante años la forma de hablar en todo el pais.
No puedor, fistro, pecadorrrr…. UN GRANDE INMORTAL
Con ustedes, el ESPEJO MÁGICO:
Como todo buen espejo mágico, debe invocarse para iniciarse: hay que chasquear los dedos tres veces, ni muy rápido ni muy lento, para despertar al mago del espejo.
El efecto de “hablar” se ¿consigue? con unos leds detrás de la boca, que se apagan de forma sincronizada con el audio. Los ojos también se encienden. Ha quedado un poco “kitsch” u hortera, pero se trata de tener un mago impactante.
Uno de los problemas de diseño consistía en eso de “la más GUAPA” que parece muy sexista en los tiempos que corren. ¿Por qué no preguntar por el MAS GUAPO del reino?. Pero ¿cómo resolver este problema aparentemente irresoluble de lenguaje sexista?. Pues lo primero es que el espejo te pregunta el nombre. Y como no le suele gustar, te lo cambia por otro, que puede ser de mujer o de hombre, de forma aleatoria. Así solucionamos el problema, por la vía del posible transexualismo.
Por último se realiza un sorteo que puede ser de feo/a o de guapo/a , de manera que cada vez que se invoca al espejo, el resultado puede ser distinto según la persona que pregunte. Diversión a raudales.
Para los que estén interesados en la parte técnica, tenemos otra entrada que explica los entresijos de la creación (en construcción).
La idea de base consiste en usar un espejo de una cara, de forma que cuando se ilumina la parte de atrás mediante unos leds, el espejo deja pasar la luz. De esta forma se puede hacer el efecto de rotura con una cartulina.
“El Espejo Maldito” es el primer proyecto Arduino. El efecto buscado es una broma para Halloween. Consiste en un espejo aparentemente normal (en concreto, un espejo del IKEA), que cuando te acercas, comienza a hablarte para que te mires y se acaba rompiendo. La voz del espejo te recuerda que tienes 7 años de mala suerte mientras se ríe de tí… Cangüelo en el cuerpo.
Hay que añadirle un detector de presencia, para que se active cuando detecte una persona cerca, y un reproductor MP3 con un altavoz para la musiquilla con la voz y hacer el ruido de rotura.
Como anécdota comentar que la primera versión del espejo…se rompió de verdad, al caerse del soporte. Nada extraño, estaba mal construido. Aquí no somos supersticiosos, como bien sabe mi amigo Steve Wonder.
En otra entrada explico la forma de construcción paso a paso para los técnicos.
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); }
El nombre del blog “El juguetero de Blade Runner” se me ocurrió una noche mientras estaba en estado de flujo y tenía toda la habitación desordenada. Me recordó el desorden de la casa de J.F.Sebastian, el ingeniero de los replicantes de la película Blade Runner.
Nos separa un abismo (yo soy más guapo, jajaja), pero el hecho de poder hacer ingeniería a otro nivel, a la vez que se crean juguetes imperfectos (“Kaiser y Bear”) establece una especie de vínculo extraño entre este personaje y yo mismo.
“Kaiser” y “Bear”, dos personajes secundarios icónicos de la película. Perfectos en su imperfección.
Como entretenimiento durante el toque de queda y el cierre de comercios y bares a las 18:00, me propuse retomar un antiguo hobby, previo a la universidad: el “cacharreo” electrónico. Siempre había tenido en mente iniciarme en el ecosistema de ARDUINO por lo interesante de su enfoque de hardware libre y su potente comunidad.
La idea era aprender, hacer algo creativo (no sólo seguir unas instrucciones de montaje) y compartir un hobby conjunto con mi hijo. Alguno de esos objetivos no se han cumplido, pero está siendo muy divertido.
No se cuanto durará este impulso “arduinesco”, pero creo que hacer proyectos concretos que produzcan resultados tangibles me está enganchando. Tras unos meses estoy subiendo de nivel. El objetivo sólo es lúdico, pero noto como mi mente va a analizando otras opciones, otras aplicaciones. Quién sabe. La meta quizás no sea el objetivo, el camino es lo que importa.
Publicarlo en este blog tiene como objetivo contribuir humildemente con la comunidad Arduino castellanoparlante explicando la construcción de los proyectos y quizás servir de inspiración a otros, tal y como otros me sirven a mí de ayuda e inspiración.