Table des matières:

Pumpktris - la citrouille Tetris : 10 étapes (avec photos)
Pumpktris - la citrouille Tetris : 10 étapes (avec photos)

Vidéo: Pumpktris - la citrouille Tetris : 10 étapes (avec photos)

Vidéo: Pumpktris - la citrouille Tetris : 10 étapes (avec photos)
Vidéo: Инженерная лента новостей 12: Спасение жизней с помощью роботов-пчёл 2024, Juillet
Anonim
Pumpktris - la citrouille Tetris
Pumpktris - la citrouille Tetris

Qui veut des visages souriants et des bougies quand vous pouvez avoir une citrouille interactive cet Halloween ? Jouez à votre jeu d'empilement de blocs préféré sur une grille de 8x16 sculptée dans le visage de la gourde, éclairée par des LED et utilisant la tige comme contrôleur. Il s'agit d'un projet modérément avancé et nécessite une expérience en soudure et en programmation dans l'environnement Arduino. Vous travaillerez avec de la matière organique et toutes ses bizarreries inhérentes, il faudra donc peut-être adapter les mesures pour s'adapter à la citrouille que vous utilisez.

Étape 1: Matériel requis

Matériaux nécessaires
Matériaux nécessaires
Matériaux nécessaires
Matériaux nécessaires

Pour construire votre propre Pumpktris, vous aurez besoin des éléments suivants: Composants

  • 128 LED ambrées de 5 mm (je les ai utilisées chez Mouser) Achetez-en un peu plus pour couvrir les erreurs ou les tests. J'en ai 140. L'ambre ressemble le plus à la flamme qui serait à l'intérieur d'une citrouille-lanterne traditionnelle, mais vous êtes libre d'utiliser la couleur de votre choix.
  • Microcontrôleur Arduino
  • Gaine thermorétractable 1/16" (11 pieds, ou 256 1/2" pièces de long)
  • Joystick d'arcade avec une poignée amovible (celle-ci de SparkFun a bien fonctionné pour moi)
  • 4 ancrages pour cloisons sèches en nylon #6 Ce n'est pas le genre avec les bascules, mais le genre qui ressemble à des vis avec des filetages profonds
  • 4 vis d'un demi-pouce de la même taille et du même type que celles fournies avec les ancrages pour cloisons sèches. Ceux qui viennent avec les ancres seront trop longs.
  • Boulon de 6 mm x 50 mm (ou toute taille correspondant au support de la poignée de votre joystick)
  • Écrou d'accouplement de 6 mm (ou toute taille nécessaire pour correspondre au boulon ci-dessus) Un écrou d'accouplement ressemble à un écrou ordinaire, mais mesure environ un pouce de long et est utilisé pour joindre deux boulons ou morceaux de tige filetée.

Et enfin, vous aurez besoin d'1 citrouille. Vous n'en avez besoin que d'un, mais je vous en recommande deux pour que vous en ayez un que vous puissiez utiliser pour vous entraîner à percer et à couper. Votre matrice LED va couvrir une zone d'environ 4" de large sur 8" de haut, vous voulez donc une citrouille avec une zone aussi lisse et plate que possible afin que votre matrice ne s'enroule pas trop loin. Vous pourriez utiliser une citrouille en mousse, mais où est la magie là-dedans ? Je ne peux pas parler des techniques de sculpture nécessaires sur une citrouille en mousse. Outils et consommables

  • Fer à souder
  • Souder
  • Pinces coupantes
  • Pince à dénuder
  • Perceuse électrique
  • Scie à métaux
  • Couteau X-Acto
  • Foret 13/64"
  • Foret de 1-1/8" (j'ai utilisé un foret Forstner, mais un foret peut aussi fonctionner)
  • Panneau de noyau de mousse de 1/4"

Étape 2: Construire une matrice LED

Construire une matrice LED
Construire une matrice LED
Construire une matrice LED
Construire une matrice LED
Construire une matrice LED
Construire une matrice LED

