Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:46
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
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
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
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
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
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é:
Horloge Word Arduino RGB Budget ! : 7 étapes (avec photos)
Budget Arduino RGB Word Clock ! : Bonjour à tous, voici mon guide sur la façon de créer votre propre & word clock pas cher ! Outils dont vous aurez besoin pour ce projet Fer à souder & Fils à souder (idéalement au moins 3 couleurs différentes) Imprimante 3D (Ou accéder à une, vous pouvez aussi
LCD Invaders : un jeu de type Space Invaders sur écran LCD 16x2 : 7 étapes
LCD Invaders : un jeu de type Space Invaders sur écran LCD 16x2 : Il n'est pas nécessaire de présenter un jeu légendaire « Space Invaders ». La caractéristique la plus intéressante de ce projet est qu'il utilise l'affichage de texte pour la sortie graphique. Il est réalisé en implémentant 8 caractères personnalisés. Vous pouvez télécharger l'Arduino complet
Space Invaders en Micropython sur Micro:bit : 5 étapes
Space Invaders en Micropython sur Micro:bit : Dans nos articles précédents, nous avons exploré la création de jeux sur GameGo, une console de jeu rétro portable développée par TinkerGen Education. Les jeux que nous avons créés rappellent les anciens jeux Nintendo. Dans l'article d'aujourd'hui, nous allons prendre du recul, pour
ESP8266 Horloge réseau sans RTC - Nodemcu NTP Horloge Pas de RTC - PROJET HORLOGE INTERNET : 4 étapes
ESP8266 Horloge réseau sans RTC | Nodemcu NTP Horloge Pas de RTC | PROJET D'HORLOGE INTERNET: Dans le projet, un projet d'horloge sans RTC prendra du temps sur Internet en utilisant le wifi et l'affichera sur l'écran st7735
Lustre Space Invaders avec action Glow in the Dark : 16 étapes (avec photos)
Lustre Space Invaders avec action Glow in the Dark : utilisez la modélisation/impression 3D, l'acrylique découpé au laser, le moulage de résine, les pigments réactifs aux UV, les LED et un câblage simple pour créer un lustre ou une lampe de style envahisseur de style rétro et cool. J'ai inclus une astuce sympa pour faire des coins incurvés à partir de laser cu