Voltar

Sete projetos de Halloween que você pode montar e rodar no navegador

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.

ProjetoPlacaPeças principaisAbrir
Caveira de sustoArduino UnoPIR, servo, 2 LEDs, buzzerhalloween-uno-jump-scare-skull
Dispensador de docesArduino UnoHC-SR04, servo, OLED SSD1306, buzzerhalloween-uno-candy-dispenser
O olho que te segueSeeed XIAO ESP32-S3Seeed Round Display (GC9A01 + touch)halloween-round-display-eye
Abóbora GroveSeeed XIAO ESP32-S3Grove RGB LED Ring, Sensor de Luz, PIR, Buzzer Passivohalloween-grove-pumpkin-ring
Retrato assombradoESP32 DevKitRadar mmWave DFRobot C4001, 2 LEDs, buzzerhalloween-c4001-haunted-portrait
Detector de fantasmasM5Stack CoreLCD, botões e alto-falante integradoshalloween-m5stack-ghost-detector
Abóbora de matriz de LEDPimoroni Stellar UnicornMatriz RGB 16x16, botõeshalloween-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

  1. Clique no link do projeto na tabela. O editor abre com a placa, as peças, os fios e o sketch no lugar.
  2. 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.
  3. 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.
  4. 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)

Uma ilustração de IA da caveira de susto pronta numa varanda: olhos de LED vermelhos, um servo abrindo a mandíbula, um sensor PIR na frente e um Arduino Uno com buzzer atrás

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.

A caveira de susto num Arduino Uno: sensor PIR, mandíbula de servo, dois olhos de LED vermelhos e um buzzer

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)

Uma ilustração de IA do dispensador de doces pronto: uma caixa de abóbora pintada com um tubo de doces, um sensor ultrassônico sobre a tigela, uma calha soltando um doce, um OLED e um Arduino Uno atrás de uma janela lateral

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ê.

O dispensador de doces num Arduino Uno com o portão aberto e o OLED contando os doces

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)

Uma ilustração de IA de uma caveira com dois Seeed Round Displays como olhos, cada um mostrando um olho injetado de sangue com pupila em fenda

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.

Um globo ocular injetado de sangue no Seeed Round Display, a pupila olhando para onde o vidro é tocado

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)

Uma ilustração de IA do adereço Grove jack-o'-lantern finalizado: um anel de LED brilhando em verde e roxo dentro de uma abóbora esculpida, com uma placa XIAO, um PIR e um sensor de luz em cabos Grove ao lado

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.

A abóbora jack-o'-lantern Grove: um Anel de LED RGB Ultimate cintilando como uma vela ao lado de um XIAO ESP32-S3, um sensor de luz, um PIR e um buzzer passivo

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

O mesmo circuito com o anel girando em verde e roxo após o disparo do PIR

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)

Uma ilustração de IA do retrato assombrado finalizado: uma pintura antiga em uma moldura dourada com olhos vermelhos brilhantes, e nas costas da tela o radar mmWave, uma placa ESP32 e um buzzer

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.

O circuito do retrato assombrado: um ESP32 DevKit, o radar DFRobot C4001, dois olhos de LED vermelho e um buzzer

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.

O detector de fantasmas em um M5Stack Core: um medidor de ponteiro na zona vermelha e um fantasma na tela

Os três botões frontais são os controles:

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.

Um rosto de jack-o'-lantern na matriz de LED 16x16 do Pimoroni Stellar Unicorn

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:

Limitações

Abra um, altere-o e monte a versão que assusta a sua própria porta. Feliz Halloween.


Compartilhar em:
David Montero

Escrito por

David Montero

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

GitHub velxio.dev

Artigos relacionados


Artigo anterior
Eletrônica analógica no navegador: sete circuitos que você pode executar e medir
Próximo artigo
Robô de mesa fofo: um rosto que escuta no ESP-VoCat, com seu emulador no navegador