Nous avons il y a un certain temps, élaboré un programme pour réaliser un photomaton. Il est maintenant temps de le mettre en route afin de pouvoir l’utiliser lors de vos prochains évènements.

Pour ce faire, nous aurons besoin d’un peu de matériel:

  • Une carte Raspberry avec Raspbian (desktop) et OpenCV installé.
  • Un écran. J’ai recyclé un ancien écran d’ordinateur portable, en achetant juste une carte de contrôle LCD pour une vingtaine d’euros sur eBay.
  • un câble HDMI pour relier le Raspberry  à l’écran
  • Un bouton poussoir
  • Deux fils électriques (récupération) pour relier le bouton au GPIO du Raspberry.

Une fois tout le matériel réuni, nous pouvons commencer !

Étape 1: Connecter le bouton

Lors de cette étape, nous allons connecter le bouton aux GPIO du Raspberry. Ceci permettra de pouvoir déclencher la prise de vue lors d’une pression de ce bouton, et non plus en appuyant sur la touche espace.

Nous allons utiliser les ports GPIO du Raspberry. Nous aurons besoin d’une broche reliée à la masse (GND) et d’une broche pour la lecture du signal. Pour ma part, j’ai utilisé le GPIO 18, mais cela n’a peu d’importance, il est juste nécessaire de se rappeler sur quelle broche vous avez connecté le bouton par la suite.

Réalisation d'un photomaton - GPIO Raspberry (source)
GPIO Raspberry (source)

Maintenant que le plan d’action est établi, vous pouvez effectuer une soudure au niveau des deux bornes du bouton et de relier les câbles aux broches du Raspberry.

Étape 2: Modification du programme.

Commençons par installer le module RPi.GPIO permettant d’exploiter les GPIO avec Python.

pip3 install RPi.GPIO

Une fois l’installation effectuée, retournons au fichier photomaton.py.

import cv2
import numpy as np
import time

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)

cap=cv2.VideoCapture(0)
pressed=False

Nous venons de rajouter les lignes 5-7. La ligne 5 sert à importer la bibliothèque RPi.GPIO.

À la ligne 6, nous déclarons quel mode de numérotation nous utilisons pour spécifier les broches utilisées. GPIO.BCM permet de rentrer la numérotation électronique (broche 18 dans notre cas). GPIO.BOARD permet de rentrer la numérotation de la carte (broche 12 dans notre cas).

Nous déclarons pour finir que nous avons une entrée (GPIO.IN) à la broche 18. Nous utilisons la résistance pull-up de la GPIO 18 pour le bon fonctionnement du bouton.

Il ne nous reste plus qu’à remplacer notre touche espace par l’appui sur le bouton.

	if pressed==False:
		input_state = GPIO.input(18)
		cv2.imshow('display',image)
		k = cv2.waitKey(33)
		if k==27:
			cap.release()
			break
		elif input_state == False:
			pressed=True
			t=time.time()

Tant que le bouton n’est pas pressé, nous vérifions son état à la ligne 21. Si le bouton n’est pas pressé, l’état retourné sera TRUE. Ainsi, si l’état devient FALSE (ligne 27), nous passons la variable pressed à TRUE (l. 28).

Le reste du programme reste identique.

Étape 3: Démarrage automatique du photomaton

La dernière étape pour un photomaton fonctionnel est de démarrer notre programme photomaton.py au démarrage du Raspberry.
Pour ce faire, nous allons simplement éditer le fichier ~/lx.config/lxsession/LXDE-pi/autostart

sudo nano ~/.config/lxsession/LXDE-pi/autostart

pour rajouter la ligne suivante:

@python3 /home/pi/photomaton.py

Avec bien sûr le chemin vers votre fichier photomaton.py .

Enfin, afin de désactiver la mise en veille, il faut commenter la ligne @xscreensaver -no-splash et ajouter les lignes suivantes:

@xset s off
@xset -dpms
@xset s noblank

Votre photomaton est enfin prêt ! Il ne reste plus qu’un peu de bricolage pour rendre votre montage facilement transportable et utilisable.

photomaton de face
photomaton vue arrière

Le fichier photomaton.py est téléchargeable ci-dessous. N’oubliez pas de réaliser l’étape 3 permettant de démarrer le photomaton dès le démarrage du RaspberryPi et de créer un dossier « Images » permettant de stocker les photos.

Télécharger “photomaton” photomaton.py – Téléchargé 101 fois – 1 KB


2 commentaires

DJOUKA · 29 mai 2019 à 14 h 38 min

Bonjour

J’ai suivi votre tutoriel à la lettre excepté le câblage du bouton. Tout ce que j’obtiens c’est l’ouverture d’une fenêtre noire et mon invite de commande qui m’affiche à l’infini des « select time out ». Pourriez vous svp me situer le problème et si possible me débloquer?

    Florent · 29 mai 2019 à 14 h 42 min

    Bonjour,
    Avez-vous lancé le programme réalisé dans l’étape 1 sans problème ?

Laisser un commentaire

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

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