LED CUBE Hack - Partie 1 : le montage

Bonjour à tous,


Il y a longtemps, j'avais fait l'acquisition d'un LED CUBE 3x3 pour l'utiliser avec mon Raspberry-Pi et programmer des animations en Python.

Un kit close-hardware = kit inutile

Le kit assembler doit ressembler à l'image ci-dessous!

Kit d'origine

Cependant, le kit reste inexploitable pour plusieurs avec Raspberry-Pi pour les raison suivantes:

  • pas de schéma! Il faudra donc décodé le PCB.
  • pas un Arduino alike! donc le MCU n'est pas recyclable avec les carte. C'est un PIC18F14K50... et je n'ai pas franchement envie d'apprendre le développement PIC.
  • pas de soft Linux! le montage est uniquement configurable avec un logiciel Windows. Donc incompatible avec mon Raspberry-Pi. 
  • Pas de documentation du protocole! Compte tenu du MCU, c'est forcement un protocole de configuration de type UART/Série. Ma demande de documentation fût rejetée malgré ma motivation.

Bref,
Un kit qui ne sert pas vraiment à grand-chose.

Cube hacking

Comme je me suis décidé à faire fonctionner ce cube avec MicroPython Pyboard, je me suis mis à assembler la partie LED, a faire le repérage du connecteur et comprendre le fonctionnement de celui-ci.


Le cube est divisé en niveau (de bas en haut) appelé "planes". 

Tous les pôles positif des LEDs d'un même "planes" sont raccordés ensembles.
Les trois "planes" sont isolés les uns des autres. Il faut donc pouvoir activer un "plane" à la fois.

Les pôles négatifs des LEDs sont ensuite raccordées ensembles verticalement pour constituer des colonnes. Il y a donc 9 colonnes de LEDs (col1.1 à col3.3).

Configuration par défaut pour avoir toutes les LED éteintes:

  • Les trois planes sont désactivés (donc pas raccordés au +3.3V).
  • Tous les signaux sont col1.1 à col3.3 sont au niveau haut. 
De la sorte, pour activer une LED, il faut:
  • Activer le "plane" correspondant avec du +3.3V
  • Placer la "colonne" correspondante à la masse (via une résistance limitant le courant).
Et bien entendu, il n'est possible d'activer les LEDs que d'un seul "plane" à la fois.

Commande des planes

En étudiant les composants et la carte de commande du PIC, on apprend que les planes sont activés par des transistors PNP BC557BN6, ce transistor BJT est capable de supporter un courant de 100mA... largement de quoi illuminer les 9 LEDs d'un "Plane".

Voici mes notes décrivant le montage à effectuer (et état des broches) pour commander les LEDs du LED-Cube.

Cliquer pour agrandir

Nomenclature alternative

L'utilisation des termes "planes" et colonnes "colx.y" permettent d'identifier n'importe quelle LED à l'intersection de ces deux éléments.

Cependant, ces "termes" (et notions) ne sont pas très intuitives.
Il faudrait les remplacer par les coordonnées X, Y, Z beaucoup plus intuitif.



Ce qui permet de documenter le connecteur comme suit:

Il faut placer l'axe Z désiré à +3.3V puis la position X, Y à la masse pour allumer la LED de la position X,Y,Z .

La carte contrôleur d'origine est réduit à sa plus simple expression:

  • Ajout d'un connecteur avec 3.3v et 3 broches Z et les 9 broches X-Y
  • Réutilisation des 3 transistors PNP BC557B avec résistance de limitation de 1K.
  • Utilisation de résistances 330 Ohms sur les axes X-Y pour limiter le courant consommé par les LEDs (lorsqu'elles sont allumées).
Cela ne se présente pas trop mal....
 

Pour la suite

Pour la suite, il faut maintenant raccorder tout cela sur notre MicroPython Pyboard puis écrire un petit bout de code



Aucun commentaire