On trouve aujourd’hui sur le marché des cadres photo qui n’ont plus besoin d’une carte SD ou d’une clé USB de stockage. Ils récupèrent directement les images dans un dossier partagé de votre PC ou de votre serveur NAS…
Comptez une centaine d’euros pour acheter ce genre de produit. Et si on se servait du Raspberry Pi pour réaliser notre propre cadre ? C’est le choix qu’a fait Franck et il nous propose sa solution dans cet article.
Attention, au cours de ce tutoriel, vous allez modifier des fichiers de configuration. Avant toute modification je vous recommande de sauvegarder les fichiers en question pour pouvoir revenir en arrière en cas de problème…
(sudo cp fichier_d_origine fichier_de_sauvegarde)
Prérequis : Savoir installer NOOBS et/ou Raspbian, savoir modifier un fichier avec nano, savoir lire une documentation, un fichier man 😉
Ce tutoriel a été réalisé sur un Raspberry Pi 2, tournant sous la dernière version de Raspbian. Il devrait fonctionner également sur un B+ ou un B…
Au sommaire :
- 1 Un cadre photo avec le Raspberry Pi
- 2 Installation sur le Raspberry Pi
- 2.1 L’écran
- 2.2 La configuration du système
- 2.2.1 Démarrage en mode graphique
- 2.2.2 Mise à jour du système
- 2.2.3 Installation du client Samba
- 2.2.4 Création d’un point de montage sur le Raspberry Pi
- 2.2.5 Désactivation des écrans de veille et des fonctions d’économie d’énergie
- 2.2.6 Installation de QIV
- 2.2.7 Création d’un script de démarrage automatique
- 2.2.8 Création du script de lancement de qiv
- 3 Connecter le Raspberry au partage Windows
- 4 Conclusion
- 5 Sources
Un cadre photo avec le Raspberry Pi
Le cahier des charges
- Les photos sont stockées dans un dossier sur un PC ou un serveur NAS.
- Les images sont des jpg, png ou autre format standard utilisé habituellement.
- Lorsque le Raspberry Pi démarre en mode graphique, l’application doit se lancer automatiquement.
Préparation du dossier sur le PC
Pour tester la solution de Franck, j’ai choisi de créer un dossier c:\photos à la racine de mon PC.
Je l’ai partagé sous le nom de partage photos avec tout le monde en lecture seule.
Si cela ne vous parle pas, reportez vous à l’article sur le partage de dossier entre un PC sous Windows et un Raspberry Pi… L’objectif du blog et de ce genre d’article n’est pas de vous proposer des solutions clés en mains mais de vous aider à progresser dans le monde de l’informatique. La seule façon de progresser est de faire des erreurs mais surtout ensuite de chercher où on a fait une erreur.
Comme disait Lao Tseu : Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours.
Pensez à mettre quelques photos dans le dossier… Ça pourra servir 😉
Installation sur le Raspberry Pi
L’écran
Vous pouvez choisir de transformer votre télé en cadre photo géant ! Il suffit de connecter votre Raspberry Pi via la sortie HDMI sur la télé.
Mais si de temps en temps vous souhaitez utiliser votre télé pour voir des films, vous pouvez opter pour l’achat d’un petit écran à connecter sur la sortie vidéo analogique (écran de recul pour voiture). On en trouve à partir d’une vingtaine d’euros… Après tout dépend de la taille et de la qualité que vous souhaitez obtenir… Dans ce cas, ne connectez pas la prise HDMI sur le Raspberry Pi, la sortie vidéo sera automatiquement renvoyée sur le port analogique (la prise jack à 4 points).
La configuration du système
Démarrage en mode graphique
Commencez par installer un système propre (NOOBS ou Raspbian directement). Quand le système a démarré, raspi-config se lance. Activez le démarrage automatique en mode graphique. (Choix 3)
Choisissez Desktop Log in as user ‘pi’ at the graphical desktop.
Avec la touche TAB déplacez vous sur <Ok> puis validez. Vous revenez au menu de base de raspi-config. Sortez de raspi-config sans redémarrer. On fera ça après, il y a encore du boulot en mode texte 😉 …
Mise à jour du système
Commencez par mettre votre système à jour
sudo apt-get update sudo apt-get upgrade
Installation du client Samba
Le partage de dossier en Windows utilise le protocole SMB. Sous Linux c’est Samba qui est utilisé pour gérer le partage de dossier avec ce protocole. Il faut installer smbclient pour pouvoir accéder au partage sur la machine Windows.
sudo apt-get install smbclient
Selon votre distribution, il est possible que smbclient soit déjà installé. Si ce n’est pas le cas, autorisez l’installation.
Création d’un point de montage sur le Raspberry Pi
Pour « raccrocher » le dossier de la machine Windows au Raspberry Pi, nous allons créer un point de montage. Ce sera le dossier /home/pi/pics qui jouera ce rôle.
mkdir /home/pi/pics
Désactivation des écrans de veille et des fonctions d’économie d’énergie
Ouvrez le fichier /etc/kbd/config
sudo nano /etc/kbd/config
Trouvez et modifiez les lignes suivantes :
- blank_time=0
- powerdown_time=0
Enregistrez ensuite le fichier modifié.
Ouvrez maintenant le fichier /etc/lightdm/lightdm.conf
sudo nano /etc/lightdm/lightdm.conf
Recherchez le bloc [Seat Default].
Ajouter la ligne suivante :
- xserver-command=X -s 0 dpms
Enregistrez ensuite le fichier modifié.
Installation de QIV
QIV (Quick Image Viewer) est un logiciel destiné à visionner des images. Il a été développé avec gdk/imlib, ce qui le rend plus rapide que bien d’autres visionneurs classiques.
sudo apt-get install qiv
Création d’un script de démarrage automatique
Lors du démarrage du bureau, LXDE lance automatiquement les scripts qui se trouvent dans le dossier /home/pi/.config/autostart
Nous allons créer ce dossier sur notre Raspberry Pi puis créer le script qui sera lancé au démarrage du bureau :
mkdir /home/pi/.config/autostart cd autostart sudo nano slideshow.desktop
Une fois que nano est ouvert, insérez les lignes suivantes dans le fichier.
[Desktop Entry] Type=Application Exec=lxterminal -e /home/pi/slideshow.sh
Création du script de lancement de qiv
Le script chargé de démarrer l’application est créé dans le dossier /home/pi
cd /home/pi sudo nano slideshow.sh
Une fois que nano est ouvert, insérez les lignes suivantes dans le fichier.
#!/bin/bash #slideshow script sleep 1 echo Démarrage du Cadre Photo export DISPLAY=:0.0 qiv -f -R -S -n -s -r -d 5 -l -u -t -i -m /home/pi/pics/*
Diable ! Que d’options ! Allez je suis gentil, je vous en explique une : -d 5 met un délai de 5 secondes entre chaque diapo… Et les autres ? Facile : man qiv dans un terminal ou cliquez sur le lien en bas de page dans la rubrique Sources… Eh, vous allez quand même bosser un peu, non ? 😉
Connecter le Raspberry au partage Windows
Avant d’automatiser le montage du dossier partagé dans fstab, je vous conseille de tester manuellement le montage avec mount. En cas de souci, vous obtiendrez des informations utiles via les messages d’erreur…
Pour info, le PC que j’utilise pour le partage est à l’adresse IP 192.168.1.105 et l’utilisateur sur le PC se nomme admin, son mot de passe est … password !
Montage manuel du partage Windows
sudo mount -t cifs -o username=admin //192.168.1.105/photos /home/pi/pics Password: cd pics ls image_01.jpg image_02.jpg image_03.png
Tout s’est bien passé. Le nom d’utilisateur sur le PC est renseigné dans la ligne de commande, le mot de passe est ensuite saisi. Le montage s’est fait sans encombre et je retrouve les photos initialement déposées dans le dossier partagé sur le PC, dans mon dossier /home/pi/pics.
Ceci étant vérifié, il est temps d’automatiser le montage du partage… Pensez à la sauvegarde de fstab 😉 )
Si le montage ne se fait pas manuellement, inutile de passer à l’étape suivante. Soyez heureux, vous avez certainement fait une connerie erreur que vous allez devoir trouver… et vous allez apprendre plein de choses ! Veinard(e) !
Montage automatique du partage Windows
Allez, vous arrivez au bout de vos peines, il reste à automatiser le montage du dossier partagé sur le PC dans /home/pi/pics, le point de montage que nous lui avons réservé.
Ouvrez /etc/fstab avec nano (débrouillez vous tout(e) seul cette fois 😉 ) et ajoutez lui la ligne suivante :
//192.168.1.105/photos /home/pi/pics cifs defaults,ro,username=admin,password=password 0 0
Redémarrage du Raspberry Pi
Tous les éléments sont maintenant en place pour notre cadre photo. Je résume ?
- Nous avons créé un dossier à la racine du PC
- Nous avons mis quelques photos dedans
- Nous avons partagé ce dossier en lecture seule
Sur le Raspberry Pi
- Nous avons configuré le démarrage en mode graphique
- Nous avons désactivé les écrans de veille
- Nous avons installé smbclient
- Nous avons installé QIV
- Nous avons créé un fichier qui s’exécute automatiquement au démarrage de bureau
- Nous avons créé un script qui lance le visionneur de photos
- Nous avons monté manuellement le partage Windows sur le système de fichiers du Raspberry Pi
- Nous avons modifié fstab pour que le montage devienne automatique
Bon, bin, vous ne serez pas venu pour rien sur framboise314 aujourd’hui…
Il nous reste à vérifier si tout ça fonctionne (roulements de tambour) :
Redémarrez votre Raspberry Pi
sudo reboot
Regardez bien l’écran, vous devez avoir le gros carré coloré, la (les) framboise(s) avec du texte qui défile, le bureau démarre (quel bonheur de retrouver le curseur de la souris, hein?) un terminal s’ouvre… le message de démarrage du script s’affiche et… voici la première image qui apparait, bientôt suivie de toutes les autres. On en pleurerait… 😉
Si l’image ne remplit pas l’écran, relancez raspi-config (sudo raspi-config) et modifiez le paramètre overscan…
Si tout ne se passe pas comme prévu, inutile d’insulter framboise314… Essayez plutôt de comprendre ce qui ne fonctionne pas, ce sera beaucoup plus constructif et enrichissant !
Mais bon, si vous galérez trop, vous avez le droit de mettre un commentaire ci-dessous… Attention quand même, le modérateur de framboise314 est magnanime mais les insultes ne passent pas 😉
Conclusion
Merci à Franck de partager son utilisation du Raspberry Pi en Cadre Photo. Tous ceux qui ont besoin d’afficher des images de façon automatique apprécieront.
Bien entendu vous êtes libres de modifier ce tutoriel à votre guise pour l’adapter à votre propre usage (c’est même d’ailleurs fortement recommandé 😉 ).
Si comme Franck vous avez mis au point une utilisation un peu particulière du RasPi, les pages de framboise314 vous sont ouvertes et vous pourrez en faire profiter la communauté.
Plop,
J’ai un bon (très) vieux PC qui me sert de cadre photo.
Minimaliste pour minimaliste, c’est FBI (framebuffer image viewer) qui affiche les clichés !
Cet article me rappelle que j’avais lâché une affaire en cours : comment faire des transitions entre photos telles que fondu, explosion, mosaïque, et autres effets divers…
Qui aurait de bonnes idées sur ce sujet ?
Bonjour
Merci pour la diffusion, si ça peut servir à quelqu’un d’autre.
Pour moi, ça fonctionne tel quel avec mes nombreuses photos (35000 photos et 100Go).
Je voulais juste quelque chose de simple qui puisse prendre mes photos directement sur mon partage et qui me les affiches sur ma TV, sans avoir à gérer un stockage intermédiaire où un système plus complexe, je ne souhaitais pas de transition particulière. Pour une cinquantaine d’euro, c’est exactement ce que je recherchais.
Franck
Bonjour,
Je travaille sur un projet de soirée diapo collaborative (http://forum.raspfr.org/viewtopic.php?id=1070&p=1) et suis fortement intéressé par le principe. Juste une petite question, est-ce que le script scanne le dossier et affiche les images nouvellement ajoutées dans le dossier?
merci !
Bonjour,
Je travaille sur un projet qui nécessite ce script et peut sûrement vous intéresser : http://forum.raspfr.org/viewtopic.php?id=1070&p=1
Une question me brûle les lèvres : est-ce que le script scanne régulièrement le dossier comprenant les photos? C’est indispensable pour mon projet !
Merci et bravo pour ce blog, depuis quelques mois dans mes favoris !
Bonjour,
je travaille sur un projet de soirée diapo collaborative et pense que ce script correspond parfaitement à mon besoin.
–>http://forum.raspfr.org/viewtopic.php?id=1070&p=1
Une simple question, est-ce que le script scanne régulièrement le dossier où se trouvent les photos? C’est un point essentiel pour moi !
Merci de vos réponses.
Bonjour,
Je rebondis sur une conversation eue avec le modo du site pour vous soumettre un problème : J’ai pour projet de faire une soirée diapo collaborative (plus de détails ici : http://forum.raspfr.org/viewtopic.php?id=1070) et souhaite utiliser ce script pour afficher mes images.
Comment puis-je faire? En effet, selon les tests de François, le programme scanne le dossier au démarrage, j’aurais besoin que le prog scanne régulièrement les photos pour afficher de manière aléatoire toutes les images, même celles rajoutées au fil du temps.
Merci,
Triss
Bonjour,
sur mon raspberry pi2, QIV m’affiche des fenetres aux bonnes tailles mais noires et j’ai ce message d’erreur :
(qiv:5148): Gdk-CRITICAL **: IA__gdk_drawable_set_colormap: assertion ‘cmap == NULL || gdk_drawable_get_depth (drawable) == cmap->visual->depth’ failed
Auriez vous une idee pour faire fonctionner le programme ?
meme probleme car mes photos sont en 24 bit:
il faut modifier le fichier /boot/config.txt et ajouter les ligne suivantes:
Framebuffer_depth=32
Framebuffer_ignore_alpha=1
voir ici: https://www.raspberrypi.org/forums/viewtopic.php?t=6175&p=91126
Par contre, le demarrage automatique ne fonctionne pas, au demarrage j’ai une fenetre lxterminal vide qui s’affiche et qiv ne se lance pas ! pouvez vous m’aider en sachant qu’en mode manuel ( copie de la ligne de commande qiv dans lxterminal fonctionne).
Merci
Re:
un chmod 755 du slideshow.sh a résolu mon problème
merci pour ce retour Greg
cordialement
François
Bonjour,
Merci pour l’article et tous les autres du forum !
Mais… j’ai eu un petit souci de mon côté. j’avais beau faire et refaire toutes les étapes mais le script ne ce lancé pas au démarrage. J’ai ajouté des pauses dans le script pour voir où et quand il y avait un problème avec la commande : read -p « appuyer sur une touche pour continuer.. »
Je me suis aperçu que j’avais un souci pour la lecture/exécution du fstab, donc dans le script de lancement de qiv j’ai rajouté : mount -a . Pour que la lecture du fstab se fasse / s’actualise.
Pour info, j’ai suivi ce tuto : https://www.framboise314.fr/booter-le-raspberry-pi-sur-un-disque-dur-usb/
et tout fonctionne bien. mais impossible de savoir pourquoi mon fstab n’est pas lu ou actualisé au boot du PI. Mais grâce à : mount -a -> problème résolu… lol
Autre info les photos ce trouvent actuellement sur un autre PI avec le WD pidrive de 1To avec la distri Openelec
tout fonctionne bien, mise à par peut être l’arrêt du diapo qui est parfois compliqué et qui ne veux pas ce faire avec un clavier sans fils branché sur le pi.
prochaine étape pour moi, trouver un moyen d’éteindre l’écran (l’officiel 7pouces) après une certaine heure ou une durée de fonctionnement ^^
merci pour vos articles !!
Bonjour,
Article très intéressant, c’est ce qui se rapproche l plus de ce que je projette de réaliser:
pour un commerce un affichage dynamique comme on en trouve partout (pharmacie, La poste, etc…) mais avec un PI (open source et bien moins cher) l’idée étant de : afficher une série d’images (comme un diaporama), qu’une mise à jour (téléchargement de photos sur serveur) se fasse automatiquement 1 fois par jour d’ailleurs si je comprend bien le fonctionnement de ce « cadre photo », un reboot toute les 24 h suffirait non ? puisque à chaque fois il « rapatrie » les photos d’un dossier spécifié. Le reste étant déjà inclus (démarrage auto du diaporama, désactivation de l’écran de veille,e tc…)
Bonjour
vous pouvez par exemple programmer un reboot au milieu de la nuit avec cron
cordialement
François
merci pour l’info 😉
Bonjour François,
Merci pour ce partage.
Une petite question : ce programme permet-il d’afficher « dynamiquement » les nouvelles images qui arrivent dans le dossier ?
Je m’explique. Si j’exécute le programme et lance le diaporama en affichant les images du répertoire /etc/home/pi/images/, que va-t-il se passe lorsque je vais ajouter une nouvelle image dans le répertoire ? Le programme va-t-il la prendre en compte et l’ajouter au diaporama ? Ou bien faut-il redémarrer le programme pour « rafraîchir » la liste des images ?
Merci encore pour vos retours et très bonne continuation 🙂
Jeremy
Bonjour Jeremy
peut etre Franck (auteur de l’article) pourra t il répondre à cette question?
je n’ai pas de maquette de ce cadre photo pour tester…
cordialement
François
Bonjour, merci pour l’idée de cadre photo je l’avais mise en pratique il y a déjà quelques année et cette année j’ai pris le temps de faire évoluer l’idée en utilisant une autre idée de raspberrypi-spy.co.uk pour utiliser le fbi, pour le partager, je viens de rendre publique sur Gitlab le code de mon projet qui se nomme Pidipi, si cela peut vous être utile.
L’annonce : https://www.1f433.net/notes/making-my-pidipi-project-public/
Le repository du projet : https://gitlab.com/fhusson/pidipi/
Ping : Raspberrypi : un cadre de photos | Famille CVGG
Bonjour,
J’ai essayé ce tuto avec un rpi4 et le dernier Pi OS seulement les fichiers et droits ont évolués et je n’arrive pas à faire fonctionner QIV en démarrage automatique.
Avez vous une mise à jour de ce tuto ?
Bonjour
Non, il faudrait voir si l’auteur de l’article suit toujours les commentaires…
Hello
Question les photos sont elle aléatoire ou dans l’ordre ?
Et sinon comment faire la modif ?
Merci
Très bon tutoriel je vais essayé cela un weekend .