Table des matières:

Horloge Space Invaders (sur un budget!): 6 étapes (avec photos)
Horloge Space Invaders (sur un budget!): 6 étapes (avec photos)

Vidéo: Horloge Space Invaders (sur un budget!): 6 étapes (avec photos)

Vidéo: Horloge Space Invaders (sur un budget!): 6 étapes (avec photos)
Vidéo: История Студии GAINAX: Жизнь до Евангелиона 2024, Juillet
Anonim
Image
Image
Rassembler des pièces
Rassembler des pièces

Récemment, j'ai vu une version sympa de GeckoDiode et j'ai immédiatement voulu la construire moi-même. L'Instructable est Space Invaders Desktop Clock et je vous recommande d'y jeter un œil après avoir lu ceci.

Le projet a été presque uniquement construit à partir de pièces provenant d'Adafruit avec un boîtier imprimé en 3D et une façade découpée au laser. Tout additionner le coût de la construction devient très coûteux ! (environ 100 £ ou plus). Le problème est que si vous ne possédez pas d'imprimante 3D, vous devez payer pour faire imprimer votre modèle, ou acheter un boîtier moche sur ebay qui est souvent juste un peu trop petit, trop étroit, trop court, ou le contraire.

La plupart de mes constructions doivent être réalisées avec un budget amateur et les boîtiers finissent toujours par être la pièce la plus chère. J'ai donc décidé de construire la même horloge mais avec un budget décent.

Si vous aimez regarder des horloges étranges, jetez un œil à mon horloge voltmètre Steampunk, qui utilise les mêmes matériaux de construction pour le boîtier:-)

Étape 1: Rassemblez les pièces

Pour réaliser ce projet, vous aurez besoin des éléments suivants. Gardez à l'esprit qu'avec les matériaux de l'enceinte, vous aurez BEAUCOUP de restes que vous pourrez utiliser dans d'autres projets (ce qui rend le coût des futures constructions encore moins cher). J'ai téléchargé des fichiers PDF des éléments dont vous avez besoin si vous souhaitez vérifier le prix, etc. sur ebay.

Outils (je suppose que vous les aurez déjà)

  • Fer à souder
  • Souder
  • Pompe à souder (si vous faites une erreur et devez retirer la soudure)
  • Pistolet à colle chaude
  • Bâtons de colle chaude
  • Couteau artisanal (alias couteau Stanley)
  • Règle / mètre ruban / pied à coulisse
  • Perceuse sans fil + forets (1 mm à 13 mm)
  • Multi-outil rotatif avec disque de coupe (alias Dremel)
  • Liquide de nettoyage comme l'alcool isopropylique (un après-rasage bon marché fonctionne aussi)
  • Masque de sécurité (utilisé lors de la peinture au pistolet)

Électronique (Coût de l'électronique = 13,05 £)

Certains d'entre eux étaient gratuits. Les vieux jouets électroniques ont ces belles enceintes en Mylar à l'intérieur si vous les démontez. Pendant que vous y êtes, vous pouvez probablement obtenir un baril DC et un bouton-poussoir aussi.

  • Câbles Dupont / Jumper - 0,99 £
  • Module d'horloge en temps réel DS1307 - 0,99 £ (je recommanderais d'acheter DS3231 à la place, le cas échéant)
  • Câble Arduino nano + USB - 2,23 €
  • Haut-parleur Mylar 8 Ohms - 0,99 £
  • Bouton poussoir momentané SPST - 1,49 £
  • Douille canon CC 5,5 mm - 1,26 €
  • Alimentation 5v, 0,5A CC - 2,83 €
  • Affichage matriciel MAX7219 - 3,76 €

Boîtier (Coût des matériaux du boîtier = 17,19 £)

  • Tuyau de vidange carré de 60 mm - 5,99 £ (il vous en restera BEAUCOUP pour d'autres projets)
  • Peinture noire en aérosol - 4,85 £
  • PVC noir (panneau de mousse) - 2,99 £
  • Super colle - 0,99 £
  • Embouts 60 mm - 2,37 €

Coût total = 30,24 £:-) …….. à ce jour, cela équivaut à 38 USD pour tous les lecteurs internationaux.

J'aime travailler avec le tuyau carré en PVC. Ils sont faciles à percer, couper, peindre, et j'en ai utilisé un pour mon horloge Steampunk.

Étape 2: Préparez votre tuyau de vidange

Préparez votre tuyau de vidange
Préparez votre tuyau de vidange

Marquez où vous voulez mettre les choses

C'était si facile. Je n'ai rien utilisé d'extraordinaire. J'ai d'abord coupé la longueur de 2,5 m à une taille raisonnable pour mon banc à la maison (environ 30 cm) avec une scie à métaux. J'ai ensuite coupé cela avec un dremel pour rendre les bords bien droits. Ensuite, j'ai posé les composants sur la surface du tuyau et j'ai utilisé un marché permanent pour marquer l'endroit où je voulais percer et couper. J'ai tracé l'extérieur de la matrice LED et utilisé un outil multifonction rotatif pour découper un trou carré afin qu'il s'ajuste parfaitement. J'ai utilisé un pied à coulisse numérique pour mesurer le diamètre du bouton-poussoir et du canon CC pour couper les trous de la bonne taille à l'arrière et sur le dessus.

Couper une lunette

J'ai des tas de panneaux de mousse PVC qui traînent de projets précédents. Ils sont parfaits pour monter des circuits dans des boîtiers, les utiliser pour mélanger de l'époxy dessus et faire d'autres morceaux et bobs. Prenez un morceau de format A4 ou A5 et découpez un contour ou une lunette carrée de 5 mm pour encadrer la matrice LED. Cela masquera toutes les extrémités bancales que vous avez faites lors de la découpe du trou carré pour la matrice. Pour cela, j'ai dessiné un petit modèle sur Inkscape et l'ai imprimé (fichier SVG joint). Je l'ai ensuite collé avec du ruban adhésif sur le carton mousse et j'ai soigneusement coupé le contour avec un cutter. C'est difficile à faire correctement, je recommande de couper d'abord l'intérieur puis l'extérieur.

Peignez tout

Une fois tous les trous percés et coupés, retirez les bords ébarbés. Nettoyez les surfaces avec des lingettes imbibées d'alcool pour éliminer toute poussière ou pollution (ou un après-rasage bon marché si vous n'avez pas d'IPA). Essayez de vaporiser dans un endroit bien ventilé et utilisez un masque si possible. Je l'ai fait à l'extérieur avec du carton sur le sol mais ce n'est pas idéal, même une petite brise peut faire retomber la peinture sur votre visage. Soyez prudent et portez un équipement de protection si possible.

Vaporisez le tuyau, la lunette et les embouts pour qu'ils soient tous du même type de noir, puis laissez sécher pendant quelques heures.

Étape 3: programmer l'Arduino

Programmer l'Arduino
Programmer l'Arduino

Quelques informations sur le code

Merci à GeckoDiode car j'ai pris son code et l'ai modifié pour qu'il fonctionne avec la puce MAX7219. La version Adafruit utilise le bus I2C et le MAX utilise le bus SPI. Pour cela, j'ai utilisé la bibliothèque MaxMatrix, que j'ai téléchargée et installée dans l'IDE Arduino. Si vous souhaitez en savoir plus sur MaxMatrix et sur le fonctionnement de la matrice LED, il existe un très court tutoriel sur HowToMechatronics.com. La matrice LED est uniquement composée d'une seule couleur de LED plutôt que d'avoir un affichage multicolore.

Une frustration que j'ai eue est qu'il n'y a AUCUNE définition claire de ce que sont les fonctions de la bibliothèque et quels arguments doivent être passés dans chacune. Heureusement, j'ai pu découvrir ce qui faisait quoi par essais et erreurs et au final, il n'a pas été trop difficile de le faire fonctionner correctement. La première chose à comprendre est que vous devez définir le nombre de modules 8x8 dans votre matrice. Dans mon code, cela est stocké dans un entier appelé "modules" comme ceci:

"entiers modules = 4;"

C'est le NOMBRE de modules 8x8 que vous avez reliés ensemble dans votre écran. Pas le nombre de LED ou la broche que vous utilisez pour envoyer les données. La prochaine chose à retenir est que si votre "sprite" ou quoi que ce soit couvre les quatre matrices, le tableau d'octets doit être défini comme ceci:

"byte text_start_bmp = {32, 8, …*quelques données d'octet*…};"

Les nombres indiquent le nombre de lignes et de colonnes dans la matrice. A cette occasion l'octet nommé "text_start_bmp" est affiché sur 32 colonnes et 8 lignes. Les nombres ne sont affichés que sur une seule matrice 8x8, donc le nombre de minutes 10 ressemble à ceci:

"byte minute_ten_bmp = {8, 8, …*quelques données d'octet*…};"

Les envahisseurs couvrent deux matrices, donc l'octet recevra 16, 8 dans les données d'octet.

L'autre chose qui m'a surpris était le positionnement des données du sprite. Vous pouvez demander à l'Arduino d'afficher le sprite dans une position X/Y différente sur la matrice de la position d'origine par défaut. Le code ressemble à ceci pour la minute zéro:

"matrix.writeSprite(8, 0, minute_zero_bmp);"

Un nombre est l'ajustement X et un autre est Y. Je ne me souviens plus lequel est lequel maintenant, mais si vous voulez déplacer le sprite vers le haut ou vers le bas d'une ligne ou colonne, vous incrémentez simplement le nombre positif ou négatif. Assez simple pour une matrice 8x8, mais lorsque votre sprite couvre plus d'une matrice, vous devez définir la position d'origine en conséquence. Le sprite "POP" est montré ci-dessous:

"matrix.writeSprite (16, 0, invader_pop_bmp);"

Remarquez maintenant comment la position d'origine est 16 et non 8 ? Ici, le code indique que le sprite est affiché de gauche à droite à partir de la position ligne/colonne 16. Il considère deux affichages 8x8 comme un seul affichage 16x8 même s'il y en a 4 ! Par conséquent, il est important de penser au nombre d'affichages sur lesquels le sprite sera affiché et de dimensionner le tableau d'octets de chaque sprite en conséquence. Sinon vous aurez des sprites très intéressants !

DS1307 RTC

Bien que le DS1307 fonctionne correctement avec la bibliothèque Adafruit RTClib.h, vous ne pouvez pas régler manuellement l'heure, ce qui est pénible. Je suis juste allé avec ça parce que cela signifiait moins de code à changer. Le DS1307 règle l'heure en utilisant l'heure et la date à laquelle le code a été compilé à partir de l'heure de votre ordinateur. Au lieu de cela, apprenez à utiliser la bibliothèque DS3231 et configurez-la une ou deux minutes à l'avance. Il a également moins de "dérive", donc il garde mieux le temps au fil du temps. Les deux modules utilisent le bus I2C et je pense que le DS3231 peut être utilisé avec le RTClib.h si vous souhaitez continuer à l'utiliser.

Téléchargez le code

Une fois que vous êtes satisfait du code, téléchargez-le sur l'Arduino. J'ai joint mon croquis Arduino pour votre considération.

Étape 4: Assemblage de l'électronique

Assemblage de l'électronique
Assemblage de l'électronique

Lors du téléchargement du code, je recommanderais d'abord d'assembler l'électronique avec des fils dupont / cavaliers sur une planche à pain. Ainsi, lorsque vous téléchargez le code, vous savez que tout fonctionne comme prévu. Cela vous permet de résoudre tout problème d'affichage des sprites, etc. avant de commencer à coller et à coller. Dans mon code, vous pouvez voir que j'utilise les broches numériques 4, 5, 6, 7, 9, mais vous pouvez les modifier si nécessaire. Vous devrez peut-être souder des câbles sur le bouton, la prise CC et le haut-parleur, mais la majorité devrait être des connecteurs faciles à insérer.

Une fois que vous êtes satisfait que l'électronique fonctionne comme prévu, vous devriez envisager de souder les connexions. Vous pouvez le faire avec un stripboard/veroboard en cuivre, mais pour la petite quantité de composants, vous pouvez souder directement sur les broches de l'Arduino. Cela ressemblera à un nid de rats mais personne ne verra l'intérieur de l'enceinte une fois qu'il sera assemblé de toute façon, assurez-vous simplement que toutes les pièces métalliques sont séparées, vous ne voulez pas que quelque chose court-circuite dans le boîtier.

J'ai fait fonctionner le bouton-poussoir lorsque la broche "mainButton" est tirée vers le bas. J'ai trouvé que l'Arduino reconnaissait un faux bouton-poussoir enfoncé lorsque l'électronique flottante s'y installait. L'utilisation d'une résistance pulldown de 10K sur le bouton-poussoir et le réglage de la broche sur "INPUT_PULLUP" ont résolu ce problème pour moi.

Ci-joint le schéma en PDF et-p.webp

Étape 5: Monter l'électronique et fermer

Monter l'électronique et fermer
Monter l'électronique et fermer
Monter l'électronique et fermer
Monter l'électronique et fermer

Pour mon horloge j'ai monté l'électronique avec de la colle chaude, mais attention à ne pas en mettre trop (l'électronique n'aime pas chauffer trop longtemps). J'ai utilisé une petite goutte de super colle parsemée autour de la lunette et l'ai pressée contre le devant. J'ai terminé le boîtier en enfonçant les embouts à chaque extrémité. Bien sûr, vous pouvez coller les embouts pour enfermer complètement l'assemblage, mais j'ai laissé un côté du mien ouvert afin que je puisse toujours accéder au port USB de l'arduino pour réinitialiser la date et l'heure à l'avenir.

Étape 6: Profitez

Prendre plaisir
Prendre plaisir
Prendre plaisir
Prendre plaisir

Dans l'ensemble, je suis satisfait de la façon dont cela est sorti, considérant qu'il ne s'agit que d'un tuyau de gouttière et de peinture en aérosol. J'espère que vous l'aimerez et faites-moi savoir si vous pouvez penser à des améliorations intéressantes qui peuvent être ajoutées. Je serais intéressé de savoir si quelqu'un peut le rendre moins cher ou s'il existe un autre moyen économe de fabriquer un boîtier que je peux essayer dans mon prochain projet.

Conseillé: