Volver

Siete proyectos de Halloween que puedes construir y ejecutar en el navegador

Cada octubre vuelve el mismo puñado de montajes a Hackster, Instructables y al hackathon de Halloween de element14: una calavera con mandíbula de servo que chilla cuando alguien pasa por delante, un par de ojos en pantallas redondas que te siguen, un cuadro que reacciona cuando te acercas, una calabaza llena de NeoPixels y un cuenco de caramelos que solo da dulces si extiendes la mano.

Hemos reconstruido siete de ellos como ejemplos en la galería de Velxio, uno por familia de placas, usando piezas de Arduino y los módulos de nuestros socios Seeed Studio, DFRobot, M5Stack y Pimoroni. Cada uno se abre en el editor con el circuito ya cableado y el sketch ya escrito. Pulsa Run y se compila y arranca en el navegador, así que puedes ajustar los tiempos, los colores y los umbrales antes de cortar un solo cable.

ProyectoPlacaPiezas principalesAbrirlo
Calavera de sustoArduino UnoPIR, servo, 2 LEDs, zumbadorhalloween-uno-jump-scare-skull
Dispensador de caramelosArduino UnoHC-SR04, servo, OLED SSD1306, zumbadorhalloween-uno-candy-dispenser
El ojo que te sigueSeeed XIAO ESP32-S3Seeed Round Display (GC9A01 + táctil)halloween-round-display-eye
Calabaza de Jack con GroveSeeed XIAO ESP32-S3Anillo LED RGB Grove, sensor de luz, PIR, zumbador pasivohalloween-grove-pumpkin-ring
Retrato embrujadoESP32 DevKitRadar mmWave DFRobot C4001, 2 LEDs, zumbadorhalloween-c4001-haunted-portrait
Detector de fantasmasM5Stack CoreLCD, botones y altavoz integradoshalloween-m5stack-ghost-detector
Calabaza de matriz LEDPimoroni Stellar UnicornMatriz RGB de 16x16, botoneshalloween-stellar-unicorn-pumpkin

Si buscas halloween en la página de ejemplos aparecen los siete.

La foto que encabeza cinco de las secciones es una ilustración de cómo podría quedar el prop terminado, generada con IA. Todas las demás imágenes de este artículo son una captura del ejemplo ejecutándose en Velxio.

Cómo abrir y ejecutar cualquiera de ellos

  1. Haz clic en el enlace del proyecto en la tabla. El editor se abre con la placa, las piezas, los cables y el sketch en su sitio.
  2. Pulsa el botón verde Run de la barra de herramientas. El sketch se compila en nuestros servidores (la primera compilación de una placa puede tardar un minuto) y después se ejecuta en tu navegador.
  3. Abre el Monitor Serie en la parte inferior. Cada sketch imprime lo que está haciendo, así que puedes ver reaccionar a los props incluso con el sonido apagado.
  4. Haz clic en un sensor del lienzo mientras la simulación está en marcha para abrir su panel. Ahí están los deslizadores de distancia, luz y presencia.

1. Calavera de susto (Arduino Uno)

Una ilustración con IA de la calavera de susto terminada en un porche: ojos de LED rojos, un servo que abre la mandíbula, un sensor PIR delante y un Arduino Uno con un zumbador detrás

Ilustración del prop terminado, generada con IA. El circuito de abajo es el que se ejecuta en Velxio.

El clásico prop de porche. Un sensor de movimiento PIR en D2 vigila la puerta. Cuando alguien pasa por delante, dos ojos de LED rojos en D5 y D6 se encienden a plena intensidad, un servo en D9 hace castañetear la mandíbula cuatro veces y un zumbador en D8 chilla con una sirena que baja de 1,8 kHz hasta un gruñido. Entre visitante y visitante los ojos arden como brasas, y un tiempo de espera de cuatro segundos evita que la calavera asuste dos veces seguidas a la misma persona.

La calavera de susto sobre un Arduino Uno: sensor PIR, mandíbula de servo, dos ojos de LED rojos y un zumbador

Para probarlo, haz clic en el sensor PIR del lienzo. La salida se pone a HIGH durante tres segundos, que es lo que hace un HC-SR501 real con el potenciómetro de retardo al mínimo.

Todo el susto es una función corta. Fíjate en que tone() en el Uno usa el Timer2 y la librería Servo usa el Timer1, así que el chillido y la mandíbula nunca se pelean por un temporizador:

void scare() {
  eyes(255);
  for (int i = 0; i < 4; i++) {          // the jaw chatters four times
    jaw.write(JAW_OPEN);
    if (i == 0) scream(); else delay(160);
    jaw.write(JAW_CLOSED);
    delay(140);
  }
  eyes(40);
  lastScare = millis();
}

2. Dispensador de caramelos de truco o trato (Arduino Uno)

Una ilustración con IA del dispensador de caramelos terminado: una caja de calabaza de Jack pintada con un tubo de caramelos, un sensor ultrasónico sobre el cuenco, una rampa que deja caer un caramelo, un OLED y un Arduino Uno detrás de una ventana lateral

Ilustración del prop terminado, generada con IA. El circuito de abajo es el que se ejecuta en Velxio.

Un cuenco de caramelos sin contacto. Un sensor ultrasónico HC-SR04 apunta hacia arriba desde debajo de la rampa y busca una mano a menos de 10 cm. Cuando la encuentra, un servo abre la compuerta, deja caer un caramelo y la vuelve a cerrar, el zumbador toca una melodía corta y un OLED SSD1306 hace la cuenta atrás de lo que queda, con una pequeña calabaza de Jack dibujada en la esquina. Cuando se acaba la provisión, la pantalla dice TRICK y el zumbador se ríe de ti.

El dispensador de caramelos sobre un Arduino Uno con la compuerta abierta y el OLED contando los caramelos

Haz clic en el HC-SR04 y arrastra su deslizador de distancia por debajo de 10 cm para extender una mano. El sketch entonces espera a que retires la mano, así que un gesto es un caramelo y nadie vacía el cuenco dejando la mano puesta.

3. El ojo que te sigue (Seeed Round Display para XIAO)

Una ilustración con IA de un prop de calavera con dos Seeed Round Displays como ojos, cada una mostrando un ojo inyectado en sangre con la pupila rasgada

Ilustración de un par de ojos terminados, generada con IA. El ejemplo en Velxio ejecuta una pantalla; un par son dos de ellas.

Los ojos en pantallas TFT redondas estuvieron por todas partes en el hackathon de Halloween de element14 del año pasado, desde calaveras impresas en 3D hasta props activados por radar. Este usa la Seeed Round Display para XIAO con un XIAO ESP32-S3 montado en su parte trasera. La GC9A01 de 1,28 pulgadas muestra un globo ocular inyectado en sangre con un iris naranja.

Un globo ocular inyectado en sangre en la Seeed Round Display, con la pupila mirando hacia donde se toca el cristal

Presiona sobre el cristal y la pupila persigue tu puntero. Sigue presionando y se estrecha en una rasgadura de gato. Suelta y vuelve a mirar alrededor de la habitación por su cuenta y a parpadear cada pocos segundos.

El controlador táctil es el CHSC6X de la placa, leído igual que lo lee el propio driver de Seeed: un flanco de bajada en D7 indica que hay un dedo apoyado y una lectura I2C de cinco bytes en 0x2E devuelve la posición. Cada fotograma se dibuja en un sprite fuera de pantalla y se vuelca al cristal de una vez, así que el panel nunca muestra un ojo a medio pintar. Solo se redibuja el cuadrado de 174 píxeles que puede alcanzar el iris; el borde con sus venas se pinta una vez, y de nuevo después de cada parpadeo:

static void drawEye() {
  frame.fillScreen(TFT_BLACK);
  drawSclera(frame, BX, BY);           // the part of the sclera inside the box
  ...                                  // iris, streaks, pupil, glint, eyelids
  frame.pushSprite(BX, BY);
}

Los pines son los de la propia placa, así que el mismo sketch funciona en el montaje real.

Para un par de ojos, construye dos: una calavera o una calabaza tallada alojan dos Round Displays en sus cuencas, cada una con su propio XIAO ejecutando este sketch. Miran y parpadean de forma independiente, lo que resulta más vivo que dos ojos perfectamente sincronizados.

4. Calabaza de Grove que despierta al anochecer (Seeed XIAO ESP32-S3)

Una ilustración con IA de la calabaza de Grove terminada: un anillo LED que brilla en verde y morado dentro de una calabaza tallada, con una placa XIAO, un PIR y un sensor de luz en cables Grove a su lado

Ilustración del prop terminado, generada con IA. El circuito de abajo es el que se ejecuta en Velxio.

Cuatro módulos Grove sobre un XIAO ESP32-S3 forman un inserto para una calabaza tallada. El sensor de luz Grove mantiene el anillo Ultimate RGB LED de 42 LED apagado durante el día. Cuando oscurece, el anillo parpadea en naranja y amarillo como una vela, cada LED con su propia llama. Cuando el PIR Grove detecta a alguien, la calabaza es poseída: un vórtice verde y morado gira alrededor del anillo y el zumbador pasivo Grove toca unos compases de una melodía espeluznante.

