Photomaton automatique à base de Raspberry Pi

Photobooth (boîte en carton) branché à la TV
Photomaton minimaliste pour le moment, mais parfaitement utilisable (boîte faite en carton)

Page mise à jour le : 26 mai 2019

Nouvelle mise à jour de l’article le 15/04/2019 avec mise à jour du script + simplification de l’article par mise en téléchargement d’une archive avec le script et les fichiers complémentaires.
Le script a été revu et corrigé avec le programme “Thonny Python IDE” et ne donne aucune erreur avec son exécution en python3 sur Raspbian Stretch (mais uniquement les versions avec bureau graphique ; pas avec la version Lite).

Ajout 26/05/2019 : voir dans les commentaires pour l’ajout de la solution de l’impression de la photo ; c’est ce commentaire.

Résumé :
Article en 2 parties
1 – Tutoriel pour réaliser en quelques minutes un photomaton automatique à l’aide d’un Raspberry Pi et d’un bouton poussoir.
2 – Tutoriel pour ajouter un bouton poussoir de redémarrage (reboot) et un bouton poussoir d’extinction (shutdown).

Bonjour,

Cette fois, ce n’est pas pour aider quelqu’un d’un forum que j’ai réalisé ce “montage” … mais … suite à une question d’un forumeur en rapport avec le sujet.
Oui, ça reste proche ; c’est à cause des autres 🙂

Ajout du 11/04/2019 : Merci à Loïc et Stéphane pour leurs commentaires ; j’ai modifié l’article pour qu’il soit plus facile à suivre/comprendre.
Et bon Anniversaire à
Isabelle D en même temps 😀

Je n’avais jamais essayé de réaliser un photomaton (trop souvent appelé Photobooth à cause du terme Anglais) alors qu’on trouve légion de questions/sites/tutos sur le sujet.
Vous vous en doutez, j’y ai souvent pensé ces dernières années.
Cependant, je ne m’étais jamais aventuré dans l’histoire car j’avais peur de ne pas y arriver et, surtout, je ne voulais pas acheter de matériel (oui, c’est un aspect récurrent de ma personnalité 😉 ; j’avoue).

Mais … en fait … je n’ai pas besoin d’acheter puisque un simple bouton fera l’affaire (“Commutateur momentané à bouton-poussoir” dans le jargon je crois).
Ben oui ! Il m’en reste 4 de l’époque de mon bartop maison ; ils sont dans une caisse au sein même de LA caisse “informatique” du garage truc appelé garage faisant office de débarras.
Content Alban 🙂

Et, je vous le dis tout de suite : Réaliser un Photomaton = c’est HYPER facile et rapide !

A la fin de cet article, vous aurez donc un photomaton (ou Photobooth pour les Anglophone ou un PiBooth pour les “branchés”).
C’est à dire un Raspberry Pi pouvant prendre une photo par simple appui sur un bouton.
Et cela va vous prendre moins de 5 minutes si Raspbian est déjà installé.

Et, après, en bonus, j’ai ajouté un cadeau 🙂

En effet, après un petit tour du Web, j’ai voulu corser le tout.
Oui, ça sera mon premier script en python.
Oui, je veux modifier ce script pour y mettre ma patte.
Mais, en plus, je veux ajouter un truc : la gestion du photomaton sans aucune interface clavier/souris.
En bref, pouvoir arrêter le Raspberry Pi en appuyant juste sur un bouton au cas où il serait dans un meuble en mode Photomaton.

Actuellement, je vous écris depuis le Raspberry Pi3B+ qui sert de Photomaton/Photobooth (j’ai coupé le script et branché clavier/souris).
Cela pour prouver que ce Raspberry Pi peut encore être utilisable comme PC.

C’est mon Rpi3B+ avec Raspbian Stretch avec Bureau graphique (mais pas la version “full”).
Mon image est celle du 13/11/2018 réinstallée fraîchement ce matin pour vérifier que les tutos fonctionnaient bien.
J’ai simplement configuré le Rpi comme dans cet article : Installation de Raspbian Stretch.

