Écran tactile LCD (3,2 « ) sur le Raspberry Pi

Ecran tactile LCD 32 sur le Raspberry Pi
Ecran tactile LCD 32 sur le Raspberry Pi

Tôt ou tard, la plupart des amateurs achèteront un écran tactile. Les écrans tactiles plus petits sont déjà disponibles à partir de 10-20 €, mais les avantages sont grands (en particulier en ce qui concerne une interface graphique pour la domotique, par exemple) et l’effort est relativement faible, comme je vais le montrer.

À titre d’exemple, j’utiliserai un écran tactile SainSmart de 3,2 pouces. Cependant, tout autre écran tactile pris en charge peut également être utilisé.

Matériel requis

Si quelqu’un, comme moi, souhaite souder le tout ensemble et faire un bouclier amovible sur le TFT, a besoin d’un Barrette de prise 2 × 20, une planche à pain et outils de soudure.

Installer

Voici ces broches qui sont directement connectées au Pi. Ils ressemblent à ceci:

câblage sainsmart
Ici, vous pouvez mettre D_Penirq sur n’importe quel GPIO gratuit, il vous suffit de le spécifier plus tard. J’ai pris GPI23.
Les autres broches de l’écran doivent être connectées via les blocs. Certaines broches du Pi (comme MOSI, SLCK,…) sont utilisées plus souvent, cela doit être pris en compte lors de la connexion. Les connexions sont les suivantes (à gauche se trouvent les broches du Pi, à droite celles de l’écran).

les connexions des broches

Les connexions des composants GND ne sont pas représentées par souci de clarté, mais doivent bien sûr toujours être connectées au GND du Pi.
De plus, les sorties ne sont pas toutes comme indiqué sur le côté droit, mais distribuées. Par conséquent, nous examinons les différents composants en détail:

74HC4040 (Fiche technique)

74HC404074HC4040 broches

74HC4094 (Fiche technique)

74HC4094

74HC04 (Fiche technique)

74HC04

Dieses Bauteil hat mehrere Inverter. Wir benötigen nur eines davon. Zum Beispiel kannst du Pin 1 (1A) als Eingang nehmen (Ausgang von 74HC4040) und Pin 2 (1Y) als Ausgang zum Pin 5 (WR) des Displays.

Logiciel

Tout d’abord, le système doit prendre tout l’espace de la carte SD, si vous l’avez déjà fait, vous pouvez l’ignorer. Sinon, allez-y

sudo raspi-config

Dans le menu, vous choisissez «Expand Filesystem» (premier point) et confirmez (également la question sur le redémarrage).

Il faut également s’assurer que SPI est activé:

sudo nano /etc/modprobe.d/raspi-blacklist.conf

Commentez la ligne correspondante:

#blacklist spi-bcm2708

Maintenant, nous chargeons les pilotes (ce qui peut prendre quelques minutes) et redémarrons:

sudo REPO_URI=https://github.com/notro/rpi-firmware BRANCH=latest rpi-update
sudo reboot

Ensuite

sudo modprobe fbtft_device name=flexfb rotate=1 speed=16000000 gpios=reset:25,dc:24

et

sudo modprobe flexfb debug=3 width=240 height=320 regwidth=16 setaddrwin=2 init=-1,0x00,0x0001,-1,0x03,0xA8A4,-1,0x0C,0x0000,-1,0x0D,0x080C,-1,0x0E,0x2B00,-1,0x1E,0x00B7,-1,0x01,0x2B3F,-1,0x02,0x0600,-1,0x10,0x0000,-1,0x11,0x6068,-1,0x05,0x0000,-1,0x06,0x0000,-1,0x16,0xEF1C,-1,0x17,0x0003,-1,0x07,0x0233,-1,0x0B,0x0000,-1,0x0F,0x0000,-1,0x41,0x0000,-1,0x42,0x0000,-1,0x48,0x0000,-1,0x49,0x013F,-1,0x4A,0x0000,-1,0x4B,0x0000,-1,0x44,0xEF00,-1,0x45,0x0000,-1,0x46,0x013F,-1,0x30,0x0707,-1,0x31,0x0204,-1,0x32,0x0204,-1,0x33,0x0502,-1,0x34,0x0507,-1,0x35,0x0204,-1,0x36,0x0204,-1,0x37,0x0502,-1,0x3A,0x0302,-1,0x3B,0x0302,-1,0x23,0x0000,-1,0x24,0x0000,-1,0x25,0x8000,-1,0x4f,0x0000,-1,0x4e,0x0000,-1,0x22,-3

