Retour

Sept projets d'Halloween à construire et à exécuter dans le navigateur

Chaque mois d’octobre, la même poignée de réalisations refait surface sur Hackster, Instructables et le hackathon Halloween d’element14 : un crâne avec une mâchoire à servo qui hurle quand quelqu’un passe devant, une paire d’yeux sur écrans ronds qui vous suivent, un tableau qui réagit quand on s’en approche, une citrouille pleine de NeoPixels et un bol de bonbons qui ne donne des sucreries que si vous tendez la main.

Nous en avons reconstruit sept comme exemples dans la galerie Velxio, un par famille de cartes, en utilisant des pièces Arduino et les modules de nos partenaires Seeed Studio, DFRobot, M5Stack et Pimoroni. Chacun s’ouvre dans l’éditeur avec le circuit déjà câblé et le sketch déjà écrit. Appuyez sur Run et il se compile et démarre dans le navigateur, vous pouvez donc régler le timing, les couleurs et les seuils avant de couper le moindre fil.

ProjetCartePièces principalesL’ouvrir
Crâne à effet de sursautArduino UnoPIR, servo, 2 LED, buzzerhalloween-uno-jump-scare-skull
Distributeur de bonbonsArduino UnoHC-SR04, servo, OLED SSD1306, buzzerhalloween-uno-candy-dispenser
L’œil qui vous suitSeeed XIAO ESP32-S3Seeed Round Display (GC9A01 + tactile)halloween-round-display-eye
Citrouille GroveSeeed XIAO ESP32-S3Grove RGB LED Ring, capteur de lumière, PIR, buzzer passifhalloween-grove-pumpkin-ring
Portrait hantéESP32 DevKitRadar mmWave DFRobot C4001, 2 LED, buzzerhalloween-c4001-haunted-portrait
Détecteur de fantômesM5Stack CoreLCD, boutons et haut-parleur intégréshalloween-m5stack-ghost-detector
Citrouille à matrice LEDPimoroni Stellar UnicornMatrice RGB 16x16, boutonshalloween-stellar-unicorn-pumpkin

Une recherche de halloween sur la page des exemples les liste tous les sept.

La photo en tête de cinq des sections est une illustration de l’allure que pourrait avoir l’accessoire terminé, générée par IA. Toutes les autres images de cet article sont une capture de l’exemple en cours d’exécution dans Velxio.

Comment en ouvrir et en exécuter un

  1. Cliquez sur le lien du projet dans le tableau. L’éditeur s’ouvre avec la carte, les pièces, les fils et le sketch en place.
  2. Appuyez sur le bouton Run vert dans la barre d’outils. Le sketch se compile sur nos serveurs (la première compilation d’une carte peut prendre une minute) puis s’exécute dans votre navigateur.
  3. Ouvrez le Serial Monitor en bas. Chaque sketch affiche ce qu’il fait, vous pouvez donc voir les accessoires réagir même sans le son.
  4. Cliquez sur un capteur du canevas pendant que la simulation tourne pour ouvrir son panneau. C’est là que se trouvent les curseurs de distance, de lumière et de présence.

1. Crâne à effet de sursaut (Arduino Uno)

Une illustration IA du crâne à effet de sursaut terminé sur un porche : yeux à LED rouges, un servo tirant la mâchoire ouverte, un capteur PIR devant et un Arduino Uno avec un buzzer derrière

Illustration de l’accessoire terminé, générée par IA. Le circuit ci-dessous est celui qui s’exécute dans Velxio.

L’accessoire de porche classique. Un capteur de mouvement PIR sur D2 surveille la porte. Quand quelqu’un passe devant, deux yeux à LED rouges sur D5 et D6 s’allument à pleine intensité, un servo sur D9 fait claquer la mâchoire quatre fois et un buzzer sur D8 hurle avec une sirène qui glisse de 1,8 kHz jusqu’à un grognement. Entre les visiteurs, les yeux couvrent comme des braises, et un temps de recharge de quatre secondes empêche le crâne d’effrayer deux fois de suite la même personne.

Le crâne à effet de sursaut sur un Arduino Uno : capteur PIR, mâchoire à servo, deux yeux à LED rouges et un buzzer

Pour l’essayer, cliquez sur le capteur PIR du canevas. La sortie passe à HIGH pendant trois secondes, ce que fait un vrai HC-SR501 avec son potentiomètre de délai tourné à fond.

