Halloween-Projekt: Das interaktive Skelett mit Bewegung, Licht und Soundeffekten - AZ-Delivery

La fête qui a lieu chaque année le 31 octobre est Halloween, également connue sous le nom de "nuit des sorcières". C'est une fête particulièrement populaire dans les pays anglo-saxons comme les États-Unis, le Canada, l'Irlande et le Royaume-Uni, mais elle s'est répandue dans de nombreuses régions du monde au cours des dernières décennies.

Ses origines remontent aux rituels et aux croyances païennes concernant l'au-delà. Le nom vient de l'expression "All Hallows' Eve", qui signifie "soirée de la Toussaint". Au fil du temps, cette expression s'est raccourcie en "Halloween", mais aujourd'hui, elle est principalement célébrée comme une fête pour le plaisir. C'est une fête liée au surnaturel, à la peur et au plaisir, où les costumes, les citrouilles illuminées, les bonbons et les histoires d'horreur abondent.

Cette fête se caractérise par le fait que l'on se déguise avec des costumes représentant des êtres surnaturels (sorcières, vampires, fantômes, monstres), et la coutume veut que les enfants aillent de maison en maison et demandent des bonbons en disant "Trick or Treat" (des bonbons ou un sort). S'ils n'obtiennent pas de bonbons, ils ont le droit de faire une petite blague.

Les maisons, les écoles et les magasins sont décorés avec des éléments effrayants : toiles d'araignée, squelettes, têtes de mort, chauves-souris, fantômes et lumières tamisées. Pour la décoration de cette année, nous avons réalisé un projet avec un squelette qui se balance d'avant en arrière et qui, lorsque quelqu'un s'approche, s'arrête, ses yeux s'allument et il se redresse, avec bien sûr des effets sonores pour renforcer l'impression.

 

Les matériaux nécessaires sont

        1 AZ-Nano Platine V3 avec connexion USB-C avec Atmega328 CH340

        1 Platine d'adaptation de terminal avec bornes à vis, compatible avec Nano V3

        1 MB102 Adaptateur d'alimentation pour carte mère

        1 Mini carte mère 400 PIN avec 4 rails d'alimentation pour câbles de pontage

        1 MG90S Micro-servomoteur

        1 Micromoteur SG90

        1 HC-SR04 Module à ultrasons

        Câble de jumelage 3 x 40 pièces, 20 cm, M2M / F2M / F2F

        2 LED rouge

        2 Résistance de 330 ohms

        1 Mini lecteur MP3 DFPlayer Module principal

        1 Résistance de 1 kOhm

        2 pièce DFPlayer Mini 3 watts 8 ohms mini haut-parleur

        1 PAM8403 mini amplificateur audio numérique 2x 3 watts

        Gaine thermorétractable

        Cuivre tinté ultra flexible

        bois de balsa de 3 mm d'épaisseur et colle à bois blanche

 

