Indietro

Sette progetti di Halloween da costruire ed eseguire nel browser

Ogni ottobre la stessa manciata di progetti torna su Hackster, Instructables e all’hackathon di Halloween di element14: un teschio con la mascella a servo che urla quando qualcuno passa davanti, un paio di occhi su display rotondi che ti seguono, un quadro che reagisce quando ti avvicini, una zucca piena di NeoPixel e una ciotola di caramelle che dà dolci solo se tendi la mano.

Ne abbiamo ricostruiti sette come esempi nella galleria di Velxio, uno per famiglia di schede, usando componenti Arduino e i moduli dei nostri partner Seeed Studio, DFRobot, M5Stack e Pimoroni. Ognuno si apre nell’editor con il circuito già cablato e lo sketch già scritto. Premi Run e viene compilato e avviato nel browser, così puoi regolare i tempi, i colori e le soglie prima ancora di tagliare un filo.

ProgettoSchedaComponenti principaliAprilo
Teschio che spaventaArduino UnoPIR, servo, 2 LED, buzzerhalloween-uno-jump-scare-skull
Distributore di caramelleArduino UnoHC-SR04, servo, OLED SSD1306, buzzerhalloween-uno-candy-dispenser
L’occhio che ti segueSeeed XIAO ESP32-S3Seeed Round Display (GC9A01 + touch)halloween-round-display-eye
Zucca GroveSeeed XIAO ESP32-S3Grove RGB LED Ring, sensore di luce, PIR, buzzer passivohalloween-grove-pumpkin-ring
Ritratto infestatoESP32 DevKitRadar mmWave DFRobot C4001, 2 LED, buzzerhalloween-c4001-haunted-portrait
Rilevatore di fantasmiM5Stack CoreLCD, pulsanti e speaker integratihalloween-m5stack-ghost-detector
Zucca a matrice LEDPimoroni Stellar UnicornMatrice RGB 16x16, pulsantihalloween-stellar-unicorn-pumpkin

Cercando halloween nella pagina degli esempi li trovi tutti e sette.

La foto in cima a cinque delle sezioni è un’illustrazione di come potrebbe apparire l’oggetto finito, generata con l’AI. Ogni altra immagine in questo articolo è una cattura dell’esempio in esecuzione in Velxio.

Come aprire ed eseguire uno qualsiasi di essi

  1. Clicca il link del progetto nella tabella. L’editor si apre con la scheda, i componenti, i fili e lo sketch al loro posto.
  2. Premi il pulsante verde Run nella barra degli strumenti. Lo sketch viene compilato sui nostri server (la prima compilazione di una scheda può richiedere un minuto) e poi viene eseguito nel tuo browser.
  3. Apri il Serial Monitor in basso. Ogni sketch stampa quello che sta facendo, così puoi vedere gli oggetti reagire anche con l’audio disattivato.
  4. Clicca un sensore sulla tela mentre la simulazione è in corso per aprire il suo pannello. È lì che si trovano i cursori di distanza, luce e presenza.

1. Teschio che spaventa (Arduino Uno)

Un'illustrazione AI del teschio che spaventa finito su un portico: occhi a LED rossi, un servo che apre la mascella, un sensore PIR davanti e un Arduino Uno con un buzzer dietro

Illustrazione dell’oggetto finito, generata con l’AI. Il circuito qui sotto è quello che viene eseguito in Velxio.

Il classico oggetto da portico. Un sensore di movimento PIR su D2 sorveglia l’ingresso. Quando qualcuno passa, due occhi a LED rossi su D5 e D6 si accendono a piena luminosità, un servo su D9 fa battere la mascella quattro volte e un buzzer su D8 urla con una sirena che scende da 1,8 kHz fino a un ringhio. Tra un visitatore e l’altro gli occhi covano come braci, e un tempo di attesa di quattro secondi impedisce al teschio di spaventare la stessa persona due volte di fila.

Il teschio che spaventa su un Arduino Uno: sensore PIR, mascella a servo, due occhi a LED rossi e un buzzer

Per provarlo, clicca il sensore PIR sulla tela. L’uscita va HIGH per tre secondi, che è quello che fa un vero HC-SR501 con il potenziometro del ritardo tutto al minimo.

Tutto lo spavento è una breve funzione. Nota che tone() sull’Uno usa il Timer2 e la libreria Servo usa il Timer1, quindi l’urlo e la mascella non si contendono mai un 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. Distributore di caramelle per dolcetto o scherzetto (Arduino Uno)

