Peekaboo le fantôme qui réagis à la lumière

Partage et review :

Introduction Materiel

Description

This is Halloween, this is Halloween!

Pour l’occasion, voici un projet tout simple à réaliser, un fantôme qui réagit à la lumière!
Vous vous souvenez peut-être des fantômes dans Mario qui ne bougeaient que lorsque vous lui tourniez le dos et bien nous allons appliquer le même principe.
Ce petit fantôme fait d’impression 3D, d’électronique et de tissu, ne fera plus de bruit ni de lumière tant que vous l’éclairez, mais attention, une fois votre lampe-torche baissée, le voila qui se met à vous hanter à nouveau !

Happy Making and Happy Halloween !!

materiaux

Pour réaliser ce petit fantôme nous aurons besoin des composants électroniques suivants:

– un Gemma (V1 ou V2)
– un neopixel ring de 16 leds
– deux neopixels
– deux moteurs vibrants (sous forme de disque)
– un transistor 2N3904
– une diode 1N4148
– une résistance de 1Kohm
– une résistance de 10Kohm
– un capteur LDR (photorésistance)
– une batterie de 150mAh

Avec tout ça nous aurons également besoin de fil électrique et de gaine thermo-rétractable.
Bien sûr il vous faudra également les outils de base: fer à souder, pince coupante,etc.

Pour la partie impression 3D il est préférable d’utiliser du filament transparent pour permettre à la lumière de se diffuser partout. L’objet quant à lui peut être imprimé sur une surface de travail de 100x100mm.

Pour la partie tissu, il vous faudra soit de la feutrine, soit un tissu style plaid, du fil à coudre et de la colle à tissu pour les détails (j’utilise ici un pistolet à colle chaude).

Impression 3D

L’objet s’imprime en une fois et sans support. Il peut être imprimé sur la quasi totalité des imprimantes du marché.

Il est préférable de l’imprimer avec un filament translucide pour permettre à la lumière de bien être diffusée.

Télécharger le STL

La partie électronique

Montage sous Fritzing

Gemma et Neopixel Ring

Tout d’abord, nous allons assembler ensemble le Gemma et le Neopixel ring x16.

Grâce à la troisième main, disposez vos éléments afin de faciliter l’assemblage (en disposant au mieux les éléments à souder ensemble). Puis placez le fil GND au-dessus du GND Gemma et du GND Neopixel ring, cela permettra de connaitre la longueur de fil nécessaire tout en laissant une certaine marge.

Dénudez sur environ 3 mm l’une des extrémités de votre fil en vous assurant de ne pas arracher l’âme (par exemple des morceaux de cuivre qui tombe dans le cas du multibrin).

Coupez à la bonne dimension le câble puis dénudez également environ 3mm du câble et placez-le dans les trous GND du Gemma et du Neopixel ring.

Vous pouvez déjà souder l’un des côtés afin de garder le fil en place pour la suite du tuto.

Retournez l’ensemble de manière à pouvoir facilement souder les deux côtés du fil.

Soudez le fil sur le Neopixel ring ainsi que sur le Gemma.

Répétez les mêmes étapes pour l’alimentation VCC et le signal.

Coupez les morceaux de fils qui dépassent.

Vous devriez obtenir la même chose. Il ne vous reste plus qu’à vérifier une dernière fois vos connexions.

Les disques vibrants

Il s’agit ici de souder les moteurs en parallèle. Nous allons d’abord commencer par souder les deux fils rouges ensemble.

Puis nous allons souder ensemble les deux fils bleus.

Maintenant nous allons souder la diode de roue libre. Pour cela souder la patte de l’anode (côté de la diode sans la barre noire) sur les fils bleus.

Puis la patte de la cathode sur les fils rouges.

Nos deux disques vibrants ainsi que la diode de roue libre sont assemblés. À présent nous pouvons passer au transistor.

Nous utilisons ici un transistor NPN 2N3904.

En regardant la Datasheet nous pouvons savoir comment le connecter:

  •  C correspond au collecteur, il sera connecté sur le fil bleu des moteurs,
  •  E correspond à l’émetteur , il sera connecté directement à la masse,
  • B correspond à la base, il sera connecté au Gemma par le biais d’une résistance de 1K ohm.

Mais d’abord, coupons la patte de la diode du côté des fils bleus.

Puis soudons la troisième patte du transistor dessus sans oublier de placer un morceau de gaine thermo-rétractable.

Faites chauffer la gaine afin de la rétracter autour du point de soudure.

Coupez l’une des pattes de la résistance de 1K ohm.

Et soudez-la sur la patte du milieu du transistor (Base).

Placez un morceau de gaine sur la soudure ainsi que le long de la patte.

Coupez une partie de la patte de la résistance ainsi que de la diode.

Préparez 3 fils de couleurs différentes et de longueur 4cm.

Soudez le fil noir sur la première patte du transistor.

Protégez l’ensemble avec un morceau de gaine.

Soudez le fil vert sur la résistance et de la même manière.

Enfin soudez le dernier fil sur les fils rouges des moteurs en ajoutant également un morceau de gaine thermo-rétractable.