Le logiciel requis est :

        Arduino IDE

        Bibliothèque SPI.h (incluse dans l'IDE Arduino)

        Mini bibliothèque DFPlayer de DFRobot (DFRobotDFPlayerMini.h)

        Bibliothèque Servo.h (Téléchargement de arduino.cc)

        001.mp3

        002.mp3

        Squelette_de_la_sens.ino

 

Circuit et description des modules utilisés

 

Figure 1 - Diagramme électronique

 

 



Figure 2 - Répartition des composants  

 

 

Comme on peut le voir sur le schéma électrique, deux servomoteurs sont utilisés pour le mouvement du projet. Pour le mouvement du fauteuil à bascule, on utilise le servomoteur MG90S avec engrenage métallique, car c'est lui qui doit fournir le plus de travail, étant donné qu'il est constamment en mouvement. Pour le mouvement de redressement du squelette, on a choisi le servomoteur SG90, qui dispose d'un engrenage en plastique, car il n'est activé que lorsqu'une présence est détectée. Pour cette détection de présence, le module à ultrasons HC-SR04 a été utilisé, car la distance des personnes doit être connue pour activer le squelette. Pour l'éclairage des yeux du squelette, deux LED rouges ont été utilisées, chacune devant être connectée à une résistance de 330 ohms afin d'adapter la tension d'alimentation et de ne pas l'endommager. Pour le son du rocking-chair et du squelette, on a utilisé le mini-module MP3 DFPlayer, l'amplificateur de son PAM8403 et deux haut-parleurs DFPlayer Mini 3 watts 8 ohms Mini. L'ensemble est alimenté par le bloc d'alimentation MB102, et le microcontrôleur utilisé est le module AZ-Nano V3 avec port USB-C.

Comme mentionné précédemment, ce projet utilise un module de lecture MP3 et un amplificateur pour la lecture des sons. Les broches de connexion des deux modules sont les suivantes :

 

                    

                                                              Image 3 - PAM8403         

                                                               Image 4 - Mini lecteur MP3


Pour que les fichiers audio soient lus correctement, le premier fichier audio enregistré sur la carte microSD doit porter le nom 001.mp3 et contenir le bruit du bois qui craque. Le fichier audio 002,mp3 est ensuite enregistré. Le module de lecture MP3 a la particularité que lorsque le fichier 001 est appelé, le premier fichier enregistré est lu et lorsque le fichier 002.mp3 est appelé, le deuxième fichier audio enregistré est lu.

 

Plans des personnages du projet

Le projet se compose de trois parties : un fauteuil à bascule, la structure et la base dans laquelle les composants électroniques sont installés. Le bois de balsa a été utilisé, car ce matériau est léger et très résistant. Le fauteuil à bascule se compose de quatre parties : le dossier, deux parties latérales et l'assise, qui ont toutes une épaisseur de 6 millimètres. Pour obtenir cette épaisseur, deux pièces de même taille et d'une épaisseur de 3 millimètres ont été collées ensemble avec de la colle blanche. Les dimensions des pièces du fauteuil à bascule sont les suivantes :

 

Image 5 - Fauteuil à bascule

 

 

   La figurine squelette est composée de 9 parties : Crâne, dos, bassin, bras et jambes.

 

Image 6 - Squelette

 

 

Le morceau de crâne a une épaisseur de 15 millimètres, de sorte que 5 pièces de bois doivent être collées ensemble. Les deux premières pièces sont composées uniquement du crâne, les trois dernières sont composées du crâne et d'une tige.

Pour placer les deux LED rouges dans les yeux du crâne, les yeux des quatre premières parties du crâne ont été creusés et des trous ont été percés dans la cinquième partie (celle du fond) pour faire sortir les connecteurs des LED, car ceux-ci sont insérés dans les orbites.

 

Image 7 - Crâne et yeux dans le crâne

 

 

 Le crâne et le dos sont fixés à un mât qui sert à soulever le squelette de la chaise. Les bras sont reliés par un morceau de fil de fer qui traverse le mât, et ceux-ci sont fixés à un autre fil de fer vertical qui est fixé à la base du squelette et qui fait tourner les bras de manière à donner l'impression qu'ils sont soulevés lorsque le squelette est soulevé. Le servomoteur est installé à la base de l'ensemble du squelette afin d'entraîner le mât et de soulever le squelette.

 

Figure 8 - Vue détaillée du mécanisme de mouvement du bras

Figure 9 - Servomoteur pour soulever le squelette

 

Les jambes du squelette ont été collées à la base sur laquelle le squelette repose. Les deux derniers détails du squelette sont la cape et la faux. La cape est divisée en trois parties : la capuche, les manches et la cape elle-même. Pour fabriquer la capuche, la partie supérieure doit être collée ou cousue, puis collée à la partie supérieure de la cape. Pour réaliser les manches, il faut fabriquer deux rectangles qui seront pliés et collés sur un côté. Les manches doivent être collées sur la cape ou sur les bras du squelette, selon les besoins. Dans ce projet, elles ont été collées sur les bras. La cape a été découpée à l'arrière pour que le squelette soit mieux mis en valeur. Enfin, la faux a une épaisseur de 3 mm.

 

Image 10 - Mettre la cape et la faux

 

La base de la construction est une boîte qui abrite les composants électroniques et le servomoteur qui entraîne le fauteuil à bascule. Ce servomoteur entraîne la structure, qui comporte à chaque extrémité deux fils qui passent par le haut de la boîte et sont fixés à l'arrière des patins du fauteuil à bascule. De cette manière, nous permettons le mouvement du fauteuil à bascule.

 

Figure 11 - Détails de la boîte

  

Figure 12 - 

 

Figure 13 - Montage terminé

 

Figure 14 - Montage terminé

 

Image 15 - Squelette de la faux

 

Description du fonctionnement du projet et esquisse

Le fonctionnement du circuit est simple, comme on peut le voir sur le schéma. Le module à ultrasons HC-SR04 est utilisé pour envoyer des signaux d'une durée de 10 microsecondes avec un temps d'attente entre les impulsions de 5 microsecondes. Lorsqu'un signal est renvoyé par une personne ou un objet, le capteur détecte le signal reçu et le microcontrôleur calcule le temps que le signal a mis entre l'émission et la réception. Comme la vitesse du son dans l'air est connue, la distance à l'objet ou à la personne peut être déterminée. Tant que la distance est supérieure ou égale à 40 centimètres, le fauteuil à bascule se déplace sous l'action du servomoteur MG90S et un fichier MP3 contenant un bruit de bois grinçant est diffusé grâce à la combinaison du mini-lecteur MP3 DFPlayer Master Module, du mini-amplificateur audio numérique PAM8403 et du mini-haut-parleur DFPlayer Mini 3 watts 8 ohms. Lorsqu'un objet ou une personne est détecté à moins de 40 centimètres, le fauteuil à bascule s'arrête en position centrale et le son est mis en pause. Après 1,5 seconde, les LED rouges dans les yeux du squelette s'allument et après 2 secondes, le rire du squelette est reproduit et le squelette se lève rapidement de la chaise grâce au servomoteur SG90.

Après avoir expliqué le fonctionnement, nous allons maintenant analyser le sketch. La première chose à faire dans chaque sketch est d'implémenter les bibliothèques nécessaires dans la section de définition des variables globales afin de pouvoir utiliser les modules que nous utilisons. Les trois bibliothèques ajoutées sont nécessaires à l'utilisation du module Mini MP3 Player DFPlayer et des servomoteurs. Comme la communication requise entre le module MP3 et le microcontrôleur doit être une communication série, la bibliothèque LogicielSerial.h active la fonction qui permet au microcontrôleur de libérer chaque broche numérique pour la communication série. Avec la bibliothèque DFRobotDFPlayerMini.h les fonctions nécessaires à l'utilisation du module sont activées. La dernière bibliothèque à être ajoutée est <Servo.h>. Cette bibliothèque contient la configuration et les méthodes nécessaires pour modifier la position des servomoteurs.

 

#include <SoftwareSerial.h>

#include <DFRobotDFPlayerMini.h>

#include <Servo.h>

 

Dans ce projet, le module ultrasons est utilisé sans bibliothèque. Il est démontré que la distance aux objets ou aux personnes peut être déterminée par une simple opération mathématique, raison pour laquelle la bibliothèque n'est pas ajoutée.

Une fois les bibliothèques nécessaires ajoutées, un objet doit être implémenté pour chaque module ou composant qui le nécessite. Ainsi, pour utiliser le module de lecture MP3, l'objet mySoftwareSerial de la bibliothèque <LogicielSerial peut être mis en œuvre. h>Le module de communication série est un module de communication numérique qui permet d'indiquer au microcontrôleur les broches numériques à utiliser pour la communication série du module. Dans ce projet, la broche numérique 10 du microcontrôleur est utilisée pour recevoir des données du module lecteur mini-MP3 et la broche numérique 11 pour envoyer des données au module lecteur mini-MP3. Pour utiliser les méthodes et les commandes de contrôle du module, telles que le réglage du volume ou le lancement de la lecture d'un fichier MP3, l'objet myDFPlayer de la bibliothèque <DFRobotDFPlayerMini.h> créé.

 

SoftwareSerial mySoftwareSerial(10, 11);

DFRobotDFPlayerMini myDFPlayer;

Pour pouvoir utiliser les servomoteurs, il faut créer un objet pour chaque servomoteur à partir de la bibliothèque Servo.h sont instanciés. Comme on peut le voir, les noms des objets pour l'utilisation des différents servomoteurs sont très parlants et faciles à comprendre. De plus, la variable pos a été définie. Cette variable de type int est utilisé dans les boucles définies pour le mouvement du servomoteur du fauteuil à bascule.

 

Servo servo_chair ;

Servo servo_skeleton ;

int pos ;

 

Les quatre lignes suivantes définissent les variables utilisées avec le module à ultrasons SR-HC04. Les deux premières sont les variables avec les noms des broches, trigPin (émetteur de signaux) et echoPin (récepteur de signaux) du module ultrasons, et comme valeur, elles contiennent les numéros des ports du microcontrôleur auxquels elles sont connectées, à savoir les broches 6 et 5. Dans la variable ultrasonic_time_measurement on enregistre la valeur du temps nécessaire au capteur pour détecter le signal réfléchi par une personne après l'avoir émis, et dans la variable distance la valeur de la distance, calculée en fonction du temps détecté, est enregistrée.

int trigPin = 6;

int echoPin = 5;

long ultrasonic_time_measurement ;

long distance ;

 

La dernière variable créée est la variable led_eyes avec la valeur 7. Cette variable est utilisée pour indiquer au microcontrôleur que les LED rouges des yeux du squelette sont connectées à son port numérique.

 

 

int led_eyes = 7;

 

Après avoir implémenté les bibliothèques, créé les objets des modules et créé les variables nécessaires, il faut définir la configuration initiale des modules et des composants du projet. Cela se fait dans la méthode setup(). La première étape de cette méthode consiste à initialiser le module MP3 et à établir sa communication avec le microcontrôleur via mySoftwareSerial. begin(9600)où 9600 est la vitesse de transmission des données en baud. De plus, nous initialisons la communication avec le moniteur série via Série.begin (115200) à une vitesse de 115200 bauds (la vitesse doit être sélectionnée en bas à droite du Serial Monitor lors de l'ouverture de la console) pour que les messages concernant l'état d'initialisation ou les erreurs du module MP3 s'affichent.

 

mySoftwareSerial.begin(9600);

Serial.begin(115200);

 

Ensuite, le code doit vérifier l'initialisation du module MP3. Pour cela, une instruction conditionnelle if est utilisée. Dans l'instruction if le code entre accolades est exécuté si la condition de son paramètre est vraie. Dans ce cas vérifie si le module MP3 n'a pas été initialisé pour une raison quelconque. L'initialisation refusée a été signalée par l'icône ! est écrite. Ce symbole est utilisé comme méthode de négation, de sorte que si le module n'est pas initialisé, la condition est vraie et le code à l'intérieur des accolades est exécuté et la console sérielle signale que les connexions et l'insertion de la carte microSD doivent être vérifiées. Si le module de lecture MP3 est correctement initialisé, la condition n'est pas remplie et le code décrit ci-dessus n'est pas exécuté. La méthode setup () pour pouvoir utiliser la console série avec la ligne Série.println(F("Correction de l'initialisation du DFPlayer.")) de signaler que le module de lecture MP3 a été correctement initialisé.

 

if (!myDFPlayer.begin(mySoftwareSerial)) {

         Serial.println(F("Error initializing mp3 module:"));

         Serial.println(F("1. Please check the connections!"));

         Serial.println(F("2. Please insert the microSD memory!"));

         while(true){

                 delay(0);

         }

}

 

Serial.println(F("Correct DFPlayer initialization."));

 

Pour la première configuration des servomoteurs, le port du microcontrôleur auquel la ligne de signal du servomoteur est raccordée doit d'abord être configuré avec servo.attacher ainsi que la valeur de la position du servomoteur en degrés à l'état initial avec servo. write au cas où le microcontrôleur serait mis sous tension ou réinitialisé. Pour le servomoteur du fauteuil à bascule, il est précisé qu'il doit être connecté à servo_chair est connecté au port 9 du microcontrôleur. attacher(9) et la position de départ est de 90 degrés, ce qui correspond à servo_chair est indiqué. write(90). Pour le servomoteur du squelette, le port du microcontrôleur auquel il a été connecté est 8, ce qui correspond à la ligne servo_skeleton est indiqué. attacher(8) et la position de départ du squelette est assise. Pour cette position, le servomoteur doit être réglé à 90 degrés, ce qui correspond à servo_skeleton.write(90) est indiqué.

servo_chair.attach(9);

servo_chair.write(90);

servo_skeleton.attach(8);

servo_skeleton.write(90);

 

Pour la configuration initiale des LED rouges des yeux squelettes, il faut d'abord configurer le port du microcontrôleur auquel les LED sont connectées comme port de sortie, afin qu'il fournisse une tension lors d'un changement d'état. Cela se fait avec la ligne de code pinMode (led_eyes, OUTPUT). Lorsque le squelette est assis, ses yeux ne doivent pas briller, de sorte que ce port ne doit pas fournir de tension. Pour ce faire, le niveau du signal qu'il fournit à ce moment-là doit être réglé sur un niveau bas, c'est-à-dire sur 0 VDC. La ligne qui permet de régler sa sortie à un niveau bas est la suivante digitalWrite (led_eyes, LOW) .

 

pinMode (led_eyes, OUTPUT);

digitalWrite (led_eyes, LOW);

 

Dans les deux dernières lignes de la méthode  setup() permet de configurer les ports du microcontrôleur auxquels les broches du module à ultrasons sont connectées. Le port du microcontrôleur auquel la broche TRIG du module à ultrasons, on utilise pinMode (trigPin, OUTPUT) est configurée comme sortie, car le microcontrôleur utilise cette broche pour contrôler l'émission du signal ultrasonore. Le port du microcontrôleur sur lequel la broche ECHO du module à ultrasons, on utilise pinMode (echo_Pin, INPUT)  car c'est par ce port que le microcontrôleur reçoit le signal envoyé précédemment par le module à ultrasons et qui est renvoyé par les personnes ou les objets.

 

pinMode (trigPin, OUTPUT);

pinMode (echoPin, INPUT);  

 

Les conditions initiales de tous les modules et composants du projet sont déjà configurées, il ne reste plus qu'à utiliser la méthode loop() doit être programmée pour que l'ensemble du système exécute les mouvements souhaités. La première ligne est un appel à la méthode measure_distance(). Dans cette méthode, le module à ultrasons est commandé et les calculs sont effectués afin de déterminer la distance entre un objet ou une personne et le module à ultrasons. 

measure_distance() ;

 

Lorsque cette méthode est appelée, des signaux ultrasoniques sont envoyés et le calcul est effectué en fonction du temps qu'il a fallu au signal pour être renvoyé. Pour calculer la distance entre un objet et le capteur, il suffit de mesurer le temps qui s'écoule entre l'émission et la réception d'un signal. La séquence est la suivante : Tout d'abord, la broche trigPin du capteur est mis à l'état "low" pendant 5 millisecondes. Une fois ce temps écoulé, l'état de la même broche trigPin est mis à "haut" pendant 10 millisecondes pour que le capteur envoie le signal. Une fois ce temps écoulé, l'état de cette broche est à nouveau réglé sur "bas" afin de mettre fin à l'émission de signaux.

Une fois cela fait, la fonction calcule pulseIn(echoPin, HIGH)  le temps écoulé depuis l'émission du signal par la broche trigPin s'est écoulé jusqu'à ce que la broche echoPin du capteur reçoit le signal renvoyé. On connaît maintenant le temps, en microsecondes, que le signal a mis entre l'émission et la réception. Cette information est très importante et est contenue dans la variable ultrasonic_time_measurement est enregistrée. Pour déterminer la distance, il suffit d'effectuer une opération mathématique. Comme la vitesse du son dans l'air à 20 degrés Celsius est de 343 m/s, cette vitesse doit être convertie en cm/µs. La valeur est calculée à l'aide de la formule suivante :

Formule 1 - Conversion de m/s en cm/µs

D'autre part, le temps mesuré par le capteur est le temps nécessaire au signal pour atteindre l'objet et revenir, de sorte que le temps réellement nécessaire pour atteindre l'objet ou la personne est deux fois moins long que le temps mesuré. Il convient de noter qu'il s'agit de microsecondes. Par conséquent, si le temps nécessaire et la vitesse du son en centimètres par microseconde sont connus, la formule suivante peut être utilisée pour calculer la distance.

Formule 2 - Calcul de la distance

Le résultat est la distance à l'objet en centimètres. Cette distance est enregistrée dans la variable distance pour les utiliser dans des blocs conditionnels if d'utiliser des blocs de données. Ces blocs sont exécutés en fonction de la valeur de la variable. Cette distance est également utilisée par le Moniteur de série s'affiche lorsque le microcontrôleur est connecté à l'IDE Arduino.

 

void measure_distance() {

         digitalWrite(trigPin, LOW);

         delayMicroseconds(5);

         digitalWrite(trigPin, HIGH);

         delayMicroseconds(10);

         digitalWrite(trigPin, LOW);

 

         ultrasonic_time_measurement = pulseIn(echoPin, HIGH);

 

         distance = (ultrasonic_time_measurement/2)*0.0343;

 

         Serial.print(distance);

         Serial.print(" cm");

         Serial.println();

}

 

Une fois la distance à l'objet calculée, on revient à la ligne de code qui répond à l'appel de la méthode measure_distance() suit.

Si vous regardez le sketch, vous verrez que deux blocs conditionnels simples if ont été programmés. Ces deux blocs exécutent les différentes actions que les composants effectuent en fonction de la valeur que la personne détectée par le capteur possède et qui est indiquée dans la variable distance est enregistré. Si la personne se trouve à une distance d'au moins 40 cm, le squelette reste assis, les LED des yeux sont éteintes et le fauteuil à bascule se déplace. En revanche, si la distance à la personne est inférieure à 40 cm, le fauteuil à bascule reste immobile, les DEL des yeux s'allument et le squelette se lève du fauteuil. L'exécution des blocs conditionnels est expliquée ci-dessous.

La première condition if est exécutée si la variable distance a une valeur d'au moins 40 centimètres. Les fonctions suivantes sont exécutées : Tout d'abord, le volume de la lecture du son est réglé avec myDFPlayer.volume(15) est réglé sur une valeur de 15 sur 30, puis le fichier nommé 001.mp3 est créé à l'aide de la commande myDFPlayer. play(001) est en cours de lecture. Ce fichier doit être enregistré sur la carte microSD insérée dans le module de lecture MP3 et reproduit le bruit du bois qui craque. La ligne digitalWrite (led_eyes, LOW)  du code place la broche du microcontrôleur à laquelle sont connectées les DEL des yeux du squelette à un niveau bas (sans tension), ce qui les éteint et permet au servomoteur du squelette de se mettre en position à 90 degrés et de rester assis.

Deux boucles ont été utilisées pour le mouvement du fauteuil à bascule pour programmée avec des compteurs. La première boucle pour commence avec une valeur de position du servomoteur de 60 degrés et doit se positionner jusqu'à 115 degrés, en augmentant de 1 degré toutes les 18 microsecondes. De cette manière, le mouvement est continu. La deuxième boucle pour force le servomoteur à effectuer le mouvement inverse : De 115 degrés, il doit être abaissé à 60 degrés, avec une diminution de 1 degré toutes les 18 microsecondes.

 

if (distance >= 40) {

      

         myDFPlayer.volume(15);

         myDFPlayer.play(002);

 

         digitalWrite (led_eyes, LOW);

         servo_skeleton.write(90);

 

         for (pos = 60; pos <= 115; pos += 1) {

                 servo_chair.write(pos);

                 delay(18);

        }

 

        for (pos = 115; pos >= 60; pos -= 1) {

                 servo_chair.write(pos);

                 delay(18);

        }

}

 

La deuxième condition if est exécutée si la variable distance a une valeur inférieure à 40 cm. Dans ce cas, les fonctions suivantes sont exécutées : Tout d'abord, la position du servomoteur du fauteuil à bascule est réglée à 90 degrés, ce qui le maintient au centre, et la fonction myDFPlayer. pause()pour mettre en pause le fichier audio en cours de lecture (rappelez-vous qu'il s'agissait du bruit du bois qui craque avec 001.mp3), et une pause de 1,5 seconde s'affiche avec la ligne delay(1500) a été inséré.

Après la pause, les LED des yeux du squelette s'allument en exécutant la ligne digitalWrite (led_eyes, HIGH) est appelée, car cette ligne fait passer le port du microcontrôleur auquel sont connectées les LED des yeux du squelette à l'état haut et à 5 VDC. S'ensuit une nouvelle pause, mais cette fois de 2 secondes.

Il ne manque plus que le mouvement du squelette et le son du rire. On commence par programmer la lecture du bruit, car le microcontrôleur doit préparer le fichier audio pour la lecture, ce qui entraîne un léger retard dans la lecture. Pour cela, on règle le volume de la lecture du bruit avec myDFPlayer. volume(15) et avec myDFPlayer. play(002) le fichier nommé 002.mp3 est lu pour reproduire un rire effrayant. Ce fichier doit également être enregistré sur la carte microSD insérée dans le module de lecture MP3. Avec la ligne de code servo_skeleton. write(70) le squelette se lèvera de sa chaise pendant la lecture du fichier audio. Avec delay(5000) une pause de 5 secondes est observée afin de permettre la lecture complète du fichier.

 

if (distance < 40) {

         servo_chair.write(90);

         myDFPlayer.pause();

         delay(1000);

 

         digitalWrite (led_eyes, HIGH);

         delay(2000);

 

         myDFPlayer.volume(15);

         myDFPlayer.play(001);

         servo_skeleton.write(70);

         delay(5000);

}

 

                                                                                              


Nous espérons que le projet Halloween de cette année vous plaira et nous vous souhaitons une soirée effrayante et divertissante. Merci beaucoup. 

Esp32-dev-kitFür arduinoProjekte für fortgeschritteneSensorenStromversorgung

3 commentaires

Jürgen

Jürgen

Hallo, ich lese immer wieder, dass der DF-Player eine besondere Reihenfolge der Dateien voraussetzen soll. Das kann man umgehen, in dem man einen Ordner ‘MP3’ im Stammverzeichnis der SD-Card anlegt, dort die Musikdateien hineinkopiert und die Dateinamen mit einer vierstelligen Nummer beginnen lässt (0001 Hallo, 0002… 0046… usw.). Was hinter der Nummer steht ist egal und die Kopierreihenfolge auch, sofern man dann die Funktion 0×12 ‘Specify playback of folder named “MP3”’ nutzt. In der hier genutzten Bibliothek heißt die Funktion – glaube ich – ‘playMp3Folder’. Bin mir mit der Lib aber nicht ganz sicher, weil ich keine der vielen Libs für DF-Player nutze. Sorgen bei mir alle nur für Ärger :-) MfG

Frank Peter

Frank Peter

Gibt es eine Lightburn Vorlage für das Skelett?

Michael

Michael

Absolut cooles Projekt und sehr schön realisiert.
Da macht die Bastlei wirklich Spaß.

Laisser un commentaire

Tous les commentaires sont modérés avant d'être publiés

Articles de blog recommandés

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery