Faire un jeu Buzz Wire avec un Arduino

Faire un jeu Buzz Wire avec un Arduino / DIY

Dans ce projet amusant, nous allons apprendre à créer un jeu à la mode avec l'Arduino. La plupart des pièces nécessaires se trouvent dans un kit de démarrage (contenu d'un kit de démarrage. Contenu d'un kit de démarrage Arduino? [MakeUseOf Explains] Contenu de ce qui est inclus dans un kit de démarrage Arduino? [MakeUseOf Explains] J'ai déjà présenté Arduino open- Le matériel source ici sur MakeUseOf, mais vous avez besoin de plus que de l’Arduino lui-même pour créer quelque chose et démarrer! Les «kits de démarrage» Arduino sont… Lire la suite?) et autour de la maison. Ce projet utilise un Arduino, bien que vous puissiez utiliser presque tous les microcontrôleurs existants (regardez cette comparaison entre 5 $ microcontrôleurs 5 $ Microcontrôleurs: Arduino, Raspberry Pi Zero, ou NodeMCU? 5 $ Microcontrôleurs: Arduino, Raspberry Pi Zero, ou NodeMCU? Auparavant, si vous vouliez vous procurer un ordinateur, vous deviez le ré-hypothéquer pour payer votre maison. Vous pouvez maintenant en obtenir un pour un Abraham Lincoln..

Découvrez le résultat final - il joue même de la musique:

De quoi as-tu besoin

Voici les éléments essentiels dont vous aurez besoin pour mener à bien ce projet:

  • 1 x Arduino UNO ou similaire.
  • 1 x cintre en métal.
  • 2 résistances de 220 ohms.
  • 1 x planche à pain.
  • 1 x sonnerie piézo.
  • 2 pinces crocodiles.
  • Assortiment de gaines thermorétractables.
  • Fils de connexion mâle à mâle.

Jeu de mines Alligator TL-6 Elenco, 10 pièces, 14 pouces Jeu de mines Alligator TL-6 Elenco, 10 pièces, 14 pouces Acheter maintenant chez Amazon

Voici quelques éléments optionnels pour améliorer la construction:

  • 1 x sonnerie supplémentaire piézo.
  • 1 x tige de goujon.
  • 1 x Quad sept segments.
  • 1 x résistance de 220 ohms.
  • 1 x bouton momentané.
  • Fils de connexion mâle-femelle.
  • Planche de bois (pour le cas).
  • Assortiment de vis à bois.

Presque tous les Arduino fonctionneront, à condition qu'il y ait suffisamment de broches. Jetez un coup d’œil à ce guide d’achat Guide d’achat Arduino: Quelle planche devriez-vous obtenir? Guide d'achat Arduino: Quel conseil choisir? Il y a tellement de types de cartes Arduino que vous ne pouvez pas vous tromper Que devriez-vous acheter pour votre projet? Laissez-nous vous aider avec ce guide d'achat Arduino! Lire plus si vous n'êtes pas sûr de ce dont vous avez besoin.

Le plan de construction

Bien que cela puisse paraître complexe, c'est en fait un projet assez simple. Je vais commencer par le jeu de base, puis ajouter des composants supplémentaires pour accroître la complexité. Vous pouvez “prends et choisis” comme vous voulez en fonction des composants dont vous disposez.

Le mécanisme de base consiste en une forme de fil et une boucle sur une poignée. Le joueur doit guider la boucle sur le parcours sans que les deux ne se touchent. Si les deux touches se touchent, le circuit est terminé et la sonnerie retentit. Il est bien sûr possible de construire ce circuit sans utiliser de microcontrôleur, mais où est l’amusement (et comment auriez-vous l’occasion d’écouter les Monty Python?). “Cirque volant” chanson du thème)?

Le cours

C'est la forme que le joueur devra guider sa boucle. C'est la base de tout le jeu, alors faites-le bien! J'ai choisi une petite chute suivie d'une grande montée. Pliez un cintre en métal dans la forme dont vous avez besoin. Un fil de laiton ou un tube de cuivre conviendra également, bien qu’un cintre soit le moins cher.

