Réaliser un cadre photo numérique connecté – Montage

Réaliser un cadre photo numérique connecté - Montage 3

J’avais écris dans un billet précédent sur mon idée d’avoir un cadre photo numérique connecté afin d’afficher les photos que je veux dessus. Si vous ne l’avez pas lu, je vous laisser aller faire du rattrapage ici.
Après avoir parlé de l’idée et du matériel nécessaire au projet, on va maintenant passer au montage pour donner une idée un peu plus claire de la difficulté du projet. Sans avoir trop de connaissance en informatique on peut se débrouiller, mais c’est vrai que ça peut un peu aider (puis au pire je suis là, il suffit de poser des questions 😉 ). Et si vraiment ça vous parle pas du tout, vous pourrez toujours regarder les photos du montage du cadre :p

Personnellement, j’ai commencé le projet en achetant le Raspberry Pi avec son alimentation et la carte micro-SD, parce que même sans avoir le reste, je pouvais déjà faire quelques essais sur le projet en branchant le système sur un écran temporaire en HDMI. Mais vous pouvez très bien tout acheter d’un seul coup ou commencer par l’écran, c’est vous qui maitrisez du moment que vous avez tout le matos à la fin :p


Installation du système

Je préviens d’avance, je vais être assez light sur les explications de l’installation tout simplement parce qu’il existe déjà des tutos très bien écrits sur ces sujets, et que ça ne me servirait pas vraiment de les ré-écrire. Désolé pour les personnes pas très techniques ou non-anglophones, mais ne prenez pas peur, ce n’est pas si compliqué 🙂

Tout d’abord, il va falloir installer un système d’exploitation sur la carte micro-SD du Raspberry Pi. En effet, lorsque vous achetez cette carte, elle ne possède rien dessus, et sans système, le Raspberry ne peut pas démarrer. Afin de réaliser ce projet, j’ai décidé d’utiliser la distribution Raspbian. C’est un système basé sur Linux et Debian, et c’est le système officiel de Raspberry, donc ça fonctionne niquel avec ça.

Pour faire l’installation, on branche déjà la carte micro-SD sur le PC, et on télécharge NOOBS qui se trouve sur cette page. L’avantage de NOOBS, c’est qu’il va nous permettre de sélectionner Raspbian à l’installation parmi toutes les distributions proposées, et il va l’installer tout seul, comme un grand. Une fois téléchargé, il faut décompresser l’image obtenue pour la mettre sur la carte micro-SD. Les explications se trouvent également sur le site de Raspberry, et c’est très bien expliqué.

Voila, on a maintenant une carte avec un système d’exploitation dessus ! Enfin pas vraiment. Pour finir l’installation, il faut maintenant insérer la carte dans le Raspberry et le démarrer. Pour le démarrer et faire les différentes manipulations, vous devez raccorder un clavier et une souris, un câble HDMI avec une TV ou tout autre écran qui vous permettra de visualiser ce que vous faites, et puis le câble d’alimentation.
Lors du premier démarrage, ce sera NOOBS qui se lancera, et vous pourrez alors demander à installer Raspbian. L’installation peut prendre un petit peu de temps, donc allez vous faire un petit café/thé pour la suite, ça peut servir 😉

Réaliser un cadre photo numérique connecté - Montage 4

Félicitations, vous avez fini l’installation du système d’exploitation !

Maintenant, il faut créer le script qui permettra de lancer le diaporama de vos photos. Rassurez-vous, je vous ai fait un script qui fera toute l’installation tout seul 😉

Petit avertissement pour ceux qui utiliserait mon script sur un système autre qu’une Raspbian toute propre : le script s’occupe de nettoyer un peu les logiciels qui prennent de la place et qui ne nous servent pas. Si vous utilisez votre système pour autre chose, regardez l’intérieur du script pour vous assurer de ce qui est fait.

Pour l’installation, on va utiliser le terminal. Une fois ouvert, tapez les commandes suivantes :

git clone git@github.com:HitoTech/PhotoFrame.git
cd PhotoFrame
sudo ./system_init.sh