Toute la frayeur tient dans une courte fonction. Notez que tone() sur l’Uno utilise le Timer2 et que la bibliothèque Servo utilise le Timer1, donc le hurlement et la mâchoire ne se disputent jamais 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. Distributeur de bonbons d’Halloween (Arduino Uno)

Une illustration IA du distributeur de bonbons terminé : une boîte citrouille peinte avec un tube à bonbons, un capteur à ultrasons au-dessus du bol, une goulotte qui laisse tomber un bonbon, un OLED et un Arduino Uno derrière une fenêtre latérale

Illustration de l’accessoire terminé, générée par IA. Le circuit ci-dessous est celui qui s’exécute dans Velxio.

Un bol de bonbons sans contact. Un capteur à ultrasons HC-SR04 pointe vers le haut depuis sous la goulotte et cherche une main à moins de 10 cm. Quand il en trouve une, un servo ouvre la trappe, laisse tomber un bonbon et la referme, le buzzer joue un court jingle et un OLED SSD1306 décompte ce qu’il reste, avec une petite citrouille dessinée dans le coin. Quand le stock est épuisé, l’écran affiche TRICK et le buzzer se moque de vous à la place.

Le distributeur de bonbons sur un Arduino Uno avec la trappe ouverte et l'OLED comptant les bonbons

Cliquez sur le HC-SR04 et faites glisser son curseur de distance sous 10 cm pour tendre une main. Le sketch attend ensuite que la main soit retirée, donc un geste donne un bonbon et personne ne vide le bol en laissant une main en place.

3. L’œil qui vous suit (Seeed Round Display pour XIAO)

Une illustration IA d'un crâne avec deux Seeed Round Displays en guise d'yeux, chacun affichant un œil injecté de sang avec une pupille fendue

Illustration d’une paire d’yeux terminée, générée par IA. L’exemple dans Velxio fait tourner un seul écran ; une paire, c’est deux de ces écrans.

Les yeux sur écrans TFT ronds étaient partout au hackathon Halloween d’element14 de l’année dernière, des crânes imprimés en 3D aux accessoires déclenchés par radar. Celui-ci utilise le Seeed Round Display pour XIAO avec un XIAO ESP32-S3 monté à l’arrière. Le GC9A01 de 1,28 pouce affiche un globe oculaire injecté de sang avec un iris orange.

Un globe oculaire injecté de sang sur le Seeed Round Display, la pupille regardant vers l'endroit où le verre est touché

Appuyez sur le verre et la pupille poursuit votre pointeur. Continuez d’appuyer et elle se rétrécit en fente de chat. Relâchez et elle se remet à jeter des regards autour de la pièce d’elle-même et à cligner des yeux toutes les quelques secondes.

Le contrôleur tactile est le CHSC6X du shield, lu de la même manière que le lit le pilote de Seeed lui-même : un front descendant sur D7 signale qu’un doigt est posé et une lecture I2C de cinq octets à 0x2E renvoie la position. Chaque image est dessinée dans un sprite hors écran et poussée vers le verre d’un seul coup, donc le panneau n’affiche jamais un œil à moitié peint. Seul le carré de 174 pixels que l’iris peut atteindre est redessiné ; le bord avec ses veines est peint une fois, et de nouveau après chaque clignement :

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

Les broches sont celles du shield lui-même, donc le même sketch tourne sur la pile réelle.

Pour une paire d’yeux, construisez-en deux : un crâne ou une citrouille sculptée accueille deux Round Displays dans ses orbites, chacun avec son propre XIAO exécutant ce sketch. Ils jettent des regards et clignent des yeux indépendamment, ce qui paraît plus vivant que deux yeux en parfaite synchronisation.

4. Une citrouille Grove qui s’éveille au crépuscule (Seeed XIAO ESP32-S3)

Une illustration générée par IA de la citrouille Grove terminée : un anneau de LED brillant en vert et violet à l'intérieur d'une citrouille sculptée, avec une carte XIAO, un capteur PIR et un capteur de lumière sur des câbles Grove à côté

Illustration de l’accessoire terminé, générée par IA. Le circuit ci-dessous est celui qui s’exécute dans Velxio.

Quatre modules Grove sur un XIAO ESP32-S3 forment un insert pour une citrouille sculptée. Le Grove Light Sensor maintient l’anneau de 42 LED Ultimate RGB LED Ring éteint à la lumière du jour. Une fois la nuit tombée, l’anneau scintille en orange et en jaune comme une bougie, chaque LED avec sa propre flamme. Quand le Grove PIR détecte quelqu’un, la citrouille est possédée : un vortex vert et violet tourne autour de l’anneau et le Grove Passive Buzzer joue quelques mesures d’une mélodie sinistre.