Ajout du 13/04/2019 : Tuto testé sur une installation fraîche de Raspbian Stretch Release 2019-04-08 = tout est fonctionnel !

1 – Tutoriel pour le Photomaton

Finalement, la mise en place du “photobooth” est très simple et tient en 4 étapes :

  1. Vous installez Raspbian (tuto détaillé en images).
  2. Évidemment, vous connectez le module caméra (ou RaspiCam) au port CSI (avant de commencer, testez-le avec raspistill -o test.jpg)
  3. Vous activez ensuite la Caméra et le SSH (et VNC si besoin) et en allant dans l’utilitaire de configuration nommé “Configuration du Raspberry Pi” (Menu Framboise –> Préférences).
  4. Vous téléchargez le script photomaton.py écrit en python (je vous détaille cela dans les lignes qui suivent)

Mon script est énormément basé sur celui que nous trouvons tous sur le Net à un moment ou un autre et qui s’appelle pibooth.py (lien direct par respect, mais ne téléchargez pas le fichier, au lancement du script, il affiche un écran noir qui peut faire peur).

J’ai modifié ce script, mais je n’ai rien inventé. D’autant que je découvre le python !
L’inspiration est très très (très très) forte. Mes adaptations apportées sont :

  • Modification des GPIO utilisés (le BCM24 soit le port 18 + la masse 20)
  • Ajout d’une image de fond + un texte d’accueil
  • Ajout d’un effet sonore à l’écran d’accueil
  • Ajout d’un délai de 5 secondes avant photo (le temps de se mettre en place)
  • Ajout d’un temporisateur pour que la photo prise s’affiche 5 secondes
  • Ajout d’un retour à l’écran d’accueil.

Bref, rien de révolutionnaire, mais je suis content puisque je débute totalement en python et qu’il est valide python3
Bon, comme je suis fier et partageur, voici mon script.

Pour simplifier les choses, tout sera dans un dossier “Photomaton” ; comme ça, on travaillera au propre.

–> Télécharger le dossier “Photomaton” contenant mon script python nommé photomaton.py + l’image d’accueil + le son directement ici : script python pour photomaton .

–> C’est un zip avec les 3 fichiers : il faudra le dézipper pour obtenir un dossier “Photomaton” avec les fichiers nommés “accueil.png” + “photomaton.py” + “son.wav”.

–> Vous glisserez ensuite ce dossier dans “/home/pi/”
(on peut extraire l’archive directement vers un dossier cible en faisant clic droit puis “extraire vers” et spécifier /home/pi/).

–> Ne testez pas le script de suite ; restez patient 😉
En effet, si vous lancez le script maintenant, vous aurez bien le photomaton qui se lancera … mais … vous ne pourrez rien faire (clavier inactif).
(si le script a été lancé, connectez-vous au Rpi via SSH et lancer un sudo reboot pour redémarrer)

image avec dessin d'un appareil photo et texte invitant à s'installer et appuyer sur le bouton
–> Image d’accueil personnelle pour mon photomaton (à la dimension de mon écran)

Un peu de blabla :
Mon image est simplement une insertion d’une image Libre de Droit sur un fond noir + incrustation d’un texte en blanc.
L’icône vient de pixabay.com.
Vous pouvez utiliser/modifier “mon” image ; d’ailleurs, elle est intégrée dans le dossier mis en téléchargement. Elle ne pèse que 46 ko (image au format 1080x1920px).

Le son de sifflet vient de https://lasonotheque.org et le fichier est “Sifflet en plastique 4“. Inutile de le télécharger ; il est intégré dans le dossier.

Rappel : si vous lancez le script sans avoir installé un bouton, vous lancerez le photomaton en plein écran sans possibilité de reprendre la main (clavier inactif).
En effet, une fois le script lancé, il faut appuyer une fois sur le bouton poussoir pour lancer la procédure de prise de photo.
Et, pour fermer le script, il faut appuyer “durablement” sur le bouton jusqu’à la fermeture du script (sur mon script, c’est 20 secondes sans relâcher le bouton si on repart de l’écran d’accueil).

Donc avant de tester le script, on va aborder le branchement du bouton !!!

