Faire un jeu de fil Buzz Avec un Arduino

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

De quoi as-tu besoin

Voici les éléments de base dont vous aurez besoin pour réaliser ce projet:

Voici quelques pièces en option pour améliorer la construction:

  • 1 x buzzer piézo supplémentaires.
  • 1 x tige du goujon.
  • 1 x affichage de segment Quad sept.
  • 1 x résistance de 220 ohms.
  • 1 x bouton momentané.
  • Du fil de montage mâle-femelle.
  • planche en bois (pour le cas).
  • vis à bois assortis.

Le plan de construction

Faire un jeu de fil Buzz Avec un Arduino

Le mécanicien de base se compose d'une forme de fil et une boucle sur une poignée. Le joueur doit guider la boucle autour du cours sans les deux toucher. Si les deux touche, le circuit est terminé et le signal sonore retentit. Il est bien sûr possible de construire ce circuit en utilisant le microcontrôleur pas, mais où est le plaisir dans tout cela (et sinon comment voulez-vous apprendre à écouter la chanson thème « Flying Circus » Monty Python)?

Le cours

Faire un jeu de fil Buzz Avec un Arduino

Faire un jeu de fil Buzz Avec un Arduino

Cela isolera la boucle du cours, fournissant un début / fin ou d'une zone de sécurité. Sinon, une bande ou même une paille fera si vous n'avez pas un tube thermorétractable.

Faire un jeu de fil Buzz Avec un Arduino

Faire un jeu de fil Buzz Avec un Arduino

Il est temps de créer la base. Cela sert à tenir le cap en position verticale, ainsi que de fournir un endroit pour ancrer l'électronique à. J'ai utilisé quelques rognures de pin, bien que vous pouvez utiliser ce que vous avez autour de la maison - même une boîte en carton.

Percez deux trous assez éloignés pour les extrémités du cours de s'asseoir dans. Fraiser le dessous prêt pour le collage.

La poignée

Couper une petite longueur de cheville pour la poignée réelle. Cette boucle métallique emboîtera dans cette poignée. Si vous n'avez pas la cheville, vous pouvez arrondir un morceau de bois tendre carré à l'aide d'une ponceuse à bande ou disque (vous pouvez aussi utiliser du papier de verre, mais il faudrait beaucoup de temps).

Percez un trou dans cette poignée. Cela doit être assez grand pour la boucle métallique et le fil à travers:

Faire un jeu de fil Buzz Avec un Arduino

Oui, je suis tout à fait conscient que c'est un tour métallique (pour toute personne intéressée, c'est un tour de l'horlogerie Boley des années 1930. Je pense que c'est un 3C, mais j'aimerais entendre si vous savez plus à ce sujet).

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

Enfin, utilisez la colle chaude pour fixer le câble et la boucle dans la poignée. colle chaude fournira une forte (mais non permanent) appareil, il est donc parfait pour cela.

finition

Insérez le parcours de fil dans les trous de la base. Ne pas oublier d'ajouter la boucle / contrôleur premier. Utiliser à nouveau la colle chaude pour fixer le cadre à la base en remplissant les trous fraisés sur la face inférieure de la base de la manière suivante:

Faire un jeu de fil Buzz Avec un Arduino

Le circuit

Voici le circuit complet. Vous ne devez pas faire le vôtre aussi complexe - lire la suite que nous décomposons chaque partie.

Maintenant, branchez le cours du métal et poignée:

Un des liens résistance du circuit à la masse (appelée une résistance pull-down), assurant qu'il ne « flotte » (ce qui permet au changement Arduino pour détecter le circuit). L'autre résistance protège l'Arduino. Lorsque les deux parties touchent, + 5 V passe dans la broche numérique. Si cette résistance était pas présent, il y aurait un mort court - votre ordinateur déconnectera la prise USB pour trop de courant si vous êtes chanceux.

Branchez le câble de signal (violet, sur le schéma) à la broche numérique 9.

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

Faire un jeu de fil Buzz Avec un Arduino

Enfin, connecter l'afficheur à DEL à sept segments:

Ensuite, vous devez une méthode pour jouer effectivement des notes / mélodies sur le piézo. Ce point essentiel par Anthony DiGirolamo sur Github contient le code dont vous avez besoin. Copier tout entre « buzz vide » et « >> » et le coller dans votre fichier principal. Pour référence, la voici:

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

