Afficher/cacher Sommaire
Utilisation du module adafruit
Chargement module
Raspbian Stretch intègre nativement le module fbtft
Problème: le module fbtft_device ne se charge pas au démarrage
Solution: Modifier le fichier /etc/rc.local pour y ajouter le chargement du module (avant exit 0)
et une autre commande pour éviter la mise en veille de l’afficheur
Ajouter les lignes suivantes au fichier /etc/rc.local sur la ligne avant la sortie finale ( exit 0)
#exec /sbin/modprobe fbtft_device name=adafruit28 speed=48000000 rotate=90 verbose=1
exec /sbin/modprobe fbtft_device name=adafruit28 gpios=reset:25,dc:24,led:23 speed=48000000 rotate=90 verbose=1
sudo sh -c "TERM=linux setterm -blank 0 >/dev/tty0" # pour éviter le passage en veille
Description:
- name permet de préciser le module suivant le modèle d’écran
- TFT 2”2 ILI9340 module
adafruit22a
- TFT 2”8 ILI9341 + touch screen module
adafruit28
- TFT 2”2 ILI9340 module
- gpios désigner les ports du raspberry pour reset dc et led
- verbose=1 indique que des informations complémentaires doivent être retournées
- La vitesse du bus SPI (32Mhz par défaut) a été augmentée en ajoutant l’option speed au module fbtf_device (ex: 48000000 pour 48Mhz) :
fbtft_device name=adafruit22a speed=48000000
- Le passage du mode portrait 240x320 en mode paysage 320x240 avec l’option rotate=90 :
Redémarrer
sudo reboot
Le système utilise un mécanisme appelé “framebuffer” qui est une représentation mémoire des pixels qui compose l’écran.
Le raspberry Pi dispose déjà d’un périphérique de ce type /dev/fb0 , l’affichage connecté à la prise HDMI de la carte.
fbset nous retourne ses caractéristiques
$ fbset
mode "656x416"
geometry 656 416 656 416 32
timings 0 0 0 0 0 0 0
rgba 8/16,8/8,8/0,8/24
endmode
Nous pouvons faire la même opération pour notre afficheur /dev/fb1
$ fbset -fb /dev/fb1
mode "320x240"
geometry 320 240 320 240 16
timings 0 0 0 0 0 0 0
nonstd 1
rgba 5/11,6/5,5/0,0/0
endmode
Avec la philosophie UNIX qui nous dit que “tout est fichier” , on peut tester de façon simple le fonctionnement de l’écran
Comme le “framebuffer” est un fichier (/dev/fb1) ,il suffit d’y écrire des données aléatoires pour qu’une myriade de pixels de couleurs variables s’affiche:
$ cat /dev/urandom > /dev/fb1
cat: erreur d'écriture: Aucun espace disponible sur le périphérique
On prend des données aléatoires (générateur sans fin /dev/urandom) pour les copier dans l’afficheur (/dev/fb1) et quand l’afficheur est rempli , on sort en erreur.
Ecran TFT LCD comme écran du système
Pour que Linux affiche les informations de démarrage et une console sur l’écran , nous devons regarder le fichier cmdline présent sur la partition FAT de la carte SD.
Editer le fichier /boot/cmdline.txt
$ sudo nano /boot/cmdline.txt
Ajouter les options en fin de ligne
fbcon=map:10 fbcon=font:VGA8x8
On précise que l’on souhaite une console et une police de caractères avec ce nouveau framebuffer
Redémarrage , pour voir s’afficher les messages à l’écran
sudo reboot
Les options font pour la police et map pour la correspondance
L’option map permet d’établir la correspondance entre le terminal tty et le périphérique “framebuffer” , nous avons choisi 10
- premier terminal tty1 –> fb1
- second terminal tty2 –> fb0 (sortie HDMI)
- pour le reste on boucle :
- tty3 –> fb1 , tty4 –> fb0 , etc…
Si l’on ne veut pas de la sortie HDMI (fb0) ,positionner l’option map:1 et tous les terminaux tty seront associés au mini-écran (la bascule entre tty se fait par Alt+[F1],Alt+[F2],etc…)
L’option rotate ne concerne que la rotation de la console et non du framebuffer qui est géré par le pilote
Améliorer la résolution écran
Reconfigurer le paquet “console-setup”
sudo dpkg-reconfigure console-setup
- UTF-8
- Choix automatique du jeu de caractères adapté
- OK
- Terminus
- 6x12 (uniquement tampon vidéo (« framebuffer »))
Redémarrer le système
sudo reboot
Interface graphique sur Raspbian Lite (xorg+RPD)
Raspbian Lite with RPD/LXDE/XFCE/MATE/i3/Openbox/X11 GUI
Cette partie suivante se concentre sur l’installation d’une interface graphique sur Raspbian Lite. Afin d’avoir une interface graphique, nous avons besoin de ces 4 choses :
- Serveur d’affichage
- Environnement de bureau
- Gestionnaire de fenêtres
- Gestionnaire de connexion
Puisque nous avons besoin de 4 choses, pour nous faciliter la vie, ces 4 choses sont :
- Serveur d’affichage Xorg
- Raspberry Pi Desktop (RPD) ou Lightweight X11 Desktop Environment (LXDE) ou XFCE Desktop Environment (XFCE) ou MATE Desktop Environment (MATE)
- Openbox Window Manager (RPD/LXDE) ou XFWM Window Manager (XFCE) ou Marco Window Manager (MATE)
- Gestionnaire de connexion LightDM
Pour ceux qui connaissent Linux, vous vous demandez peut-être pourquoi le gestionnaire de connexion choisi ici est LightDM. Pour la plupart, il est léger et il a l’air joli. Mais une fonctionnalité qui, je crois, se distingue des autres gestionnaires de connexion est la possibilité d’exécuter le client Synergy sans erreurs. Synergy est un utilitaire qui vous permet d’utiliser la souris et le clavier d’un ordinateur (Windows, Mac, ou Linux) et de le partager avec un autre ordinateur, dans ce cas, un Raspberry Pi. Bien sûr, vous pouvez installer un autre gestionnaire de connexion si vous ne voulez pas de LightDM.
Certains utilisateurs peuvent ne pas vouloir de gestionnaire de connexion. Cela dépend de l’utilisation que vous ferez de votre Raspberry Pi. Par exemple, nous pouvons vouloir que le Pi démarre toujours dans la ligne de commande et s’il est nécessaire de lancer un environnement de bureau, une simple commande vous permettra de le lancer. Poursuivez votre lecture pour en savoir plus.
Puisque nous nous concentrons sur Raspbian Lite, alors l’interface graphique installée sera aussi “lite”. Je comprends que “lite” peut avoir différentes significations, mais les débutants sont ici au centre de l’attention. L’important ici est que les utilisateurs personnalisent leur Pi, sans se fier au Raspbian pré-construit. Je crois que ce sont les meilleures options d’interface graphique. Comme toujours, vous êtes libre d’utiliser ce que vous voulez. À l’avenir, nous allons installer le noyau de RPD, LXDE, XFCE, ou MATE. Cela nous donnera seulement l’interface graphique. Il n’y aura pas d’autres applications installées que les composants PIXEL, LXDE, XFCE ou MATE requis tels qu’un gestionnaire de fichiers, un terminal et des paramètres.
-
Allumez votre Pi et connectez-vous. Nous allons installer Xorg. Pour ce faire, tapez :
sudo apt-get install –no-install-recommends xserver-xorg
et appuyez sur Entrée. Il y aura beaucoup de paquets dépendants à installer mais ceux-ci doivent être installés pour que l’interface graphique fonctionne. Installez les paquets.
Si vous installez xserver-xorg uniquement, vous n’aurez pas la possibilité de lancer le serveur d’affichage Xorg depuis la ligne de commande. Ce serait un problème si vous ne prévoyez pas d’installer un gestionnaire de connexion. Sinon, vous n’avez pas besoin de le faire. Si c’est le cas, vous pouvez également installer xinit en tapant :
sudo apt-get install --no-install-recommends xinit
et appuyez sur Entrée. Il y aura plus de paquets dépendants à installer mais ceux-ci doivent être installés pour que vous puissiez démarrer le serveur Xorg Display Server depuis la ligne de commande si aucun gestionnaire de connexion n’est installé. Installez les paquets.
- Interface graphique RPD (Raspberry Pi Desktop)
RPD est un environnement de bureau conçu par la Raspberry Pi Foundation. Il est conçu pour être facile à utiliser, c’est pourquoi il semble simple. Le backend de RPD est LXDE, qui est un excellent choix car il est connu pour sa faible utilisation de mémoire. Pour cet environnement de bureau, vous avez deux choix. Vous pouvez installer l’environnement de bureau RPD de base ou une version dépouillée de celui-ci. L’environnement de bureau RPD de base est le même que celui inclus dans la distribution Raspbian régulière, mais sans applications préinstallées. Les éléments essentiels tels que les paramètres, le gestionnaire de tâches, le terminal et le gestionnaire de fichiers sont inclus. Pour installer l’environnement de bureau RPD de base, tapez :
sudo apt-get install raspberrypi-ui-mods
et appuyez sur Entrée. Il y aura beaucoup de paquets dépendants à installer mais ceux-ci doivent être installés pour que l’interface graphique fonctionne. Installez les paquets.
La version dépouillée de l’environnement de bureau RPD ne contient que le gestionnaire de fichiers et les paramètres d’apparence, audio, réseau et Bluetooth. Il n’y a pas de prise en charge de la corbeille, pas de montage de lecteurs, ni de terminal inclus puisque les composants requis ne sont pas installés par défaut. Aucune autre application n’est incluse non plus. Cependant, vous pouvez ajouter ces composants plus tard si vous le souhaitez. Si vous voulez installer la version dépouillée de l’environnement de bureau RPD, tapez :
sudo apt-get install --no-install-recommends raspberrypi-ui-mods lxsession
et appuyez sur Entrée. Il y aura beaucoup de paquets dépendants à installer mais ceux-ci doivent être installés pour que l’interface graphique fonctionne. Installez les paquets.
Maintenant, voici une liste de paquets que vous voudrez peut-être installer si vous installez la version dépouillée de RPD :
pi-greeter : The Raspberry Pi LightDM login theme
rpd-icons : The Raspberry Pi Desktop icon theme
gtk2-engines-clearlookspix : GTK Theme Engine (used to render Raspberry Pi LightDM login/desktop theme properly)
Openbox Window Manager est installé par défaut lorsque vous installez RPD.
Ecran tactile (Xorg uniquement)
Les paramètres de l’écran tactile (TouchScreen SPI TFT LCD 2.8p ILI9341 avec cint XPT2846 compatible ADS7846)
Name: ads7846
Info: ADS7846 Touch controller
Load: dtoverlay=ads7846,<param>=<val>
Params: cs SPI bus Chip Select (default 1)
speed SPI bus speed (default 2MHz, max 3.25MHz)
penirq GPIO used for PENIRQ. REQUIRED
penirq_pull Set GPIO pull (default 0=none, 2=pullup)
swapxy Swap x and y axis
xmin Minimum value on the X axis (default 0)
ymin Minimum value on the Y axis (default 0)
xmax Maximum value on the X axis (default 4095)
ymax Maximum value on the Y axis (default 4095)
pmin Minimum reported pressure value (default 0)
pmax Maximum reported pressure value (default 65535)
xohms Touchpanel sensitivity (X-plate resistance)
(default 400)
penirq is required and usually xohms (60-100) has to be set as well.
Apart from that, pmax (255) and swapxy are also common.
The rest of the calibration can be done with xinput-calibrator.
See: github.com/notro/fbtft/wiki/FBTFT-on-Raspian
Device Tree binding document:
www.kernel.org/doc/Documentation/devicetree/bindings/input/ads7846.txt
Ajouter prise en charge de l’écran tactile en utilisant ads7846-overlay.dtb dans les “overlays” du dossier /boot/overlays/
sudo nano /boot/config.txt
[...]
dtoverlay=ads7846,cs=1,penirq=26,xmin=200,xmax=3900,ymin=200,ymax=3900,xohms=60,pmax=255,swapxy
[...]
Après reboot
dmesg |grep ads
[ 23.711354] ads7846 spi0.1: spi0.1 supply vcc not found, using dummy regulator
[ 23.724141] ads7846 spi0.1: touchscreen, irq 169
Etalonnage
Touchscreen calibration with GUI
https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/resistive-touchscreen-manual-install-calibrate
Vérifier la prise en charge du module basé sur la puce ADS7843 (compatible avec ads7846)
lsmod |grep hwmon
hwmon 16384 2 rtc_ds1307,ads7846
Ce module fournit les informations au système /dev/input/event0 ,on peut tester
sudo cat /dev/input/event0
Puis toucher l’écran tactile avec un stylet, des éléments binaires sont générés sur l’écran.Ctrl C pour arrêter le test
tslib est une bibliothèque qui sert de couche d’abstraction commune pour les événements sur écran tactile. Il comprend des filtres (par exemple pour lisser les événements et calibrer).
Installation des utilitaires de l’écran tactile
sudo apt -y install libts-bin
Pour utiliser ts_calibrate et ts_test, vous devez définir des variables d’environnement.
On passe en mode su (sudo)
sudo -s
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_FBDEVICE=/dev/fb1
Cela va créer une configuration sur la console courante.
Ensuite, lancez le processus d’étalonnage:
ts_calibrate
Cela affichera un écran avec un réticule et des instructions.
Touchez le centre de la croix avec votre stylet. Répétez la procédure jusqu’à la sortie du logiciel.
Tester l’étalonnage
ts_test
Cela affichera une croix que vous pouvez déplacer et glisser autour. Vous pouvez également passer en mode dessin .
N’oubliez pas de configurer les variables d’environnement, si vous exécutez la commande à partir d’une autre console.