Photo d'un bouton poussoir
–> Un joli bouton poussoir (et pas un point) noir !

Comme je vous le disais, pour le bouton, j’ai opté pour un simple bouton d’arcade (sur l’image, c’est le bouton noir ; cliquez pour zoomer).
La connexion est réalisée à l’aide du câblage fourni avec.

On connecte donc le câble au bouton puis aux ports GPIO.
On lance le script en essai avec cette commande dans le Terminal :  python3 /home/pi/Photomaton/photomaton.py et ça doit lancer un écran avec “Installez-vous et appuyez sur le bouton pour prendre une photo” et un “joli” son de sifflet.
C’est bon ?
Alors, appuyez 1 fois sur le bouton et … souriez !!! 🙂

Ensuite, appuyez à nouveau mais sans relâcher durant 20 secondes.
Ça va prendre la seconde photo puis l’afficher puis quitter le script.

A noter que j’ai réinstallé au moins 8 fois Raspbian Stretch dans les versions du 13/11/2018 et du 08/04/2019 ; je n’ai jamais eu le moindre souci … sauf avec la version “Lite”.

Comme tout s’est bien passé, on peut automatiser la chose en faisant en sorte que le script se lance dès le démarrage du Raspberry Pi.
Il suffit de taper : sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
Et on ajoute python3 /home/pi/Photomaton/photomaton.py à la dernière ligne (et on valide avec les habituels “Ctrl”+”c” puis “o” puis “Entrée”).

Ça donnera ceci :

@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
point-rpi
python3 /home/pi/Photomaton/photomaton.py

A ce stade, vous redémarrez votre Rpi et vous devez avoir un Photomaton automatique car le script sera lancé au chargement de votre interface graphique.

C’est OK chez vous aussi ?

Bon, je vais faire un tour pour trouver des chaussures pour le N°4 et je reviens pour la partie :
Ajout d’un bouton de redémarrage + un bouton d’extinction.
A tout …

TaDa ; me revoilà.

Bon, on avait trouvé des Vans à 25 Euros (C’est les Soldes) … mais avec 1 pied en 35 et l’autre en 36.
Ho, les nazes !
Évidemment, je n’ai pas pris = il était déçu !!!
Quoi ?
Ha oui ; l’automatisation !
(Pffff … Comment ils s’en fichent de ma vie)

2 – Tutoriel pour piloter le Raspberry Pi avec 2 boutons poussoirs

Raspberry Pi + RaspiCam + les 3 boutons poussoirs
–> A l’état prototype, voici le photomaton et ses boutons de pilotage. C’est fonctionnel, mais “nu” pour le moment.

Alors, on termine en rendant le photomaton totalement automatique en chargeant un script avant même la séquence graphique (comme ça, ça fonctionne aussi en mode console).

Ce script sert à éteindre et/ou rallumer le Raspberry avec de simples boutons.

On édite le fichier rc.local avec sudo nano /etc/rc.local
On y insère sudo python3 /home/pi/bouton-extinction.py& juste avant la ligne # Print the IP address
Le fichier sera donc :

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sudo python3 /home/pi/bouton-extinction.py&
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

exit 0

Comme d’habitude, “Ctrl”+”x” puis “o” puis “Entrée”.

Ensuite, création du script avec sudo nano /home/pi/bouton-extinction.py.

Vous pouvez faire un copier/coller de ce code dans Text Editor :

#!/usr/bin/python3

#on importe les modules nécessaires
import time
import os
import RPi.GPIO as GPIO

#on met RPi.GPIO en mode notation BCM (numéro des pins ; ne vous trompez pas ; voir https://fr.pinout.xyz)
GPIO.setmode(GPIO.BCM)

#on initialise le GPIO 13 en écoute (broche physique 33 mais BCM pin 13)
GPIO.setup(13, GPIO.IN, pull_up_down=GPIO.PUD_UP)

#on initialise le GPIO 26 en écoute (broche physique 37 mais BCM pin 26)
GPIO.setup(26, GPIO.IN, pull_up_down=GPIO.PUD_UP)