Dans l'IDE Arduino, cliquez sur « Gérer les bibliothèques » (Sketch> Inclure Bibliothèque> Gérer les bibliothèques). Cela fera le gestionnaire de bibliothèque. Permettez-lui quelques secondes pour mettre à jour et la recherche dans la zone de recherche en haut à droite « TM1637 ». Deux bibliothèques sont disponibles - vous voulez « TM1637 » et non « TM1637Display ». Sélectionnez puis cliquez sur « Installer ».

Une dernière tâche avec cette bibliothèque - il est pas terminée! En l'état actuel, la bibliothèque ne peut afficher les numéros 0-9 et A-F. Si cela couvre tout ce que vous souhaitez afficher, vous pouvez sauter cette étape. Sinon, vous devrez modifier le code. Se détendre! Ce n'est pas aussi difficile que cela puisse paraître, et si vous pouvez écrire du code en utilisant l'IDE Arduino, vous pouvez le faire.

Tout d'abord, ouvrez votre dossier de bibliothèque. Ce sera dans votre dossier Arduino. Sous Mac OS X, cela est dans / Users / Joe / Documents / Arduino / Bibliothèques. Ouvrez le dossier appelé TM1637. Vous devrez modifier 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 favori (pour moi, c'est Sublime Text 3), le Bloc-notes ou l'Arduino IDE.

Modifier la troisième ligne de code de celle-ci:

Il est temps pour le code réel. Tout d'abord, comprennent les deux bibliothèques mentionnées précédemment:

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

Ne vous inquiétez pas si vous ne comprenez pas la syntaxe - cette ligne indique à l'Arduino broches 12 et 13 sont fixés à un affichage à sept segments, et de le configurer correctement.

La chanson est enregistrée dans la mélodie et le tempo. Ceux-ci contiennent toutes les notes et la durée de la note pour la musique. Si vous souhaitez changer la musique, modifier ces tableaux (bien que ce n'est pas aussi simple que coller dans les valeurs de notes, le calendrier est une partie très importante de la musique). La variable songState 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 autour incohérente:

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

Dans la fonction setup () il y a quelques choses qui se passent. Tout d'abord, les entrées et les sorties sont configurés. Cela doit être fait, si l'Arduino sait ce qui est relié à chacune de ses broches pour:

Maintenant, l'affichage doit la configuration:

Les méthodes définies. point. et init sont tous contenus dans l'objet _display. Au lieu d'un point, un pointeur ( « -> ») est utilisé pour y accéder. Encore une fois, ne vous inquiétez pas la syntaxe (bien que, si vous souhaitez en savoir plus, consulter Pointeurs C ++).

La boucle principale a deux modes de jeu: défi et le jeu. Le jeu libre permet au joueur de jouer un nombre illimité de fois. mode Challenge règle un temporisateur pendant 20 secondes en utilisant la méthode showCountdown. Il utilise le bouton pour démarrer et arrêter le chronomètre. actuellement, la seule façon de changer de mode de jeu est de modifier manuellement la variable appelé mode. Voyez si vous pouvez ajouter un autre bouton pour faire et modifier le code approprié.

La méthode buzz joue les notes qui lui sont données. Il est utilisé en conjonction avec chanter. La méthode Chantez passe par chaque note et joue. Cette méthode est appelée régulièrement, même si elle ne jouiez la note suivante lorsque le temps est écoulé depuis la dernière lecture. Une fois que la chanson a atteint la fin, il remet à zéro la chanson au verset 1 (songState = 14). Vous pouvez définir cette valeur à zéro pour commencer la chanson au début, mais la raison pour ce faire est de sauter l'introduction. L'introduction est jouée une fois après l'Arduino est mis sous tension, et il ne se joue pas à nouveau.

Les méthodes showFree et showPlay écrivent simplement les mots « libre » et « PLAY » à l'écran. Remarquez comment le « r » en libre est minuscule, alors que tous les autres caractères sont en majuscules. Ceci est l'une des limites de sept écrans du segment. Ils ne peuvent pas montrer toutes les lettres de l'alphabet, et quelques-uns des personnages qu'ils peuvent afficher doivent être en cas mixtes.

La méthode toggleFreePlay clignote l'affichage entre « FREE » et « PLAY ». Encore une fois, il le fait d'une manière non-blocage.

Une autre méthode utile est showNumber. Cela écrit un numéro à deux caractères du milieu de l'écran comme ceci:

Faire un jeu de fil Buzz Avec un Arduino

Voici tout ce que le code mis en place:

Articles Liés