La citrouille Grove : un Ultimate RGB LED Ring scintillant comme une bougie à côté d'un XIAO ESP32-S3, d'un capteur de lumière, d'un PIR et d'un buzzer passif

Pour l’essayer, cliquez sur le capteur de lumière et faites glisser son curseur vers le bas pour simuler la nuit, puis cliquez sur le PIR et déclenchez-le.

Le même circuit avec l'anneau tournant en vert et violet après le déclenchement du PIR

Sur du matériel réel, alimentez l’anneau depuis le pad 5 V du XIAO (l’exemple est câblé ainsi) et gardez la luminosité basse : 42 LED WS2813 en blanc à pleine puissance consomment bien plus qu’un port USB n’aime en fournir.

5. Portrait hanté (radar mmWave DFRobot C4001)

Une illustration générée par IA du portrait hanté terminé : un vieux tableau dans un cadre doré avec des yeux rouges lumineux, et au dos de la toile le radar mmWave, une carte ESP32 et un buzzer

Illustration de l’accessoire terminé, générée par IA. Le circuit ci-dessous est celui qui s’exécute dans Velxio.

Le tableau dont les yeux suivent la pièce est un vieux truc de fête foraine, et un radar en fait un meilleur tour. Le DFRobot C4001 (SEN0610) est un capteur mmWave 24 GHz qui mesure la distance d’une personne, et son signal traverse directement une toile et un cadre en bois. Caché derrière le tableau, rien ne le trahit.

L’esquisse met le radar en mode vitesse, où il rapporte à la fois la distance et la présence. Plus vous vous approchez, plus les deux yeux LED du portrait brillent et plus un battement de cœur résonne sur le buzzer, d’un battement toutes les 1,5 secondes à six mètres jusqu’à presque trois par seconde de près. Passez à moins d’un mètre et il hurle.

Le circuit du portrait hanté : un ESP32 DevKit, le radar DFRobot C4001, deux yeux LED rouges et un buzzer

Cliquez sur le radar et faites glisser son curseur de distance pour vous approcher du tableau.

// 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. Détecteur de fantômes (M5Stack Core)

Plus un jeu qu’un accessoire, et le seul sans rien à câbler. Le M5Stack Core Basic dessine un cadran à aiguille qui lit le « champ spectral » de la pièce. L’aiguille vagabonde d’elle-même et de temps en temps pique dans la zone rouge HAUNT ; c’est alors qu’un fantôme flotte à l’écran et que le haut-parleur se met à grésiller.

Le détecteur de fantômes sur un M5Stack Core : un cadran à aiguille dans la zone rouge et un fantôme à l'écran

Les trois boutons frontaux sont les commandes :

Le cadran est dessiné dans un sprite M5Canvas 8 bits et poussé d’un seul coup, ce qui évite le scintillement de l’aiguille. Un sprite 16 bits plein écran ne tiendrait pas : le Core Basic n’a pas de PSRAM.

7. Citrouille à matrice LED (Pimoroni Stellar Unicorn)

Le dernier est purement décoratif. La matrice RGB 16x16 du Pimoroni Stellar Unicorn devient une citrouille nervurée dont les yeux, le nez et la bouche dentelée brillent depuis une bougie à l’intérieur. Appuyez sur A pour un éclair suivi d’un HAPPY HALLOWEEN défilant, sur B pour envoyer un fantôme traverser le visage, et sur LUX + et - pour régler la luminosité.

Un visage de citrouille sur la matrice LED 16x16 du Pimoroni Stellar Unicorn

Le visage est une grille de 16 par 16 caractères dans l’esquisse, une lettre par LED, donc changer l’expression n’est qu’une question d’édition de texte.

Passer au matériel réel

Les esquisses sont écrites avec les mêmes bibliothèques et les mêmes broches que vous utiliseriez sur l’établi, donc passer du simulateur à une vraie construction est surtout une affaire d’alimentation et de mécanique :

Limites

Ouvrez-en un, modifiez-le et construisez la version qui effraiera votre propre perron. Joyeux Halloween.


Partager sur :
David Montero

Écrit par

David Montero

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

GitHub velxio.dev

Articles liés


Article précédent
Électronique analogique dans le navigateur — sept circuits à exécuter et à mesurer
Article suivant
Cute Desktop Robot — un visage à l'écoute sur l'ESP-VoCat, avec son émulateur dans votre navigateur