La calabaza de Grove: un anillo Ultimate RGB LED parpadeando como una vela junto a un XIAO ESP32-S3, un sensor de luz, un PIR y un zumbador pasivo

Para probarlo, haz clic en el sensor de luz y arrastra su control deslizante hacia abajo para hacer que sea de noche, luego haz clic en el PIR y actívalo.

El mismo circuito con el anillo girando en verde y morado después de que el PIR se activara

En hardware real, alimenta el anillo desde el pad de 5 V del XIAO (el ejemplo está cableado así) y mantén el brillo bajo: 42 LED WS2813 a blanco pleno consumen mucho más de lo que a un puerto USB le gusta entregar.

5. Retrato embrujado (radar mmWave DFRobot C4001)

Una ilustración con IA del retrato embrujado terminado: una pintura antigua en un marco dorado con ojos rojos brillantes, y en la parte trasera del lienzo el radar mmWave, una placa ESP32 y un zumbador

Ilustración del prop terminado, generada con IA. El circuito de abajo es el que se ejecuta en Velxio.

La pintura cuyos ojos siguen a la habitación es un viejo truco de feria, y un radar lo convierte en uno mejor. El DFRobot C4001 (SEN0610) es un sensor mmWave de 24 GHz que mide a qué distancia está una persona, y su señal atraviesa directamente un lienzo y un marco de madera. Escondido detrás del cuadro, nada lo delata.

El sketch pone el radar en modo velocidad, donde informa tanto la distancia como la presencia. Cuanto más cerca estás, más brillan los dos ojos LED del retrato y más rápido late un corazón en el zumbador, desde un latido cada 1,5 segundos a seis metros hasta casi tres por segundo de cerca. Acércate a menos de un metro y chilla.

El circuito del retrato embrujado: un ESP32 DevKit, el radar DFRobot C4001, dos ojos LED rojos y un zumbador

Haz clic en el radar y arrastra su control deslizante de distancia para acercarte al cuadro.

// 6 m away: a dim glow. Right in front: full blaze.
float closeness = constrain((FAR_M - range) / (FAR_M - SHRIEK_M), 0.0f, 1.0f);
eyes(10 + (int)(closeness * 245));

6. Detector de fantasmas (M5Stack Core)

Más un juego que un prop, y el único que no tiene nada que cablear. El M5Stack Core Basic dibuja un medidor de aguja que lee el “campo espectral” de la habitación. La aguja vaga por su cuenta y de vez en cuando se dispara hacia la zona roja HAUNT; es entonces cuando un fantasma flota en la pantalla y el altavoz empieza a crepitar.

El detector de fantasmas en un M5Stack Core: un medidor de aguja en la zona roja y un fantasma en la pantalla

Los tres botones frontales son los controles:

El medidor se dibuja en un sprite M5Canvas de 8 bits y se envía de una vez, lo que evita que la aguja parpadee. Un sprite de 16 bits a pantalla completa no cabría: el Core Basic no tiene PSRAM.

7. Calabaza de matriz LED (Pimoroni Stellar Unicorn)

El último es pura decoración. La matriz RGB de 16x16 de la Pimoroni Stellar Unicorn se convierte en una calabaza acanalada cuyos ojos, nariz y boca dentada brillan desde una vela en su interior. Pulsa A para un rayo seguido de un HAPPY HALLOWEEN que se desplaza, B para enviar un fantasma que se desliza por la cara, y LUX + y - para ajustar el brillo.

Una cara de calabaza en la matriz LED de 16x16 de la Pimoroni Stellar Unicorn

La cara es una cuadrícula de 16 por 16 caracteres en el sketch, una letra por LED, así que cambiar la expresión es cuestión de editar texto.

Llevarlos a hardware real

Los sketches están escritos contra las mismas librerías y pines que usarías en el banco de trabajo, así que pasar del simulador a una construcción real es sobre todo cuestión de alimentación y mecánica:

Limitaciones

Abre uno, cámbialo y construye la versión que asuste a tu propia puerta. Feliz Halloween.


Compartir en:
David Montero

Escrito por

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

Artículos relacionados


Artículo anterior
Electrónica analógica en el navegador: siete circuitos que puedes ejecutar y medir
Artículo siguiente
Cute Desktop Robot: una cara que escucha en el ESP-VoCat, con su emulador en tu navegador