Un'illustrazione AI del distributore di caramelle finito: una scatola a forma di zucca dipinta con un tubo per le caramelle, un sensore a ultrasuoni sopra la ciotola, uno scivolo che fa cadere una caramella, un OLED e un Arduino Uno dietro una finestrella laterale

Illustrazione dell’oggetto finito, generata con l’AI. Il circuito qui sotto è quello che viene eseguito in Velxio.

Una ciotola di caramelle senza contatto. Un sensore a ultrasuoni HC-SR04 punta verso l’alto da sotto lo scivolo e cerca una mano a meno di 10 cm. Quando la trova, un servo apre il cancello, fa cadere una caramella e lo richiude, il buzzer suona un breve jingle e un OLED SSD1306 fa il conto alla rovescia di quelle rimaste, con una piccola zucca disegnata nell’angolo. Quando le scorte finiscono lo schermo dice TRICK e il buzzer ti ride in faccia.

Il distributore di caramelle su un Arduino Uno con il cancello aperto e l'OLED che conta le caramelle

Clicca l’HC-SR04 e trascina il suo cursore della distanza sotto i 10 cm per tendere una mano. Lo sketch poi aspetta che la mano venga ritirata, così un gesto è una caramella e nessuno svuota la ciotola lasciando una mano ferma.

3. L’occhio che ti segue (Seeed Round Display per XIAO)

Un'illustrazione AI di un teschio con due Seeed Round Display come occhi, ognuno dei quali mostra un occhio iniettato di sangue con una pupilla a fessura

Illustrazione di un paio di occhi finiti, generata con l’AI. L’esempio in Velxio esegue un solo display; un paio sono due di questi.

Gli occhi su display TFT rotondi erano ovunque all’hackathon di Halloween di element14 dell’anno scorso, dai teschi stampati in 3D agli oggetti attivati da radar. Questo usa il Seeed Round Display per XIAO con un XIAO ESP32-S3 montato sul retro. Il GC9A01 da 1,28 pollici mostra un bulbo oculare iniettato di sangue con un’iride arancione.

Un bulbo oculare iniettato di sangue sul Seeed Round Display, con la pupilla che guarda verso il punto in cui il vetro viene toccato

Premi sul vetro e la pupilla insegue il tuo puntatore. Continua a premere e si restringe in una fessura da gatto. Lascia e torna a guardarsi intorno per la stanza da sola e a sbattere le palpebre ogni pochi secondi.

Il controller touch è il CHSC6X sullo shield, letto allo stesso modo in cui lo legge il driver di Seeed: un fronte di discesa su D7 indica che un dito è premuto e una lettura I2C di cinque byte a 0x2E restituisce la posizione. Ogni fotogramma viene disegnato in uno sprite fuori schermo e inviato al vetro in un colpo solo, così il pannello non mostra mai un occhio disegnato a metà. Viene ridisegnato solo il quadrato di 174 pixel che l’iride può raggiungere; il bordo con le sue venature viene dipinto una volta, e di nuovo dopo ogni battito di palpebre:

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);
}

I pin sono quelli dello shield stesso, quindi lo stesso sketch funziona sullo stack reale.

Per un paio di occhi, costruiscine due: un teschio o una zucca intagliata ospita due Round Display nelle sue orbite, ognuno con il proprio XIAO che esegue questo sketch. Guardano e sbattono le palpebre in modo indipendente, il che risulta più vivo di due occhi perfettamente sincronizzati.

4. Zucca di Grove che si accende al crepuscolo (Seeed XIAO ESP32-S3)

Un'illustrazione AI della zucca di Grove finita: un anello LED che brilla verde e viola dentro una zucca intagliata, con una scheda XIAO, un PIR e un sensore di luce su cavi Grove accanto

Illustrazione dell’oggetto finito, generata con AI. Il circuito qui sotto è quello che funziona in Velxio.

Quattro moduli Grove su un XIAO ESP32-S3 compongono un inserto per una zucca intagliata. Il Grove Light Sensor mantiene al buio l’Ultimate RGB LED Ring da 42 LED durante il giorno. Quando fa buio l’anello sfarfalleggia arancione e giallo come una candela, ogni LED con la propria fiamma. Quando il Grove PIR vede qualcuno, la zucca viene posseduta: un vortice verde e viola gira intorno all’anello e il Grove Passive Buzzer suona qualche battuta di una melodia inquietante.

La zucca di Grove: un Ultimate RGB LED Ring che sfarfalleggia come una candela accanto a un XIAO ESP32-S3, un sensore di luce, un PIR e un buzzer passivo

Per provarla, clicca sul sensore di luce e trascina il suo cursore verso il basso per far venire notte, poi clicca sul PIR e attivalo.

Lo stesso circuito con l'anello che gira verde e viola dopo che il PIR è scattato

Sull’hardware reale, alimenta l’anello dal pad 5 V dello XIAO (l’esempio è cablato così) e mantieni la luminosità bassa: 42 LED WS2813 a bianco pieno assorbono molto più di quanto una porta USB gradisca fornire.

5. Ritratto infestato (radar mmWave DFRobot C4001)

Un'illustrazione AI del ritratto infestato finito: un vecchio dipinto in una cornice dorata con occhi rossi luminosi, e sul retro della tela il radar mmWave, una scheda ESP32 e un buzzer

Illustrazione dell’oggetto finito, generata con AI. Il circuito qui sotto è quello che funziona in Velxio.

Il dipinto i cui occhi seguono la stanza è un vecchio trucco da luna park, e un radar lo rende migliore. Il DFRobot C4001 (SEN0610) è un sensore mmWave a 24 GHz che misura quanto è lontana una persona, e il suo segnale passa direttamente attraverso una tela e una cornice di legno. Nascosto dietro il quadro, nulla lo tradisce.

Lo sketch mette il radar in modalità velocità, dove riporta sia la distanza che la presenza. Più ti avvicini, più brillano intensamente i due occhi LED del ritratto e più veloce batte un battito cardiaco sul buzzer, da un battito ogni 1,5 secondi a sei metri fino a quasi tre al secondo da vicino. Entra entro un metro e strilla.

Il circuito del ritratto infestato: un ESP32 DevKit, il radar DFRobot C4001, due occhi LED rossi e un buzzer

Clicca sul radar e trascina il suo cursore della distanza per avvicinarti al dipinto.

// 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. Rilevatore di fantasmi (M5Stack Core)

Più un gioco che un oggetto di scena, e l’unico senza nulla da cablare. L’M5Stack Core Basic disegna un indicatore a lancetta che legge il “campo spettrale” della stanza. La lancetta vaga da sola e ogni tanto schizza nella zona rossa HAUNT; è allora che un fantasma fluttua sullo schermo e l’altoparlante inizia a crepitare.

Il rilevatore di fantasmi su un M5Stack Core: un indicatore a lancetta nella zona rossa e un fantasma sullo schermo

I tre pulsanti frontali sono i comandi:

L’indicatore è disegnato in uno sprite M5Canvas a 8 bit e inviato in un colpo solo, il che evita che la lancetta sfarfallii. Uno sprite a 16 bit a schermo intero non ci starebbe: il Core Basic non ha PSRAM.

7. Zucca a matrice LED (Pimoroni Stellar Unicorn)

L’ultimo è pura decorazione. La matrice RGB 16x16 del Pimoroni Stellar Unicorn diventa una zucca intagliata a coste i cui occhi, naso e bocca frastagliata brillano da una candela all’interno. Premi A per un fulmine seguito da un HAPPY HALLOWEEN scorrevole, B per far vagare un fantasma attraverso la faccia, e LUX + e - per impostare la luminosità.

Una faccia di zucca intagliata sulla matrice LED 16x16 del Pimoroni Stellar Unicorn

La faccia è una griglia di caratteri 16 per 16 nello sketch, una lettera per LED, quindi cambiare l’espressione è solo questione di modificare il testo.

Portarli sull’hardware reale

Gli sketch sono scritti per le stesse librerie e gli stessi pin che useresti sul banco di lavoro, quindi passare dal simulatore a una build reale è soprattutto una questione di alimentazione e meccanica:

Limiti

Aprine uno, modificalo e costruisci la versione che spaventa la tua porta di casa. Buon Halloween.


Condividi su:
David Montero

Scritto da

David Montero

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

GitHub velxio.dev

Articoli correlati


Articolo precedente
Elettronica analogica nel browser — sette circuiti da eseguire e misurare
Articolo successivo
Cute Desktop Robot — un volto che ascolta sull'ESP-VoCat, con il suo emulatore nel browser