Chaque matrice est composée de 64 LED et 128 morceaux de fil. Il est plus facile de couper et dénuder tous les fils de chaque matrice à l'avance. Coupez 112 en morceaux de 2,5" et retirez 1/4" de chaque extrémité. Coupez les 16 restants en morceaux de 12" et dénudez les deux extrémités. Plus vos longueurs de fil sont cohérentes, plus il sera facile à construire et à installer.

Vous commencerez par construire seize chaînes de fils en guirlande à huit segments, chacune avec 7 fils courts et 1 fil long. Torsadez chaque extrémité avec la pièce suivante et soudez. Pour connecter les fils aux LED, vous aurez besoin d'un gabarit pour tenir les LED. Dessinez une grille de 8x8 avec un espacement d'un demi-pouce sur un morceau de carton mousse de 1/4" d'épaisseur, puis utilisez un poinçon pour percer un trou de diamètre légèrement plus petit que la LED à chaque intersection. Vous aurez 64 trous lorsque Vous avez terminé. Dans la rangée supérieure de trous, insérez 8 LED. Le noyau en mousse s'étirera pour s'adapter aux LED et les maintiendra fermement. Alignez les LED de sorte que la jambe la plus longue - le fil de l'anode - soit tournée vers vous sur chacune. Revérifiez, car si vous vous trompez, la matrice ne fonctionnera pas. Fixez chaque fil d'anode à environ 1/4 "de long et étamez-le avec de la soudure pour faciliter la connexion des fils. Coupez 8 morceaux de tube thermorétractable en segments de 1/2". Faites glisser un morceau de tube sur la première connexion filaire, repoussez-le pour qu'il ne soit pas affecté par la chaleur de la soudure, puis soudez la connexion filaire à l'anode LED. Faites glisser le tube vers le bas sur la connexion une fois qu'il est refroidi. Passez à la LED suivante, en répétant sept fois de plus le processus consistant à glisser sur un morceau de tube, à souder la connexion, puis à abaisser le tube sur le joint. Lorsque vous avez un ensemble de huit LED toutes connectées les unes aux autres, retirez-les du gabarit et répétez à nouveau pour sept autres rangées, en vous assurant de faire toutes les connexions au fil d'anode de chaque LED. Vous pouvez utiliser la rangée du gabarit la plus facile à atteindre, puisque vous ne travaillez qu'avec une à la fois. Une fois les huit rangées soudées, il est temps de joindre les colonnes et de créer une matrice. Insérez toutes les chaînes de LED dans le gabarit que vous avez créé. Gardez le long fil sur le même côté de chaque chaîne. Coupez et étamez le fil cathodique de chaque LED dans la première colonne umn, tout comme vous l'avez fait pour construire la chaîne. Prenez une autre chaîne de fils et répétez le processus de soudure aux LED, mais cette fois, vous la connectez à 90 degrés au premier jeu de fils que vous avez fait. Gardez le long fil du même côté de la matrice. Au fur et à mesure que vous remplissez chaque colonne, retirez-la du gabarit en mousse et pliez-la pour permettre l'accès à la colonne suivante. Lorsque vous aurez terminé, vous aurez 64 LED réunies en 8 rangées et 8 colonnes. Malheureusement, vous devez répéter le processus pour la deuxième matrice. Si vous avez besoin d'une pause, passez aux étapes 3, 4 et 5 pour travailler sur le code, puis revenez-y.

Étape 3: Contrôle des LED

Contrôle des LED
Contrôle des LED
Contrôle des LED
Contrôle des LED
Contrôle des LED
Contrôle des LED
Contrôle des LED
Contrôle des LED

Les matrices LED que vous avez créées seront contrôlées par deux mini sacs à dos à matrice LED 8x8 d'Adafruit. Chaque contrôleur vous permet de piloter 64 LED avec seulement deux fils de l'Arduino, et vous pouvez enchaîner plusieurs contrôleurs ensemble sur ces deux mêmes fils. Suivez les instructions fournies avec le sac à dos LED Matrix pour souder l'en-tête d'alimentation/données/horloge à 4 broches. Ensuite, au lieu de souder la matrice LED qui l'accompagne, soudez deux rangées de connecteurs femelles au sac à dos. Branchez la mini matrice LED incluse dans les en-têtes. Branchez la matrice sur une maquette et connectez-la comme suit:

  • Connectez la broche CLK du sac à dos à la broche analogique 5 de l'Arduino.
  • Connectez la broche DAT à la broche analogique 4 de l'Arduino.
  • Connectez GND à la broche de masse de l'Arduino.
  • Connectez VCC+ à l'alimentation 5v.