#on définit la fonction appelée par la pression du bouton
def reboot(channel):
     #on affiche un message de confirmation (visible si écran connecté)
     print("Appui détecté sur le GPIO 13 = redémarrage demandée")
     #on reinitialise les GPIO
     GPIO.cleanup()
     #on lance la commande d'extinction
     os.system('sudo reboot')

#on définit la fonction appelée par la pression du bouton
def extinction(channel):
     #on affiche un message de confirmation (visible si écran connecté)
     print("Appui détecté sur le GPIO 26 = extinction demandée")
     #on reinitialise les GPIO
     GPIO.cleanup()
     #on lance la commande d'extinction
     os.system('sudo poweroff')


#on met les boutons en écoute
GPIO.add_event_detect(13, GPIO.FALLING, callback=reboot)
GPIO.add_event_detect(26, GPIO.FALLING, callback=extinction)

#on lance une boucle infinie, pour garder le script actif
while 1:
     #Avec une légère pause entre chaque boucle dans le but de réduire la charge CPU
     time.sleep(0.02)

#on réinitialise les ports GPIO en sortie de script
GPIO.cleanup()

On a donc un double script avec un “reboot” sur un bouton et un “shutdown” sur l’autre.

J’ai choisi mes GPIO pour les 2 scripts selon un protocole scientifique vérifié et indispensable :
Je voulais pouvoir passer les fils à travers le boitier mais pouvoir refermer le boitier alors que la partie connectable au GPIO est grosse et en un seul module ce qui limite les possibilités. (voir image en fin d’article)
Bref, il fallait que le GPIO utile et la masse soit côte-à-côte dans les 3 cas, mais pas les uns à côté des autres et pas sur la zone des “pattes” (les clips) du couvercle.
Donc mes choix de GPIO ne sont que liés qu’à mon environnement ; libre à vous de faire autrement selon vos câbles et votre boîtier.

Allez, vous tentez un redémarrage ?

Vous avez maintenant un Raspberry Pi qui est devenu un photomaton automatique (photobooth en Anglais) dès le démarrage.
Avec un bouton pour réaliser un cliché.
Ce cliché sera enregistré dans un dossier sur le bureau (ce chemin peut se modifier)
Après affichage de 5 secondes de la photo, on a un retour à l’écran d’accueil.
Pour que cela fonctionne sans rien, le dispositif dispose de 2 autres boutons : “Redémarrer” et “Éteindre”.

Maintenant, à vous de réaliser la caisse/boîte/cabine que vous voulez autour de ce projet.

Pour le moment, le mien ressemble à ça 😀
(voir la galerie en fin d’article)

Si vous en faites un sympa/drôle/bizarre/décalé/original/traditionnel/… vous pouvez m’envoyer des photos pour publication (les images seront alors sous Licence Libre CC BY-SA 3.0 FR comme tout mon site).

Édit du 09/01/2019 au soir :
Pour être bien sûr que tout fonctionne parfaitement, je viens d’installer Raspbian Stretch with Desktop sur une carte SD Sandisk Ultra de 16 Go achetée ce jour à 8,99 Euros à Leclerc (belle promo).
J’ai simplement appliqué les 2 parties de cet article et je confirme que tout fonctionne parfaitement !

Édit du 13/04/2019 au soir :
Je viens de refaire pareil sur Raspbian Stretch Release 2019-04-08 et idem ; tout est OK (sauf avec la version Lite).

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.

