Crâne: Halloween 2020


L'idée 

Les décorations font tout simplement partie de l'Halloween. Et un crâne aussi cool dans la vitrine aurait l'air génial. Mais seulement si les gens le remarquent aussi. Dans l'obscurité, l'effet est plutôt gérable. Bien sûr, il serait préférable que les yeux brillent. Encore mieux s'ils ne se contentent pas de briller, mais clignent des yeux ou se fanent. Et bien sûr aussi irrégulières que possible. J'ai donc repris ma panne de soudure et mon PC et j'ai fait un nouveau projet.

Le Hardware

Pour le projet, j'avais presque tout encore à la maison. 

Tout d'abord, il faut un crâne, bien sûr. Vous pouvez l'obtenir sur Amazon ou dans certains magasins de fêtes bien assortis. Le mien a une taille réaliste, de sorte que vous pouvez le voir de l'extérieur, debout à la fenêtre.

Il vous faut alors 2 LEDs, de préférence de couleur rouge et bien éclairées. En tant qu'unité de contrôle, j'ai utilisé un DigiSpark (Digistump).


Bien entendu, toute autre variante d'Arduino est également possible. Pour le circuit, il faut encore des résistances série limitant le courant à 220 ohms pour les LED et un peu de câble.

Pour l'alimentation électrique, différentes méthodes peuvent être utilisées. Le moyen le plus simple est bien sûr un powerbank avec un câble d'extension USB. Mais il faut faire attention, car la consommation électrique peut être trop **faible** pour certaines powerbanks, de sorte qu'elles peuvent être éteintes après un bref laps de temps ou même ne pas être allumées du tout.

Une autre option est un simple boîtier de piles pour 3xAAA (si équipé de 1,5V) ou 4xAAA, si équipé de piles rechargeables (1,2V). Celui-ci est déjà disponible avec un interrupteur et un câble.

Le câblage est assez simple.

Le boîtier de la batterie est connecté au GND et à 5V. (Avec une alimentation USB, vous n'avez pas besoin de cela). Aux cathodes des deux LEDs, vous devez d'abord souder un morceau de câble au connecteur de terre du boîtier de la batterie.

Tout d'abord, la résistance en série (généralement 220 ohms à une tension de 2,2 V) est soudée aux anodes des LED. Ensuite, un câble est soudé à la résistance et connecté aux connecteurs P0 et P1 du Digispark. Si vous souhaitez utiliser un autre Arduino, veuillez noter que les sorties doivent supporter  le PWM. Avec l'Arduino Uno ou Nano, vous pouvez utiliser les sorties 5 et 6. N'oubliez pas de changer les onglets correspondants en haut du programme. (`OUT_1` et `OUT_2`)

Vous pouvez maintenant découper avec précaution un couvercle pliable du bas de la tête avec un couteau à tapis. Ensuite, vous percez un trou de 5 mm au milieu de chaque œil et vous branchez les LED avec les câbles de l'intérieur. Le reste de l'électronique, y compris la batterie, peut alors être stocké dans le crâne. La tête est légèrement transparente et le LED rouge de mon Digispark est également très brillante.

Comme ce LED utilise également le code PIN 1, toute la tête brille au même rythme que les yeux. Si vous voulez l'avoir indépendamment, vous pouvez bien sûr souder le LED de l'œil du code PIN 1 à un autre code PIN et le changer dans le programme. Une autre sortie PWM est fournie par le PIN 4 au Digispark.

Le software

Installation de Digispark

Vous devez d'abord installer le bon pilote Windows pour le Digispark.

Pour faire cela, téléchargez sur le site : [https://github.com/digistump/digiStumparduino/releases]
le fichier DigiStump.Drivers.zip.

Ouvrez ce fichier dans n'importe quel répertoire et exécutez ensuite le fichier DPinst64.exe (Windows 64 Bit, pour DPinst.exe 32 Bit). Il vous suffit de suivre les instructions du programme d'installation.

L'étape suivante consiste à ajouter le Digispark au conseil de gestion de l'IDE Arduino. Vous pouvez facilement le faire en ajoutant l'URL suivante à la liste "URLs supplémentaires du gestionnaire du forum" dans les préférences. Si vous avez déjà des URLs supplémentaires, n'oubliez pas la virgule.

> `http://digistump.com/package_digistump_index.json` 


Vous pouvez maintenant rechercher l'entrée Digistump AVR Boards sous Tools/Board/Board manager. Elle contient la carte. Vous pouvez ensuite l'installer.


La dernière étape de la configuration matérielle consiste à sélectionner le Digispark (16,5 MHz par défaut) comme carte active.


Jusqu'à présent, nous avons terminé l'installation.

Une particularité de Digispark est que vous n'avez pas besoin de port. Si vous voulez télécharger un programme, cela ne fonctionne que si le “dwarf” (microcontrôleur) vient d'être branché/démarré sur le port USB. Lors du téléchargement, l'instruction suivante apparaît dans la console :


À ce stade, vous devez brancher le Digi sur le port USB. 

Le tout est bien sûr plus facile si vous disposez d'un hub USB commutable. Vous n'avez donc pas besoin de le brancher et de le débrancher.

Le code

Je n'ai pas grand chose à dire sur le programme.

Les deux sorties sont compatibles PWM, c'est-à-dire que vous pouvez les alimenter avec des valeurs comprises entre 0 et 255. Mais le programme ne s'efface pas complètement, mais commence avec une valeur minimale. Et aussi le temps au tour est choisi au hasard dans un intervalle. Le programme fait alors s'éteindre les deux LEDs simultanément dans cet intervalle aléatoire.



/*
Skull
This is a tiny little program for fading red eyes on a skull for Halloween.
Designed for a Digispark or Tiny85

Copyright 2020 Wilfried Klaas

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

const byte OUT_1 = 0;
const byte OUT_2 = 1;
const byte MAX = 255;
const byte MIN = 16;
const byte DELAY= 7;
const word ROUNDTIME_MIN = 500;
const word ROUNDTIME_MAX = 1500;

bool up = true;
byte bright = MIN;
byte level = MAX;
word delayTime = 7;
word roundTime = ROUNDTIME_MIN + (ROUNDTIME_MAX - ROUNDTIME_MIN) / 2;

void setup() {
    pinMode(OUT_1, OUTPUT);
    pinMode(OUT_2, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
    analogWrite(OUT_1, bright); // turn the LED on (HIGH is the                                                            // voltage level)
    analogWrite(OUT_2, bright); // turn the LED on (HIGH is the                                                            // voltage level)
    if (bright >= level) {
        up = false;
    }
    if (bright <= MIN) {
        up = true;
        level = random(16, MAX);
        roundTime = random(ROUNDTIME_MIN, ROUNDTIME_MAX);
        delayTime = roundTime / (level - MIN);
    }
    if (up) {
        bright++;
    } else {
        bright--;
    }
    delay(delayTime);
}

 

Conclusion

Amusez-vous à construire ce projet.

J'espère que vous avez également apprécié ce court blog. A bientôt dans la prochaine série de blogs .

Wilfried Klaas

1 comment

Lagrange

Lagrange

Bonjour,
Je voudrais intégrer votre système dans mes modèles 3D (exemple: https://cults3d.com/fr/mod%C3%A8le-3d/art/cerveau-halloween)
Afin de rendre possible cela, j’aurais besoin des modèles 3D des composants électroniques et autres accessoires comme les batteries.
Etes-vous en mesure de me les fournir ?
Cdlt

Leave a comment

All comments are moderated before being published

Recommended blog posts

  1. Install ESP32 now from the board manager
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - ESP programming via WLAN