03 octobre 2019 • 15 • 4.6
Dans de nombreux projets, afficher des informations sur un écran peut être quelque chose d'indispensable. Heureusement,
il est possible, avec le Raspberry Pi, d'afficher tout un tas d'informations sur un "petit" écran. Le plus connu est
l'écran LCD dit 16x02. Ce qu'il faut retenir de son nom est qu'on va pouvoir afficher 16 caractères sur chacune
des deux lignes.
Nous allons donc voir dans ce tutoriel comment brancher l'écran au Raspberry Pi, puis, en utilisant des
librairies, nous pourrons afficher une multitude d'informations envoyées par le Raspberry.
Pour utiliser l'écran 16x02 avec un Raspberry, il faut :
Une fois tous les éléments réunis, on peut passer au branchement.
Avant de pouvoir afficher quelque chose sur l'écran, il faut le brancher comme suit aux ports du Raspberry. Un potentiomètre est ajouté pour ajuster le contraste.
La librairie écrite en Python que nous allons utiliser pour contrôler notre afficheur LCD s'installe directement avec le Python Package Index. Commençons donc par être sûr que le système de récupération des librairies Python est bien installé en entrant cette commande dans le terminal. (Il est généralement déjà installé de base sur Raspbian)
sudo apt-get install python-pip
Maintenant que tout est OK, installons la libraire. Bonne nouvelle, une simple commande s'occupe de tout.
sudo pip install RPLCD
La librairie est donc enfin prête à être utilisé, et notre écran aussi ! Nous utiliserons dans ce tutoriel une partie des fonctions de la librairie RPLCD (écrite par Danilo Bargen). La documentation complète de sa librairie est disponible ici. (en anglais)
Pour afficher un texte statique comme votre nom et votre date de naissance par exemple, il va falloir rédiger un très court script Python. Il va donc falloir dans un premier temps importer la librairie, puis appeler une fonction paramétrée. Voici le code pour afficher Raspberry Lab (sur deux lignes et centré) :
Les paramètres donnés à la fonction CharLCD() renseignent la librairie sur le type d'écran utilisé (16x02), et les numéros de pins sur lesquels l'écran est relié.
Lors de l'exécution de ce script, il est possible d'obtenir le message d'erreur
"ValueError: Invalid GPIO numbering mode: numbering_mode=None, must be either GPIO.BOARD or GPIO.BCM.
Pas de panique ! Il suffit de suivre ces étapes :
sudo nano /usr/local/lib/python2.7/dist-packages/RPLCD/gpio.py
Plutôt que de simplement afficher du texte sur l'écran en partant de la première case (ligne 0, colonne 0), on peut
demander de commencer ou on veut. On utilise pour ceci l'instruction lcd.cursor_pos = (ligne, colonne).
Attention, en informatique, on commence toujours à compter par 0 et non par 1. Si on veut écrire
sur la première ligne, ligne=0 alors que si on veut écrire sur la deuxième ligne : ligne=1 et c'est
la même chose pour les colonnes.
Prenons donc l'exemple où on veut écrire Raspberry sur la deuxième ligne
en laissant deux cases vides avant le mot. On aura donc :
Les paramètres donnés à la fonction CharLCD() renseignent la librairie sur le type d'écran utilisé (16x02), et les numéros de pins sur lesquels l'écran est relié.
Si on souhaite changer un mot à l'écran ou simplement ne plus rien afficher, on va utiliser la fonction lcd.clear(). Celle-ci ne prend pas d'arguments et efface tous les caractères qui sont affichés à l'écran. (L'écran reste tout de même allumé). On va pouvoir par la suite utiliser cette fonction pour faire clignoter du texte à l'écran. Faisons tout d'abord l'essai d'afficher un texte pendant 5 secondes. Il faut par conséquent importer le module time.
La fonction vue précédemment nous permet de facilement faire clignoter du texte à l'écran, avec une boucle while.
Lorsqu'un texte est trop long, la librairie continue le texte à la ligne suivante. Si l'on souhaite forcer le passage de ligne, il suffit de rajouter \n\r à l'endroit voulu. Voici un exemple :
On connait maintenant les fonctions de base de l'affichage sur cet écran LCD. On va donc maintenant pouvoir afficher de réelles informations comme la date et l'heure, l'adresse IP, puis dans un autre tutoriel, nous verrons comment afficher la température sur cet écran !
La première chose qu'il peut être intéressant de faire est d'afficher la date actuelle sur notre écran. Pour ceci, on va simplement utiliser la bibliothèque time de Python.
Pour afficher l'adresse IP de son Raspberry Pi à l'écran, il va simplement falloir récupérer l'adresse IP à
l'aide d'une fonction, et afficher la valeur de sortie sur l'écran.
En fonction de si vous êtes connecté en
Wifi ou par câble, il faut mettre l'argument de obtenirIP() respectivement sur wlan0 ou eth0.
En plus des caractères de l'alphabet, on peut afficher ce qu'on veut sur chacune des 32 cases (16x2). Chacune de ces case est en réalité une matrice 5x8. Voici le code qui permet d'afficher une case remplie en damier et une autre qui affiche un smiley.
Ce site permet de créer des caractères spéciaux facilement.
Choisir et utiliser une caméra sur un Raspberry Pi
Obtenir la température avec une sonde DS18B20
⚡NEW⚡ Starter Kit Raspberry Pi 5 version 8Go, carte SD 64Go
187.49€ 143.59 €
Raspberry Pi 5 version 8Go
94.68 €
Caméra Raspberry Pi 5MP 1080p
12.95 €
4.6/5 | 18 votes
cd ~
sudo pip install RPLCD
sudo nano test.py
Coller et enregistrer le fichier (Ctrl+X -> Y (ou O) pour enregistrer)
sudo python test.py