Votre écran devrait maintenant devenir noir. Pour démarrer le terminal ou le bureau, vous devez saisir les informations suivantes:

Console

con2fbmap 1 1

Bureau

FRAMEBUFFER=/dev/fb1 startx

Jusqu’ici tout va bien. Vous verrez que l’écran tactile ne fonctionne pas encore. Pour ce faire, si nécessaire, arrêtez l’application avec CTRL + C et entrez:

sudo modprobe ads7846_device debug=1 cs=1 speed=2000000 model=7846 swap_xy=1 x_min=300 x_max=3800 y_min=700 y_max=3400 x_plate_ohms=60 pressure_max=255 gpio_pendown=23 keep_vref_on=1

gpio_pendown = 23 indique le numéro du GPIO (appelé ci-dessus GPIOxx).

Si vous utilisez l’affichage en mode paysage, le toucher sera toujours mis en miroir, nous devons donc installer xinput:

sudo apt-get install xinput

Maintenant, nous pouvons redémarrer le bureau:

FRAMEBUFFER=/dev/fb1 startx &
DISPLAY=:0 xinput --set-prop 'ADS7846 Touchscreen' 'Evdev Axis Inversion' 1 1

La deuxième ligne «reflète» à nouveau les axes tactiles.

Démarrage automatique du pilote d’écran tactile LCD

Pour initialiser l’affichage (tactile) automatiquement au démarrage, 3 fichiers doivent être édités.

1. Laissez les modules se charger au démarrage.

sudo nano /etc/modules

À la fin du fichier se trouvent les lignes suivantes:

fbtft_device name=flexfb rotate=1 speed=16000000 gpios=reset:25,dc:24
flexfb debug=3 width=240 height=320 regwidth=16 setaddrwin=2 init=-1,0x00,0x0001,-1,0x03,0xA8A4,-1,0x0C,0x0000,-1,0x0D,0x080C,-1,0x0E,0x2B00,-1,0x1E,0x00B7,-1,0x01,0x2B3F,-1,0x02,0x0600,-1,0x10,0x0000,-1,0x11,0x6068,-1,0x05,0x0000,-1,0x06,0x0000,-1,0x16,0xEF1C,-1,0x17,0x0003,-1,0x07,0x0233,-1,0x0B,0x0000,-1,0x0F,0x0000,-1,0x41,0x0000,-1,0x42,0x0000,-1,0x48,0x0000,-1,0x49,0x013F,-1,0x4A,0x0000,-1,0x4B,0x0000,-1,0x44,0xEF00,-1,0x45,0x0000,-1,0x46,0x013F,-1,0x30,0x0707,-1,0x31,0x0204,-1,0x32,0x0204,-1,0x33,0x0502,-1,0x34,0x0507,-1,0x35,0x0204,-1,0x36,0x0204,-1,0x37,0x0502,-1,0x3A,0x0302,-1,0x3B,0x0302,-1,0x23,0x0000,-1,0x24,0x0000,-1,0x25,0x8000,-1,0x4f,0x0000,-1,0x4e,0x0000,-1,0x22,-3
ads7846_device swap_xy=1 debug=1 cs=1 speed=2000000 model=7846 x_min=230 x_max=3900 y_min=200 y_max=3700 x_plate_ohms=80 pressure_max=255 gpio_pendown=23 keep_vref_on=1

