Todo outubro o mesmo punhado de projetos volta ao Hackster, ao Instructables e ao hackathon de Halloween do element14: uma caveira com mandíbula de servo que grita quando alguém passa, um par de olhos em displays redondos que te seguem, um quadro que reage quando você se aproxima, uma abóbora cheia de NeoPixels e uma tigela de doces que só entrega guloseimas se você estender a mão.
Recriamos sete deles como exemplos na galeria do Velxio, um por família de placas, usando peças de Arduino e os módulos dos nossos parceiros Seeed Studio, DFRobot, M5Stack e Pimoroni. Cada um abre no editor com o circuito já montado e o sketch já escrito. Aperte Run e ele compila e começa a rodar no navegador, para você ajustar o timing, as cores e os limiares antes de cortar um único fio.
| Projeto | Placa | Peças principais | Abrir |
|---|---|---|---|
| Caveira de susto | Arduino Uno | PIR, servo, 2 LEDs, buzzer | halloween-uno-jump-scare-skull |
| Dispensador de doces | Arduino Uno | HC-SR04, servo, OLED SSD1306, buzzer | halloween-uno-candy-dispenser |
| O olho que te segue | Seeed XIAO ESP32-S3 | Seeed Round Display (GC9A01 + touch) | halloween-round-display-eye |
| Abóbora Grove | Seeed XIAO ESP32-S3 | Grove RGB LED Ring, Sensor de Luz, PIR, Buzzer Passivo | halloween-grove-pumpkin-ring |
| Retrato assombrado | ESP32 DevKit | Radar mmWave DFRobot C4001, 2 LEDs, buzzer | halloween-c4001-haunted-portrait |
| Detector de fantasmas | M5Stack Core | LCD, botões e alto-falante integrados | halloween-m5stack-ghost-detector |
| Abóbora de matriz de LED | Pimoroni Stellar Unicorn | Matriz RGB 16x16, botões | halloween-stellar-unicorn-pumpkin |
Buscar por halloween na página de exemplos
lista todos os sete.
A foto no topo de cinco das seções é uma ilustração de como o adereço pronto poderia ficar, gerada com IA. Todas as outras imagens deste artigo são capturas do exemplo rodando no Velxio.
Como abrir e rodar qualquer um deles
- Clique no link do projeto na tabela. O editor abre com a placa, as peças, os fios e o sketch no lugar.
- Aperte o botão verde Run na barra de ferramentas. O sketch compila nos nossos servidores (a primeira compilação de uma placa pode levar um minuto) e depois roda no seu navegador.
- Abra o Serial Monitor na parte de baixo. Todo sketch imprime o que está fazendo, então você pode ver os adereços reagirem mesmo com o som desligado.
- Clique em um sensor na tela enquanto a simulação roda para abrir o painel dele. É ali que ficam os controles de distância, luz e presença.
1. Caveira de susto (Arduino Uno)

Ilustração do adereço pronto, gerada com IA. O circuito abaixo é o que roda no Velxio.
O clássico adereço de varanda. Um sensor de movimento PIR no D2 vigia a porta. Quando alguém passa, dois olhos de LED vermelhos no D5 e no D6 acendem com brilho total, um servo no D9 faz a mandíbula bater quatro vezes e um buzzer no D8 grita com uma sirene que desce de 1,8 kHz até um rosnado. Entre visitantes os olhos brilham como brasas, e um cooldown de quatro segundos impede a caveira de assustar a mesma pessoa duas vezes seguidas.

Para testar, clique no sensor PIR na tela. A saída vai para HIGH por três segundos, que é o que um HC-SR501 real faz com o potenciômetro de delay no mínimo.
O susto inteiro é uma função curta. Note que tone() no Uno usa o
Timer2 e a biblioteca Servo usa o Timer1, então o grito e a mandíbula nunca
disputam um timer:
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 doces de trick-or-treat (Arduino Uno)

Ilustração do adereço pronto, gerada com IA. O circuito abaixo é o que roda no Velxio.
Uma tigela de doces sem toque. Um sensor ultrassônico HC-SR04 aponta para cima por baixo da calha e procura uma mão a menos de 10 cm. Quando encontra uma, um servo abre o portão, solta um doce e fecha de novo, o buzzer toca um jingle curto e um OLED SSD1306 faz a contagem regressiva do que resta, com uma pequena abóbora desenhada no canto. Quando o estoque acaba a tela diz TRICK e o buzzer ri de você.

Clique no HC-SR04 e arraste o controle de distância para menos de 10 cm para estender a mão. O sketch então espera até a mão ser retirada, então um aceno é um doce e ninguém esvazia a tigela deixando a mão parada ali.
3. O olho que te segue (Seeed Round Display para XIAO)

Ilustração de um par de olhos pronto, gerada com IA. O exemplo no Velxio roda um display; um par são dois deles.
Olhos em displays TFT redondos estavam por toda parte no hackathon de Halloween do element14 do ano passado, de caveiras impressas em 3D a adereços acionados por radar. Este usa o Seeed Round Display para XIAO com um XIAO ESP32-S3 encaixado nas costas. O GC9A01 de 1,28 polegada mostra um globo ocular injetado de sangue com uma íris laranja.

