Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/01/2018, à 22:41

anthone32

Photo Booth Raspberry

Bonsoir,

Je travaille actuellement avec des camardes de cours à réaliser un Photo Booth dans la carde d’un projet de maturité artistique.

Nous avons essayé plusieurs solutions, mais nous ne sommes jamais parvenus à notre but...

Les tutus suivants nous ont servi de base:

- Wikiho https://www.wikihow.com/Create-a-Photo- … spberry-Pi
- Instuctables http://www.instructables.com/id/Raspber … ontroller/

A savoir que nous sommes équipé d’un Raspberry pi 3 relié a une imprimante canon CP900 et d'un module caméra officiel Raspberry pi

L’idéale serait de pourvoir lancer un "script" qui déclencherait la prise de vue, suivi de l'impression de la photo
Dans la pratique cela fonctionne mon imprimante est reconnue dans CUPS 2.2.1 et quand je lance la commande :
"LP -d’Canon_CP900 cam.jpg" après avoir pris une photo avec :"raspistill -o cam.jpg" soit : "raspistill -o cam.jpg;LP -d’Canon_CP900 cam.jpg"

L'idée serait de s'affranchir du terminal et de lancer la dite commande avec les GPIO ou un clavier. (du style on presse le bouton et la commande s'exécute et notre photo s'imprime) le bute étant de ne pas intervenir sur l’installation hormis remettre du papier.
Quelque chose pourrait il être envisageable ? wink

Merci pour votre aide d’avance.

Hors ligne

#2 Le 14/01/2018, à 23:28

strike07

Re : Photo Booth Raspberry

Bonjour,

en quoi codez-vous?
si c'est du python ça semble assez simple, vous installez le paquet RPI.GPIO et vous importez votre bibliothèque GPIO de RPI (précédement installé) et vous utilisez la commande GPIO.input("pin"), par exemple :

#on importe les bibliothèques nécessaires
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
#ici la pin d'entrée est la 4
GPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

def capturephoto(chemin) :
    "commandes sytème capture(ou équivalent python)"
def impression(chemin) :
    "commandes sytème impression(ou équivalent python)"
#boucle d'execution infini
while True :
    #si la pin reçoit du courant(appui BP)
    if GPIO.input(4)==1 :
         print("prise en cours")
         capturephoto(fichier.jpg)
         time.sleep(1)
         print("impression...")
         impression(fichier.jpg)

Bon voilà j'ai rien testé mais si vous adaptez quelques trucs notamment les fonctions capturephoto et impression il y a de fortes chances que cela fonctionne, même si ce que j'ai fait est assez sale niveau redondance ( interruption, fin d'éxecution...)
si vous n'avez pas commencé la programmation je vous conseille fortement python qui est très bien supporté sur les raspberry PI et assez simple wink

Hors ligne

#3 Le 15/01/2018, à 00:04

anthone32

Re : Photo Booth Raspberry

Merci pour la réactivité strike07 ça fait plaisir.

Alors oui je débute totalement en programmation, mais je pensais passer par python 3 effectivement. Pour l'instant cela fonctionne avec le terminal.

Mais dans votre réponse quand vous parlez de RPI.GPIO et d'installation de paquet je trouve ça où wink ? et après je défini comment mes branchement sur le Raspberry (quelle gpio pour les données ?)
GPIO

Je suis vraiment  novice, je suis  désolé de poser autant de questions en même temps.

Mais je suis curieux d'apprendre

Hors ligne

#4 Le 15/01/2018, à 00:06

anthone32

Re : Photo Booth Raspberry

Hors ligne

#5 Le 15/01/2018, à 22:29

strike07

Re : Photo Booth Raspberry

Oui bien évidemment cela fonctionne mais le but est (je le suppose) d'automatiser la chose, en fait j'ai oublié de préciser que ce que j'ai trouvé concernant les GPIO vient d'ici

j'ignore dans quel cadre vous faites ce projet (TIPE, projet scolaire, Baccalauréat ou par loisirs personnelle) mais sachez que python est facilement executable sur les raspberry PI.
Avez-vous déjà utilisé un arduino par exemple ? là c'est pareil (encore moins complexe) vous récupérez l'état d'une broche (0V=False, 3.3V=True) et si il y a appui du bouton (le client souhaite prendre une photo) celà lance la capture puis l'impression.

concernant le GPIO c'est juste une entrée, donc ça se présente généralement comme sur le lien que j'ai donné, pas besoin d'acquisition numérique depuis un module ou je ne sais quoi, là il suffit "juste" d'envoyer ou non du courant sur la pin par l'intermédiaire d'un interrupteur.

peut-être faudrait-il aussi que je détaille le programme:

#on importe les bibliothèques nécessaires
import RPi.GPIO as GPIO #ici la bibliothèque pour la gestion GPIO/python
import time #juste une bibliothèque de base pour pour des fonction tempo

GPIO.setmode(GPIO.BCM) #config GPIO que moi-même ne comprend pas vraiment :)
#ici la pin d'entrée est la GPIO4
GPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) #ici on dit au système que la pin GPIO4 fonctionne en tant qu'entrée, pull_up_down=GPIO.PUD_DOWN permet de s'affranchir d'une résistance de pull-down (pas important ici, suivez juste le schéma de montage du lien pour l'inter)

