Écran Adafruit 2.8 pouces TFT
Installation du PiTFT capacitif Adafruit sur Raspberry Pi
Présentation
Ce module PiTFT 2.8" d’Adafruit combine :
- Un écran TFT ILI9341 (320×240)
- Un contrôleur tactile capacitif FT5x06 ou FT6206
- Une interface GPIO directe pour Raspberry Pi B+, Pi 2, Pi 3
Préparation du système
- OS recommandé : Raspberry Pi OS Lite ou Desktop
- Mise à jour :
sudo apt update && sudo apt full-upgrade
Activation du tactile capacitif
Ajouter dans /boot/firmware/config.txt :
dtoverlay=pitft28-capacitive,rotate=90,speed=64000000,fps=30,drm
Si besoin de GPIO personnalisés :
dtoverlay=pitft28-capacitive,touch-reset=5,touch-int=17
Ruse HDMI pour éviter la perte de framebuffer
Sans écran HDMI, le Pi peut désactiver /dev/fb0. Pour forcer sa création :
hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=87
hdmi_cvt=320 240 60 1 0 0 0
Tests post-installation
- Vérifier le périphérique tactile :
cat /proc/bus/input/devices
dmesg | grep ft5
sudo evtest /dev/input/eventX
- Vérifier l’affichage :
sudo cat /dev/urandom > /dev/fb0
Reboot
sudo reboot
Dépannage
GPIO bloqués
Utiliser gpiod pour tester :
gpioset gpiochip0 5=1
gpioget gpiochip0 5
FT5x06 actif mais dalle muette
- Vérifier la nappe tactile
- Tester le registre 0x02 via I²C :
sudo i2cget -y 1 0x38 0x02
Utilisation des 4 boutons physiques
Objectif
Utiliser les 4 boutons physiques à gauche de l’écran Adafruit PiTFT comme des touches clavier virtuelles : `1`, `2`, `3`, `4`.
Matériel
- Raspberry Pi avec écran Adafruit PiTFT 2.8" capacitif
- Boutons connectés aux GPIO : 17, 22, 23, 27
Méthode
Ajouter les lignes suivantes dans /boot/firmware/config.txt :
dtoverlay=gpio-key,gpio=17,keycode=2,label="BTN1" # KEY_1
dtoverlay=gpio-key,gpio=22,keycode=3,label="BTN2" # KEY_2
dtoverlay=gpio-key,gpio=23,keycode=4,label="BTN3" # KEY_3
dtoverlay=gpio-key,gpio=27,keycode=5,label="BTN4" # KEY_4
Explication Chaque ligne:
- Configure le GPIO en entrée avec pull-up
- Associe un
keycodeLinux standard - Crée un périphérique
/dev/input/eventXgéré par le noyau
Codes clavier utilisés
| Touche simulée | Code Linux | GPIO utilisé |
|---|---|---|
| 1 | 2 (KEY_1) | GPIO 17 |
| 2 | 3 (KEY_2) | GPIO 22 |
| 3 | 4 (KEY_3) | GPIO 23 |
| 4 | 5 (KEY_4) | GPIO 27 |
Test
Lancer :
sudo evtest
Appuyer sur les boutons : chaque pression génère un événement EV_KEY correspondant à la touche simulée.
Utilisation dans un script
Exemple en shell :
read -n1 key
case "$key" in
1) echo "Bouton 1 pressé" ;;
2) echo "Bouton 2 pressé" ;;
3) echo "Bouton 3 pressé" ;;
4) echo "Bouton 4 pressé" ;;
esac
Cohabitation entre ecran LCD Adafruit et HDMI
Une page spécifique concerne ce point.
Le rétro-éclairage
Après pas mal de bidouillage (même mon ami copilot y a perdu son latin) j'ai trouvé le mécanisme. Je ne suis pas du tout certain que ca marche sur tous les modèles pareil!
Moi j'ai un écran Adafruit 2.8 pouces capacitif qui date de presque dix ans qui tourne sur un Raspberry PI2.
Dans ce cas c'est GPIO 18 qui gère le rétro-éclairage.
Les GPIO sont gérés par un gpiochip512.
Les sudo sont saoulant avec les redirections je conseille de faire les tests en tant que root. sudo su -
cat /sys/class/gpio/gpiochip512/label
Nous donne pinctrl-bcm2835 qui est le gestionaire de GPIO du SoC bcm2835 (c'est un PI2 donc ca devrait être un bcm2836 mais c'est le contrôleur de GPIO qui est resté basé sur la version précédente) On regarde ensuite les caractéristiques :
cat /sys/class/gpio/gpiochip512/base
cat /sys/class/gpio/gpiochip512/ngpio
Nous donne respectivement 512 et 54.
Donc, le gestionnaire de GPIO possède 54 lignes numérotées à partir de 512. La plage est alors de 512 à 566.
Notre GPIO 18 est dont repéré 512+18 = 530
echo 530 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio530/direction
echo 1 > /sys/class/gpio/gpio530/value # Allumé
echo 0 > /sys/class/gpio/gpio530/value # Éteint