Installer un écran tactile sur son Raspberry Pi.
Ce tutoriel vous apprend de maniére détaillée à installer un écran tactile sur un Raspberry Pi 2.
Je ne décrit pas l’installation du systéme d’exploitation Raspbian, des dizaines de tutoriels existent déjà sur le sujet :
Budget : Non défini
Il s’agît simplement d’enficher la prise de l’écran sur les GPIO. La photo ci-dessus montre le boitier assemblé avec son couvercle écran tactile. Celui indiqué est livré avec un boitier plexiglass 🙂 De plus, son niveau de performance est bon par rapport à la concurrence : https://github.com/notro/fbtft/wiki/Performance
Nous allons mettre à jour le systéme d’exploitation et les pilotes pour l’écran. J’utilise la Raspbian standard.
$ sudo apt-get update $ sudo apt-get upgrade $ sudo reboot
On met à jour les pilotes.
Important : Assurez-vous que la version des pilotes supporte toujours l’écran !
Fil de conversation sur une imcompatibilité avec le firmware 4.0 : https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=113753
Firmwares : https://github.com/notro/rpi-firmware
Le passage en rpi-udate 4 casse effectivement le pilote MZ61581 de mon Tontec. Pour y remédier, il faut :
sudo REPO_URI=https://github.com/notro/rpi-firmware rpi-update reboot
Sinon, pour les anciennes Raspbian on se contentera de faire :
sudo rpi-update sudo reboot
Éditez /boot/config.txt
et y ajouter les lignes suivantes à la fin :
dtparam=spi=on dtoverlay=mz61581
Comme j’utilise le boitier posé sur sa tranche, j’opère une rotation de l’écran et un petit boost de performance au passage :
dtparam=spi=on dtoverlay=mz61581,fps=50,rotate=90
La valeur 90 retourne l’image, ne me demandez pas pourquoi. Pour le mode portrait on a les valeurs 180 et 270. Tout ceci figure dans la documentation /boot/overlays/README.
Pour finir cette étape, ajoutez fbcon=map:10
à la fin de la ligne dans /boot/cmdline.txt
.
Les caractères affichés en console sont plutôt épais. Heureusement, il est possible de changer la police pour afficher 80 colonnes de texte. Lancer la commande sudo dpkg-reconfigure console-setup
pour obtenir le menu afficher dans la première image. Suivez les autres images de cette étapes pour achever la configuration.
Pour réduire la consommation, et ne pas trop fatiguer l’écran, activons la mise en veille automatique et son réveil tactile par un toucher sur l’écran. Il suffit d’installer le paquet gpm
par la commande sudo apt-get install gpm
.
Si vous voulez complétement empêcher la mise en veille, éditez la configuration avec sudo nano /etc/kbd/config
pour changer la ligne BLANK_TIME=30
en BLANK_TIME=0
.
Je vous propose d’installer le minimum afin de laisser un maximum de ressources aux programmes. Nous allons installer Openbox et le faire démarrer automatiquement à la connexion de l’utilisateur (ici il s’appelle pi).
On va envoyer la sortie vidéo sur l’écran tactile. Changez la ligne Option "fbdev" "/dev/fb0"
par Option "fbdev" "/dev/fb1"
en éditant le fichier par la commande sudo nano /usr/share/X11/xorg.conf.d/99-fbturbo.conf
.
Pour que l’écran tactile conserve sa précision, il faut le calibrer. Cette opération s’effectue une seule fois et les données de calibrage seront chargées à chaque démarrage de l’interface graphique.
$ sudo apt-get install libtool libx11-dev xinput autoconf libx11-dev libxi-dev x11proto-input-dev -y $ git clone https://github.com/tias/xinput_calibrator $ cd xinput_calibrator/ $ ./autogen.sh $ make $ sudo make install $ cd ~ $ wget http://s3.amazonaws.com/ttbox/xinput_calibrator_pointercal.sh $ sudo cp ~/xinput_calibrator_pointercal.sh /etc/X11/Xsession.d/xinput_calibrator_pointercal.sh
Pour Openbox : sudo sh -c 'echo "sudo /bin/sh /etc/X11/Xsession.d/xinput_calibrator_pointercal.sh" >> /etc/xdg/openbox/autostart'
Si vous avez opté pour LXDE : sudo sh -c 'echo "sudo /bin/sh /etc/X11/Xsession.d/xinput_calibrator_pointercal.sh" >> /etc/xdg/lxsession/LXDE-pi/autostart'
Éditez ~/.bash_profile
pour y ajouter les lignes de lancement de serveur Xorg :
[[ -f ~/.bashrc ]] && . ~/.bashrc if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then SESSION_TYPE=remote/ssh # many other tests omitted else case $(ps -o comm= -p $PPID) in sshd|*/sshd) SESSION_TYPE=remote/ssh;; esac fi [[ -z $SESSION_TYPE ]] && exec startx
La subtilité est de ne pas démarrer le serveur graphique si on fait une connexion distante via SSH.
Éditez ~/.xinitrc
pour y mettre le lancement de Openbox :
exec openbox-session
Et pour finir un reboot. La calibration devrait se déclencher car nous nous n’en avons pas encore faite !
Pour connecter automatiquement un utilisateur au démarrage du boîtier, Le plus simple, est d’utiliser raspi-config
comme sur les photos.
Si vous voulez faire ça comme un vrai Geek, éditez le fichier /etc/inittab
et modifiez la ligne 1:2345:respawn:/sbin/getty --noclear 38400 tty1
comme suit :
… #1:2345:respawn:/sbin/getty --noclear 38400 tty1 1:2345:respawn:/bin/login -f pi tty1 /dev/tty1 2>&1 …
Voilà, l’utilisateur pi sera automatiquement connecté sans mot de passe à saisir !
Nous voilà avec une bonne base pour construire de petits serveurs autonomes. Voici quelques idées pour aller plus loin :
Le tactile n'est pas capacitif, c'est un film. C'est réactif dans les interfaces graphiques mais pas d'une précision extrême.
Merci pour ce tuto
J'ai acquis un afficheur similaire de chez TONTEC (celui sans la nappe avec connexion directe sur le GPIO du Raspberry) tout fonctionne a merveille sauf la calibration qui m'indique a chaque fois “Miss Click detected” et qui du coup ne fini jamais le calibrage. As tu déjà observé un comportement similaire ? as tu des recommandations (j'ai bien suivi la procédure mentionnée avec l'ecran !)
Je n'ai jamais de souci de calibrage.
Avec quoi appuis-tu sur l'écran ? (J'utilise un vieux stylet de nokia 770)
Quelle est la référence de ton écran ?
La calibration est faite avec xinput_calibrator (http://manpages.ubuntu.com/manpages/saucy/man1/xinput_calibrator.1.html). Ton message d'erreur semble indiquer un manque de précision pour viser le centre des croix.
Le script de calibrage /etc/X11/Xsession.d/xinput_calibrator_pointercal.sh peut être modifié. L'option –misclick XX, avec XX remplacé par le nombre de pixels de précision (par défaut 15), sera ajoutée à la ligne contenant CALDATA=`xinput_calibrator –misclick 32 …
Voici la référence de mon écran http://www.amazon.fr/dp/B013W3NK26/ref=pe_386181_40444391_TE_item et j'ai utilisé le stylet qui était fourni avec. De même j'ai suivi à la lettre l'installation du logiciel de calibrage (qui s'affiche bien à l'écran)
Merci pour cette précision, je vais essayer de modifier ce parametre et voir ce que cela donne
En modifiant ce paramètre (à une valeur de 35) j'arrive bien au bout du process de calibration néanmoins la précision obtenue n'est pas idéale sur les bords. La dalle résistive n'est peut être pas tout a fait linéaire !
Merci pour ton aide
En modifiant ce paramètre (à une valeur de 35) j'arrive bien au bout du process de calibration néanmoins la précision obtenue n'est pas idéale sur les bords. La dalle résistive n'est peut être pas tout a fait linéaire !
Merci pour ton aide
Vues: 10119
J'aime: 7
Découvrez d'autres tutoriels de
Sympa ! As-tu testé des applications ou des jeux pour voir la réactivité du tactile ?