Dans le détail, ces commandes permettent de récupérer mon projet, puis on lance ensuite un script qui s’occupe de configurer le système : nettoyage des logiciels inutilisés, mise à jour du système, installation des librairies utilisées pour le diaporama, et faire en sorte que ce diaporama s’exécute directement au démarrage du système.

Plus interessant pour vous, le script a également créé un dossier appelé « pics » dans /home/pi. C’est dans ce dossier qu’il faudra mettre vos images pour qu’elles soient prises en compte dans le panorama.
Pour faire ça, vous avez plusieurs solutions. La plus simple sera surement de brancher une clé USB contenant les photos sur le Raspberry Pi, puis de faire un copier coller des photos dans le dossier « pics ».
Pour les plus expérimentés d’entre vous, vous pouvez également faire un dossier partagé entre votre NAS/ordinateur et le Raspberry. Je ne ferai pas la démonstration dans ce tuto, mais c’est la solution que j’ai retenu, et vous trouverez les commandes pour le faire sur mon projet GitHub dans la partie Bonus 🙂

Voila, c’est tout pour la partie système. On a un système d’exploitation installé, les photos sont sur la carte, et le système est configuré pour lancer le diaporama tout seul au démarrage, on a rien a faire de plus.


Montage de l’écran

C’est l’heure du montage ! Comme je l’ai expliqué dans l’article précédent, j’ai récupéré un pc portable en panne mais dont l’écran fonctionnait encore. J’ai donc démonté toute la coque afin de recupérer la dalle LCD avec son connecteur :

Réaliser un cadre photo numérique connecté - Montage 5
Réaliser un cadre photo numérique connecté - Montage 6
Réaliser un cadre photo numérique connecté - Montage 7

Comme on peut voir derrière, la référence de l’écran est B156XW01 V.1. J’ai été chercher cette référence sur eBay en tapant « controller board B156XW01 V.1 », et je suis tombé sur une annonce qui collait parfaitement. La livraison a été assez longue puisque cela venait de Chine, mais je l’ai bien reçu après plusieurs semaines :

Réaliser un cadre photo numérique connecté - Montage 8
Réaliser un cadre photo numérique connecté - Montage 9
A gauche, le bloc d’alimentation. Au milieu, la carte mère qui gère l’affichage. En bas à droite, les contrôles (allumage, chaine, etc.). Tout a droite, le voyant d’alimentation.

La première chose que j’ai fais, c’est de tester si je pouvais allumer l’écran avec. J’ai relié la petite broche jaune de la photo du dessus sur le cadre, j’ai raccordé la broche d’alimentation du cadre sur le bloc d’alimentation, et j’ai raccordé le tout sur l’alimentation électrique. Verdict :

Réaliser un cadre photo numérique connecté - Montage 10
It’s alive!

Bon, pour le moment, ça ressemble pas à grand chose, mais au moins, ça fonctionne. Pour faire l’essai jusqu’au bout, j’avais branché le Raspberry sur la prise HDMI, lancé le script de la galerie, et hop, j’avais bien mes images qui défilaient sur l’écran. Puisque tout ça fonctionnait correctement, c’est l’heure de faire le montage définitif !

Concernant le cadre, je suis parti sur un cadre en aluminium Nielsen. L’avantage, c’est qu’on peut choisir la taille au centimètre, le design, la couleur, et glisser le cadre dedans tout en renfermant l’ensemble avec des vis. Voici ce que cela donne à l’arrière d’une cadre :

Réaliser un cadre photo numérique connecté - Montage 11

Pour que le tout tienne bien dans le cadre, et que la dalle soit bien calée dedans, j’ai ajouté une couche de polystyrène à l’arrière :

Réaliser un cadre photo numérique connecté - Montage 12
Réaliser un cadre photo numérique connecté - Montage 13
J’ai fais un trou à l’arrière pour laisser passer la broche d’affichage.
Réaliser un cadre photo numérique connecté - Montage 14