31 commentaires à propos de “Photomaton automatique à base de Raspberry Pi”

    • Merci Stéphane,
      Pour dire vrai, mon absence de formation en informatique rend la tache un peu longue parfois.
      En effet, souvent, je n’ai pas la réponse donc … je dois la chercher 😉

      • Stp je tiens vraiment que tu nous aide au niveau de l’impression…car j’arrive pas à faire en sorte que la commande d’impression que je lance reconnaisse le nom de l’image qui vient d’être prise

        • Trouvé 🙂

          Ça m’a pris 1 bonne heure, mais comme je n’y connais rien, j’ai dû chercher un peu.

          J’ai d’abord installé mon imprimante samsung (elle est sur le réseau, sur le poste depuis lequel je “travaille” actuellement en VNC et/ou SSH) en suivant mon tuto sur l’installation d’une imprimante sur Raspberry Pi
          J’ai ensuite cherché à imprimer en ligne de commande.
          J’ai donc installé cups-bsd en complément de cups avec sudo apt-get install cups-bsd
          Puis j’ai testé d’imprimer une image (ce qui fut OK)

          Ensuite, j’ai cherché comment lancer ma ligne de commande en python.
          C’est simple ; il faut faire os.system(‘ligne de commande’)

          Ensuite, j’ai voulu imprimer l’image qui est prise par le photomaton.
          Et je me suis donc dit “Non, mais ; tu n’y connais rien, mais Stéphane compte sur toi = tu vas te servir de ton intelligence. Tu dois y arriver !“.

          Comme le script dit : chemin_photo = '/home/pi/Desktop/photos/'+nom_image+'.jpeg' alors j’ai tenté lpr -h -PSamsung_Samsung_CLX-3300_Series -#1 -o media=A4 -o scaling=25 "/home/pi/Desktop/photos/'+nom_image+'.jpeg"
          Et tu sais quoi ?
          Ça solutionne tes 2 soucis puisque ça permet :
          – d’imprimer LA dernière image prise
          – d’imprimer LA photo qui est dans le dossier sur le bureau (ou n’importe où puisque le chemin est complet)

          Le code utilisé est :
          os.system('lpr -h -PSamsung_Samsung_CLX-3300_Series -#1 -o media=A4 -o scaling=25 "/home/pi/Desktop/photos/'+nom_image+'.jpeg"')
          où “Samsung_Samsung_CLX-3300_Series” est mon imprimante et “-#1 -o media=A4 -o scaling=25” me permet de faire des tests avec une image réduite pour ne pas bouffer mon encre 😀

          Je te donne le bout de code dépersonnalisé + avec un peu de code avant et après afin que tu saches où l’insérer.

          #on affiche la photo
          time.sleep(1)
          AfficherPhoto(chemin_photo)

          #on imprime la photo
          os.system('lpr -h -PNomDeTonImprimante "/home/pi/Desktop/photos/'+nom_image+'.jpeg"')

          #on affiche un message
          AfficherTexteTransparent("OK ; voici ce qui dans la boite ...")
          time.sleep(5) #Ajout d'un temps d'affichage afin de repartir sur l'accueil ensuite

          @+

  1. Bonjour, est il possible qu’une fois l photo effectuer, et que même si elle est stocker dans un dossier, de faire en sorte d’imprimer la photo après la prise de vue via une imprimante canon selphie par exemple ?

    En gros, les gens prennent la photo en appuyant sur un bouton. Puis ensuite j’aimerais qu’une boite de dialogue saffiche pour donner le choix d’imprimer ou non (bouton vert pour imprimer et rouge pour ne pas imprimer par exemple).
    Ou plus simple, faire en sorte ou non qu’après chaque photo elle soit automatiquement imprimée.
    En gros si j’ai une imprimante j’active l’impression automatique et si j’en ai pas je la désactive.

    C’est possible ?
    Et comment faire ?
    Merci d’avance

    • Bonjour,

      C’est possible.
      Perso, je ne l’utilise pas (je n’ai fait ce photomaton que pour tester et aider), mais je connais des gens qui ont mis une Selphie CP 1300.
      Tu devrais pouvoir trouver des scripts aisément sur le Net.
      Si je peux, je regarde ça pour intégrer l’usage de l’impression à mon script.

      Si le script python dit d’enregistrer et d’imprimer, il devrait suffire de ne pas allumer l’imprimante pour que les photos ne sortent pas.
      Mais sortiront-elles plus tard ; c’est le risque.

      Il est vrai que la solution de l’invit’ de commande ferait plus pro pour ton usage.
      Je crois que je vais devoir bosser sur le sujet 😉

      A bientôt,

        • Bon,
          Comme tu peux le voir, j’ai trouvé comment lancer une impression de manière automatique.
          Je vais devoir chercher un peu plus pour t’aider.
          En effet, je viens de tenter un truc :
          Éteindre l’imprimante puis faire 2 photos avec le photomaton puis éteindre le Rpi puis rallumer l’imprimante.
          Résultat : mon imprimante n’a pas bronché (mais elle est en réseau et je n’ai pas de serveur d’impression
          MAIS … lorsque j’ai rallumé le Rpi, la dernière photo est sortie. Grrrr … !!!

          Donc, ça fonctionne puisque les photos sont prises + elles sont imprimées si imprimante active + elles ne sont pas imprimées si imprimante non active.
          Sauf que la dernière image ressortira lorsque l’imprimante sera rallumée.
          Bref, je dois retravailler le truc.

          @+

    • Bonsoir… J’ai le même problème que toi et actuellement j’y travaille toujours.. j’ai également une imprimante photo canon selphy..
      Pour imprimer il y’a deux possibilités.. soit tu passe par CUPS soit tu passe par le Terminal…
      La photo prise dans ce programme est obtenue par appel d’un script dans un programme pyton.. j’ai essayé de faire la même chose en ce qui concerne l’impression mais j’ai un problème, pour pouvoir imprimer une photo via le Terminal,la photo doit être enregistré dans le dossier home/pi de que j’ai fait en modifiant les chemins d’enregistrement mais le gros problème est au niveau du nom de l’image.. comment faire pour que à chaque passage l’imprimante puisse reconnaître le nouveau nom de la photo ??
      Svp si vous trouvez quelque chose n’hésitez pas à partager..
      Merci

  2. bonjour
    merci pour le tuto , j essaie en fin de semaine
    est ce que c’est compliqué da jouter une imprimante ensuite?
    belle journee
    julien

    • Bonsoir Julien,
      J’ai une imprimante sur le Rpi (enfin, parfois puisque j’ai 5 installations de Raspbian différentes pour des tests pour moi et pour les autres 😀 …), mais je n’ai jamais testé l’impression avec mon photomaton.
      Mais je pense que tu sauras trouver (ou je serais là pour t’aider si besoin ; ça me fera faire encore un nouveau truc).
      Pour l’imprimante, cela pourra t’aider : Installer une imprimante sur Raspberry Pi
      @+

    • Bonsoir,
      Il faut modifier le chemin qui dit où les photos doivent être enregistrée.
      Ça peut donc être une clef ou un disque dur en effet.

      Là, par exemple, je viens de formater une clef en “clef”.
      Insérée dans le Rpi, elle se monte dans /media/pi/clef

      Dans le script, j’ai modifié la ligne
      #on déclenche la prise de photo
      chemin_photo = '/home/pi/Desktop/photos/'+nom_image+'.jpeg'
      PrisePhoto(chemin_photo) #Déclenchement de la prise de photo

      en
      #on déclenche la prise de photo
      chemin_photo = '/media/pi/clef/photos/'+nom_image+'.jpeg'
      PrisePhoto(chemin_photo) #Déclenchement de la prise de photo

      Et j’ai bien mes photos dans ma clef.

      J’espère que tu verras cette réponse car ton adresse de courriel n’est pas valable.

      ++

    • Re,
      En installant Raspbian Stretch with desktop + en téléchargeant mon archive + en réglant le lancement automatique + en mettant en place le script des boutons “arrêt” et “redémarrage”, je confirme que le photomaton était opérationnel en 1/4 d’heure (y compris installation et configuration de Raspbian).

      Si vous voulez un Photomaton autonome sans prise de tête, je vous conseille donc cette solution.

      Mais je tenterai tout de même de voir si j’arrive à y parvenir avec une version Lite 😉

  3. Bonsoir… J’utilise rasbian Jessy lite…
    J’ai toujours le même problème…
    Je sais pas si je vais juste mal ou alors il y’a un endroit où je fais pas bien

    • Re,
      Effectivement, nous n’avons pas les mêmes versions (Jessie est sortie en avril 2015 et sa dernière mise à jour date de juin 2018 ; Stretch est sortie en août 2017).
      Il existe des différences entre Jessie et Stretch, mais je suis sûr que le problème vient de l’utilisation de la version Lite. En effet, un système Lite ne comprend que le strict minimum et mes tests ce matin n’ont pas été concluants avec Lite alors que tout fonctionne sous Stretch en version graphique (j’ai écrit et testé Stretch Lite, Stretch Desktop et Stretch full ce matin).
      Je vais tenter de trouver une solution, sans certitude de réussite toutefois, je ne suis en rien informaticien …
      Espérant pouvoir revenir vous donner la solution,
      Au plaisir,

      Une piste –> https://pillow.readthedocs.io/en/latest/installation.html

  4. bonsoir… j’ai le même problème et je pense que cela peut provenir de la bibliothèque PIL puisque au départ je ne l’avais mit(désolé déjà d’avoir pas bien lu votre code)… mais Svp comment l’installer pour pyton 3 ?? j’ai beau chercher mais il parait que installer pil pour pyton 3 est un peu bizarre…
    je pense que si j’arrive à l’installer le problème sera résolu..
    merci d’avance

    • Bonjour Stéphane,

      Je suis actuellement avec Raspbian Stretch Release 2019-04-08 (version “Raspbian Stretch with desktop and recommended software”).
      Et je n’ai pas eu à installer PIL.
      Quelle version de Raspbian utilisez-vous ?
      Vous êtes sous Raspbian Lite ?
      Que dit cat /etc/issue et cat /etc/debian_version ?

      Sinon, on peut tenter
      pip install --user Pillow
      Voir cette page de l’université d’Aix-Marseille
      Je viens de tester (il faut juste modifier le script pour mettre les bon chemins) et ça fonctionne.

      A bientôt,

      • Bonjour… J’ai réussi à afficher l’image de fond en passant par la bibliothèque pygame ainsi que l’ajout d’un flash… Mais j’ai un souci à chaque retour de boucle la photo qui vient d’être prise est jumilée à l’image de fond…. Et aussi toutes mes photos ne sont pas sauvegardées…. Ça montre bien le fichier photo mais quand j’ouvre ça m’affiche une erreur…
        Merci pour votre aide. ..

  5. bonsoir…
    le pibooth d’origine de lance sans problème… sauf que pour sortir du programme suis obligé d’arrêter de débrancher la raspberry car même quand j’appuie le bouton poussoir pour longtemps ça ne sort pas du programme….
    pour votre programme il bloque directement après le lancement sur écran noir et après impossible de sortir du programme…..
    bon demain j’essaierai de faire des modifications comme vous l’avez indiqué et je vous retournerai le résultat juste après…

    • Bonsoir Stéphane,
      J’ai réinstallé Raspbian et suivi mon tuto (le début, pas les boutons “reboot” ni “shutdown”).
      Au démarrage, j’ai bien un Raspberry Pi avec Raspbian.
      Si je lance le script avec python photomaton.py j’ai bien l’écran avec mon image d’appareil photo (ou l’écran noir avec la phrase “Installez-vous et appuyez sur le bouton pour prendre une photo” en bleu car j’ai tout refait 3 fois et je recommencerai ce soir ou cette nuit).
      Si j’appuie 1 fois sur mon bouton poussoir, ça lance le décompte et déclenche la prise de la photo pour l’afficher puis revenir à l’écran d’accueil.
      Si j’appuie sans relâcher le bouton jusqu’à la prise d’une nouvelle photo et son affichage, alors, je sors du script.
      Votre version de Raspbian est bien à jour ? (sudo apt-get update && sudo apt gate upgrade -y && sudo apt-get dist-upgrade -y).
      A noter que je gère mes script avec l’éditeur de texte ou via nano, mais pas par le programme python.
      Attention, pour éteindre le Rpi, il faut passer en SSH et lancer un sudo poweroff et ne pas débrancher du courant, ça peut griller la carte SD !
      A plus tard pour votre retour,

  6. Bonjour.
    J’ai essayé votre programme. Étant débutant sur python, j’ai 2 problèmes quand je lance le programme. J’ai un écran noir. Deuxièmement, si je lance avec sudo, j’ai un msg ‘commande invalide’.
    Merci d’avance pour votre aide,

    • Bonjour Loïc,

      Désolé pour le délai, je travaillais sur la transformation d’un “Shuttle” (un miniPC de récup’) en serveur d’auto-hébergement sous YunoHost.

      Je pense que votre écran est noir car “mon” script contient AfficherPhoto("/home/pi/Photomaton/accueil.jpg" alors que vous n’avez pas cette image sur votre Rpi.
      L’absence d’image renvoie donc un écran noir (écran vide).
      Vous devez copier mon image de fond et l’enregistrer au format .jpg (elle est en png actuellement) puis la placer dans le dossier /home/pi.

      La deuxième question est donc (pour voir si c’est plus grave) :
      L’écran est noir, mais le photomaton est-il fonctionnel lors de l’appui sur le bouton ?
      (et l’écran est-il actif en étant sous Raspbian ?)

      A bientôt,

      • Bonjour Loïc,

        Je viens de réécrire Raspbian sur ma carte SD et de tout refaire en suivant bêtement mon tutoriel afin de le revérifier.
        Le photomaton est bien fonctionnel.

        Je n’ai pas réalisé l’automatisation, mais juste refait un script (par [copier/coller] de celui du tuto) en modifiant simplement /home/pi/Photomaton/accueil.jpg en /home/pi/Photomaton/accueil.png et en téléchargeant mon image de fond mise en partage.
        (J’ai pris des tas de captures d’image et vais tenter de remettre ça en forme.)

        Pour l’instant, j’ai donc un Rapberry Pi avec Raspbian à jour et je peux lancer le photomaton en faisant sudo python /home/pi/photomaton.py.

        A noter que mon explication initiale ne tient pas : si le script n’est pas modifié et que l’image n’est pas téléchargée, le script s’arrête de lui-même car il ne trouve pas l’image.

        J’en reviens donc à une question de base = à quel moment avez-vous cet écran noir :
        – Lors du démarrage du Raspberry Pi ?
        – Lors du lancement du script ?
        – Lors de la prise de la photo ?

        Bien à vous,

        • bonsoir… svp moi même j’ai eu ce problème d’écran noir lorsque j’ai lancé le script… directement au démarrage et oopp plus rien ne fonctionnait…. bon je vais essayer avec votre image…
          j’aimerais également savoir si le fichier doit se trouver au bureau ou alors dans le lieu où il va se retrouver après l’avoir créer vos le Terminal comme vous l’avez dit…
          également j’aimerais savoir s’il y’a possibilité d’imprimer cette photo et aussi d’ajouter une bordure…
          merci bien et bon courage à vous..

          • Bonsoir Stéphane,

            Le script qui donne un écran noir est pibooth.py (dont je m’inspire plus que fortement) ou “le mien” ?
            Je pense que le script se lance en plein écran sans retour graphique (la seule solution pour reprendre la main est d’éteindre le Raspberry Pi en lançant la commande sudo reboot en SSH).
            En démarrant Raspbian (sans lancer le script python), arrivez-vous à afficher une image (et réaliser une photo) avec la commande raspistill -o test.jpg ?

            A bientôt,

            Edit de 21h41 : je viens de lancer le script d’origine (pibooth.py) et effectivement, j’ai un écran noir.
            ça n’arrive pas avec mon script car il plante du fait de la recherche de l’image de fond.

            Edit de 22h18 : je viens de modifier l’article pour dire de ne pas télécharger pibooth.py + mis mon script en téléchargement + modifier le script pour que l’absence d’image ne fasse pas planter le script (vous aurez un écran noir avec la phrase “Installez-vous et appuyez sur le bouton pour prendre une photo”) + modifié l’article pour vous obliger à installer le bouton avant de tester le script.
            Merci pour vos remarques qui m’ont permis de voir que ce qui me paraissait clair ne l’était pas forcément pour autrui.

  7. Rétroliens : Lancement automatique d’un script au démarrage – TREVILLY.COM

Laisser un commentaire

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

*