Logo Mon Club Elec

Programmer le pcDuino : Image : Enregistrer une image à intervalle régulier.

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.

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

Schéma fonctionnel

  • La fonction loop() s’auto-appelle à intervalle régulier à l’aide d’un timer permettant la capture de l’image.
Programmer le pcDuino : Image : Enregistrer une image à intervalle régulier.

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 :

#!/usr/bin/python
# -*- 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.
Programmer le pcDuino : Image : Enregistrer une image à intervalle régulier.
  • On peut ensuite ouvrir les images, notamment avec le logiciel stopmotion :
Programmer le pcDuino : Image : Enregistrer une image à intervalle régulier.
  • 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
Noter cet article

Laisser un commentaire

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

Archive Mon Club Elec

Articles populaires

Newsletter

Inscrivez-vous maintenant et bénéficiez d'un soutien continu pour réaliser vos travaux électriques en toute sécurité.