Oui, c’est très moche. Mais j’ai fais avec les moyens du bord en attendant de faire mieux. Mais au moins, comme je le voulais à la base, tout tient à l’arrière, et on ne voit rien, a part les câbles d’alimentation.

Et voici le résultat final :

Réaliser un cadre photo numérique connecté - Montage 15

Conclusion du projet

J’ai mis énormément de temps à finir d’écrire cet article (pour certaines raisons), et cela fait maintenant 1 an que j’ai réalisé ce cadre. Cela fait 1 an qu’il tourne parfaitement, et je suis satisfait du résultat. Pas complètement parce que j’aimerai améliorer certaines choses dessus, mais si on prend les points que j’avais énoncés dans le premier article, cette version fait bien ce que j’en attendais.

L’affichage peut tourner H24 sans avoir de bug. Je peux le mettre régulièrement à jour, que ce soit au niveau du système, ou des photos stockées dessus. Et le plus important, c’est qu’il sert vraiment donc ce n’était pas un projet inutile 😀

Maintenant, je vois quand même quelques trucs qui pourraient être améliorés. Actuellement, il y a 2 blocs d’alimentations : un pour la dalle, et un autre pour le Raspberry. J’aimerai acheter un bloc convertisseur de courant afin de raccorder les deux dessus. Ainsi, un seul bloc d’alimentation suffirait.

J’aime bien le cadre que j’ai acheté, mais j’ai mal calculé pour l’épaisseur des bordures. Je ne voulais pas qu’une partie de la dalle soit cachée, et donc j’ai pris un cadre aux bordures assez petites. Trop petites… Du coup, on voit un peu les bordures argentées de la dalle. Dans la vie de tous les jours ça ne se remarque pas trop, mais c’est un détail que j’aimerai améliorer dans une prochaine version.

Concernant les images, le but du projet initial était d’aller chercher les images sur le NAS sans avoir à rien faire. Malheureusement, soit mon réseau est trop lent, soit l’indexation des images est trop lente, soit les images sont trop lourdes, et cela fait planter le script de visionnage. J’ai donc du faire un compromis en copiant des photos sur la carte SD du Raspberry. Ce n’est pas forcément un mauvais choix car cela me permet de choisir ce qui s’affiche et de redimensionner les photos à la taille du cadre, c’est juste moins automatique que ce que j’imaginais.

Et la dernière modification que j’aimerai apporter, ce serait de changer le système de visionnage. Je passe ici par une librairie Linux qui fait bien l’affaire, mais je n’aime pas trop l’espace perdu en bandes noires sur les côtés. J’aimerai donc réaliser une visionneuse web qui chargerait les photos sur le côté de l’écran, et afficher des informations sur l’autre côté comme la date, les prochains événements du calendrier ou encore la météo.
Ce n’est pas un projet impossible, mais cela prend beaucoup plus de temps que la version actuelle.

Voilà, j’ai enfin terminé cet article, et j’espère que cela vous aura donné envie de le réaliser aussi chez vous. En tout cas, si vous avez des questions sur des parties que j’aurai pu oublier, n’hésitez pas 🙂

