Différences entre versions de « Rasp-Hack-Led-Backpack-Sommaire »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(8 versions intermédiaires par le même utilisateur non affichées)
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}}

Version actuelle datée du 31 décembre 2016 à 09:58

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.

La librairie dispose donc aussi de fonction permettant de manipuler ce buffer :-)

Adafruit_LEDBackpack

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.

Lire la mémoire tampon

getBuffer()

Permet d'obtenir le contenu de la mémoire tampon (aussi appelé "Buffer") du HT16K33.

Retourne une liste de 8 valeurs 16-bit représentant l'état interne actuel du buffer.

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.

Effacer

clear()

Nettoie/efface tout le contenu de la mémoire tampon (buffer).

Adafruit_7Segment.py

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).

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.

La classe SevenSegment implémente les fonctions suivantes:

Ecriture brute d'un caractère

writeDigitRaw(charNumber, value)

Permet d'écrite une valeur 16bit dans la ligne du buffer correspondant à un des caractères de l'afficheur 4x7 segment.

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 :-)

Pour rappel, le HT16K33 contient une mémoire tampon (buffer) de 8 lignes de 16bits. Chaque ligne correspondant à un caractère de l'afficheur.

Ecriture d'un chiffre

writeDigit(charNumber, value, dot=False)

Ecrit une chiffre décimal (0..9, appelé digit en anglais) ou un caractère HexaDecimal (0..9 et A..F) sur l'afficheur.

  • 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

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.

Activer un point

setPixel(x, y, color)

En anglais un point (graphique) s'appelle setPixel.

La fonctino setPixel permet de modifier un simple point à la position x,y (colonne, ligne) de l'afficheur.

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:

grid = EightByEight(address=0x70)
grid.setPixel(2, 4)

Exemples

Si vous avez besoin d'un peu d'aide, le plus simple est encore de lire les exemples Python disponibles:

  • 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: Modifie constamment les pixels sur un afficheur 8x8, un pixel à la fois.

Vous pouvez exécuter les exemples suivants à l'aide de la commande suivante:

sudo python ex_8x8_pixels.py

Source: AdaFruit

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.