Téléchargez la bibliothèque Adafruit LED Backpack et les bibliothèques Adafruit GFX et installez-les sur votre ordinateur en les copiant chacune dans le dossier "libraries" du dossier de croquis Arduino de votre ordinateur. Téléchargez le fichier "matrix8x8" sur votre Arduino et vérifiez que le sac à dos LED fonctionne. Les broches de la matrice LED peuvent ne pas établir un bon contact dans les en-têtes femelles, vous devrez donc peut-être les remuer ou les retirer partiellement pour établir le contact et permettre à toutes les lignes et colonnes de s'allumer. Répétez le processus avec le deuxième sac à dos LED, mais cette fois, vous devrez lui définir une nouvelle adresse en soudant un cavalier sur les pastilles A0 du sac à dos. Exécutez à nouveau le code "matrix8x8", mais changez la ligne "matrix.begin(0x70)" en "matrix.begin(0x71)" afin que le code adresse le nouveau sac à dos LED.

Étape 4: connexion du joystick

Connexion de la manette
Connexion de la manette
Connexion de la manette
Connexion de la manette

Votre joystick doit avoir quatre commutateurs avec deux bornes chacun. Lorsque vous déplacez votre joystick vers la droite, il déclenche le commutateur de gauche, lorsque vous le déplacez vers le bas, il déclenche le commutateur du haut, et ainsi de suite. Sur une borne de chaque interrupteur, soudez un fil de 3". Torsadez l'autre extrémité de ces quatre fils ensemble et soudez-les à un fil de 12". C'est le point commun pour les quatre commutateurs. Soudez un fil de 12" à la borne restante de chaque commutateur, puis connectez-les comme suit:

  • Connectez l'interrupteur du bas (activé lorsque vous poussez vers le haut) à la broche analogique 0 de l'Arduino.
  • Connectez le commutateur gauche (activé lorsque vous appuyez à droite) sur la broche analogique 1 de l'Arduino.
  • Connectez le commutateur supérieur (activé lorsque vous appuyez vers le bas) à la broche analogique 2 de l'Arduino.
  • Connectez le commutateur de droite (activé lorsque vous appuyez sur la gauche) à la broche analogique 3 de l'Arduino.
  • Connectez le fil de terre commun à la broche de terre de l'Arduino.

Étape 5: Programmation du jeu

Programmation du jeu
Programmation du jeu

Téléchargez le fichier Pumpktris.ino.zip ci-joint, décompressez-le et ouvrez le fichier dans l'environnement de développement Arduino. Compilez-le et téléchargez-le sur votre Arduino. Vous devriez maintenant pouvoir jouer sur la mini matrice LED que vous avez configurée à l'étape précédente. J'ai essayé de commenter le code autant que possible, mais voici un aperçu général des principaux processus: Décrire les formes Il y a sept tétrominos, chacun avec 4 pixels, et chacun avec quatre rotations possibles. Nous stockons tout cela dans un tableau multidimensionnel: la première dimension constituée des sept formes, la deuxième dimension contenant les quatre rotations pour chaque forme, la troisième contenant quatre descriptions de pixels constituées chacune d'une coordonnée X et Y. Par exemple, ceci décrit la forme "T":/* T */ { /* angle 0 */ { {0, 1}, {1, 1}, {2, 1}, {1, 2} }, / * angle 90 */ { {1, 0}, {1, 1}, {2, 1}, {1, 2} }, /* angle 180 */ { {1, 0}, {0, 1}, {1, 1}, {2, 1} }, /* angle 270 */ { {1, 0}, {0, 1}, {1, 1}, {1, 2} } }

