Modifications

Sauter à la navigation Sauter à la recherche
4 296 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 34 : Ligne 36 :     
{{asm-row|img=ADF-LED-BACKPACK-MATRICE-20mm-02.jpg}}
 
{{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ériegraphie (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-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-row|img=ADF-LED-BACKPACK-MATRICE-20mm-03.jpg}}
Ligne 47 : Ligne 49 :     
{{asm-row|img=ADF-LED-BACKPACK-7SEG-08.jpg}}
 
{{asm-row|img=ADF-LED-BACKPACK-7SEG-08.jpg}}
{{asm-text}} Now you're ready to wire it up to a microcontroller. We'll assume you want to use a 4pin header. You can also of course solder wires directly. Place a 4-pin piece of header with the LONG pins down into the breadboard.
+
{{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-row|img=ADF-LED-BACKPACK-MATRICE-20mm-08.jpg}}
Ligne 58 : Ligne 64 :     
C'est fini! Vous êtes maintenant prêt à passer à la partie logicielle!
 
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 ==
29 917

modifications

Menu de navigation