Pressione o vidro e a pupila persegue o ponteiro. Continue pressionando e ela se estreita numa fenda de gato. Solte e ela volta a olhar em volta do ambiente sozinha e piscar a cada poucos segundos.
O controlador de toque é o CHSC6X no shield, lido da mesma forma que o driver da própria Seeed lê: uma borda de descida no D7 indica que um dedo está pressionando e uma leitura I2C de cinco bytes em 0x2E retorna a posição. Cada quadro é desenhado num sprite fora da tela e enviado ao vidro de uma vez, então o painel nunca mostra um olho meio pintado. Só o quadrado de 174 pixels que a íris pode alcançar é redesenhado; a borda com suas veias é pintada uma vez, e de novo após cada piscada:
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);
}
Os pinos são os do próprio shield, então o mesmo sketch roda no hardware real.
Para um par de olhos, monte dois: uma caveira ou uma abóbora esculpida recebe dois Round Displays nas órbitas, cada um com seu próprio XIAO rodando este sketch. Eles olham em volta e piscam de forma independente, o que parece mais vivo do que dois olhos em perfeita sincronia.
4. Abóbora jack-o’-lantern Grove que acorda ao anoitecer (Seeed XIAO ESP32-S3)

Ilustração do adereço finalizado, gerada com IA. O circuito abaixo é o que roda no Velxio.
Quatro módulos Grove em um XIAO ESP32-S3 formam um inserto para uma abóbora esculpida. O Grove Light Sensor mantém o Anel de LED RGB Ultimate de 42 LEDs apagado durante o dia. Quando escurece, o anel cintila em laranja e amarelo como uma vela, cada LED com sua própria chama. Quando o Grove PIR vê alguém, a abóbora é possuída: um vórtice verde e roxo gira ao redor do anel e o Grove Passive Buzzer toca alguns compassos de uma melodia assustadora.

Para experimentar, clique no sensor de luz e arraste seu controle deslizante para baixo para fazer anoitecer, depois clique no PIR e dispare-o.

Em hardware real, alimente o anel a partir do pad de 5 V do XIAO (o exemplo é ligado dessa forma) e mantenha o brilho baixo: 42 LEDs WS2813 em branco total consomem muito mais do que uma porta USB gosta de fornecer.
5. Retrato assombrado (radar mmWave DFRobot C4001)

Ilustração do adereço finalizado, gerada com IA. O circuito abaixo é o que roda no Velxio.
A pintura cujos olhos seguem o ambiente é um truque antigo de parque de diversões, e um radar o torna ainda melhor. O DFRobot C4001 (SEN0610) é um sensor mmWave de 24 GHz que mede a que distância uma pessoa está, e seu sinal atravessa diretamente uma tela e uma moldura de madeira. Escondido atrás do quadro, nada o denuncia.
O sketch coloca o radar no modo de velocidade, onde ele reporta a distância bem como a presença. Quanto mais perto você fica, mais intensamente os dois olhos de LED do retrato brilham e mais rápido um batimento cardíaco pulsa no buzzer, de um batimento a cada 1,5 segundos a seis metros até quase três por segundo de perto. Entre a um metro e ele grita.

Clique no radar e arraste seu controle deslizante de distância para se aproximar da pintura.
// 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)
Mais um jogo do que um adereço, e o único sem nada para ligar. O M5Stack Core Basic desenha um medidor de ponteiro que lê o “campo espectral” do ambiente. O ponteiro vagueia sozinho e de vez em quando dispara para a zona vermelha HAUNT; é quando um fantasma flutua na tela e o alto-falante começa a crepitar.

Os três botões frontais são os controles:
- A escaneia com mais força por três segundos, então fantasmas aparecem com mais frequência.
- B tira uma foto. Capture o fantasma enquanto ele está na tela e o contador no canto sobe.
- C liga e desliga o som.
O medidor é desenhado em um sprite M5Canvas de 8 bits e enviado de uma só
vez, o que evita que o ponteiro cintile. Um sprite de 16 bits em tela cheia não
caberia: o Core Basic não tem PSRAM.
7. Abóbora de matriz de LED (Pimoroni Stellar Unicorn)
O último é pura decoração. A matriz RGB 16x16 do Pimoroni Stellar Unicorn se torna uma abóbora jack-o’-lantern com nervuras cujos olhos, nariz e boca irregular brilham a partir de uma vela lá dentro. Pressione A para um raio seguido de um HAPPY HALLOWEEN rolando, B para enviar um fantasma vagando pelo rosto, e LUX + e - para ajustar o brilho.

O rosto é uma grade de 16 por 16 caracteres no sketch, uma letra por LED, então mudar a expressão é questão de editar texto.
Levando-os para hardware real
Os sketches são escritos com as mesmas bibliotecas e pinos que você usaria na bancada, então passar do simulador para uma montagem real é principalmente uma questão de alimentação e mecânica:
- Servos consomem picos de corrente que o regulador de 5 V do Uno não gosta. Para a caveira e o dispensador, dê ao servo sua própria fonte de 5 V e una os terras.
- Um PIR real precisa de cerca de um minuto para estabilizar após a energização e vai disparar sozinho algumas vezes durante esse minuto.
- Para o anel de LED, alimente-o com 5 V e mantenha
setBrightness()baixo, a menos que você tenha uma fonte dimensionada para ele. - O C4001 enxerga através de madeira fina, papelão e tecido, mas não através de metal, então cuide da ferragem de suspensão da moldura.
Limitações
- O radar, o sensor de luz e o sensor ultrassônico são controlados por controles deslizantes. Eles fornecem ao sketch os números que um sensor real forneceria, não uma cena física.
- O som é reproduzido pelo navegador. As partes do buzzer seguem a frequência que o pino produz; elas não modelam o volume ou o timbre de um piezo real.
Abra um, altere-o e monte a versão que assusta a sua própria porta. Feliz Halloween.