Le pcDuino est un système informatique open source qui offre aux utilisateurs une variété de possibilités. Une fonctionnalité particulièrement intéressante est la possibilité de programmer le pcDuino pour enregistrer une image à intervalle régulier. Cette fonctionnalité peut être utilisée pour surveiller des zones, prendre des photos à des moments précis ou même pour créer des effets visuels intéressants. Dans cet article, nous allons examiner en détail comment programmer le pcDuino pour enregistrer une image à intervalle régulier.
Programmer le pcDuino : Image : Enregistrer une image à intervalle régulier.
Ce que l’on va faire ici
- Dans ce code, une image webcam est capturée et enregistrée dans un fichier à intervalle régulier, avec horodatage de l’image. Ce code est basé sur la librairie Pyduino Multimédia.
- Pour plus de détails sur la capture d’image, voir l’instruction Pyduino captureImage()
- Vous remarquerez la simplicité du code obtenu.
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
Schéma fonctionnel
- La fonction loop() s’auto-appelle à intervalle régulier à l’aide d’un timer permettant la capture de l’image.
Matériel nécessaire
Système
- Le pcDuino
- Une webcam compatible ( Logitech C170, C270, etc…)
E/S
- aucun matériel
Instructions de montage
- Connecter la webcam au mini-PC
Le montage à réaliser
- Aucun. Simplement connecter la webcam au mini-PC.
Le fichier *.yno
Copier/coller ce code dans l’IDE Pyduino
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
# test Capture Image
from pyduinoMultimedia import * # importe les fonctions Arduino pour Python
# entete declarative
noLoop=True
filepath=« »
#— setup —
def setup():
global filepath
# initialisation chemin
filepath=homePath()+dataPath(IMAGE)+today(« »,-1)+« / » # nom chemin avec date jour format AAAAMMJJ
if not exists(filepath):
mkdir(filepath) # creation repertoire
print (« Creation repertoire OK »)
else:
print (« Le repertoire existe »)
print filepath # debug
# initialisation webcam
initWebcam(0,640,480) # la resolution doit etre supportee par la webcam !
loop() # premier appel loop()
# — fin setup —
# — loop —
def loop():
global filepath
filenameImage=nowtime(« _ »)+« .jpg » # nom image horodate
print filepath+filenameImage
captureImage(filepath+filenameImage)
#addTextOnImage(today(« / »)+ »@ »+nowtime(« : »), 10,height()-30, green) # ajoute texte sur image
addTextOnImage(nowdatetime(), 10,height()–20, blue,1) # ajoute texte sur image
saveImage(filepath+filenameImage) # enregistre l’image
timer(1000, 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://gist.github.com/sensor56/875df42780c8e1637e96/raw/e54b49958a8ea44700f767d32e31714c6e4aece6/CaptureImageTimer.py
Utilisation
- Vérifier au préalable que le répertoire utilisé existe sur le système et le créer graphiquement au besoin.
- Appuyer sur le bouton exécuter dans Geany
- Une fenêtre de Terminal vide doit apparaître : un message indique alors qu’une image est enregistrée, automatiquement horodatée.

- On peut ensuite ouvrir les images, notamment avec le logiciel stopmotion :

- Simple et efficace.
Discussion technique
- Si on envisage l’enregistrement de nombreuses images, préférer utiliser une clé USB ou une carte SD et adapter le chemin en conséquence.
Utilisation potentielle
- On réalise ici un datalogging image par image à vitesse variable. Cela rendra possible l’enregistrement de « mouvements lents » pour les accélérer secondairement. A raison d’une image par seconde, on pourra accélérer le mouvement x 25 si lecture à 25 fps, x 50 toutes les 2 secondes, etc..
- On pourra ainsi potentiellement enregistrer :
- des mouvements de foules/public dans un lieu donné
- la construction d’un meuble, d’un objet
- la pousse d’une plante
- les mouvements des nuages
- etc…
- Les images étant obtenues une à une, il sera possible également de les traiter secondairement par traitement d’image, notamment avec openCV.
Truc d’utilisation
- Pour lire rapidement sous forme « vidéo » une série d’images individuelles, utiliser le logiciel stopmotion : sudo apt-get install stopmotion
Articles similaires:
- Programmer le pcDuino : Pyduino : Fichier : Ajouter une ligne à intervalle régulier dans un fichier texte.
- Programmer le pcDuino : Fichiers : Enregistrer une mesure analogique dans un fichier texte à intervalle régulier. – compatible Dygraphs
- Programmer le pcDuino : Pyduino : Ligne de commande : Exécuter une ligne de commande système pour lancer une application depuis le code Pyduino.
- Programmer le pcDuino : Fichiers : Enregistrer une mesure analogique dans un fichier texte à intervalle régulier.
- Programmer le pcDuino : Pyduino : Fichier : Ajouter une ligne de donnée horodatée à intervalle régulier dans un fichier texte, pendant une durée voulue.
Articles Liés
- Programmer le pcDuino : Audio : Enregistrer un fichier son.
Le pcDuino est un système informatique open source qui offre aux utilisateurs une variété de…
- Programmer le pcDuino : Voix : Capturer une image webcam à la voix (en mode connecté) !
Le pcDuino est un système informatique open source qui offre aux utilisateurs une variété de…
- Javascript : Graphique Dygraphs simple
Le Javascript est un langage de programmation très populaire et puissant qui permet aux développeurs…