Photomaton photos et vidéos sur Raspberry Pi

Exemple du l’image finale du Photomaton (Oui, Mona est une amie perso)

Cet article est dédicacé à Julien G, mais aussi à mon épouse et mes enfants en raison du nombre d’heures passées à travailler sur mon temps personnel/familial

C’est marrant cet engouement pour les photomatons.

Soit mon site est hyper bien référencé, soit je suis un mec qui apparaît comme étant sympa et compétent. (soit les 2 ?)

Toujours est-il que j’ai été sollicité pour adapter un photomaton à un usage un peu différent des précédents.

Il faut que le photomaton puisse permettre de faire des photos avec 1 bouton (un peu normal pour un photomaton), mais également qu’il propose (via un autre bouton) de réaliser des vidéos.
Je l’ai donc nommé “Photomaton_PV” pour “Photomaton Photos et Vidéos” 🙂

Et comme la personne en question est joueuse, elle voulait avoir les vidéos en … Slow Motion.

Et comme la personne en question est très joueuse, elle m’a demandé si c’était envisageable de permettre aux invités de se connecter au Raspberry Pi pour récupérer images et vidéos.
Adepte du “fuyons les Clouds et autres Drive” (et un peu dingue), j’ai donc monté un serveur web sur le Raspberry Pi pour que les convives puissent se connecter directement au Rpi.

Et comme je suis carrément cinglé, j’ai mis en place une procédure d’installation de tout cela via un simple script bash. En simplifiant, ce script va réaliser ces actions :

  • Vérification des mises à jour à appliquer
  • Application des mises à jour si besoin
  • installation d’apache (et les choses qui vont bien pour avoir un serveur web)
  • Création d’un dossier “Photos” dans /var/www/html
  • Création d’un dossier “Vidéos” dans /var/www/html
  • Dézippage du dossier Photomaton_PV
  • Installation du Photomaton
  • Suppression du fichier index de /var/www/html (création automatique)
  • Injection d’un nouveau fichier index pour le site personnalisé
  • Transfert des données utiles pour le visuel du site
  • Suppression des données inutiles du dossier Photomaton_PV une fois l’installation réalisée

Du coup, il suffit à la personne :

  1. De lancer le script avec un bash /home/pi/Desktop/installation.sh
  2. De tester le Photomaton avec python3 /home/pi/Photomaton_PV/Photomaton_PV.py

Et si tout fonctionne, il faudra juste passer le photomaton en mode automatique et en plein écran.

Facile la vie
(bon, j’avoue, perso, j’y ai passé “quelques” heures !)

Bon ; voilà pour la présentation.
Alors, vous êtes prêt ???
On rentre dans le vif du sujet ?

OK ; on y va.
Mais attention, on se tutoie et tu t’appelles Julien 😉

Alors, comme je l’ai suivi presque 10 fois sur 3 Cartes SD différentes + 1 Clef USB = je suis SÛR = ce tutoriel fonctionne absolument.

On va commencer par installer des boutons poussoirs sur les GPIO.

Attention au choix des ports ; merci de te référer au site https://fr.pinout.xyz si tu as besoin de détails.
Perso, j’ai pris les BCM18(GPIO12) pour la photo et BCM26(GPIO37) poiur la vidéo.

Pourquoi ?
Pour 3 raisons :

  1. Je fais ce que je veux (Na !)
  2. Je suis reparti d’un code déjà réalisé
  3. Comme je suis pas bête … ils ont l’avantage d’avoir les masses à côté 🙂

On peut évidemment en profiter pour en ajouter 2 si on veut ajouter une fonction “redémarrage” et une fonction “arrêt” : BCM13 (GPIO33) et “redémarrage” : BCM24 (GPIO18).

Ensuite, tu télécharges Raspbian Buster dans sa version Graphique mais pas la version complète dite “full” ; juste celle nommée “Raspbian Buster with desktop”.

Et tu télécharges le programme d’installation (d’écriture de l’image) qui s’appelle Etcher

Là, il te reste à écrire Raspbian sur la carte SD avec Etcher.

Ensuite, tu mets la carte SD dans le Raspberry Pi et tu démarres.
Configuration : tu passes en Français, tu mets ton mot de passe et tout et tout.
Mais si tu veux de l’aide pour ça, je connais un mec sympa qui a fait un article sur le sujet.
Cet article s’appelle “Installation de Raspbian Buster” ; c’est cool, non ?!?
Une vraie crème ce mec 😉

Bon, bref, magie de l’Internet et de l’informatique –> tu te retrouves sur le bureau de ton Raspbian fraîchement installé.