Suivi de la pièce active Pour garder une trace de la pièce actuellement en jeu, le programme maintient une variable activePiece. Il s'agit de l'indice de la forme active au niveau le plus élevé du tableau. Il conserve également une variable de rotation contenant l'indice de la rotation en cours. Une variable xOffset suit la distance à gauche ou à droite (0-7) de chaque pièce, et yOffset suit à quelle distance (0-15) la planche est tombée. Pour dessiner la pièce active, le programme ajoute les valeurs de décalage X et Y aux coordonnées X et Y de chaque pixel tiré de la rotation actuelle de la pièce sélectionnée. Suivi des pièces fixes Le programme utilise un tableau de 16 octets pour garder une trace de la pièce fixe morceaux, chaque octet représentant une ligne. Par exemple, le tableau ci-dessous représenterait une forme en L située au centre des deux rangées du bas (comme indiqué par les 1 dans les deux derniers octets): byte sampleGrid[16]= { B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00100000, B00111000}; Détection de collision Lorsqu'une tentative est faite pour déplacer la pièce active, le programme vérifie d'abord la nouvelle position par rapport au tableau de pièces fixes. S'il n'y a pas de collisions, le déplacement est autorisé et la matrice est redessinée. Si une collision est détectée lors d'une tentative de déplacement vers la gauche, la droite ou une rotation, l'action est interdite. Si une collision est détectée lors d'une tentative de chute d'une pièce, la pièce devient fixe dans sa position et est ajoutée au tableau de pixels fixes. Déposer des pièces automatiquement Le rythme du jeu est contrôlé par les variables GravityTrigger et stepCounter. Chaque boucle du programme incrémente stepCounter, et chaque fois que stepCounter atteint le nombre stocké dans GravityTrigger, il laisse tomber la pièce active d'un niveau. Au fur et à mesure que le jeu progresse, le GravityTrigger est diminué de sorte que la pièce active tombe de plus en plus fréquemment jusqu'à ce qu'elle tombe finalement dans chaque boucle du programme. Chaque fois qu'une pièce active est fixée sur la grille, le programme vérifie les octets/lignes pleins (B11111111). S'il en trouve, il les fait clignoter trois fois, puis les supprime et laisse tomber les rangées au-dessus pour combler le vide. Dépannage Si les pièces ne tombent pas de haut en bas, mais vont plutôt d'un côté à l'autre, changez valeur passée dans les lignes "matrixTop.setRotation(1);" et/ou "matrixBottom.setRotation(1);" dans la boucle "setup()". Si les pièces commencent dans la mauvaise matrice, changez l'emplacement physique de chaque matrice ou inversez les adresses déclarées dans le "matrixTop.begin(0x70);" et "matriceBottom.begin(0x71);" lignes de la boucle "setup()". Si certaines lignes ou colonnes ne s'allument pas, remuez la mini matrice LED dans les en-têtes femelles. Il se peut qu'ils n'établissent pas un bon contact.

Étape 6: connexion de votre matrice LED

Connexion de votre matrice LED
Connexion de votre matrice LED
Connexion de votre matrice LED
Connexion de votre matrice LED
Connexion de votre matrice LED
Connexion de votre matrice LED

Lorsque tout le code et les commandes ont été vérifiés comme fonctionnant avec les mini matrices LED, il est temps de brancher les grandes matrices LED que vous avez soudées vous-même.

Vous pouvez brancher chaque fil dans les en-têtes du sac à dos matriciel individuellement, mais vous ferez probablement beaucoup de branchement et de débranchement, ce qui pourrait devenir un vrai problème. Au lieu de cela, vous souhaitez souder chaque fil sur une bande d'en-tête mâle et le brancher dans le sac à dos de la matrice. J'ai monté les bandes d'en-tête sur un morceau de carte de prototypage afin de pouvoir brancher et débrancher les 16 broches ensemble. Les rangées 1 à 4 se connectent aux broches 1 à 4 du sac à dos matriciel (la numérotation des broches commence en haut à gauche lorsque vous regardez le sac à dos avec les broches d'alimentation/masse/données/horloge à 4 broches en haut). Les colonnes 1-4 se connectent aux broches 5-8. La numérotation des broches s'enroule de sorte que la broche 9 se trouve en bas à droite. Les lignes 5-8 se connectent aux broches 12-9 et les colonnes 5-8 se connectent aux broches 16-13. Voir le schéma pour plus de clarté. Branchez chaque matrice dans un sac à dos et exécutez le même programme "matrix8x8" que vous avez fait pour les mini matrices LED à l'étape 4. Si chacune fonctionne, vous pouvez charger le programme de jeu. Si cela ne fonctionne pas, vérifiez que les lignes et les colonnes de la grande matrice LED sont branchées sur les bonnes broches du sac à dos. Le montage de la matrice LED dans le gabarit en mousse que vous avez conçu pour l'assemblage peut faciliter le test de l'ensemble du système.