Il ne reste plus qu’à vérifier si notre montage fonctionne bien. Pour cela prenez une breadboard ainsi qu’une alimentation (5V Maxi).

Connectez le fil rouge sur l’alimentation positive et le fil noir sur l’alimentation négative.

En connectant le fil vert sur l’alimentation positive les moteurs vont se mettre à vibrer, si ce n’est pas le cas vérifier les piles ainsi que le montage et enfin votre montage.

Le capteur de luminosité

Nous allons utiliser un capteur type LDR standard ainsi qu’une résistance de 10K ohm afin de tirer la tension vers le bas (GND) et trois fils de 5cm environ.

Coupez les pattes du capteur comme sur la photo.

Puis coupez les deux côtés de la résistance.

Soudez la résistance sur l’une des pattes du capteur.

Ainsi que le fil vert.

De l’autre côté de la résistance nous allons souder le fil noir, ce fil sera connecté à la masse.

Sur l’autre patte du capteur, soudez le fil rouge, celui-ci sera connecté au +3.3V du Gemma.

Ajouter des morceaux de gaine pour isoler le tout et ainsi éviter un court-circuit.

Vous pouvez également rajouter un morceau de gaine afin d’isoler de la lumière le capteur, mais attention ne la chauffez pas.

Les Neopixels

Assemblons à présent les neopixels qui joueront le rôle des yeux. Avec nous aurons besoin de deux fils de 5cm, un de 6cm et trois fils de 3cm.

Soudez les trois fils de 3cm sur le premier neopixel, le fil vers sur l’entrée de la led, le rouge sur la PIN positive et le noir sur la négative.

Effectuez la même manipulation sur le deuxième Neopixel avec les autres fils. le fil vert sur l’entrée du Neopixel.

Assemblez-le tout ensemble.

Et voici le résultat, deux yeux pour vous effrayer dans le noir…

Les Neopixels sur le Gemma

Il est temps d’assembler le tout ensemble. Nous allons commencer par les Neopixels.

Connectez le fil vert sur la sortie du Neopixel ring, le fil rouge sur la PIN positive restante du Neopixel ring et enfin le fil noir sur le GND restant du Neopixel ring.

Ensuite, nous pouvons souder le capteur de luminosité. le fil vert sur la PAD analogique du Gemma c’est-à-dire la PAD D2, le fil noir sur la PAD GND et le fil rouge sur la PAD 3Vo (3.3V du régulateur interne).

La dernière étape: souder les moteurs sur le Gemma.

Soudez le fil noir sur la PAD GND du Gemma, le fil rouge sur la PAD VBAT du Gemma et enfin le fil vert sur la PAD D1 du Gemma.

Il ne reste plus qu’à couper les fils qui dépassent et notre montage est fini.

 

 

Mise en place de l’électronique

Impression finie

Maintenant que votre « fantôme » est imprimé, il est temps d’intégrer l’électronique dans son petit corps.

Les étapes d’intégration en 3D

Afin de vous aider à y voir plus clair voici une petite vue 3D avec les différents composants dans l’ordre d’intégration.

Il est temps de le faire en vrai

Commençons par les moteurs à insérer dans les supports.

Une fois le transistor en place entre les deux moteurs , on peut faire glisser comme sur la photo l’ensemble Neopixel ring et Gemma à l’intérieur de la base.

Vous pouvez ensuite insérer le capteur de luminosité dans le trou prévu à cet effet.

Afin qu’il reste en place vous pouvez y mettre un peu de colle chaude.

Placez maintenant les deux neopixels en y mettant également de la colle chaude pour maintenir en place.

Et voilà, simple comme bonjour…

Programmation du Gemma

Pour ce projet vous aurez besoin de la librairie Neopixel.

Librairie NeoPixels

Le code

NOTE: N’oubliez pas de définir le programmateur  en « USBtinyISP » et d’appuyer sur le bouton RESET du Gemma juste avant que l’IDE ne charge le code dans le Gemma. Sans quoi vous ne pourrez pas charger le code.

/***************************************************************************************
Spécial Halloween !

Garder le contrôle sur votre fantôme grâce à une lampe-torche, mais attention si vous cessez de l'éclairer,
il pourrait prendre vie!

Les leds sont connectées à la PIN D0 du Gemma, les moteurs à la PIN D1 et le capteur à la pin A1.

code écrit par Mickael Captant
Bulb Zone - 2015
***************************************************************************************/
//importer la librairie pour NeoPixel
#include <Adafruit_NeoPixel.h>

// PIN de connexion des NEOPIXELS
#define PIN 0
// nombre de NEOPIXELS connectés
#define NUMPIXELS 18
// Définir les paramètres des NEOPIXEL
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

// PIN de connexion du capteur LDR
int LDRPin = 1;

int LDRValue = 0; // variable de luminosité ambiante
int LDRFixValue = 0; // variable initiale de luminosité ambiante
int LDRMap = 0; //transformation de la valeur LDRValue(0-255)

void setup() {

pinMode(1,OUTPUT);
digitalWrite(1,LOW);
//initialiser les NEOPIXELS
pixels.begin();
//instaurer un delai pour avoir le temps de mettre en place le fantôme
delay(5000);
//lecture initiale de la luminosité ambiante
LDRFixValue = analogRead(LDRPin);
}

void loop() {
//lecture de la luminosité ambiante
LDRValue = analogRead(LDRPin);
//changement de plage -> 0-1024 -> 0-255
LDRMap = map(LDRValue,0,1024,0,255);

//Si il n'y a pas de lumière
if(LDRValue < LDRFixValue){
//Pour le ring uniquement
for(int i=0;i<NUMPIXELS-2;i++){

// Définir la couleur en blanc, luminosité à fond
pixels.setPixelColor(i, pixels.Color(255,255,255));
// mettre à jour le ring
pixels.show();
}
//Allumer les yeux en rouge
pixels.setPixelColor(16, pixels.Color(255,0,0));
pixels.setPixelColor(17, pixels.Color(255,0,0));
pixels.show();
//allumer les moteurs pendant 1 seconde puis les éteindre
digitalWrite(1,HIGH);
delay(1000);
digitalWrite(1,LOW);
}

//Sinon
else{
//Pour le ring uniquement
for(int i=0;i<NUMPIXELS-2;i++){
//Définir la couleur en blanc, luminosité reduite
pixels.setPixelColor(i, pixels.Color(50,50,50));
pixels.show();
}
//Faire clignoter les yeux en bleu
pixels.setPixelColor(16, pixels.Color(0,0,255));
pixels.setPixelColor(17, pixels.Color(0,0,255));
pixels.show();
delay(100);
pixels.setPixelColor(16, pixels.Color(0,0,100));
pixels.setPixelColor(17, pixels.Color(0,0,100));
pixels.show();
delay(100);
}
}

 

Le drap du fantôme

Le modèle

Bon vous l’aurez remarqué, j’adore l’électronique, par contre en couture, je suis nul…

Je n’ai donc pas fait cette partie (bouhhh !) mais voici deux modèles simples de drap « bonnet » pour notre petit fantôme.

Et voici le patron utilisé. Pour faire ce patron il vous suffit de connaître la hauteur de votre fantôme ainsi que le périmètre de la base.

Pour la base il suffit donc de faire le calcul suivant :

2piR avec R = 25mm

Ce qui fait donc 2 x 3.14 x 25 = 157mm que nous allons arrondir à 16cm (ne pas oublier de laisser un peu plus de matière de chaque coté afin de pouvoir les coudre ensemble).

Quant à la hauteur nous voulons une forme ronde au sommet donc 55cm (hauteur du fantôme) + 15cm (forme arrondie) = 70cm.

Une fois découpé dans votre tissu (ici un morceau de plaid polaire) il vous suffira de coudre un par un les sommets entre eux puis de rejoindre les deux côtés ensemble.

Il ne vous reste plus qu’à tester s’il se met bien sur la base. il doit pouvoir bloquer un peu pour tenir dessus.

Sans bouche il ne peut pas voir !

Maintenant que notre drap est fini, nous devons laisser une ouverture pour le capteur de luminosité.

Faites une bouche à votre fantôme, plus petite que la largeur du support LDR/Neopixel. Ici le trou au centre correspond à l’emplacement du  capteur de luminosité.

Il ne vous reste plus qu’à découper la forme à l’aide d’un ciseau en pliant le plaid en deux pour avoir une forme symétrique et faciliter la découpe.

L’ouverture pour la bouche de votre fantôme est faite. Maintenant nous devons cacher la partie 3D de notre fantôme.

Pour cela nous allons mesurer la surface à cacher (ici une surface de 2cm par 3cm).

J’utilise de la feutrine noire pour cacher cette surface.

Découpez votre rectangle puis placez le sur le capteur de votre fantôme. Faites une marque dessus afin de découper un trou à cet emplacement.

Une fois notre trou fait, il ne nous reste plus qu’à coller la feutrine sur la surface. Dans mon cas j’utilise de la colle chaude.

Vérifiez que votre feutrine ne couvre pas le capteur. Pensez a couper les bords du cache afin de donner une forme un peu plus arrondie lorsque celui-ci sera allumé (effet d’ombre).

Et voici notre cher petit fantôme prêt à vous hanter dans le noir. Mais je trouve qu’il manque un petit détail… Des yeux bien sûr !

Des yeux lumineux

Pour cela j’utilise des yeux en plastique avec une pupille mobile de 10mm.

Laissez votre compagnon allumé afin de savoir où coller ses yeux.

Et le voilà fin prêt pour une nuit d’horreur ! Bon d’accord il est peut-être un peu trop mignon pour faire peur, mais il faut lui laisser une chance !

Customisation: Pimp My Ghost

L’avantage avec ce petit monstre c’est que vous pouvez le personnaliser comme vous le voulez, alors pourquoi ne pas lui rajouter des bras à notre fantôme ? Libre cours à votre imagination !

 

Peek-a-Boo !

Voilà, vous avez donné vie à votre petit compagnon de nuit! Et maintenant, à vos lampes-torches!

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *