Modifications

Sauter à la navigation Sauter à la recherche
3 140 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 90 : Ligne 92 :  
| 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!!)
 
| 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