RASP-LCD-RGB-Utiliser
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)
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