Header Ads

Raspberry-Pi: Affichage mural sans utiliser X-Windows

Ce tutoriel de instructable.com vous explique comment transformer Raspberry-Pi + Moniteur (ou télévision) en afficheur publicitaire.

Bien pratique pour afficher des informations, calendrier, slideshow, notes pratiques, nouvelles, événements.

Ce qui est intéressant dans ce tutoriel, c'est que X-Windows n'est pas utilisé pour afficher ces images. En utilisant le FrameBuffer, il est possibles d'afficher des images et des vidéos sans surcharger le système avec X-Windows.


Source: Instructables.com
Ce tuto est tellement bien que nous avons décidé de vous offrir une petite traduction pour faciliter votre lecture.... d'autant que cela rentre parfaitement dans le cadre de notre petit projet maison RasPy où nous avons désinstallé X-serveur de la Raspbian

Avant de commencer
Il faut bien entendu configurer votre PI pour qu'il démarre en mode console (pas en interface graphique).

Les paquets nécessaires:
  • fbi - linux framebuffer imageviewer, le logiciel d'affichage d'image par FrameBuffer
  • tvservice - gestion d'alimentation pour écran
  • omxplayer - media player fonctionnant en FramBuffer
Les distributions actuelle de Raspbian inclus déjà omxplayer et tvservice il faudra donc installer fbi.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install fbi

Afficher des images simple en FrameBuffer
Le principe est d'afficher un slideshow depuis le boot du Pi ou via une connexion SSH. Cela signifie qu'il n'y a pas physiquement d'utilisateur connecté sur la console du Raspberry-Pi. Ce détail est important.
sudo fbi -a --noverbose -T 1 image.jpg


L'option -a indique qu'il faut redimensionner l'image affichée. -T 1 indique que nous allons utiliser la console /dev/tty1. Et comme personne n'est loggé sur le système, le détenteur de tty1 est l'utilisateur root, sudo est donc nécessaire.

pi@raspberrypi ~ $ ls -l /dev/tty1
crw------- 1 root root 4, 1 Jul  1 02:25 /dev/tty1

A noter que lorsque de fbi est utilisé en root avec sudo, il reste active en tâche de fond.
Il faudra donc arrêter (killer) le processus avant de pouvoir relancer une autre commande fbi.

sudo killall fbi

Afficher un slideshow
fbi permet d'afficher des images en slideslow. Quelques paramètres complémentaires se montrerons vraiment pratique.

sudo fbi -a --noverbose -T 1 -t 10 image1.jpg image2.jpg image3.jpg

Les paramètres:
  • -t 10 permet d'indiquer en temps de pause entre deux images.
  • -1 peut être utiliser pour ne pas boucler le slideshow (ne l'afficher qu'une fois)
  • -u peut aussi être utiliser pour afficher les images dans un ordre aléatoire.
Comme indiqué ci-avant, fbi restera en tâche de fond une fois l'exécution terminée.

Affichage d'une vidéo
L'affichage d'une vidéo se fait simplement en utilisant le programme omxplayer.

omxplayer -b video.mp4

Les paramètres:
  • -b efface l'écran avant d'afficher la vidéo (sinon le texte est visible derrière la vidéo)
  • --loop permet d'exécuter la vidéo en boucle continue.
  • --orientation 180 permet de faire une rotation de la vidéo de 180° (90 et 270 également autorisé)
Eteindre/allumer le moniteur
Les écran HDMI s'eteignent volontier lorsqu'il n'y a pas de signal HDMI. C'est pratique parce que cela peut vous permettre de mettre le moniteur/tv en veille automatiquement depuis le Raspberry-Pi (en coupant le signal HDMI).

Cela permet par exemple d'activer la vidéo de 8h00 à 18h00 et d'arrêter le processus vidéo de 18h00 jusqu'au lendemain sans intervention humaine.

tvservice -o
tvservice -p


Le paramètre:
  • -o coupe la sortie HDMI
  • -p réactive la sortie HDMI
Selon instructables, la réactivera HDMI demande quelques opérations supplémentaires pour réactiver correctement le support FrameBuffer avec soit:

chvt 2; chvt 1


ou

fbset -accel true; fbset -accel false

Mettre le tout ensemble
Voici un petit script qui réactive la sortie HDMI, reactive le framebuffer. Elimine les applications fbi éventuelle en cours de fonctionnement. Puis démarre un slideshow pour finallement éteindre la sortie HDMI.

tvservice -p
fbset -accel true; fbset -accel false
sudo killall fbi
sudo fbi -a --noverbose -T 1 -t 15 -1 image1.jpg image2.jpg image3.jpg image4.jpg
sudo killall fbi
tvservice -o

Où acheter
Ressource et remerciement
Le formidable article "Raspberry Pi Wall Display Without X-Windows" de Jonadair