13 comments on “Réaliser un cadre photo numérique connecté – Montage

  1. bonjour j’ai essayé votre scripts mais impossible a lancer

    pi@raspberrypi:~ $ git clone git@github.com:HitoTech/photoframe.git
    Cloning into ‘photoframe’…
    git@github.com: Permission denied (publickey).
    fatal: Could not read from remote repository.

    Please make sure you have the correct access rights
    and the repository exists.

    une idée par hasard

    1. Bonjour,

      C’est dû à un problème d’authentification avec Github.
      En executant cette commande, on demande à cloner le repository depuis Github via SSH.
      Du coup, il faut que la machine qui execute cette commande ait une clé SSH configurée, et associée avec un compte Github.

      Si ça n’est pas possible, on peut également cloner le repository directement via HTTP avec la commande suivante : git clone https://github.com/HitoTech/PhotoFrame.git

      J’ajoute également ce lien d’aide de Github qui explique comment configurer une clé SSH si on souhaite vraiment faire le clone via SSH : https://help.github.com/en/github/authenticating-to-github/error-permission-denied-publickey

  2. Coucou,
    Tout d’abord merci d’avoir partager ton projet, cela fait toujours plaisir d’avoir des exemples faits sous la main et qui montrent comment faire.
    J’explique brièvement le projet, j’ai un vieux pc portable sous la main fonctionnel et je comptais en faire un cadre photo pour en faire un cadeau à mes parents.
    J’ai installé Debian dessus (l’équivalent (une imitation) de Raspbian mais pour pc portable normalement ?).
    Pris par le temps, je me suis dis que pour le moment, j’allais suivre quelque chose de rapide et fonctionnel (puis mes parents étant assez simplistes concernant la technologie, un truc simple d’utilisation et fonctionnel leur conviendra donc très bien.)
    Toutefois, je rencontre un problème lors de l’exécution de ta 3eme commande dans le terminale.
    Globalement il me met plein de  » Le paquet … n’est pas installé, et ne peut donc être supprimé », jusque là, je me dis que c’est normal si je ne les ai pas dans le pc.
    Puis ensuite il s’arrête sur :
     »
    E : Impossible de trouver Le paquet wolfram-engine
    E : Impossible de trouver le paquet minecraft-pi
     »
    J’ai donc été téléchargé ses paquages sur internet, puis j’ai suivi les procédures d’installation indiquées sur les sites respectifs. Globalement, wolfram je crois que ca s’est bien passé, minecraft-pi, tout semble s’être bien passé sauf que je n’arrive pas à executer le fichier minecraft-pi ( j’ai entré la ligne de commande : « ./minecraft-pi  » et cela met un message comme quoi il trouve pas le fichier alors que j’ai vérifé à plusieurs fois: je suis dans le bon dossier et j’ai bien tapé).
    Bref, sinon, tout semble s’être bien installé.
    J’ai retenté d’exécuter ta 3eme ligne (j’entends sudo ./system_init.sh),
    mais il se passe la même chose, avec le même problème, à savoir :
     »
    E : Impossible de trouver Le paquet wolfram-engine
    E : Impossible de trouver le paquet minecraft-pi
     »

    Que faire ? Je ne sais pas trop pourquoi je n’arrive pas à générer, cela semble si simple lorsqu’on lit le projet.. bref, j’ai tout, le cadre, le pc, l’ecran, tout fonctionne, mais la partie programme est capricieuse.
    Je sais que je n’utilise pas une raspberry, ni une carte SD, mais à la place, un pc portable avec un disque dur 250 GO dans lequel j’ai installé Debian, je me suis dis que ca devrait fonctionner quand même, non ?
    J’espère que vous pourrez m’aider (c’était dans l’idée de l’offrir à mon père, son anniv’ étant le 2 juin, ce pourquoi c’est assez urgent. >-< ). Merci par avance !

    1. Merci pour ton retour sur ce projet, ça me fait plaisir, c’est aussi pour ça que je l’ai partagé 🙂

      Pour information, Raspbian se base sur Debian. C’est pour cela que les deux se ressemblent un peu.
      Cependant, Raspbian a quelques packages installés de base qui ne seront pas présents dans une Debian classique.
      C’est pour cela que tu as ces messages d’erreurs: étant sur Debian, tu essaie de désinstaller des packages qui n’existent pas sur ta machine.

      Pour autant, il faudrait que je revois ce script d’installation, car je pense que ce nettoyage n’a rien a faire dedans étant donné que c’est très spécifique à Raspbian, et mon utilisation.

      Si tu souhaites avancer rapidement pour régler ton soucis, édite le fichier ./system_init.sh, et enlève la partie suivante :

      apt-get purge -q -y wolfram-engine \
      libreoffice* \
      minecraft-pi \
      sonic-pi \
      oracle-java* openjdk* \
      python-picraft python3-picraft \
      scratch* nuscratch \
      python3-pygame python-pygame \
      greenfoot && \

      Et si par le plus grand des hasards cela ne fonctionne pas, tu peux executer directement ces 3 commandes du script dans ton terminal:

      apt-get install -y qiv && \

      # create the directory which will contains the pictures
      mkdir -p /home/pi/pics && \

      # config used to autostart the slideshow at Raspbian boot
      cp ./config_files/slideshow.desktop /home/pi/.config/autostart/slideshow.desktop

      Cela va installer QIV pour faire les slideshows, créer un dossier photo dans /home/pi/pics (si tu est sur un autre utilisateur, genre toto, tu peux remplacer par /home/toto/pics), puis copier un fichier dans ta config qui permettra de lancer le slideshow directement au boot sur la session.

      Si après tout ça tu as encore des problèmes, n’hésite pas, j’essaierai d’aider du mieux que je peux.

      Bon courage 🙂

      1. Merci pour ta réponse aussi rapide ! =D (plus qu’un jour !)
        Bon, malheureusement, cela ne fonctionne toujours pas (mais les problèmes sont différents..).
        Cette fois, en effet, tout a compilé en supprimant les lignes que tu m’as indiqué.
        sudo ./system_init.sh s’effectue jusqu’au bout et sans encombres (ouf ! toutefois, en redémarrant, pas de diaporama au démarrage, il a démarré normalement en mode pc et est arrivé sur le bureau.)
        J’ai donc testé les 3 lignes que tu m’as proposé dans le terminal, les 2 premières se passent bien (et en gros me disent que c’est déjà fait.) ; par contre la 3eme met un message « problème fichier manquant » : je vais le mettre exactement après.

        J’ai aussi une raspberry pi 4B sous la main (qui me sert à d’autres projets) et j’avais une carte sd vierge, j’ai donc mis noob dessus et installé raspbian.
        J’ai tenté avec ( sans supprimer les lignes dans le fichier cette fois), et en effet, tout c’est supprimé normalement, et la suite a bien filée comme sur mon pc.
        Bref, une fois terminé, j’ai redémarrer le pc, et même problème que sur mon pc sous debian : pas de diaporama au démarrage, mais démarrage normal sur le bureau.
        J’ai alors essayé les 3 lignes dans le terminal, et étonnamment, il se passe exactement la même chose :
        après avoir tapé la ligne suivante :
        « cp ./config_files/slideshow.desktop /home/pi/.config/autostart/slideshow.desktop »

        voici le message « d’erreur » :
        cp : opérande de fichier cible manquant après ‘./config_files/slideshow.desktop/home/pi/.config/autostart/slideshow.desktop’
        saisissez « cp –help » pour plus d’informations.

        j’ai donc fait cp –help
        mais là.. Ca m’ade pas beaucoup (de l’écriture apparaît et y a bien plus d’indications que la taille de mon message actuel )

        En gros, je crois que le soucis, c’est que je n’arrive pas à automatiser le démarrage d’une appli au démarrage de l’ordinateur.
        J’espère vraiment que tu vas pouvoir m’aider ; demain est le 2 juin, et je cherche déjà une excuse de report pour son cadeau.. Ahlala je pensais que ca se ferait tout seul.
        En tout cas, merci beaucoup pour l’aide !

        1. Je pense que tu n’es pas très loin, mais que ce qui te manque c’est le demarrage automatique lorsqu’on arrive sur le bureau.

          Concernant la commande cp ./config_files/slideshow.desktop /home/pi/.config/autostart/slideshow.desktop, c’est surement que tu es sur un utilisateur qui ne n’appelle pas « pi ».
          Si ton utilisateur s’appelle « toto », remplace par « /home/toto/.config/autostart/slideshow.desktop ».
          Si le chemin « .config/autostart/ » n’existe pas, tu peux faire la commande « mkdir -p /home/toto/.config/autostart/ » pour créer les dossiers nécessaires.

          Par contre, si encore une fois ton utilisateur ne s’appelle pas « pi », il faudra modifier le fichier « slideshow.desktop » : https://github.com/HitoTech/PhotoFrame/blob/master/config_files/slideshow.desktop
          La ligne « Exec=lxterminal -e /home/pi/photoframe/qiv_slideshow.sh » devra être modifiée avec le nom de ton utilisateur.

          1. D’accord,
            Malheureusement, je suis bien sur un utilisateur qui s’appelle « pi » sur les deux pc (celui sous debian et ma raspberry aussi). Donc jai bien le dossier « pics » qui s’est créé dans « /home/pi ».
            C’est justement bien pour cela que je ne comprends pas pourquoi ca ne fonctionne pas.

            Cependant, jai omis une précision, la version que jai sur la raspberry est le dernier systeme d’exploitation (la derniere version de Raspbian sortie il y a quelque jours qui s’appelle OS je crois.)
            Je ne sais pas si cela change quelque chose.

          2. Du coup, tu as quand même créé le dossier /home/pi/.config/autostart/ ?
            Si c’est pas le cas, la commande cp ne fonctionnera pas.

          3. Bon, alors, j’ai fait autrement.. et j’ai réussi ! ( en m’inspirant aussi d’un autre site internet et puis bien.. J’ai fait à ma sauce car le script de démarrage ne fonctionnait pas. )
            J’ai créé un scrip « slideshow.sh » qui permet de déclencher le logiciel « qiv » de façon à ce qu’il lise les fichiers dans ce dossier « pics ».
            Le problème résidait dans la façon de déclencher ce script slideshow.sh au démarrage.
            J’ai d’abord pensé en ajoutant une ligne de commande le fichier rc local :
            « sudo nano /etc/rc.local » puis ajouter la ligne avant le exit 0 : « sudo nano /home/pi/slideshow.sh »
            alors forcément cela compilait correctement au démarrage, mais ensuite la page allait sur le bureau, et annulée le script.
            Ce qui est assez logique en soi, je pense que modifier dans le fichier rc.local cela va bien lorsqu’on met en mode « console » une Raspberry. Mais je voulais quand même garder un accès bureau.

            J’ai donc fait comme suit :
            sudo chmod +x /home/pi/slideshow.sh (pour appliquer les droits)
            sudo nano /etc/xdg/lxsession/LXDE-pi/autostart (pour aller directement modifier dans le fichier qui démarre le bureau (à ce qui me semble..) )
            et j’ai ajouté les lignes suivantes à l’intérieur :
            « bash /home/pi/slideshow.sh » (pour que le logiciel utilisé soit « bash », puis ensuite le chemin vers le fichier à ouvrir)
            « point-rpi »

            Puis maintenant, au moment où le bureau s’affiche, j’ai bien aussi le script qui compile et donc le pc passe en mode diapo dans le fichier automatiquement au démarrage.

            Merci encore pour ton aide,

            Bonne continuation !

            L.G. Professeur L.

          4. Content que tu ai réussi à faire ce que tu voulais, c’était la bonne piste 🙂

            Bonne continuation à toi aussi !

  3. Salut,

    Merci pour ce super tuto, clair et fonctionnel !
    Je viens de créer mon propre cadre numérique, c’est top !

    Excellente idée !

    Raph

    1. Hello,

      Ravi d’apprendre que ça puisse servir à d’autres personnes, merci pour ton commentaire ! 🙂

  4. Bonjour Mickaël,
    après avoir essuyé plusieurs échecs de démarrage automatique du slideshow et de la connexion au serveur je vais m’appuyer sur ton excellent tuto pour créer une affiche TV numérique.

    Je m’explique…

    Objectif: Affichage des évènements à venir sur TV à la verticale pour une association.

    – synchronisation auto des images d’un dossier partagé sur le serveur
    – au boot vider le /pics et le remplir par les nouveaux jpg du dossier partagé par wifi
    – une fois en place inutile pour les membres de l’asso de toucher au rpi 4 😉

    A terme, passer l’affichage sur plusieurs TV simultanément 😉

    ça te semble réalisable sur rpi 4 ?

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.