Ce sont les mêmes commandes que nous avons utilisées précédemment. Donc, si vous avez d’autres GPIO et / ou paramètres, vous devez les ajuster. Enregistrez et quittez avec CTRL + O et CTRL + X.

2. Autologin

sudo nano /etc/inittab

Vous devez rechercher la ligne supérieure (par exemple avec CTRL + W) et commenter (avec #). Dans la ligne suivante, vous insérez la ligne décrite.

#1:2345:respawn:/sbin/getty --noclear 38400 tty1
1:2345:respawn:/bin/login -f pi tty1 /dev/tty1 2>&1

3. X commençant

sudo nano /etc/rc.local

Après les commentaires, vous ajoutez les lignes suivantes (encore une fois les commandes ci-dessus, si elles sont également modifiées, changez ici). le dormir 3 garantit que X peut charger complètement avant de calibrer.

su -l pi -c "env FRAMEBUFFER=/dev/fb1 startx &"
sleep 3
su -l pi -c "DISPLAY=:0 xinput --set-prop 'ADS7846 Touchscreen' 'Evdev Axis Inversion' 1 1"

Vous pouvez maintenant redémarrer et vous remarquerez que l’affichage devrait démarrer immédiatement:

sudo reboot

Dans la deuxième partie, j’entrerai dans les réglages (comme le calibrage).

Si vous avez des questions, vous devriez jeter un œil à la fbtft Wiki ou postez-les dans les commentaires.

  • Waveshare Raspberry Pi 3,2 Pouces TFT écran Tactile LCD (B) 320 * 240 résolution pour Raspberry Pi 4 Modèle B/Raspberry Pi 3 Modèle B/3B+
    320x240 hardware resolution; Resistive touch control Supports any revision of Raspberry Pi (directly-pluggable); Drivers provided (works with your own Raspbian/Ubuntu/Kali) Supports FBCP software driver as well, allows to config software resolution and set up dual-display; Size perfectly fits the Pi (Raspberry Pi B+/2B/3B/3B+);3 user keys; High quality immersion gold surface plating Combined with the Raspberry Pi, allows you to: Take photos by touching (up to 17 camera modes);Use software keyboard (system interaction without keyboard/mouse)
  • 3.2 "TFT LCD Module Affichage à l'écran Tactile Moniteur RGB pour Raspberry Pi Carte B + B
    Progettato par Raspberry Pi Modello B / B + / Raspberry Pi Modello B 2, una soluzione alternativa perfetta par moniteur HDMI Risoluzione 320 × 240, una Migliore Visualizzazione; Comoda interfaccia Uomo-Macchina par Raspberry Pi, combinata con il potere portatile, ovunque dans qualsiasi momento fai da te Supporta il sistema Raspbian, il sistema Consente par: il video (supporta i formati multipli, MP4 e così via) Toccando Scatta photo (fino a 17 modalità della fotocamera) logiciel de tastiera di supporto (sistema di interazione senza tastiera / souris) Che cosa c'è nella scatola: 1 x 3.2inch LCD RPI (A),
  • ARCELI Écran Tactile LCD TFT 2,8 Pouces, résolution 320x240, Pilote ILI9341, Interface SPI Compatible avec Arduino et Raspberry Pi
    Écran tactile LCD TFT polyvalent de 2,8 pouces compatible avec Arduino et Raspberry Pi, fournissant des images claires et lumineuses pour vos projets de microcontrôleurs. Pilote ILI9341 fiable et résolution 320x240 pour des images nettes et vives, avec 65K couleurs RVB pour un affichage riche. Intégration facile via l'interface SPI et des tensions de fonctionnement de 3,3V à 5V, offrant une large compatibilité avec différents systèmes. Équipé d'un écran tactile résistif très réactif, contrôlé par le contrôleur tactile XPT2046, permettant une navigation et une interaction intuitives. Bus série SPI, seules quelques IO peuvent faire briller l'écran ; avec slot pour carte SD pour étendre facilement les expériences