Écran tactile LCD (3,2 “) 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.

Articles similaires

Bouton retour en haut de la page
Fermer