Modifications

Sauter à la navigation Sauter à la recherche
6 742 octets ajoutés ,  27 septembre 2015 à 21:45
aucun résumé de modification
Ligne 1 : Ligne 1 :  
== Introduction ==
 
== Introduction ==
 
{{traduction}}
 
{{traduction}}
 +
 +
{{ambox-stop|text=En cours de rédaction, nous avons constaté que l'afficheur ne fonctionnait pas correctement avec la classe Matrix8x8. Projet mis en attente.}}
    
Que pourrait-il y avoir de mieux qu'une seul LED? Plein de LEDs! Elle permettent de réaliser des petits affichages en utilisant des {{sl|8x8|matrices 8x8}}. De telles matrices utilisent le 'multiplexage'. Pour contrôler 7 segments de leds, il faut donc 14 broches. Cela représente donc beaucoup de broches, il existe bien des [https://www.adafruit.com/products/453 circuits de contrôle comme le MAX7219] pour gérer des matrices mais cela nécessite beaucoup de raccordements qui utilisent une tonne de place.
 
Que pourrait-il y avoir de mieux qu'une seul LED? Plein de LEDs! Elle permettent de réaliser des petits affichages en utilisant des {{sl|8x8|matrices 8x8}}. De telles matrices utilisent le 'multiplexage'. Pour contrôler 7 segments de leds, il faut donc 14 broches. Cela représente donc beaucoup de broches, il existe bien des [https://www.adafruit.com/products/453 circuits de contrôle comme le MAX7219] pour gérer des matrices mais cela nécessite beaucoup de raccordements qui utilisent une tonne de place.
Ligne 9 : Ligne 11 :  
Ajouter des afficheurs LED matriciel à vos projets devient totalement trivial.
 
Ajouter des afficheurs LED matriciel à vos projets devient totalement trivial.
   −
{{bloc-etroit
+
{{ADFImage|ADF-LED-BACKPACK-MATRICE-20mm-INTRO.jpg|400px}}
  |text= Cette version du BackPack LED est conçu pour des matrices 8x8 LEDs (20mm de côté). Comme ces matrices ne font que 20mm x 20mm, ce serait une horreur de devoir utiliser un ensemble massif de composant pour les contrôler. Ce backpack résout l'ennuyeux problème d'avoir 16 broches/pins disponible sur son microcontroleur... ainsi que les composants nécessaire pour assurer une alimentation à courant constant (pour avoir un éclairage homogène des LEDs). Ce backpack propose le tout dans un seul composant et dispose en plus d'une interface I2C. Il est tellement petit qu'il tient derrière la carte et prend soin de tout, est capable de contrôler 64 LEDs (en tâche de fond), en n'utilisant que deux broches du microcontroleur (pour le bus I2C).  
+
 
 +
Cette version du BackPack LED est conçu pour des matrices 8x8 LEDs (20mm de côté). Comme ces matrices ne font que 20mm x 20mm, ce serait une horreur de devoir utiliser un ensemble massif de composant pour les contrôler. Ce backpack résout l'ennuyeux problème d'avoir 16 broches/pins disponible sur son microcontrôleur... ainsi que les composants nécessaires pour assurer une alimentation à courant constant (pour avoir un éclairage homogène des LEDs). Ce backpack propose le tout dans un seul composant et dispose en plus d'une interface I2C. Il est tellement petit qu'il tient derrière la carte et prend soin de tout, est capable de contrôler 64 LEDs (en tâche de fond), en n'utilisant que deux broches du microcontrôleur (pour le bus I2C).  
   −
Tout ce que vous avez à faire, c'est d'envoyer des donnée en utilisant le bus I2C. Ce breakout dispose de '''deux''' cavaliers (jumper à souder) permettant d'assigner l'adresse du module sur le bus I2C . Avec 2 cavaliers, vous pouvez assigner 4 adresses différents au module... et donc en placer jusque 4 sur un même bus I2C (ou avec autant de senseur et autre composant I2C que vous voulez... pour autant que chaque adresse est unique).  
+
Tout ce que vous avez à faire, c'est d'envoyer des donnée en utilisant le bus I2C. Ce breakout dispose de '''deux''' cavaliers (jumper à souder) permettant d'assigner l'adresse du module sur le bus I2C . Avec 2 cavaliers, vous pouvez assigner 4 adresses différents au module... et donc en placer jusque 4 sur un même bus I2C (ou avec autant de senseur et autre composant I2C que vous voulez... pour autant que chaque adresse soit unique sur le bus).  
    
Le composant pilotant l'afficheur est capable d'ajuster la luminosité de l'afficheur (de tout l'afficheur dans son ensemble) par pas de 1/16 de la puissance lumineuse maximale. Notez qu'il n'est pas possible de modifier la luminosité d'une seule LED... mais uniquement de tout l'afficheur.
 
Le composant pilotant l'afficheur est capable d'ajuster la luminosité de l'afficheur (de tout l'afficheur dans son ensemble) par pas de 1/16 de la puissance lumineuse maximale. Notez qu'il n'est pas possible de modifier la luminosité d'une seule LED... mais uniquement de tout l'afficheur.
 +
 +
== Assemblage ==
 +
{{Ambox
 +
| type      = delete
 +
| image      = [[File:StopHand.png|40px|alt=Stop]]
 +
| textstyle  = color: red; font-weight: bold; font-style: italic;
 +
| text      = Ces instructions d'assemblage ne s'applique qu'à la matrice LED 8x8 de 20mm! Si vous disposez d'une matrice Bi-Colore ou une matrice de 30mm alors utilisez le manuel correspondant que vous trouverez dans la fiche produit (sur [http://shop.mchobby.be shop.mchobby.be]).
 +
 
}}
 
}}
   −
{{ADFImage|ADF-LED-BACKPACK-MATRICE-20mm-INTRO.jpg|400px}}
+
<small>''Toutes les images ci-dessous: crédit [http://www.adafruit.com AdaFruit Industries]''</small>
 +
 
 +
{{asm-begin}}
 +
 
 +
{{asm-row|img=ADF-LED-BACKPACK-MATRICE-20mm-01.jpg}}
 +
{{asm-text}} Quand vous achetez un backpack AdaFruit chez MCHobby, le backpack est livré assemblé et testé ... tout comme la matrice 8x8 également testée. La matrice est disponible dans différentes couleurs (rouge, jaune ou verte). Vous aurez besoin de souder la matrice sur le backpack mais c'est une tâche assez facile.
 +
 
 +
{{asm-row|img=ADF-LED-BACKPACK-MATRICE-20mm-02.jpg}}
 +
{{asm-text}} Retirez les différents éléments de leur emballage et placer la matrice LED AU DESSUS de la sérigraphie (la partie imprimée). Vous pouvez la placer dans n'importe quel orientation - cette matrice ci est symétrique et par conséquent est fonctionnera dans n'importe quel sens de montage (pour autant qu'elle soit placée du côté sérigraphie :-) ). Ne souder pas la matrice au dessus du circuit intégré du backpack sinon cela ne fonctionnera pas!
 +
 
 +
{{asm-row|img=ADF-LED-BACKPACK-MATRICE-20mm-03.jpg}}
 +
{{asm-text}} Retournez l'ensemble de façon a ce que le backpack repose bien à plat sur la matrice.
 +
 
 +
{{asm-row|img=ADF-LED-BACKPACK-MATRICE-20mm-04.jpg}}
 +
{{asm-text}} Soudez les 16 broches.
 +
 
 +
{{asm-row|img=ADF-LED-BACKPACK-MATRICE-20mm-06.jpg}}
 +
{{asm-img|img=ADF-LED-BACKPACK-MATRICE-20mm-07.jpg}}
 +
{{asm-text}} Raccourcissez ensuite les broches avec un pince coupante.
 +
 
 +
{{asm-row|img=ADF-LED-BACKPACK-7SEG-08.jpg}}
 +
{{asm-text}}  A partir d'ici, vous pouvez soit brancher la matrice directement sur votre microcontroleur, soit utiliser un pinHeader (connecteur). Nous partons du principe que vous voudrez utiliser un pinHeader pour faire du prototypage sur Breadboard. Dans ce cas, coupez une section de 4 broches et insérez la partie la plus longue dans le breadboard.
 +
 
 +
<small>{{underline|notes:}}
 +
* Ne vous inquiétez pas des fils pour breadboard, ils ne sont pas nécessaires pour l'instant.
 +
* De même, l'Arduino sur l'image (provenant d'un autre tuto) n'est pas nécessaire.</small>
 +
 
 +
{{asm-row|img=ADF-LED-BACKPACK-MATRICE-20mm-08.jpg}}
 +
{{asm-img|img=ADF-LED-BACKPACK-MATRICE-20mm-09.jpg}}
 +
{{asm-text}} Placez ensuite le backpack au dessus.
 +
 
 +
Soudez ensuite les 4 broches
 +
 
 +
{{asm-end}}
 +
 
 +
C'est fini! Vous êtes maintenant prêt à passer à la partie logicielle!
 +
 
 +
== Brancher sur la PyBoard ==
 +
 
 +
[[Fichier:PyBoard-matrice-8x8-raccordement.jpg]]
 +
 
 +
Voici les raccordements opérés:
 +
{| class="wikitable" border="1"
 +
|-
 +
| align="center" | PyBoard
 +
| align="center" | Breakout
 +
| align="center" | Description
 +
|- style="font-size: 90%"
 +
| align="left" | X9
 +
| align="left" | C
 +
| align="left" | SCL - I2C Clock, le signal d'horloge I2C
 +
|- style="font-size: 90%"
 +
| align="left" | X10
 +
| align="left" | D
 +
| align="left" | SDA - I2C Data, la ligne de donnée
 +
|- style="font-size: 90%"
 +
| align="left" | GND
 +
| align="left" | -
 +
| align="left" | Masse
 +
|- style="font-size: 90%"
 +
| align="left" | VIN
 +
| align="left" | +
 +
| align="left" | Le breakout s'alimente en 5V. Nous allons donc utiliser VIn (il ne faudra pas dépasser 5V sur l'alimentation de la PyBoard si vous utilisez un bloc pile!!)
 +
|}
 +
 
 +
== La bibliothèque ==
 +
[https://github.com/JanBednarik Jan Dednarik] (voir section ''ressources'') à réaliser une excellente classe bibliothèque pour prendre le contrôle de cet afficheur.
 +
 
 +
Il n'est vraiment pas nécessaire de réinventer la roue si quelqu'un à déjà fait un travail remarquable. Je vous propose donc de repartir de ce travail.
 +
 
 +
=== Télécharger ===
 +
Vous pourrez trouver le code de son module {{fname|matrix8x8.py}} dans le lien suivant:
 +
* [https://github.com/JanBednarik/micropython-matrix8x8/archive/master.zip micropython-matrix8x8.zip] sur le [https://github.com/JanBednarik/micropython-matrix8x8 GitHub de Jan Dednarik]
 +
 
 +
{{underline|Note:}} L'archive contient également un code de test.
 +
 
 +
=== Mettre sur la PyBoard ===
 +
Branchez votre Pyboard sur votre ordinateur, ce doit apparaître comme un lecteur Flash.
 +
 
 +
Nous allons copier le module {{fname|matrix8x8.py}} et le fichier de test sur notre PyBoard.
 +
 
 +
[[Fichier:PyBoard-8x8-bibliotheque.jpg|800px]]
 +
 
 +
== Tester l'afficheur ==
 +
Ouvrez une ligne de commande sur votre Pyboard (voyez notre tutoriel  "[[MicroPython-Hack-REPL|L'invite REPL]]").
 +
 
 +
Nous allons commencer par vérifier que les fichiers soient bien là en les listant:
 +
 
 +
<nowiki>import os
 +
os.listdir()</nowiki>
 +
 
 +
Nous devons clairement voir apparaître le fichier "{{fname|matrix8x8.py}}" et le fichier de test dans la liste (comme sur l'image ci-dessous).
 +
 
 +
[[Fichier:PyBoard-8x8-matrix-check.jpg]]
 +
 
 +
Maintenant que nous avons localiser le fichier, nous allons pouvoir l'importer
 +
 
 +
<nowiki>from matrix8x8 import *</nowiki>
 +
 
 +
Selon le montage réalisé, nous nous trouvons sur le bus I2C(1) et l'adresse du breakout est 0x70 (adresse par défaut).
 +
 
 +
Nous allons néanmoins scanner le bus I2C et identifier l'adresse de notre breakout. Dans ce cas de figure, notre breakout est un esclave et notre PyBoard le maitre (''master'') du bus.
 +
 
 +
<nowiki>from pyb import I2C
 +
i2c = I2C( 1, I2C.MASTER )
 +
i2c.scan()</nowiki>
 +
 
 +
cela retourne la liste suivante.
 +
 
 +
[[Fichier:PyBoard-4x7-Segment-i2c-scan.jpg]]
 +
 
 +
Nous pouvons constater que l'adresse 112 (décimale) est bien utilisée (112 décimal correspond à 70 en hexadécimal dont la notation est 0x70).
 +
Pour connaître la représentation d'une valeur décimale, vous pouvez utiliser l'instruction {{fname|print( '%x' % 112 )}}
 +
 
 +
Créons maintenant notre objet led4x7 puisque nous connaissons tous les paramètres nécessaires.
 +
 
 +
<nowiki>disp = Matrix8x8( addr=0x70, i2c=i2c )
 +
disp.set_row( 2, 0xFF ) # active la ligne 2 (3ieme ligne )
 +
disp.set_row( 3, 0xFF ) # active la ligne 3 (4ieme ligne )
 +
disp.clear()
 +
disp.set_column( 1, 0xFF ) # active la ligne 1 (2ieme ligne)
 +
disp.clear()
 +
disp.set_pixel(0,0)
 +
disp.clear()
 +
for i in range( 0, 8 ): # ligne en diagonale
 +
  print( i )
 +
  disp.set_pixel( i, i )
 +
 
 +
</nowiki>
 +
 
 +
Il y a d'autres exemples de méthodes utilisables comme {{fname|set_blinking}} pour le clignotement, {{fname|set}} pour afficher un "''bitmap''" et {{fname|set_brightness}} pour la luminosité.
 +
 
 
== Ressources ==
 
== Ressources ==
 
* [https://github.com/JanBednarik/micropython-matrix8x8  MicroPython Matrix8x8 Driver] (Réalisée par [https://github.com/JanBednarik JanBednarik])<br />Un chouette GitHub pour le module 8x8.
 
* [https://github.com/JanBednarik/micropython-matrix8x8  MicroPython Matrix8x8 Driver] (Réalisée par [https://github.com/JanBednarik JanBednarik])<br />Un chouette GitHub pour le module 8x8.
29 917

modifications

Menu de navigation