Modifications

Sauter à la navigation Sauter à la recherche
2 673 octets ajoutés ,  31 décembre 2016 à 09:58
Ligne 1 : Ligne 1 :  
{{Rasp-Hack-Led-Backpack-NAV}}
 
{{Rasp-Hack-Led-Backpack-NAV}}
   −
{{traduction}}
+
== Sommaire ==
 +
Si vous êtes intéressé d'écrire votre propre code, la manière la plus simple est de partir des exemples disponible avec le pilote Python (les fichiers .py commençant par 'ex_'), mais l'information suivante sera également fort utile.
 +
 
 +
'''Mémoire tampon - Buffer:'''
 +
 
 +
Le HT16K33 qui constitue le Led backpack/contrôleur contient une mémoire interne de 8 lignes, chaque ligne étant composée de 16 bits de données. Cette mémoire tampon est souvent appelée "buffer", un anglicisme souvent usité par facilité.
 +
 
 +
Chaque ligne de donnée correspond en général:
 +
* A un des caractères 7 segments de l'afficheur 4x7 segments OU
 +
* A une ligne de point (''pixels'') d'un afficheur matrice 8x8.
   −
== Sommaire ==
+
La librairie dispose donc aussi de fonction permettant de manipuler ce buffer :-)
If you're interested in writing your own code, the easy way is to start with the examples in the code repository (the .py files starting with 'ex_'), but the following information may be helpful as well.
      
== Adafruit_LEDBackpack ==
 
== Adafruit_LEDBackpack ==
All of the low-level IO and I2C access is passed through A'''dafruit_LEDBackpack.py''', which is used by all of the other classes and examples in the libraryThis file implements a class named '''LEDBackpack''', which has the following functions:
+
Tous les accès de bas niveau IO et I2C sont pris en charge par '''Adafruit_LEDBackpack.py'''. '''Adafruit_LEDBackpack.py''' est utilisé dans toutes les autres classes et exemples de la librairie.  
 +
 
 +
Ce fichier implémente une classe nommée '''LEDBackpack''', qui dispose des fonctions suivantes:
 +
 
 +
=== Luminotisté ===
 +
setBrightness(brightness)
 +
 
 +
Permet de fixer la brillance de tout l'afficheur avec une valeur entre 0 et 15
 +
 
 +
=== Clignotement ===
 +
  setBlinkRate(blinkRate)
 +
 
 +
Permet de fixer le clignotement (aussi que sa vitesse) de l'afficheur.
 +
Faire clignoter l'afficheur est optionnel... mais peut être utile.
 +
 
 +
Le paramètre blinkRate peut prendre l'une des valeurs suivantes:
 +
* 0 = pas de clignotement (affichage fixe)
 +
* 1 = Clignoter à 2Hz (2 fois par seconde)
 +
* 2 = Clignoter à 1Hz (1 fois par seconde)
 +
* 3 = clignoter à 1/2 Hz (1 fois toutes les deux secondes)
 +
 
 +
=== MàJ mémoire tampon ===
 +
setBufferRow(row, value)
 +
 
 +
Effectue la mise à jour d'une ligne de donnée (''Updates a single row of data'') dans la mémoire tampon du HT16K33.  Cette mémoire tampon est généralement appelée "Buffer" (terme anglais très usité en langue française).
 +
 
 +
Le HT16K33 contient une mémoire interne de 8 lignes, chaque ligne étant composée de 16 bits de données.
 +
 
 +
Chaque ligne de donnée correspond également (en général):
 +
* A un des caractères 7 segments de l'afficheur OU
 +
* A une ligne de point (''pixels'') d'un afficheur matrice 8x8.
   −
=== setBrightness ===
+
=== Lire la mémoire tampon ===
setBrightness(brightness)
+
getBuffer()
   −
Sets the display brightness with a value between 0 and 15
+
Permet d'obtenir le contenu de la mémoire tampon (aussi appelé "Buffer") du HT16K33.
   −
=== setBlinkRate ===
+
Retourne une liste de 8 valeurs 16-bit représentant l'état interne actuel du buffer.
setBlinkRate(blinkRate)
     −
Sets the optional blink rate for the display, with one of the following values for blinkRate
+
Cette fonction est utile si vous voulez rafraichir l'état de l'afficheur sans modifier le reste de son contenu.
   
+
Exemple pratique... faire clignoter juste un point (dans un coin)... peu importe l'image affichée.
* 0 = No Blinking
  −
* 1 = Blink at 2Hz
  −
* 2 = Blink at 1Hz
  −
* 3 = Blink at 1/2 Hz
     −
=== setBufferRow ===
+
=== Effacer ===
setBufferRow(row, value)
+
clear()
   −
Updates a single row of data.  The HT16K33 contains an internal memory of 8 rows, with each row having 16 bits of data.  Each row generally corresponds to one character on a 7-segment display or one row of pixels on an 8x8 display.
+
Nettoie/efface tout le contenu de la mémoire tampon (buffer).
   −
=== getBuffer ===
+
== Adafruit_7Segment.py ==
getBuffer()
+
La librairie 7-Segment est encapsulée dans le fichier '''Adafruit_7Segment.py''' et implémente une classe nommée '''SevenSegment''' (littéralement "sept segments").
   
+
La classe est nommée comme tel car en Python, il est interdit de commencer un nom de classe par un chiffre ("7segment" serait invalide).
Returns a list of 8 16-bit values representing the current state of the internal buffer, which can be used to update the display without affecting the rest of the content.
     −
=== clear ===
+
En interne, la casse '''SevenSegment''' crée une instance de la classe '''Adafruit_LEDBackpack''', et vous ne devriez pas avoir besoin d'utiliser directement l'instance de AdaFruit_LEDBackpack.
clear()
     −
Clears the contents of the entire buffer
+
La classe '''SevenSegment''' implémente les fonctions suivantes:
   −
== Adafruit_7Segment ==
+
=== Ecriture brute d'un caractère ===
The 7-Segment library is encapsulated in the file '''Adafruit_7Segment.py''', and implements a class named '''SevenSegment''' (since class names can't start with a digit).  It instantiates and instance of '''Adafruit_LEDBackpack''' internally, and you normally won't need to use the lower level class directly.  It implements the following functions:
+
writeDigitRaw(charNumber, value)
   −
=== writeDigitRaw ===
+
Permet d'écrite une valeur 16bit dans la ligne du buffer correspondant à un des caractères de l'afficheur 4x7 segment.
writeDigitRaw(charNumber, value)
     −
This will raw a raw 16-bit value to the specified charNumber, which corresponds to a single row in the HT16K33, and one character in the 4x7-segment displays. (Note: row 2 is the colon on most 4 character displays).  You can use this to display custom characters that aren't supported natively by the current library.
+
Cette méthode dite "d'écriture de données brute"/"écriture brute" (write raw) permet de manipuler chaque segment de l'afficheur... et donc de concevoir de nouveau "caractères" ou animations :-)
   −
=== writeDigit ===
+
Pour rappel, le HT16K33 contient une mémoire tampon  (buffer) de 8 lignes de 16bits. Chaque ligne correspondant à un caractère de l'afficheur.
writeDigit(charNumber, value, dot=False)
     −
Writes a single decimal (0..9) or hexadecimal (0..9 and A..F) character to the display, with charNumber being the character to update, and value being the digit.  You can set a third optional argument, dot, to True to set the decimal place after each character.
+
=== Ecriture d'un chiffre ===
 +
writeDigit(charNumber, value, dot=False)
   −
=== setColon ===
+
Ecrit une chiffre décimal (0..9, appelé ''digit'' en anglais) ou un caractère HexaDecimal (0..9 et A..F) sur l'afficheur.
setColon(state)
     −
You can pass either True of False to this function to enable or disable the colon that is usually connected to row 2 of the HT16K33.
+
* '''charNumber''' (littéralement ''numéro de caractère'' indique la position du caractère à modifier).
 +
* '''value''' indique le caractère à afficher.
 +
* Le troisième caractère est optionel. placez le paramètre '''dot''' (littéralement ''point'') à True pour afficher/activer le point derrière le chiffre.
    +
=== Activer le double point ===
 +
setColon(state)
 +
 +
L'afficheur dispose d'un "double point" au centre de l'afficheur 4x7-segments.
 +
 +
Vous pouvez utiliser la valeur True ou False comme valeur pour le paramètre '''dot''')... pour activer/désactiver le double point qui est habituellement connecté à la ligne 2 du buffer du HT16K33.
    
== Adafruit_8x8.py ==
 
== Adafruit_8x8.py ==
The '''Adafruit_8x8.py''' file implements a class names '''EightByEight''' that can be used to drive 8x8 pixel square LED blocksIt contains the following functions:
+
Le fichier '''Adafruit_8x8.py''' implémente la classe '''EightByEight''' qui est utilisée pour piloter une matrice LEDs de 8x8.   
 +
 
 +
Cette classe implémente les fonctions suivantes:
 +
 
 +
=== Ecriture brute d'une ligne ===
 +
writeRowRaw(charNumber, value)
 +
 
 +
Cette fonction modifiera une ligne entière de donnée dans la mémoire tampon du HT16K33. Elle y place la valeur 16bits spécifié dans le paramètre '''value''' (cependant dans le cas d'une matrice 8x8 à une seule couleur, seul les 8 derniers bits sont utilisés).
 +
 
 +
C'est beaucoup plus rapide que d'activer point par point.
 +
 
 +
Note: en anglais, un point graphique (celui d'un affichage) se nomme "pixels". C'est un terme que vous rencontrer souvent sur le net.
   −
=== writeRowRaw ===
+
=== Activer un point ===
writeRowRaw(charNumber, value)
+
setPixel(x, y, color)
   −
This will update an entire row of data with the specified 16-bit value (though normally only the last 8-bits are used on one-color 8x8 displays.  This is faster than setting individual pixels.
+
En anglais un point (graphique) s'appelle setPixel.
   −
=== setPixel ===
+
La fonctino setPixel permet de modifier un simple point à la position x,y (colonne, ligne) de l'afficheur.
setPixel(x, y, color)
     −
This function will update a single pixel within the relevant X/Y space of the display.  Please keep in mind that lists in Python are zero-based, meaning to sets pixels 1..8 in each direction you actually use the values 0..7, so the following will enable the pixel 3 over and 5 down:
+
Attention, en Python, le premier élément d'une liste commence à 0, signifiant donc que pour modifier les pixels 1..8 dans chaque direction, il faut utiliser les valeurs de 0..7. L'exemple suivant active le pixel 3 à la 5 ième ligne:
   −
  <nowiki>grid = EightByEight(address=0x70)
+
  <syntaxhighlight lang="python">grid = EightByEight(address=0x70)
grid.setPixel(2, 4)</niwiki>
+
grid.setPixel(2, 4)
 +
</syntaxhighlight>
   −
== Exemples ===
+
== Exemples ==
If you need a bit of help, simply looking at the provided example python code:
+
Si vous avez besoin d'un peu d'aide, le plus simple est encore de lire les exemples Python disponibles:
   −
* '''ex_7segment_clock.py''': Displays the current time on a 4*7-segment display, changing the state of the colon every second
+
* '''ex_7segment_clock.py''': affiche l'heure sur un afficheur 4x7-segments, modifie l'état du "double point" toutes les secondes.
* '''ex_8x8_pixels.py''': Constantly updates every pixel on an 8x8 display, one pixel at a time.
+
* '''ex_8x8_pixels.py''': Modifie constamment les pixels sur un afficheur 8x8, un pixel à la fois.
   −
You can run these examples with the following code:  
+
Vous pouvez exécuter les exemples suivants à l'aide de la commande suivante:  
    
  <nowiki>sudo python ex_8x8_pixels.py</nowiki>
 
  <nowiki>sudo python ex_8x8_pixels.py</nowiki>
    
{{Rasp-Hack-Led-Backpack-TRAILER}}
 
{{Rasp-Hack-Led-Backpack-TRAILER}}
29 837

modifications

Menu de navigation