def capturephoto(chemin) : #définition d'une fonction, qui permet de rentrer plusieurs ligne de code et les exécuter à la suite directement quand on l'appelle
    "commandes sytème capture(ou équivalent python)"

def impression(chemin) : #idem
    "commandes sytème impression(ou équivalent python)"

while True : #boucle d'exécution infini
    #si la pin reçoit du courant(appui BP)
    if GPIO.input(4)==1 : #on vérifie si le pin GPIO4 est à 1 (=un utilisateur souhaite prendre une photo)
         print("prise en cours") #affiche au terminal une info pour savoir où on en est
         capturephoto(fichier.jpg) #exécution de la commande défini plus haut
         time.sleep(1)
         print("impression...")
         impression(fichier.jpg)
#retour au "while True(fin de la boucle)

Avant toutes choses je vous conseil de réaliser le Tuto du lien pour bien vous familiariser avec le système

PS : je vous vouvois car je suppose que vous êtes plusieurs mais tu peux me tutoyer wink

Hors ligne

#6 Le 29/01/2018, à 19:30

anthone32

Re : Photo Booth Raspberry

Salut strike07,

Désolé pour le retour tardif, avec un peu d’acharnement j’ai réussi à faire fonctionner un scipt ! wink

je le partage ma solution ici pour d'éventuelles personnes intéressées:

1. J'ai installé les GPIO de ce lien : http://raspberry.io/projects/view/readi … om-python/

2. connecté les GPIO sur le 3.v3 PWR pour que le courant passe et le deuxième cable sur GPIO 4.

3. le script:

#on importe les bibliothèques nécessaires
import os
import RPi.GPIO as GPIO #ici la bibliothèque pour la gestion GPIO/python
import time #juste une bibliothèque de base pour pour des fonction tempo

GPIO.setmode(GPIO.BCM) #config GPIO que moi-même ne comprend pas vraiment :)
#ici la pin d'entrée est la GPIO4
GPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) #ici on dit au système que la pin GPIO4 fonctionne en tant qu'entrée, pull_up_down=GPIO.PUD_DOWN permet de s'affranchir d'une résistance de pull-down (pas important ici, suivez juste le schéma de montage du lien pour l'inter)

def capturephoto(chemin) : #définition d'une fonction, qui permet de rentrer plusieurs ligne de code et les exécuter à la suite directement quand on l'appelle
    os.system("raspistill -o " + chemin)

def impression(chemin) : #idem
    os.system("lp -d Canon_CP900 " + chemin)

while True : #boucle d'exécution infini
    #si la pin reçoit du courant(appui BP)
    if GPIO.input(4)==1 : #on vérifie si le pin GPIO4 est à 1 (=un utilisateur souhaite prendre une photo)
         print("prise en cours") #affiche au terminal une info pour savoir où on en est
         capturephoto("photo.jpg") #exécution de la commande défini plus haut
         time.sleep(1)
         print("impression...")
         impression("photo.jpg")
#retour au "while True(fin de la boucle)

Moi et ma team de travailles te remerciant énormément ^^
Nous t'enverrons une photo de notre installation d'ici un moi si cela t'intéresse.

Dernière modification par anthone32 (Le 30/01/2018, à 00:09)

Hors ligne

#7 Le 03/02/2018, à 17:34

strike07

Re : Photo Booth Raspberry

Ok pas de soucis, Bonne continuation smile

Hors ligne

#8 Le 16/04/2018, à 16:34

sylvain94

Re : Photo Booth Raspberry

Bonjour,

J'ai ré-utilisé le script pour un photobooth (uniquement la photo sans impression), mais j'ai quelques difficultés.

Entre autre, j'arrive à le lancer une fois, appuie sur le bouton poussoir, la photo est prise et j'ai le message "prise en cours". Seulement, je lance le script uniquement 1 fois, impossible de reprendre une photo, même si je relance le script manuellement. Une idée ?

Autre point, je souhaiterais initialiser une variable photo à photo001.jpg et l'incrémenter à chaque fois que la boucle passe et que je prend une photo, comment implémenter cela en python ?

Merci d'avance

Dernière modification par sylvain94 (Le 16/04/2018, à 16:34)

Hors ligne

#9 Le 16/04/2018, à 17:20

pingouinux

Re : Photo Booth Raspberry

Bonjour,

sylvain94 #8 a écrit :

Autre point, je souhaiterais initialiser une variable photo à photo001.jpg et l'incrémenter à chaque fois que la boucle passe et que je prend une photo, comment implémenter cela en python ?

Par exemple :

n=0
while n<10:
    n+=1
    nom_photo='photo%03d.jpg'%n
    print(nom_photo)

Dernière modification par pingouinux (Le 16/04/2018, à 17:21)

Hors ligne