Vous devrez peut-être porter des gants et utiliser une pince ou un marteau pour que tout soit parfait. Couper tout excès avec des coupe-boulons. Laissez deux montants verticaux pousser à travers la base. Vous voulez classer les bouts coupés pour des raisons de sécurité. Enfin, coupez deux morceaux de gaine thermorétractable et placez-les sur les extrémités comme suit:

Ceci isolera la boucle du parcours, fournissant un début / fin ou une zone de sécurité. Alternativement, du ruban adhésif ou même une paille fera l'affaire si vous n'avez pas de tube thermorétractable.

Attachez maintenant un câble à une extrémité du cours. Vous avez deux options ici: vous pouvez soit souder, soit utiliser une pince à crocodile. Une pince crocodile est l'option la plus simple, mais la soudure est une option plus fiable et à long terme. Assurez-vous de “rude” la surface du cintre d'abord avec du papier de verre, et utilisez beaucoup de flux. (Jamais soudé auparavant? Apprenez ici Apprendre à souder, avec ces astuces simples et projets Apprendre à souder, avec ces astuces simples et projets Êtes-vous un peu intimidé par la pensée d'un fer chaud et de métal en fusion? Si vous voulez pour commencer à travailler avec l’électronique, vous allez devoir apprendre à souder. Laissez-nous vous aider.

En fonction de la taille du trou que vous percez dans la base à l'étape suivante, vous devrez peut-être faire passer le câble par le trou de montage en premier. L'utilisation de deux fils torsadés augmentera la durabilité:


Utiliser un exercice pour faire cela aide beaucoup:

La base

Il est temps de créer la base. Cela sert à maintenir le parcours dans une position verticale, tout en fournissant un lieu d'ancrage pour l'électronique. J'ai utilisé des chutes de pin, bien que vous puissiez utiliser tout ce que vous avez à la maison, même une boîte en carton..

Couper trois morceaux pour former un “n” forme. Il suffit de visser (ou de coller) ces trois pièces ensemble. N'oubliez pas de percer d'abord les trous latéraux pour éviter qu'ils ne se fendent. Vous voudrez peut-être fraiser les vis (surtout si vous voulez remplir puis peindre), et je recommande fortement un foret à fraiser. Si vous ne disposez pas d'un outil de fraisage ou d'un alésage, un foret de plus grand diamètre fera l'affaire.

Percez deux trous suffisamment éloignés pour que les extrémités du parcours s’assoient. Fraiser le dessous prêt à coller.

La poignée


Il est maintenant temps de créer la boucle / le contrôleur. Tournez un petit morceau du cintre à une extrémité pour créer une boucle avec une petite poignée en métal. Assurez-vous que vous limez le bord coupé, puis couvrez-le avec du ruban adhésif / mousse si nécessaire.


Cela constituera l'autre moitié du circuit. Lorsque cette boucle touchera le parcours, elle complétera le circuit (exactement comme un commutateur). Souder (ou utiliser un clip de crocodile) un autre fil au bas de celui-ci, exactement comme vous l'avez fait précédemment pour le cours.

Couper une petite longueur de goujon pour la poignée réelle. Cette boucle en métal s'insérera dans cette poignée. Si vous n'avez pas de goujon, vous pouvez arrondir un morceau de bois tendre carré à l'aide d'une ponceuse à courroie ou à disque (vous pouvez également utiliser du papier de verre, mais cela prendrait beaucoup de temps)..

Percer un trou à travers cette poignée. Celui-ci doit être suffisamment grand pour s'adapter à la boucle en métal et au fil:


Cela est possible avec une perceuse à colonne, bien que ce soit délicat. Un tour fera parfaitement l'affaire:

Oui, je suis tout à fait au courant qu’il s’agit d’un tour en métal (pour tous les intéressés, il s’agit d’un tour horloger Boley des années 1930. Je pense que c’est un 3C, mais je serais ravi de vous entendre si vous en savez plus à ce sujet).

Vous pouvez également utiliser un stylo à bille sans le centre.

Enfin, utilisez de la colle chaude pour fixer le câble et la boucle dans la poignée. La colle chaude fournira un support solide (mais pas permanent), il est donc parfait pour cela..

Finition

Insérez le câble dans les trous de la base. N'oubliez pas d'ajouter la boucle / le contrôleur en premier. Utilisez à nouveau de la colle chaude pour fixer le parcours à la base en remplissant les trous fraisés situés sous la base de la manière suivante:

Le circuit

Voici le circuit complet. Vous n'êtes pas obligé de faire le vôtre aussi complexe que cela - lisez la suite en décomposant chaque partie.


Commencez par connecter les deux éléments piézo-électriques aux broches numériques 10 et 11. La polarité importe peu:


Vous n’êtes pas obligé d’utiliser deux piézos - la seule raison pour laquelle j’ai choisi de le faire est de produire un bourdonnement beaucoup plus fort lorsque les fils se touchent. Connectez un côté à la broche numérique et l'autre à la terre.

Maintenant, branchez le cours de métal et manipulez:


Encore une fois, peu importe le chemin qui les relie. Cette partie du circuit est exactement comme un bouton ou un commutateur - le joueur termine le circuit lorsque la boucle touche le parcours. Assurez-vous d'inclure les deux résistances.

Une résistance relie le circuit à la masse (appelée résistance escamotable), en veillant à ne pas “flottant” (Cela permet à l’Arduino de détecter le changement de circuit). L'autre résistance protège l'Arduino. Lorsque les deux parties se touchent, + 5V passe dans la broche numérique. Si cette résistance n'était pas présente, il y aurait un court-circuit - votre ordinateur déconnecterait la prise USB pour tirer trop de courant si tu es chanceux.

Connectez le fil du signal (violet, sur le schéma) à la broche numérique 9.

Ensuite, connectez un bouton-poussoir à la broche numérique 2:

Enfin, connectez l’écran LED à sept segments:


Ce modèle particulier est de Seeed. Ceci utilise un TM1637 pour piloter quatre écrans - cela signifie que seulement deux broches numériques sont nécessaires. Relier GND au sol Arduino et VCC vers Arduino + 5V. Relier D10 sur la broche numérique Arduino 13 et CLK vers la broche numérique 12.

Le code

Pour que ce projet fonctionne, vous aurez besoin de deux fichiers supplémentaires. Le premier s'appelle emplacements.h. Ce fichier mappe simplement les noms de notes sur leur valeur piézo. Cela facilite beaucoup l'écriture d'une mélodie, comme vous pouvez simplement le dire “NOTE_C3” plutôt que “31”, par exemple. Ceci est dans le domaine public et est disponible sur le site Web Arduino ici. Suivez les instructions pour créer un nouveau fichier appelé emplacements.h (sinon, collez le code dans votre script existant).

Ensuite, vous avez besoin d’une méthode pour jouer réellement des notes / mélodies sur le piézo. Cet extrait d’Anthony DiGirolamo sur Github contient le code dont vous avez besoin. Copier tout entre “vide buzz” et “” et collez-le dans votre fichier principal. Pour référence, voici:

void buzz (int targetPin, longue fréquence, longue durée) / * Exemple de fonction Buzzer de Rob Faludi http://www.faludi.com https://gist.github.com/AnthonyDiGirolamo/1405180 * / long delayValue = 1000000 / fréquence / 2; // calcule la valeur du délai entre les transitions //// 1 seconde en microsecondes, divisée par la fréquence, puis divisée en deux car //// il y a deux phases à chaque cycle long numCycles = frequency * length / 1000; // calcule le nombre de cycles pour une synchronisation correcte //// multiplie la fréquence, qui est en réalité des cycles par seconde, par le nombre de secondes pour //// obtenir le nombre total de cycles à produire pour (long i = 0; i < numCycles; i++) // for the calculated length of time… digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphragm delayMicroseconds(delayValue); // wait for the calculated delay value digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphragm delayMicroseconds(delayValue); // wait again for the calculated delay value  

La dernière bibliothèque dont vous avez besoin est de contrôler l’affichage à sept segments - vous pouvez ignorer cette étape si vous n’en utilisez pas un. Cette bibliothèque s'appelle TM1637 et a été créé par Seeed, la même société qui a créé la carte de conducteur.

Dans l'IDE Arduino, allez à “Gérer les bibliothèques” (Esquisser > Inclure la bibliothèque > Gérer les bibliothèques). Cela fera apparaître le gestionnaire de la bibliothèque. Laissez quelques secondes pour mettre à jour et ensuite rechercher dans le champ de recherche en haut à droite “TM1637”. Deux bibliothèques seront trouvées - vous voulez “TM1637” et pas “TM1637Affichage”. Sélectionnez puis cliquez sur “installer”.

Une dernière tâche avec cette bibliothèque - elle n’est pas complète! Dans l'état actuel des choses, la bibliothèque ne peut afficher que les chiffres de 0 à 9 et les lettres de A à F. Si cela couvre tout ce que vous souhaitez afficher, vous pouvez ignorer cette étape. Sinon, vous devrez modifier le code. Se détendre! Ce n’est pas aussi difficile que cela en a l'air, et si vous pouvez écrire du code en utilisant l'EDI Arduino, vous pouvez le faire..

Commencez par ouvrir votre dossier de bibliothèque. Ce sera dans votre dossier Arduino. Sur Mac OS X, cela se trouve dans / Utilisateurs / Joe / Documents / Arduino / Bibliothèques. Ouvrez le dossier appelé TM1637. Vous devrez éditer le fichier appelé TM1637.cpp - vous pouvez ignorer en toute sécurité l'autre fichier avec l'extension .h. Ouvrez ce fichier dans votre éditeur de texte préféré (pour moi, c'est Sublime Text 3), dans le Bloc-notes ou dans l'IDE Arduino..

Modifiez la troisième ligne de code à partir de ceci:

static int8_t TubeTab [] = 0x3f, 0x06,0x5b, 0x4f, 0x66,0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77,0x7c, 0x39,0x5e, 0x79,0x71; // 0 ~ 9, A, b, C, d, e, f

Pour ça:

statique int8_t TubeTab [] = / * par défaut * / 0x3f, // 0 0x06, // 1 0x5b, // 2 0x4f, // 3 0x66, // 4 0x6d, // 5 0x7d, // 6 0x07, / / 7 0x7f, // 8 0x6f, // 9 0x77, // A - 10 0x7c, // b - 11 0x39, // C - 12 0x5e, // d - 13 0x79, // E - - 14 0x71, // F - 15 / * supplémentaire * / 0x174, // h - 16 0x176, // H - 17 0x138, // L - 18 0x15, // M - 19 0x137, / / n - 20 0x73, // P - 21 0x67, // q - 22 0x131, // r - 23 0x78, // t - 24 0x240 // - 25;

Vous pouvez maintenant enregistrer et fermer ce fichier. Après chaque élément, le commentaire décrit le personnage. La prochaine partie du commentaire est l'index de l'élément.

C'est l'heure du code actuel. Tout d’abord, incluez les deux bibliothèques mentionnées précédemment:

#comprendre  #comprendre 

Maintenant, créez l'objet d'affichage:

TM1637 * _display = new TM1637 (12, 13);

Ne vous inquiétez pas si vous ne comprenez pas la syntaxe - cette ligne indique à l'Arduino que les broches 12 et 13 sont attachées à un écran à sept segments et qu'il convient de le configurer correctement..

La chanson est stockée dans mélodie et tempo. Ceux-ci contiennent toutes les notes et leur durée pour la musique. Si vous souhaitez modifier la musique, modifiez ces tableaux (bien que ce ne soit pas aussi simple que de coller dans les valeurs de note, le minutage est une partie très importante de la musique). le songState variable stocke simplement la position de la dernière note jouée. Cela garantit que la mélodie est jouée du début à la fin, plutôt que de sauter de manière incohérente:

int songState = 0; int melody [] = NOTE_F4,… int tempo [] = 8,…

Notez que j'ai supprimé le contenu des tableaux, voir ci-dessous pour le code complet.

Ce code est non bloquant - cela signifie que l’Arduino peut effectuer plusieurs tâches simultanément. Regardez cette explication Fonction de retard Arduino, et pourquoi vous ne devriez pas l'utiliser Fonction de retard Arduino, et pourquoi vous ne devriez pas l'utiliser Bien que delay () soit pratique pour des démonstrations de base du fonctionnement d'Arduino, vous ne devriez vraiment pas l'être l'utiliser dans le monde réel. Voici pourquoi et ce que vous devriez utiliser à la place. Lisez plus pour plus d'informations. Voici comment sont configurés les minuteries:

unsigned long previousMillis1 = 0; const long intervalle1 = 1500;

La variable précédentMillis1 sera mis à jour ultérieurement pour enregistrer l'heure actuelle. le intervalle1 variable stocke le temps d'attente entre l'exécution du code - dans ce cas, 1,5 seconde. Il est défini comme const, ce qui signifie qu'il est constant et ne changera jamais - cela permet à l'Arduino d'optimiser davantage le code.

À l'intérieur de installer() fonctionner il y a quelques choses qui se passent. Tout d'abord, les entrées et les sorties sont configurées. Cela doit être fait, donc l'Arduino sait ce qui est connecté à chacune de ses broches:

pinMode (9, INPUT); // circuit de configuration pinMode (10, OUTPUT); // configuration de l'avertisseur sonore 1 pinMode (11, OUTPUT); // configuration de la sonnerie 2 pinMode (2, INPUT); // bouton d'installation

Il faut maintenant configurer l’affichage:

_display-> set (5); // set luminosité _display-> point (false); // supprime les deux points _display-> init (); // démarrer l'affichage

Les méthodes ensemble, point, et init sont tous contenus dans le _afficher objet. Au lieu d’un point, un pointeur (“->”) est utilisé pour y accéder. Encore une fois, ne vous inquiétez pas de la syntaxe (même si, si vous souhaitez en savoir plus, recherchez des pointeurs C ++)..

La boucle principale a deux modes de jeu: défi et jeu libre. Le jeu libre permet au joueur de jouer un nombre illimité de fois. Le mode Défi définit un chronomètre sur 20 secondes à l'aide du showCountdown méthode. Il utilise le bouton pour démarrer et arrêter le chronomètre. actuellement, le seul moyen de changer les modes de jeu est d’éditer manuellement la variable appelée mode. Voyez si vous pouvez ajouter un autre bouton pour le faire et modifier le code de manière appropriée.

le bourdonner méthode joue les notes qui lui sont données. Ceci est utilisé en conjonction avec chanter. La méthode chante chaque note et la joue. Cette méthode est appelée régulièrement, bien qu'elle ne joue la note suivante que lorsque le temps écoulé depuis la dernière lecture est écoulé. Une fois que la chanson est arrivée à la fin, la chanson est réinitialisée au verset 1 (songState = 14). Vous pouvez définir ce paramètre à zéro pour que la chanson commence au début. Cependant, vous devez ignorer l'introduction. L'introduction est jouée une fois après la mise sous tension de l'Arduino, puis elle n'est pas rejouée..

le showFree et showPlay les méthodes écrivent simplement les mots “Libre” et “JOUER” à l'écran. Remarquez comment “r” free est en minuscule, lorsque tous les autres caractères sont en majuscule. C'est l'une des limitations des affichages à sept segments. Ils ne peuvent pas afficher toutes les lettres de l'alphabet et certains des caractères qu'ils peuvent afficher doivent être en casse mixte..

le toggleFreePlay méthode fait clignoter l'affichage entre “LIBRE” et “JOUER”. Encore une fois, il le fait de manière non bloquante.

Une autre méthode utile est showNumber. Ceci écrit un nombre sur les deux caractères du milieu de l’affichage comme ceci:

L’affichage n’est pas assez intelligent pour savoir comment afficher les grands nombres, il faut lui dire explicitement quoi faire. Cette méthode utilise une logique simple pour afficher le nombre approprié sur chaque caractère..

La dernière méthode utilisée s'appelle showCountdown. Cela commence un compteur à 20 et le diminue d'un toutes les secondes. S'il atteint zéro, il bourdonnera trois fois pour indiquer que le temps est écoulé..

Voici tout ce code mis en place:

#comprendre  // inclure la bibliothèque d'affichage #include  // inclure les terrains TM1637 * _display = new TM1637 (12, 13); // crée un objet d'affichage, 12 = CLK (horloge), 13 = D10 (données) // music int songState = 0; int melody [] = NOTE_F4, NOTE_E4, NOTE_D4, NOTE_CS4, NOTE_C4, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_A3, NOTE_AS3, NOTE_A3, NOTE_G3, NOTE_C4, 0, NOTE_C4, NOTE_C3, NOTE_A3 NOTE_C4 NOTE_C4, NOTE_A3, NOTE_A3, NOTE_A3, NOTE_GS3, NOTE_A3, NOTE_A4 NOTE_FS4, NOTE_G4, NOTE_C4, NOTE_B3, NOTE_C4, NOTE_B3, NOTE_C4, 0; int tempo [] = 8, 16, 8, 16, 8, 16, 8, 16, 16, 16, 16, 16, 8, 16, 8, 16, 16, 16, 16, 16, 16, 16, 16, 8, 16, 8, 16, 8, 16, 8, 16, 4, 12, 12, 16, 16, 16, 16, 16, 8, 16, 8, 16, 8, 16, 8, 16, 8, 16, 8, 16, 4, 12, 12, 16, 16, 16, 16, 8, 16, 8, 16, 8, 16, 8, 16, 8, 16, 8, 16, 4, 16, 12, 17, 17, 17, 17, 17, 17, 17, 17, 17, 8, 16, 8, 16, 8, 16, 8, 1; // configuration non bloquante // jeu libre unsigned long previousMillis1 = 0; // temps de la dernière modification des mots const long interval1 = 1500; // intervalle entre les changements de // musique unsigned long previousMillis2 = 0; // dernier changement constant const long interval2 = 100; // intervalle entre les notes int displayStatus = 0; // garde une trace de ce qui est affiché int mode = 0; // garde la trace du mode de jeu - change à 0 ou 1 pour différents modes bool countdown = false; unsigned long previousMillis3 = 0; // dernier changement constant const long interval3 = 1000; // intervalle entre les comptes à rebours int count = 20; // minuterie en mode défi void setup () // place ton code de configuration ici, pour exécuter une fois: pinMode (9, INPUT); // circuit de configuration pinMode (10, OUTPUT); // configuration de l'avertisseur sonore 1 pinMode (11, OUTPUT); // configuration de la sonnerie 2 pinMode (2, INPUT); // bouton d'installation _display-> set (5); // set luminosité _display-> point (false); // supprime les deux points _display-> init (); // démarre l'affichage void loop () // place ton code principal ici, pour l'exécuter de manière répétée: if (mode == 0) // mode challenge if (digitalRead (2) == HIGH) delay (25); if (digitalRead (2) == HIGH) compte à rebours = true; // arrête le compte à rebours else countdown = false; // arrête le compte à rebours if (countdown) showCountdown (); // compte à rebours avancé else // jeu libre toggleFreePlay ();  if (digitalRead (10) == HIGH) delay (25); if (digitalRead (10) == HAUT) while (digitalRead (10) == HAUT) buzz (11, NOTE_B0, 1000/24);  else sing ();  void showCountdown () // compte à rebours le temps restant non signé long currentMillis = millis (); // heure actuelle si (currentMillis - previousMillis3> = interval3) previousMillis3 = currentMillis; --compter; showNumber (count); if (count == 0) // compte à rebours = faux; compte = 20; // réinitialisation du compte à rebours // buzz 3 fois buzz (11, NOTE_B0, 1000/24); délai (100); buzz (11, NOTE_B0, 1000/24); délai (100); buzz (11, NOTE_B0, 1000/24);  void showNumber (int number) // affiche des nombres (maximum 99) à l'écran _display-> display (0, 25); // write - to segment 1 _display-> display (3, 25); // write - to segment 4 // écrit le numéro au milieu de l'écran if (number == 10) _display-> display (1,1); _display-> display (2,0);  else if (nombre> 9) _display-> display (1,1); int newVal = nombre - 10; _display-> display (2, newVal);  else _display-> display (1,0); _display-> display (2, number);  void toggleFreePlay () // fait défiler les mots sans bloquer les longs unsigned long currentMillis = millis (); // heure actuelle si (currentMillis - previousMillis1> = interval1) previousMillis1 = currentMillis; if (displayStatus == 1) showPlay (); sinon showFree ();  void showPlay () // écrit "PLAY" sur l'écran _display-> display (0, 21); // écrit P sur le segment 1 _display-> display (1, 18); // écrit L sur le segment 2 _display-> display (2, 10); // écrit A sur le segment 3 _display-> display (3, 4); // écrit Y sur le segment 4 displayStatus = 2;  void showFree () // écrit "Gratuit" dans l'affichage _display-> display (0, 15); // écrit F sur le segment 1 _display-> display (1, 23); // écrit r sur le segment 2 _display-> display (2, 14); // écrit E sur le segment 3 _display-> display (3, 14); // écrit E sur le segment 4 displayStatus = 1;  void buzz (int targetPin, longue fréquence, longue durée) / * Exemple de fonction Buzzer de Rob Faludi http://www.faludi.com https://gist.github.com/AnthonyDiGirolamo/1405180 * / long delayValue = 1000000 / fréquence / 2; // calcule la valeur du délai entre les transitions //// 1 seconde en microsecondes, divisée par la fréquence, puis divisée en deux car //// il y a deux phases à chaque cycle long numCycles = frequency * length / 1000; // calcule le nombre de cycles pour une synchronisation correcte //// multiplie la fréquence, qui est en réalité des cycles par seconde, par le nombre de secondes pour //// obtenir le nombre total de cycles à produire pour (long i = 0; i < numCycles; i++) // for the calculated length of time… digitalWrite(targetPin,HIGH); // write the buzzer pin high to push out the diaphragm delayMicroseconds(delayValue); // wait for the calculated delay value digitalWrite(targetPin,LOW); // write the buzzer pin low to pull back the diaphragm delayMicroseconds(delayValue); // wait again for the calculated delay value   void sing()  // play the song in a non blocking way unsigned long currentMillis = millis(); if (currentMillis - previousMillis2 >= interval2) previousMillis2 = currentMillis; int noteDuration = 1000 / tempo [songState]; buzz (10, mélodie [état de la chanson], noteDurée); int pauseBetweenNotes = noteDuration; délai (pauseBetweenNotes); // arrête la lecture du son: buzz (10, 0, noteDuration); ++ songState; // redémarre la chanson si terminé si (songState> 79) songState = 14; // sauter l'intro

Enregistrer ce fichier sous “fil à la mode” (Fichier> Enregistrer sous) et ensuite le télécharger sur votre forum (Fichier> Télécharger). Si vous ne savez pas comment télécharger l'Arduino, ou si le code a l'air un peu effrayant, consultez notre Guide du débutant en Arduino Démarrer avec Arduino: Guide du débutant Démarrer avec Arduino: Guide du débutant Arduino est un logiciel libre plate-forme de prototypage électronique basée sur du matériel et des logiciels flexibles et faciles à utiliser. Il est destiné aux artistes, concepteurs, amateurs et à toute personne intéressée par la création d'objets ou d'environnements interactifs. Lire la suite . Tout va bien, vous devriez maintenant avoir votre propre jeu de fil à la mode - cool!

Si vous avez fait quelque chose de cool après avoir lu cela, j'aimerais bien voir - laissez-moi savoir dans les commentaires ci-dessous!

Explorer plus sur: Arduino, Electronics.