Le pcDuino est un ordinateur de petite taille qui offre une variété de fonctionnalités et de possibilités. Il est capable de programmer des applications et des jeux, et peut également être utilisé pour capturer des images à l’aide d’une webcam. Avec le pcDuino, vous pouvez capturer des images avec un bruitage d’appareil photo numérique en appuyant simplement sur un bouton. Dans cet article, nous allons vous montrer comment programmer le pcDuino pour capturer des images avec un bruitage d’appareil photo numérique.
Programmer le pcDuino : Image : L’appui sur un BP déclenche la capture d’une image webcam avec bruitage (« appareil photo numérique »).
Ce que l’on va faire ici
- Dans ce code, l’appui sur un bouton poussoir va déclencher d’une image webcam associé à la lecture d’un fichier de bruitage « déclic photo » à l’aide de ma librairie Pyduino Multimedia. L’ensemble réalise un code « appareil photo numérique » qui pourra servir de base didactique auprès d’un public jeune.
- Vous remarquerez la simplicité du code obtenu au vu des fonctions utilisées (capture webcam + lecture fichier son + enregistrement dans un fichier + affichage image…) : la librairie Pyduino Multimedia apporte une couche d’abstraction qui résume les fonctions appelées à l’essentiel !
Pré-requis
- un mini-PC (pcDuino conseillé) avec système Lubuntu opérationnel. Voir si besoin la page d’accueil du pcDuino
- Langage Python (2.7) et l’IDE Pyduino ou l’éditeur Geany installés. Voir si besoin : Logiciel pour développer avec Pyduino
- ma librairie pyDuino installée : voir si besoin : Télécharger et installer Pyduino sur le pcDuino
- les dépendances de la librairie pyDuino Multimédia installées : voir si besoin : Télécharger et installer Pyduino sur le pcDuino
Exemples de sons
- Pour vous simplifier la vie, je vous propose une archive contenant quelques sons utilisables : à télécharger ici : http://www.mon-club-elec.fr/mes_downloads/pyduino_sons.tar.gz
- ou directement avec la commande suivante sur le mini-pc :
- Extraire l’archive puis copier-là dans votre répertoire de sources audio.
Schéma fonctionnel
- L’entrée numérique déclenche la capture image et la lecture du fichier son ainsi que l’enregistrement de l’image :
- Pour plus de détails sur les fonctions utilisées, voir la documentation de la librairie Pyduino Multimedia.
Matériel nécessaire
Système
- Le pcDuino
- Une webcam compatible ( Logitech C170, C270, etc…)
- une sortie son opérationnelle :
- soit la sortie audio HDMI connectée à un écran HDMI
- soit la sortie audio jack intégrée si elle existe (raspberryPi)
- soit une carte son USB disposant d’une sortie audio
E/S
- une plaque d’essai pour montage sans soudures,

- des straps,

- un bouton poussoir pour CI,

Instructions de montage
- Connecter un bouton poussoir entre la broche 2 (configurée en entrée avec rappel au plus) et le 0V
- Connecter la webcam sur le port USB
- Connecter la sortie audio (HDMI ou USB)
Le montage à réaliser
Le fichier *.py
Copier/coller ce code dans l’éditeur Geany :
# -*- coding: utf-8 -*-
# exemple pyDUino – par X. HINAULT – www.mon-club-elec.fr
# Juin 2013 – Tous droits réservés – GPLv3
# voir : https://github.com/sensor56/pyDuino
# appui sur un BP declenche capture image webcam
#from pyduino import * # importe les fonctions Arduino pour Python
from pyduinoMultimedia import * # importe les fonctions Arduino pour Python
# entete declarative
noLoop=True
BP=2 # declare la broche a utiliser
APPUI=LOW # valeur broche lors appui
filepathAudio=« »
filepathImage=« »
compt=0
#— setup —
def setup():
pinMode(BP,PULLUP) # met la broche en entree avec rappel au plus actif
Serial.println(« La broche 2 est en entree avec rappel au plus actif ! »)
global filepathAudio, filepathImage
# exemples de sons : wget -4 http://www.mon-club-elec.fr/mes_downloads/pyduino_sons.tar.gz
filepathAudio=homePath()+sourcesPath(AUDIO)+« photo/ »
print filepathAudio
filepathImage=homePath()+dataPath(IMAGE)
print filepathImage
# initialisation webcam
initWebcam(0,640,480) # la resolution doit etre supportee par la webcam !
loop() # premier appel loop()
# — fin setup —
# — loop —
def loop():
global filepathAudio, filepathImage, compt
if(digitalRead(BP)==APPUI): # si appui
Serial.println(« Appui BP! »)
playSound(filepathAudio+« camera-click-1.wav ») # joue le son
closeImage() # ferme visionneur image precedente
# capture image
filename=« photo »+str(compt)+« .jpg »
print filepathImage+filename
captureImage(filepathImage+filename) # charge une image dans le buffer a partir webcam
compt=compt+1
#addTextOnImage(today(« / »)+ »@ »+nowtime(« : »), 10,height()-30, green) # ajoute texte sur image
#addTextOnImage(nowdatetime(), 10,height()-20, yellow,0.75) # ajoute texte sur image
saveImage(filepathImage+filename) # enregistre l’image
delay(500)
showImage(filepathImage+filename) # affiche l’image
delay(250) # anti-rebond
timer(200, loop) # relance timer – la fonction loop s’auto-appelle
# — fin loop —
#— obligatoire pour lancement du code —
if __name__==« __main__ »: # pour rendre le code executable
setup() # appelle la fonction main
while not noLoop: loop() # appelle fonction loop sans fin
Ce code est également disponible ici : https://raw.github.com/sensor56/pyduino-exemples/master/Image/digitalReadPlaySoundCaptureImage.py
Utilisation
- Vérifier au besoin le bon fonctionnement de la sortie audio au préalable (par exemple en générant un son avec Audacity…)
- Vérifier au besoin au préalable le bon fonctionnement de la webcam avec guvcview
- Appuyer sur le bouton exécuter dans Geany
- Une fenêtre de Terminal doit apparaître : lors d’un appui sur le bouton poussoir, un son de « déclic » doit être entendu et une image doit être capturée puis affichée. Noter que l’image est également enregistrée.

Discussion technique
- On utilise ici un Timer entre 2 appels de loop() pour ne pas solliciter inutilement la CPU.
- La capture d’image repose sur la librairie OpenCV.
Articles similaires:
- Programmer le pcDuino : Voix : Capturer une image webcam à la voix (en mode connecté) !
- Programmer le pcDuino : Audio : L’appui sur un BP déclenche la lecture d’un fichier son.
- Programmer le pcDuino : Voix : Capturer une image webcam à la voix (en mode connecté) avec LED de visualisation !
- Programmer le pcDuino : Audio : Lire un fichier son.
- Programmer le pcDuino : Audio : Enregistrer un fichier son.
Articles Liés
- Javascript : Graphique Dygraphs simple
Le Javascript est un langage de programmation très populaire et puissant qui permet aux développeurs…
- Javascript : Afficher 6 widgets graphiques fournis par une librairie graphique externe.
Le Javascript est un langage de programmation très populaire qui permet aux développeurs de créer…
- Javascript : Graphique Dygraphs : afficher date à partir unixtime
Le langage de programmation Javascript est très populaire et est utilisé pour créer des applications…