Il te reste “presque rien” à faire.

On va tout de même vérifier ton IP puisque tu veux que le photomaton soit accessible en lui collant une IP par partage de connexion avec ton SmartPhone.
(chez moi, je suis en IP fixe et tout en filaire ; je n’aime pas les ondes, mais Julien, il veut ça)

Si tu as bien suivi le super tuto d’installation de Raspbian Buster, tu as “sauté” la partie “wifi” comme moi … mais on va changer les choses = tu vas débrancher le câble réseau + passer ton smartphone en point d’accès + redémarrer ton Raspberry Pi.

Là, tu fais un clic droit sur l’icône réseau, en haut à gauche et tu te connectes à ton réseau.

C’est bon ? Allez, on va se connecter au Rpi depuis un autre Téléphone (Madame en a un ?) !

Mais pour cela, il faut connaître l’IP du Raspberry.
C’est simple, tu tapes ifconfig et tu notes l’IP de la zone “wlan0” à côté de “inet”

Pour vérifier (on est joueur), on va faire un sudo reboot et un autre ifconfig pour voir si ça reste la même.
C’est bon ? OK, on poursuit !

On passe réellement au Photomaton !

Tu télécharges mon archive appelée Photomaton_PV.zip et mon script d’installation appelé installation.sh.zip et tu les déposes sur le bureau de ton Raspberry Pi.

Ensuite, tu fais un clic droit sur “installation.sh.zip” et sélectionnes “extraire ici” puis tu ouvres le Terminal et tu tapes : bash /home/pi/Desktop/installation.sh et tu valides … et …

Et tu laisses la magie informatique opérer !!! Trop bien ce script !

En gros, ça installe un serveur Web intégré + installe le photomaton + réalise un nettoyage du bureau + lance le photomaton pour que tu puisses l’essayer immédiatement.

En prime, tu as une modification du fichier de lancement (rc.local) afin que les boutons “éteindre” et “redémarrer” deviennent actifs dès le prochain redémarrage. (on va en reparler plus bas)

Bon, ton photomaton est lancé et prêt à agir ?

A noter :
Pour aider les gens à se prendre en photo, l’imager affichée est en mode miroir, mais la photo sera redressée pour être réelle. Voir en fin d’article les illustrations

Bien, tu peux l’essayer en appuyant sur le bouton “photos” puis sur le bouton “vidéos” (oui, bouge ton corps, c’est mieux) puis à nouveau sur le bouton “photos” puis à nouveau sur le bouton “vidéos”.
Maintenant que tu es un homme rassuré (ou une femme, mais comme tu t’appelles Julien dans ce tutoriel, nianiania, ce n’est en rien du sexisme), tu veux voir les images ?

Tu peux le faire depuis un PC, mais on va tester la fonction désirée = que les convives s’y connectent depuis leur téléphone portable.
Donc, tu vas prendre le SmartPhone de Madame (tu demandes si tu peux) et tu tapes l’IP du Raspberry Pi dans le navigateur.
(tu as eu l’IP avec le ifconfig)

Alors ? Et oui, tu es devant une page Web qui te permet de voir soit les photos, soit les vidéos (et donc de les enregistrer).

A noter que tes images sont sauvegardées automatiquement dans les dossiers “photos” et “videos” à cette adresse /var/www/html c’est à dire /var/www/html/photos et /var/www/html/videos

Tout va bien et tout te plaît ?
Tu es un Julien heureux ?
(ouf ; j’ai bien bossé alors)

Il te reste 1 modification à faire pour lancer le photomaton en automatique (faire en sorte que le script se lance dès le démarrage de l’interface graphique du Raspberry Pi).
Il suffit de taper : sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
Et tu ajoutes python3 /home/pi/Photomaton_PV/Photomaton_PV.py à la dernière ligne.
(et tu valides en faisant “Ctrl”+”c” puis “o” puis “Entrée”).

Bon, tu es prêt ?

Tu tapes sudo reboot et tu valides.

Dans 1 minute, le Rpi sera relancé et le Photomaton sera lancé en automatique.

Tu fais une photo puis une vidéo puis tu appuies sur le bouton “redémarrage”.

Tout fonctionne ? Bravo ! (j’ai refait encore toute la procédure en tapant ce texte et, chez moi, ça fonctionne nickel !!!)

Petite astuce importante : il faut empêcher le Raspberry Pi de faire ce qu’il adore faire = couper l’affichage de l’écran après 10 minutes d’inactivité.
Pour cela, il suffit d’installer xscreensaver avec sudo apt install xscreensaver puis de le lancer et de lui demander de ne jamais se mettre en œuvre (ouais, c’est con comme principe, d’installer un service pour le désactiver, mais c’est comme ça).

