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.
| Proyecto | Placa | Piezas principales | Abrirlo |
|---|---|---|---|
| Calavera de susto | Arduino Uno | PIR, servo, 2 LEDs, zumbador | halloween-uno-jump-scare-skull |
| Dispensador de caramelos | Arduino Uno | HC-SR04, servo, OLED SSD1306, zumbador | halloween-uno-candy-dispenser |
| El ojo que te sigue | Seeed XIAO ESP32-S3 | Seeed Round Display (GC9A01 + táctil) | halloween-round-display-eye |
| Calabaza de Jack con Grove | Seeed XIAO ESP32-S3 | Anillo LED RGB Grove, sensor de luz, PIR, zumbador pasivo | halloween-grove-pumpkin-ring |
| Retrato embrujado | ESP32 DevKit | Radar mmWave DFRobot C4001, 2 LEDs, zumbador | halloween-c4001-haunted-portrait |
| Detector de fantasmas | M5Stack Core | LCD, botones y altavoz integrados | halloween-m5stack-ghost-detector |
| Calabaza de matriz LED | Pimoroni Stellar Unicorn | Matriz RGB de 16x16, botones | halloween-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
- 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.
- 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.
- 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.
- 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)

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.

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)

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.

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)

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.

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)

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.

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.

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)

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.

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.

Los tres botones frontales son los controles:
- A escanea con más intensidad durante tres segundos, así que los fantasmas aparecen más a menudo.
- B hace una foto. Atrapa al fantasma mientras está en pantalla y el contador de la esquina sube.
- C activa y desactiva el sonido.
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.

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:
- Los servos consumen picos de corriente que al regulador de 5 V del Uno no le gustan. Para la calavera y el dispensador, dale al servo su propia alimentación de 5 V y une las tierras.
- Un PIR real necesita alrededor de un minuto para estabilizarse tras encenderse y se disparará solo unas cuantas veces durante ese minuto.
- Para el anillo LED, aliméntalo desde 5 V y mantén
setBrightness()bajo a menos que tengas una fuente dimensionada para ello. - El C4001 ve a través de madera fina, cartón y tela, pero no a través de metal, así que ten cuidado con la ferretería de colgado del marco.
Limitaciones
- El radar, el sensor de luz y el sensor ultrasónico se controlan con controles deslizantes. Le dan al sketch los números que daría un sensor real, no una escena física.
- El sonido se reproduce a través del navegador. Las partes del zumbador siguen la frecuencia que produce el pin; no modelan el volumen ni el timbre de un piezo real.
Abre uno, cámbialo y construye la versión que asuste a tu propia puerta. Feliz Halloween.