Étape 7: Sculpter la citrouille

Sculpter la citrouille
Sculpter la citrouille
Sculpter la citrouille
Sculpter la citrouille
Sculpter la citrouille
Sculpter la citrouille

Ne faites aucune sculpture sur la citrouille tant que tous vos appareils électroniques ne fonctionnent pas. Une citrouille sculptée a une durée de vie limitée, et si vous la sculptez d'abord et que vous passez ensuite 2 jours sur l'électronique, c'est deux jours de plaisir de jeu que vous avez perdus.

Trouvez le côté le plus plat de la citrouille afin que votre panneau LED ne s'enroule pas trop loin, puis découpez une ouverture sur le côté opposé. Être généreux; vous allez avoir besoin d'espace pour mettre vos mains là-dedans pour travailler. Vous n'allez pas couper le haut comme sur une citrouille traditionnelle car cela doit être laissé intact pour le joystick. La pâte de citrouille et l'électronique ne sont pas les meilleurs amis du monde, alors nettoyez bien l'intérieur. Pour les plus belles Pumpktris, vous voulez que votre grille de LED soit droite et bien alignée avec la citrouille. Un PDF est joint avec un espacement de 8 x 16, à un demi-pouce d'intervalle. Imprimez ceci (ou créez le vôtre avec votre propre espacement), découpez les bords et collez-le sur le devant de la citrouille. Assurez-vous qu'il est droit de haut en bas. Avec un clou, un cure-dent ou un autre outil similaire, percez un trou pilote au centre de chaque LED marquée sur le papier. Il n'est pas conseillé de percer directement à travers le papier car il est susceptible de se déplacer ou de se déchirer. Une fois que tous les trous pilotes ont été percés, retirez le gabarit en papier et utilisez un foret de 13/64" dans votre perceuse électrique pour percer chaque trou. N'alignez pas la perceuse perpendiculairement à la face de la citrouille! Si vous faites cela, le La courbure de la citrouille peut provoquer la rencontre de trous espacés d'un demi-pouce à l'extérieur à l'intérieur et il sera difficile d'insérer les LED. Essayez plutôt de garder tous les trous parallèles. Lorsque tous les trous sont percés, utilisez votre couteau X-Acto pour découper un "pixel" carré autour de chaque trou. Inclinez le couteau vers le centre de chaque trou et laissez environ 1/8" entre les pixels. Je suggère d'acheter une citrouille d'entraînement et de l'utiliser pour perfectionner votre technique de perçage et de sculpture de pixels. Maîtrisez-le avant de tenter votre chance en ruinant la citrouille parfaite que vous avez trouvée pour le produit fini.

Étape 8: montage de la tige sur le joystick

Montage de la tige sur le joystick
Montage de la tige sur le joystick
Montage de la tige sur le joystick
Montage de la tige sur le joystick
Montage de la tige sur le joystick
Montage de la tige sur le joystick
Montage de la tige sur le joystick
Montage de la tige sur le joystick

Vous allez maintenant adapter la tige pour qu'elle soit utilisée comme un joystick pour contrôler le jeu.