Maintenant, tu réalises tous les tests ; tu laisses tourner le Photomaton pendant 2 heures (voire plus) en appuyant de temps en temps sur “Photo” ou sur “Vidéos” et tu te connectes de temps au temps au serveur pour vérifier que tout roule.

Tu vérifieras aussi que les boutons “Arrêt” et “Redémarrage” fonctionne bien.

Une fois que tu seras sûr que tout est ok, tu pourras changer un petit truc dans le script afin que tout l’écran du Rpi soit masqué ; ça sera plus joli.
Ne sois pas effrayé ; c’est facile.
Tu ouvres le fichier Photomaton_PV.py avec Geany et tu changes

pygame.init()
#screen = pygame.display.set_mode((0,0),pygame.FULLSCREEN)
screen = pygame.display.set_mode((1920,1080),RESIZABLE)
width, height = screen.get_size()

en

pygame.init()
screen = pygame.display.set_mode((0,0),pygame.FULLSCREEN)
#screen = pygame.display.set_mode((1920,1080),RESIZABLE)
width, height = screen.get_size()

et … tu redémarres !

Alors ? Heureux ?

@+

Pour illustrer, voici les 3 images du traitement.

J’ai demandé à Mona Lisa de bien vouloir jouer le modèle.
Comme j’ai bien connu Léonard à l’école, elle a accepté.
Ou alors, c’est parce que l’image que j’ai imprimée pour la prendre en photo est libre de droit sur Wikipedia.
(https://fr.wikipedia.org/wiki/La_Joconde)

Voici l’image affichée en retour écran ; elle est en mode miroir
Voici la photo remise en état normal par retournement.
Et voici l’image finale (la seule sauvegardée) avec application d’un tampon personnalisable (image, forme, texte)
Et pour celles et ceux qui ne veulent pas de tampon, il existe la possibilité d’afficher un texte (je trouve ça moins fun).

 

 

 

A propos de Alban

Papa de 4 enfants étant lui même resté un enfant. Tombé par obligation dans l'informatique à 22 ans pour le boulot et s'étant "un peu" pris au jeu ... Pas un génie de l'informatique (loin de là), mais intéressé et carrément orienté Linux et entraide.

6 commentaires à propos de “Photomaton photos et vidéos sur Raspberry Pi”

  1. Bonsoir,

    les boutons GPIO:

    reboot & shutdown Ok

    mais les boutons: j’ai bien respecté le cablage GPIO
    – Photo – prend une vidéo
    – Vidéo – ne se passe rien

    est – ce possible de modifier le graphisme ?
    Textes Police d’écritures ?

    Merci, encore

    • Hello,
      Je t’envoie des photos pour visualiser mes ports GPIO et un script python à tester.
      Il fonctionne sur mon Rpi et bénéficie d’une police d’écriture “exotique”.
      @+

    • Re,

      Pin BCM 13 (Physique 33) = Reboot
      Pin BCM 24 (Physique 18) = Poweroff
      Pin BCM 18 (Physique 12) = Photo
      Pin BCM 16 (Physique 37) = Video

      Voir sur https://fr.pinout.xyz/ pour être sûr de soi.

      Pour simplifier, je ne parle pas des masses, mais elles sont toutes à côté ou en face
      Voici mes couples (en N° Physique) : 33/34 ; 18/20 ; 12/14 ; 37/39

      @+

  2. Bonsoir,

    super tuto ! merci !
    aurait-vous SVP une video ou/et photo du Projet en fonction ?
    est-ce possible d’avoir un bouton gpio pour prendre des photos, un autre pour une video ?
    afin de tout gérer par gpio,

    Merci

    • Bonjour Ike,
      Le Photomaton Photo et Vidéo est fonctionnel en l’état ; il tourne en automatique sur GPIO.
      (un Rpi avec des câbles sur les GPIO puisque je ne m’occupe que de la partie “programmation” ; je n’ai pas fait le Photomaton au sens “cabine”).
      J’ai 4 boutons (en fait, juste des fils que je fais se toucher pour le moment 🙂 ) :
      – 1 bouton lance une photo
      – 1 bouton lance une vidéo
      – 1 bouton permet de redémarrer le Rpi
      – 1 bouton permet d’arrêter le Rpi
      Je vais tacher de faire une vidéo de présentation (ou des photos).
      Mais je suis en train d’améliorer (de tenter d’améliorer) le script en ce moment
      Et merci pour les compliments,
      @+

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*