Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Construire un superbe cube LED 5x5x5 avec Arduino Mega

Composants et fournitures

Arduino Mega 2560 × 1
LED bleues × 125
Transistor NPN NTE85 × 5
Fil de cuivre étamé calibre 22 × 1
Résistance 180 Ω, ¼ W × 25
Plaque d'essai 9 cm × 15 cm × 1
Résistance 330 Ω, ¼ W × 5
Alimentation 9 V pour Mega (optionnelle) × 1

Outils et machines nécessaires

Applications et services en ligne

À propos de ce projet

Introduction

La plupart des gens adorent les cubes LED, mais les grands modèles (8×8×8) demandent beaucoup de travail, tant pour la construction que pour la programmation. Les petits cubes (3×3×3 ou 4×4×4) sont faciles à réaliser car ils ne nécessitent ni grand nombre de LED, ni matériel externe comme des registres à décalage ou des drivers haute tension. Pourtant, ils n'offrent pas la même expérience visuelle qu'un grand cube.

Mon objectif était de créer un cube facile à construire, puis d'écrire suffisamment de logiciel pour profiter des effets d'un grand cube sans la corvée de construction. Voici donc un cube 5×5×5 alimenté directement par un Arduino Mega, sans registres à décalage ni matériel auxiliaire, sauf 5 transistors (pour tirer les cathodes d'une couche complète – 25 LED – vers la masse). Pourquoi éviter les registres à décalage ? Parce qu'ils sont horribles à câbler à la main (j'ai essayé). Il faut vraiment concevoir et fabriquer un circuit imprimé pour les utiliser proprement.

J'ai déjà écrit beaucoup de code pour de gros cubes, j'ai donc adapté plusieurs animations existantes pour ce cube 5×5×5.

Note : Je ne suis pas le premier à proposer un cube 5×5×5 piloté par un Mega. MEGA DAS a publié un projet similaire en 2017. Le matériel est quasi identique. Je ne l'avais pas vu avant de rédiger cet article, donc mes broches et valeurs de résistances diffèrent, mais le principe reste le même. Je publie ceci surtout parce que j'ai une grande expérience dans l'écriture de logiciels pour cubes, et j'espère que mon code incitera quelques personnes à se lancer !

La vidéo ci-dessus montre une fonction sinus où l'amplitude est sur l'axe Z et le temps représenté par la distance horizontale depuis le centre du cube. C'est un grand classique sur les gros cubes, et ça rend plutôt bien sur ce 5×5×5 !

J'inclus deux autres vidéos montrant les mêmes 14 animations. Je ne sais pas laquelle est meilleure, alors je mets les deux. Et au cas où ce ne serait pas évident : les cubes sont bien plus impressionnants en vrai qu'en vidéo !

Matériel

Le Mega dispose de nombreuses broches numériques. Nous en utilisons 5 pour piloter les transistors qui connectent les cathodes de chaque couche à la masse, et 25 autres pour commander les anodes des 25 LED d'une couche. Avec cette approche, le Mega a assez de broches pour un cube 6×6×6. L'autre contrainte, si l'on veut rester simple, est l'alimentation. Les limites du Mega sont 40 mA par broche et 200 mA total sur toutes les broches. Les LED bleues ont une chute de tension d'environ 3 V, nos transistors à cathode commune ajoutent 0,7 V. Avec une alimentation 5 V et une résistance de 180 Ω, chaque LED tire 7,2 mA. 25 LED par couche consomment 180 mA si toutes sont allumées. Nous n'activons qu'une couche à la fois, donc nous respectons les limites du Mega, à condition d'utiliser des transistors NPN pour tirer toutes les cathodes d'une couche vers la masse. Le courant de base d'un transistor ajoute 5 mA à la charge totale, mais on reste sous 200 mA (environ 185 mA). C'est pourquoi j'ai choisi des résistances de 180 Ω pour accompagner nos LED.

Construire un superbe cube LED 5x5x5 avec Arduino Mega
Connexion des broches numériques du Mega au cube

Le schéma ci-dessus montre comment les broches numériques du Mega se connectent au cube. Les broches 22–26 pilotent les transistors qui connectent les cathodes des LED à la masse. Les broches 27–51 passent par les résistances de 180 Ω vers les anodes des 25 LED d'une couche.

Vous vous demandez peut-être pourquoi cet arrangement de broches semble déroutant. Mon logiciel utilise l'accès direct aux ports plutôt que digitalWrite pour configurer les anodes, c'est-à-dire pour allumer ou éteindre chacune des 25 LED d'une couche. Cela fait gagner beaucoup de temps et les LED restent allumées plus longtemps que si l'on passait du temps à faire des digitalWrite. Les broches sont donc arrangées pour faciliter les références à ces ports numériques plutôt que les numéros de broches réels. Plus de détails quand nous aborderons le logiciel.

Construction du cube

Il existe de nombreuses opinions sur la façon de construire un cube, quelle que soit sa taille. La tâche est fastidieuse quelle que soit l'approche. Il faut faire preuve de soin et de patience pour obtenir un bon résultat. Je vais vous montrer ma méthode, mais d'autres instructions existent en ligne si vous préférez.

La construction commence par le formage des pattes et le soudage des LED en colonnes de 5. Ensuite, on forme des panneaux en soudant 5 colonnes ensemble, et enfin on assemble le cube en soudant 5 panneaux. Ceux qui n'ont jamais construit de cube ne réalisent pas à quel point il est difficile d'obtenir un cube parfait. De petites erreurs d'angle des pattes s'accumulent rapidement et même de légères différences d'espacement sont facilement visibles. L'étape de formage des pattes est donc cruciale. Si vous prenez votre temps et le faites bien, vous n'aurez pas un cube parfait, mais un cube présentable.

Construire un superbe cube LED 5x5x5 avec Arduino Mega
Les anodes (pattes longues) sont pliées sur le côté pour permettre le soudage en colonnes verticales

Les anodes sont les pattes plus longues des LED et elles vont vers le bas, mais elles doivent être pliées sur le côté de la LED pour que les anodes des rangées verticales puissent être soudées ensemble. Le décalage de l'anode et la patte de cathode doivent être à 90° l'un de l'autre, comme le montrent ces photos.

Je trouve personnellement le formage des pattes à la fois fastidieux et fatigant pour les mains, donc je forme les pattes de 25 LED puis je construis un panneau. Vous aurez besoin d'un gabarit pour faire les colonnes et les panneaux. J'utilise du Blue Tack, une pâte adhésive réutilisable. On y enfonce les LED qui restent en place pendant le soudage des colonnes et des panneaux. Les empreintes permettent de répéter ces opérations avec exactement les mêmes espacements. Il est important de tout mesurer très soigneusement la première fois. J'ai utilisé un espacement de 0,6 pouce (≈15,24 mm) entre les LED dans les trois directions, ce qui permet d'insérer le cube fini dans une plaque à trous standard de 0,1 pouce.

Construire un superbe cube LED 5x5x5 avec Arduino Mega
Assemblage d'un panneau de 5×5 LED
Construire un superbe cube LED 5x5x5 avec Arduino Mega

Note sur le soudage des LED : Le cauchemar de tout constructeur de cube est de découvrir une soudure froide à l'intérieur du cube une fois terminé, là où on ne peut plus accéder ! Prenez soin au fur et à mesure de vérifier que les soudures sont bonnes sur chaque colonne de LED que vous construisez.

Construire un superbe cube LED 5x5x5 avec Arduino Mega
Construire un superbe cube LED 5x5x5 avec Arduino Mega

Une fois chaque panneau terminé, il est temps de le tester. Encore une fois, c'est parce que découvrir une soudure froide ou une LED défectueuse quand le cube est fini serait catastrophique !

Dans le logiciel, j'ai inclus un petit sketch pour tester un panneau. Pour ce test, il faut connecter les 5 pattes d'anode verticales à 5 résistances (330 Ω ou similaire) puis ces résistances aux broches 40–44 (les broches d'anode de la colonne 0). Ensuite, connecter les 5 pattes de cathode aux broches normalement utilisées pour piloter les cathodes, broches 22–26. Un bon panneau ressemblera à la vidéo ci-dessus. (Note : nous n'utilisons pas encore de transistors pour piloter les cathodes, donc cette routine de test met les cathodes à l'état bas pour allumer une LED. Une fois les transistors installés, nous ferons l'inverse : piloter les cathodes à l'état haut pour activer les transistors qui tirent alors les cathodes à l'état bas.)

Quand nous avons 5 panneaux construits et testés, nous sommes prêts à assembler le cube, mais d'abord nous devons préparer la plaque en insérant et connectant toutes les résistances et transistors requis.

Construire un superbe cube LED 5x5x5 avec Arduino Mega
Résistances de 180 Ω à côté de chaque colonne d'anode, transistors de cathode et leurs résistances de base entre le cube et le Mega

J'ai placé les résistances de 180 Ω juste à côté de chaque colonne d'anode et les transistors de cathode avec leurs résistances de base dans l'espace entre le cube et le Mega. L'espacement entre les colonnes d'anode est de 0,6 pouce dans les deux directions, donc 5 trous vides sur la plaque entre chaque trou avec une colonne d'anode.

C'est le bon moment pour mettre l'Arduino sur la plaque. Il peut être monté sur des entretoises si vous en avez. J'ai simplement utilisé un petit morceau de plastique et un peu de colle pour fixer mon Mega à environ 6 mm au-dessus de la plaque.

Les panneaux sont ensuite fixés sur la plaque principale. Assurez-vous que chaque colonne d'anode est bien dans le bon trou avant de souder, car une erreur d'un seul trou sera visible dans le cube fini. Et veillez à garder tous les panneaux orientés dans le même sens, c'est-à-dire que toutes les pattes de cathode sortent du même côté.

Construire un superbe cube LED 5x5x5 avec Arduino Mega

Ensuite, nous devons connecter les panneaux entre eux à chaque couche, de sorte que toutes les cathodes d'une même couche soient connectées. Cela se fait avec un morceau de fil de cuivre étamé redressé reliant les cinq lignes de cathode d'une couche.

Construire un superbe cube LED 5x5x5 avec Arduino Mega

Ensuite, nous sommes prêts à connecter les cathodes de chaque couche à la plaque principale. Les cercles sur l'image ci-dessus montrent où les cathodes de chaque couche sont connectées et ramenées vers le collecteur d'un transistor. Encore une fois, nous utilisons un morceau de fil de cuivre étamé redressé.

Une fois que vous avez connecté toutes les pattes des résistances au Mega, nous sommes enfin prêts à tester le cube fini. Dans le logiciel, j'ai fourni un sketch pour tester le cube. Il allume brièvement chaque LED du cube dans l'ordre. Comme vous avez déjà testé chaque panneau, tout problème à ce stade concernera très probablement les connexions de cathode récentes. Vous pourriez trouver une couche qui ne fonctionne pas ou une partie d'une couche. Encore une fois, il s'agira très probablement d'une soudure froide s'il y a un problème.

Logiciel

L'état de chaque LED du cube est défini par un tableau global d'octets 5×5×5 appelé cube[][][]. Un 1 signifie que la LED est allumée, un 0 qu'elle est éteinte. Toutes les animations du cube sont créées en plaçant des 1 et des 0 dans cube[][][].

Le cœur de tout logiciel de cube est l'interruption temporisée qui rafraîchit le cube. Ma routine d'interruption est lancée dans setup() et se trouve à la toute fin du programme. Elle est appelée toutes les 10 ms et prend environ 6 ms pour rafraîchir le cube. Cela laisse 4 ms entre chaque rafraîchissement pour l'exécution du code dans la boucle principale.

Pendant le rafraîchissement, chaque couche est allumée pendant 1,2 ms. Le rafraîchissement se produit 100 fois par seconde. Ainsi, une LED allumée individuelle est active pendant 120 ms par seconde, soit un cycle de travail de 12 %. Les 100 fois par seconde sont assez rapides pour que l'œil humain voie une lumière continue, et le cycle de travail de 12 % suffit à faire briller les LED assez intensément, pas autant que si elles étaient allumées en continu, mais surprenamment proche.

Pour garder le cycle de rafraîchissement le plus court possible et maximiser le temps où les LED sont allumées, nous évitons les commandes digitalWrite qui font perdre du temps et utilisons l'accès direct aux ports pour configurer les broches. Si vous regardez le code dans la routine d'interruption, vous verrez 25 lignes distinctes où cet accès direct est utilisé, ce qui n'a pas l'air très joli, mais est en fait beaucoup, beaucoup plus rapide que les quelques lignes de code qui pourraient être utilisées pour configurer les broches avec digitalWrite.

La fonction loop() appelle simplement chaque animation, en parcourant la liste puis en recommençant. Les animations sont chacune dans leur propre sous-routine. Certaines routines d'animation appellent d'autres routines. Consultez le code lui-même pour les explications des différentes animations. Il y a aussi quelques routines utilitaires utilisées par toutes les animations, comme clearCube() qui éteint toutes les LED, ou copyDown() qui déplace le contenu de chaque couche vers la couche du dessous, puis efface la couche du haut.

Il y a trois sketches différents à télécharger. Le principal contient les 15 animations que vous avez vues dans la vidéo. Les sketches de test de panneau et de test de cube ne servent qu'à tester votre cube pendant la construction.

Code

Téléchargement uniquement – pas d'aperçu.

Pièces personnalisées et boîtiers

Totalement optionnel, mais si vous avez accès à une imprimante 3D et voulez la boîte que vous voyez dans mes vidéos, voici le fichier :

Schémas

Un schéma des bases :

Construire un superbe cube LED 5x5x5 avec Arduino Mega

Montre les connexions exactes entre le cube et le Mega :

Construire un superbe cube LED 5x5x5 avec Arduino Mega

Processus de fabrication

  1. Fabrication des planches à repasser : conception, matériaux et processus de production
  2. Le Rubik's Cube : de l'invention au casse-tête moderne
  3. Circuits imprimés : conception, fabrication et tendances futures
  4. Construction et design des planches de surf : des racines polynésiennes à l'innovation moderne
  5. Diodes Électroluminescentes (DEL) : De l'Inception aux Durées de Vie de 100 Ans
  6. RasPiRobot Board V2 : Transformez votre Raspberry Pi en contrôleur robot puissant
  7. Horloge à Mots DIY Arduino – Afficheur Temps Réel Élégant et Personnalisable
  8. Projet Arduino : Mélodie "Coffin Dance" — Construire et jouer le tube viral
  9. Modernisez Votre Maison : Interrupteur Tactile Intelligent avec Surveillance de Température