Coupez la tige le plus près possible de la base. Si la coupe n'est pas lisse et propre, utilisez un bloc de ponçage pour l'aplatir. Percez un trou de 1-1/8" directement à travers la base de la tige et dans la citrouille. Dévissez la boule du joystick et alignez l'arbre avec le centre du trou de l'intérieur de la citrouille. Assurez-vous que l'avant de le joystick est carré avec la face avant de la citrouille-lorsque vous jouez, vous voulez pousser à gauche et à droite pour déplacer les pièces, pas à un angle. Quand il est centré et carré, utilisez un clou ou un cure-dent pour percer des trous à l'intérieur de la citrouille au-dessus des trous de montage dans la base du joystick. Retirez le joystick. Avec vos pinces coupantes, coupez les pointes expansibles des ancrages pour cloisons sèches de sorte qu'elles soient plus courtes que l'épaisseur de la peau de la citrouille. Vissez ces ancrages pour cloisons sèches raccourcis et retroussés dans les avant-trous que vous avez faits. Les détails de la partie suivante dépendront du joystick que vous avez acheté. Celui que j'ai utilisé chez SparkFun avait une fixation de 6 mm pour la poignée sphérique qui sera remplacée par la potence. Si votre joystick est différent, utilisez n'importe quelle taille d'écrous et de boulons. centre de la tige et percez un trou de 13/64" (de la même taille que vous avez utilisé pour les trous de LED, par coïncidence) d'environ un pouce directement dans la tige. Ce serait une bonne étape à tester sur votre citrouille d'entraînement, pour vous assurer que le boulon se visse fermement dans le trou. Coupez la tête d'un boulon de 6 mm x 50 mm avec une scie à métaux. Mettez de l'époxy ou de la colle à bois sur les filets près de l'extrémité coupée de la vis et vissez-la dans la tige. Vous en voulez environ un pouce dans la tige et un pouce à l'extérieur. Vissez l'écrou d'accouplement de 6 mm sur l'arbre du joystick, mais ne montez pas encore le joystick dans la citrouille.

Étape 9: Placement de la LED et du joystick

Emplacement des LED et des joysticks
Emplacement des LED et des joysticks

Depuis l'intérieur de la citrouille, insérez les LED rangée par rangée dans leurs trous jusqu'à ce que leurs bases affleurent la surface intérieure de la citrouille. Lorsque tous sont en place, utilisez une brochette en bambou pour les pousser plus profondément vers l'avant. J'ai laissé leur bord avant à environ 1/4" à 3/8" sous la surface extérieure. S'ils sont trop loin sous la surface, la lumière se répandra dans la chair de la citrouille et chaque pixel sera moins distinct.

Ajoutez une couche de pellicule plastique sur le dessus du joystick, avec l'arbre lui-même qui passe à travers. Cela empêchera au moins un peu d'humidité de s'y infiltrer. Fixez le joystick avec des vis 1/2 dans les ancrages pour cloisons sèches. Les vis fournies avec les ancrages seront trop longues et passeraient à travers la citrouille.

Étape 10: Jouer au jeu

Jouer le jeu
Jouer le jeu

Placez un bol ou un récipient en plastique pour ranger les aliments au bas de la citrouille pour empêcher tout appareil électronique suspendu de toucher le fond. Branchez le joystick dans votre Arduino, les sacs à dos LED dans l'Arduino et les matrices LED dans les sacs à dos. Branchez une source d'alimentation sur votre Arduino. Maintenant, jouez-vous des Pumpktris!Idées pour une exploration plus poussée Au lieu de monter le joystick sur le dessus de la citrouille avec les LED, vous pouvez utiliser une citrouille à distance, soit sans fil, soit avec un câble décoré pour ressembler à une vigne. Au lieu d'un jeu, vous pouvez afficher des messages défilants sur votre citrouille-lanterne. Vous voudrez peut-être monter les matrices sur le côté (16 de large sur 8 de haut), ou même n'utiliser qu'une seule matrice. La pourriture inévitable Votre citrouille finira par pourrir et germer des moisissures et des champignons. Cela pourrait être dangereux pour votre santé et entraîner des problèmes dans vos appareils électroniques. Il est préférable de retirer tous vos appareils électroniques une fois que vous voyez une croissance sur ou dans la citrouille, afin de pouvoir les réutiliser plus tard sans avoir besoin d'un nettoyage Haz-Mat.

Concours de décorations d'Halloween
Concours de décorations d'Halloween
Concours de décorations d'Halloween
Concours de décorations d'Halloween

Deuxième prix du concours de décorations d'Halloween

Conseillé: