"Cube" 3D 3x3x7 à LED sur Arduino - partie 2 : Premier modèle

Déçu du rendu avec les LED disponibles sur le prototype, et vu que je pouvais aller plus loin, j'ai investi dans des LED 5mm bleues.

Objectif

  • Les bonnes LED et mieux alignées et orientées
  • La guirlande pourra être rétractée pour occuper moins de place
  • de fait, les jonctions entre les étages seront souples, mais tendues une fois ouvert
  • La partie electronique sera en bas (pas besoin de poid et ports plus accessibles)
  • EDIT : la partie électronique sera en faite en haut : La guirlande pourrait être utilisée dans un sens comme dans l'autre, mais avoir la partie large en haut rendra mieux

Matériel

  • 1 Arduino Nano ou équivalent (ici de marque Izokee)
  • 100 LED (63 pour 7 étages, 91 pour 9)
  • 9 résistances, ce coup-ci le jus passera par les colonnes
  • quelques cables pour faciliter les branchements
  • un cul de peinture noire en bombe ou en pot
  • EDIT : une batterie "de secours" USB pour alimenter le tout

J'ai pris 2 modèles de LED bleues 5mm, 120° pour voir ce qui correspondrait le mieux :

  • têtes plates, 800 mcd, 3,2 V à 25 mA (20 avec l'Arduino) (bleues sur la photo)
  • têtes rondes, 200 mcd, entre 3,2 et 3,4 V à 20 mA (blanches sur la photo)

J'ignore directement les 1500 mcd et plus ; le but étant d'avoir des points lumineux sans être aveuglé.

Et ici, les LED bleues sont parfaites, diffuses, elles font un beau point et sont visibles même de jour, sans éblouir.

Assemblage

Avec des bouts de planches et 2 demi-tasseaux je découpe les pièces qui me semblent nécessaires à l'aide de mes croquis clairs et limpides

collage, ponçage et premiers trous des éléments haut et bas.

Arrivé de dernière minute : la batterie USB, pour briller en extérieur.

Une petite touche de peinture et les éléments sont prêts à être assemblés.

Ce coup-ci je me suis fait un gabarit pour la matrice des étages afin de positionner les LED équitablement.

Pour les colonnes, j'ai utilisé des brins de cuivre d'un cable Hi-Fi, par 3 (pas comme sur la photo).

Une centaine de soudures plus tard, je peux ajouter la carte et effectuer les branchements.

Je suis très mauvais en soudure (niveau collège en techno). du coup c'est du paté par endroit, mais on me dit dans l'oreillette, qu'on s'en bat les couilles, parce qu'une fois assemblé :

Ouverture de la guirlande/lampion 3D :

Côté code, je défini l'ordre des colonnes. Ici du fond vers l'avant, de gauche à droite.
const char colonne[] = {5, 6, 10, 4, 8, 7, 9, 2, 3};
Les étages, de haut en bas. Les A6, A7 n'éclairent pas mes derniers niveaux, j'ai donc utiliser les D0 et D1.
const char etage[] = {A1, A2, A3, A5, A4, 0, 1};
J'ai simplement repris le code du proto en modifiant les pins pour vérifier le bon fonctionnement.

Dans le noir :

Le résultat est beaucoup mieux. A suivre, la partie code !

 

Partie 1 : Le prototype
Partie 2 : Le premier modèle (vous êtes ici)
Partie 3 : Le code
 

"Cube" 3D 3x3x7 à LED sur Arduino - partie 1 : Prototype

Pour prendre en main cette carte, j'ai glané quelques idées, je cherchais juste un truc sympa à réaliser. Et si comme moi vous avez vu des démos de cubes 8x8x8 et plus, comme celles-ci :

C'est parfaitement stylé et inutile !

De nombreux tutoriels proposent la création de ces cubes en 2, 3 et 4^3 avec ce modèle de carte ou équivalent, comme ici ou . Un nombre plus élevé de LED peut être géré, mais inclue la gestion de pièces supplémentaires et une plus grosse expérience. Exemple en 8x8x8.

Objectif

L'idée est de faire un premier jet sans moyen, à suspendre comme un lampion.
avec 20 pins, je soustrais le nombre de colonnes pour obtenir le nombre d'étages possible : 9 colonnes, 11 étages ; 12 colonnes, 8 étages ; 16 colonnes, 4 étages.
Je souhaite quand même garder de la place pour un futur bouton ou autre. Aussi, il devra être plus grand qu'une enceinte PC : en effet, la plupart des modèles produit sont "de bureau" et font cheap au final

3x3 est idéal pour moi. A 20mA par LED et par étage, je ne dépasse théoriquement pas les 190mA. Pour d'avantage il faudra peut-être procéder à un affichage LED à LED/groupées ou d'une alimentation externe.
J'ai donc opté pour un format atypique, un Parallélépipède 3x3x7 que je trouve plus intéressant à exploiter qu'un 4x4x4

Matériel

  • Le nouveau joujou : 1 Arduino Uno
  • et déja sous la main : du fil souple et rigide
  • 7 résistances, une par étage
  • 3x3x7 leds pourraves
  • deux bouts de carton

Assemblage

L'assemblage des étages se fait un peu à l'oeil, à l'aide de tiges presque droites.
Pas grand chose à ajouter, tous les tutos vus plus haut expliquent globalement la même chose, si ce n'est qu'ils se contentent souvent des pattes des LED.

Ici, les étages sont simplement entrecrochés pour pouvoir être démontés ou en ajouter. L'écart entre les LED est de 6 cm. Normalement les colonnes devaient finir par des poids, pour tendre l'ensemble de la structure, d'où l'aspect lendemain de cuite.

Vient la partie code. Pour simplement tester, voici un petit code qui va allumer une à une les LED, une fois les étages et colonnes définis.

const int colonnes = 9;
const int etages = 7;
const char colonne[] = {A2, A1, A0, 6, 7, 10, 5, 8, 9};
const char etage[] = {2, 3, 4, 0, 1, A4, A5};

void to_led (int num = 5) {  // milieu par defaut
	for (int t = 0; t < colonnes; t++) {
		digitalWrite(colonne[t], LOW);
		}
	digitalWrite(num, HIGH);
	};

void to_etage (int num = 0) {
	for (int t = 0; t < etages; t++) {
		digitalWrite(etage[t], HIGH);
		}
	digitalWrite(num, LOW);
	};

void setup () {
	for (int t = 0; t < etages; t++) {
		pinMode(etage[t], OUTPUT);
		digitalWrite(etage[t], HIGH);
		}
	for (int t = 0; t < colonnes; t++) {
		pinMode(colonne[t], INPUT);
		digitalWrite(colonne[t], LOW);
		}
	}

void loop () {
	for (int t = 0; t < etages; t++) {
		to_etage(etage[t]);
		for (int u = 0; u < colonnes; u++) {
			to_led(colonne[u]);
			delay(40);
			}
		}
	}

Et voila ! C'est bien de la daube... la caméra plus la faible luminosité des LED, il faut se concentrer pour les voir, mais ça donne un aperçu et surtout, ça fonctionne.

A suivre, le premier modèle !

 

Partie 1 : Le prototype (vous êtes ici)
Partie 2 : Le premier modèle
Partie 3 : Le code