Différences entre versions de « RASP-LCD-RGB-Utiliser »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
Ligne 64 : Ligne 64 :
  
 
== Utiliser le code de la bibliothèque ==
 
== Utiliser le code de la bibliothèque ==
Look at the contents of the char_lcd_plate.py file to see the basic usage of the character LCD plate class. The basic usage is to import the library and create an instance of the Adafruit_CharLCDPlate class. The char LCD plate class is smart enough to know how to talk to the character LCD plate without any configuration or parameters.
+
Jetez un petit coup d'oeil au contenu du fichier '''char_lcd_plate.py''' pour voir l'usage de la classe LCD. L'utilisation de base se résume à importer la bibliothèque et créer une instance de la classe '''Adafruit_CharLCDPlate''' . La classe est suffisamment intelligente pour savoir comment dialoguer avec l'afficheur LCD dans avoir besoin de configuration ou parametres complémentaires.
  
Once you have an instance of the Adafruit_CharLCDPlate class there are a few functions you can call to interact with the display:
+
Une fois l'instance de la classe '''Adafruit_CharLCDPlate''' créée, il y a quelques fonctions utiles pour interagir avec l'afficheur:
  
    message(text)
+
message(text)
        Print the provided string message to the display. The text string can include linebreak characters ('\n') and will move to the next line when found in the string.
 
    clear()
 
        Clear the display and reset the position of message printing to the first column and first line.
 
    set_color(red, green, blue)
 
        Set the color of the red, green, and blue backlight LEDs. Each color value should be a 1 for on or 0 for off. For example to set a red backlight call set_color(1,0,0) or to set a purple color call set_color(1,0,1).
 
  
You can find a more detailed write-up of the library in this character LCD guide (see the Usage and Raspberry Pi Char LCD Plate pages).
+
Affiche le texte sur l'afficheur. La chaine de caractère peut inclure un retour à la ligne ('\n'). L'afficheur LCD déplacera le curseur du LCD à la ligne suivante lorsque ce caractère est rencontré.
 +
 
 +
clear()
 +
 
 +
Efface l'écran et réinitialise la position du curseur en haut à gauche (emplacement où démarrera l'affichage du prochain message).
 +
 
 +
set_color(red, green, blue)
 +
 
 +
Fixe l'état du rétro-éclairage pour les couleurs rouge (''red''), verte (''green'') et bleue (''blue''). Chaque couleur peut recevoir une valeur 1 pour allumer la LED (et 0 pour l'éteindre).
 +
 
 +
Par exemple, pour afficher un rétro-éclairage rouge, il faut appeler {{fname|set_color(1,0,0)}} ou en pourpre il faut appeler {{fname|set_color(1,0,1)}} .
 +
 
 +
Vous trouverez You can find a more detailed write-up of the library in this character LCD guide (see the Usage and Raspberry Pi Char LCD Plate pages).
  
 
<hr />
 
<hr />
  
Interfacer un code d'exemple avec python est très simple!
+
The first difference is that you create and instance of the Adafruit_CharLCDPlate class. You don't need to pass any parameters in to this class' constructor/init function because it is preconfigured for the LCD plate.
  
Voici quelques informations qui vous permettrons de démarrer rapidement votre propre projet.  
+
<syntaxhighlight lang="python">
 +
# Initialize the LCD using the pins
 +
lcd = LCD.Adafruit_CharLCDPlate()
 +
</syntaxhighlight>
  
Dans le dossier Adafruit_CharLCDPlate vous trouverez le script Python '''LCDtest.py'''. Vous pouvez dupliquer ce programme pour commencer le vôtre.
+
The second difference is that the '''Adafruit_CharLCDPlate''' adds a function to test if a button is pressed. Notice how the is_pressed function is called for each button, and if it returns True then the button press is detected.
  
Ce script '''LCDtest.py''' effectue tout une série d'opérations. La plus importante étant d'importer tous les sous-modules nécessaire.  
+
For example to check if the select button is pressed you can call {{fname|is_presssed(LCD.SELECT)}}, or to check if the right button is pressed you can call {{fname|is_pressed(LCD.RIGHT)}}.  
  
Vous aurez besoin des fichiers '''Adafruit_I2C.py''', '''Adafruit_MCP230xx.py''' et '''Adafruit_CharLCDPlate.py''', tous localisés dans le même répertoire. Copiez les dans votre destination finale.
+
<syntaxhighlight lang="python">
 +
# Make list of button value, text, and backlight color.
 +
buttons = ( (LCD.SELECT, 'Select', (1,1,1)),
 +
            (LCD.LEFT,  'Left' , (1,0,0)),
 +
            (LCD.UP,     'Up'   , (0,0,1)),
 +
            (LCD.DOWN,  'Down' , (0,1,0)),
 +
            (LCD.RIGHT,  'Right' , (1,0,1)) )
  
Ensuite, on initialise la platine par '''lcd = Adafruit_CharLCDPlate()''' - cela crée un 'objet' lcd, entame la communication avec la platine, initialise le LCD et les boutons. N'oublier pas de placer la valeur du paramètre busnum (comme dans la section précédente).
+
print 'Press Ctrl-C to quit.'
 +
while True:
 +
# Loop through each button and check if it is pressed.
 +
for button in buttons:
 +
if lcd.is_pressed(button[0]):
 +
# Button is pressed, change the message and backlight.
 +
lcd.clear()
 +
lcd.message(button[1])
 +
lcd.set_color(button[2][0], button[2][1], button[2][2])
 +
</syntaxhighlight>
  
Après l'initialisation, vous pouvez effacer l'afficheur à l'aide de '''lcd.clear()''' et écrire du texte avec '''lcd.message("le texte doit etre ici")'''.
+
One final thing to note, just like using an MCP230xx IO extender the character LCD plate does not support PWM control of the backlight LEDs!
  
N'oubliez pas qu'il y a uniquement 16 caractères par ligne et qu'il n'y a pas de de retour à la ligne automatiquement.
+
That's all there is to using the character LCD plate with the character LCD Python library!
  
Pour insérer retour à la ligne (le caractère "''newline''" comme dise les anglais), il faut utilisez le caractère spécial '\n' dans votre chaine de caractère. Voici un exemple :  '''lcd.message("Adafruit RGB LCD\nPlate w/Keypad!")'''.
+
<hr />
 
 
Ensuite, vous pouvez gérer le rétroéclairage avec  '''lcd.backlight(lcd.NOM_DE_LA_COULEUR_EN_ANGLAIS)''' où '''NOM_DE_LA_COULEUR_EN_ANGLAIS''' est remplacé par:
 
* RED pour rouge
 
* YELLOW pour jaune
 
* GREEN pour vert
 
* TEAL pour vert-bleuâtre
 
* BLUE pour bleu
 
* VIOLET pour violet.
 
  
Ceci n'est valable que pour les afficheur LCD RGB. Pour les afficheurs LCD  monochromes, utiliser seulement ON (allumé) et OFF (éteint).
 
  
 
Finalement, vous pouvez interroger la platine pour savoir quel bouton a été pressé à l'aide de '''buttonPressed(lcd.NOM_DU_BOUTON_EN_ANGLAIS)''' où NOM_DU_BOUTON_EN_ANGLAIS est:
 
Finalement, vous pouvez interroger la platine pour savoir quel bouton a été pressé à l'aide de '''buttonPressed(lcd.NOM_DU_BOUTON_EN_ANGLAIS)''' où NOM_DU_BOUTON_EN_ANGLAIS est:

Version du 31 décembre 2016 à 13:13


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Ajustage Du Contraste

La platine utilise un LCD alphanumérique avec un potentiomètre de contraste externe. La première fois que vous l'utiliserez, ajustez le potentiomètre dans le coin inférieur droit jusqu'à ce que vous puissiez lire correctement le texte. Si le code n'est pas encore chargé dans le Pi, quelques rectangles peuvent apparaître à la place, ou vous pourriez ne rien voir du tout.

Préparer votre Pi pour l'I2C

Pour une introduction plus complète sur l'installation de I2C sur votre Pi vous pouvez faire un détour par notre tutoriel sur I2C.

Si vous avez installé Occidentalis, vous pouvez passer cette séquence. Pour les utilisateurs de Raspbian, éditez le fichier /etc/modules (sudo nano /etc/modules) et ajoutez y :

i2c-bcm2708
i2c-dev

à la fin du fichier. Ensuite, sauvegardez et redémarrez le système pour activer le pilote du matériel (hardware) I2C.

Avant de démarrer avec I2C sur le Pi, vous devrez effectuer quelques opération en ligne de commande (sur la console). Entrez les commandes suivantes pour ajouter le support SMBus à Python (le support SMBus comprend I2C) :

sudo apt-get install python-smbus
sudo apt-get install i2c-tools

i2c-tools n'est pas vraiment nécessaire, mais c'est un paquet très utile pour rechercher les périphériques I2C ou SMBus reliés à votre Pi. Si vous avez un périphérique I2C connecté mais que vous n'en connaissez pas l'adresse (une adresse I2C à 7-bits), ce paquet dispose d'un outil qui vous aidera à la trouver :

sudo i2cdetect -y 0 (si vous utilisez une version 1 de Raspberry Pi)
sudo i2cdetect -y 1 (si vous utilisez une version 2 de Raspberry Pi)

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

Cette commande va rechercher toutes les adresses utilisées sur /dev/i2c-0 ou /dev/i2c-1. Si votre kit RGB LCD d'Adafruit y est connecté, vous devriez voir 0x20 affiché dans les résultats. 0x20 est l'adresse du kit sur le bus I2C.

Lorsque ces deux paquets sont installés, vous disposez de tout le nécessaire pour démarrer et accéder aux périphériques I2C (et SMBus) en Python.

Utiliser un exemple de code Python

Le code Python de la platine LCD pour Pi est disponible à Github à https://github.com/adafruit/Adafruit_Python_CharLCD.

Notez qu'Adafruit à fait une mise-à-jour des bibliothèques ce qui permet de l'installer séparément des autre code mettant en oeuvre des afficheurs LCD. Si vous recherchez l'ancienne bibliothèque vous pouvez toujours la trouver ici sur ce GitHub. Pour les nouveaux projets, nous recommandons d'utiliser la nouvelle bibliothèque décrite ici.

La meilleure façon de charger ce code pour votre Pi est de connecter un câble Ethernet, et d'utiliser la procédure d'installation décrite ci-dessous.

Par défaut, Git est installé sur la plupart des distributions. Lancez simplement les commandes suivantes depuis un répertoire approprié (ex. "/home/pi"):

sudo apt-get update
sudo apt-get install build-essential python-dev python-smbus python-pip git
sudo pip install RPi.GPIO
git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git
cd Adafruit_Python_CharLCD
sudo python setup.py install

Tester la bibliothèque

Une fois le code téléchargé et que la carte est correctement connectée sur votre Pi, vous pouvez démarrer une petite démo en exécutant simplement le script char_lcd_plate.py disponible dans le répertoire examples:

cd examples
sudo python char_lcd_plate.py

Cet exemple active le rétro-éclairage et affiche différente couleurs RGB (Si vous utilisez un afficheur monochrome il est normal de voir l'écran monochrome s'allumer et s'éteindre) puis vous demande de presser les boutons. Le nom du bouton est affiché sur l'écran lorsque vous pressez dessus (la couleur du rétro-éclairage change également).

Essayez de presser les différents boutons de la carte.

Presser Ctrl-C pour quitter le programme.

Ajuster le contraste

La carte utilise un afficheur LCD avec un potentiomètre de réglage de contraste externe. La première fois que vous l'utilisez, il faudra ajuster le contraste jusqu'à ce que vous voyez clairement l'affichage du texte sur l'écran LCD. Si vous n'avez pas encore téléchargé le code sur votre Pi alors l'écran affichera des carrés... ou peut être rien du tout.

Utiliser le code de la bibliothèque

Jetez un petit coup d'oeil au contenu du fichier char_lcd_plate.py pour voir l'usage de la classe LCD. L'utilisation de base se résume à importer la bibliothèque et créer une instance de la classe Adafruit_CharLCDPlate . La classe est suffisamment intelligente pour savoir comment dialoguer avec l'afficheur LCD dans avoir besoin de configuration ou parametres complémentaires.

Une fois l'instance de la classe Adafruit_CharLCDPlate créée, il y a quelques fonctions utiles pour interagir avec l'afficheur:

message(text)

Affiche le texte sur l'afficheur. La chaine de caractère peut inclure un retour à la ligne ('\n'). L'afficheur LCD déplacera le curseur du LCD à la ligne suivante lorsque ce caractère est rencontré.

clear()

Efface l'écran et réinitialise la position du curseur en haut à gauche (emplacement où démarrera l'affichage du prochain message).

set_color(red, green, blue)

Fixe l'état du rétro-éclairage pour les couleurs rouge (red), verte (green) et bleue (blue). Chaque couleur peut recevoir une valeur 1 pour allumer la LED (et 0 pour l'éteindre).

Par exemple, pour afficher un rétro-éclairage rouge, il faut appeler set_color(1,0,0) ou en pourpre il faut appeler set_color(1,0,1) .

Vous trouverez You can find a more detailed write-up of the library in this character LCD guide (see the Usage and Raspberry Pi Char LCD Plate pages).


The first difference is that you create and instance of the Adafruit_CharLCDPlate class. You don't need to pass any parameters in to this class' constructor/init function because it is preconfigured for the LCD plate.

# Initialize the LCD using the pins 
lcd = LCD.Adafruit_CharLCDPlate()

The second difference is that the Adafruit_CharLCDPlate adds a function to test if a button is pressed. Notice how the is_pressed function is called for each button, and if it returns True then the button press is detected.

For example to check if the select button is pressed you can call is_presssed(LCD.SELECT), or to check if the right button is pressed you can call is_pressed(LCD.RIGHT).

# Make list of button value, text, and backlight color.
buttons = ( (LCD.SELECT, 'Select', (1,1,1)),
            (LCD.LEFT,   'Left'  , (1,0,0)),
            (LCD.UP,     'Up'    , (0,0,1)),
            (LCD.DOWN,   'Down'  , (0,1,0)),
            (LCD.RIGHT,  'Right' , (1,0,1)) )

print 'Press Ctrl-C to quit.'
while True:
	# Loop through each button and check if it is pressed.
	for button in buttons:
		if lcd.is_pressed(button[0]):
			# Button is pressed, change the message and backlight.
			lcd.clear()
			lcd.message(button[1])
			lcd.set_color(button[2][0], button[2][1], button[2][2])

One final thing to note, just like using an MCP230xx IO extender the character LCD plate does not support PWM control of the backlight LEDs!

That's all there is to using the character LCD plate with the character LCD Python library!



Finalement, vous pouvez interroger la platine pour savoir quel bouton a été pressé à l'aide de buttonPressed(lcd.NOM_DU_BOUTON_EN_ANGLAIS) où NOM_DU_BOUTON_EN_ANGLAIS est:

  • LEFT pour gauche
  • RIGHT pour droite
  • UP pour haut
  • DOWN pour base
  • SELECT pour le bouton de sélection.

Cette bibliothèque n'utilise pas la gestion par des interruptions donc vous n'aurez pas de signal d’interruption "interrupt go off" lorsqu'un bouton sera pressé. Vous devrez créer une boucle et interroger régulièrement l'état des boutons pour savoir si l'un d'entre eux pressé et lequel..

Voila, c'est terminé!

Si vous désirez afficher des messages élaborés, utilisez la commande Python permettant la création de chaine de caractères et écrivez cette chaine avec message()



Source: Adafruit 16x2 Character LCD + Keypad for Raspberry Pi écrit par LadyAda pour AdaFruit. Crédit AdaFruit Industries
Réalisé avec l'aide de Mr Carette J. à qui nous remettons tous nos remerciements.

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.

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