Archives par étiquette : logitech

7 – La capture d’image

Bien que la qualité des images soit moindre par rapport à un véritable appareil photo, j’ai opté pour une webcam. Bien supportée par le Raspberry Pi d’après le site eLinux.org et ne nécessitant pas d’alimentation auxiliaire, la Logitech Logitech C525 s’est imposé d’elle même.

IMG_4468

Voici les caractéristiques principales de la caméra, directement reprises du site de Logitech :

  • Capture vidéo HD: jusqu’à 1 280 x 720 pixels
  • Technologie Logitech Fluid Crystal™
  • Mise au point automatique
  • Photos: jusqu’à 8 mégapixels (avec interpolation logicielle)

Test de capture

Pour se rendre compte de la qualité des photos prises en extérieur, voici quelques exemples (Photos prises depuis mon balcon, en utilisant la commande streamer) :

streamer -f jpeg -s 1280x720 -j 100 -o webcam_`date "+%s"`.jpeg

webcam_1363424816_05

Chaque image prise en qualité 100% pèse environ 380 kB. Avec une image toutes les 10 minutes, de 8h à 18h soit 60 images par jour, on arrive à un peu plus de 22 Mo par jour. La carte mémoire de 32Go suffira largement 🙂

En revanche je suis assez déçu de la qualité de la photo. J’ai l’impression que l’image n’est pas nette… J’ai testé sans la compression jpeg, et le résultat est le même.

En intérieur, le résultat n’est pas mieux :

webcam_1363425719_14

Je pense qu’avec une webcam, on ne peut pas s’attendre à des miracles. Au pire, il suffira d’en changer pour un modèle plus performant.

Le script de capture

Etant donné l’espace mémoire dont je dispose (32Go), je vais prendre les images directement en ppm. Ce qui permettra également de soulager le CPU du Pi qui n’aura pas à compresser les images en JPEG. Il faut alors compter 2,8 Mo par photo, soit environ 168 Mo par jour.

Afin d’être certain que la caméra s’adaptera aux conditions de luminosité ambiante et puisse ajuster le focus, il convient de prendre une rafale d’une dizaine d’images. Heureusement, streamer permet de définir un nombre d’images à capturer et une fréquence. Après quelques tests, 20 images en 2 secondes est un bon compromis.

Il est inutil de conserver toutes les images, on peut supprimer les 15 premières, et conserver les 5 autres pour faire une sélection plus tard lors du montage du time-lapse.

Voici un premier script bash qui permet de réaliser cela en quelques lignes :

#!/bin/bash

output_dir=/root/timelapse

# -f ppm (format ppm)
# -s 1280x720 (résolution de l'image largeur x hauteur)
# -t 20 (capturer 10 images)
# -r 5 (capturer 5 images par seconde)
# -o nom_du_fichier_de_sortie.ppm

streamer -f ppm -s 1280x720 -t 20 -r 5 -o $output_dir/timelapse_`date "+%F_%H-%M"`_00.ppm

# supprime les 15 premières images de chaque série

for i in `seq 0 14` ; do
  if [ $i -lt 10 ] ; then
    j="0$i"
  else
    j=$i
  fi
  rm $output_dir/*_$j.ppm
done

Premier test de TimeLapse

Il est temps de faire un premier test. Une simple tâche CRON programmée toutes les 10 minutes, appel le script. Je mets la webcam à la fenêtre et je laisser tourner jusqu’à demain 🙂

Créer la vidéo à partir des images

Pour rassembler les images et en faire une vidéo, j’utilise mencoder :

mencoder mf://*.jpg -mf fps=5:type=jpeg -ovc lavc -lavcopts vcodec=mjpeg -o timelapse.avi

Voici le résultat d’un premier test :

 

2 – Le choix des composants

Raspberry Pi

IMG_4469Souhaitant pouvoir réutiliser la bête plus tard pour d’autres choses, j’opte tout de suite pour le modèle le plus complet Raspberry Pi Model B rev 2 doté de 512Mo de RAM. Basiquement, j’utiliserai une Raspbian car je suis à l’aise avec Debian et que c’est une solution suffisamment fiable et robuste.

Commandé sur Amazon pour 30 € (frais de port inclus)

Le boitier pour le Raspberry Pi

IMG_4477Pour protéger le Raspberry Pi, j’ai choisi un boitier modulaire, facilement « customisable » créé par le site Adafruit spécialisé dans les kits électroniques, Adafruit Pi Box – Enclosure for Raspberry Pi Computers.

Commandé sur Amazon pour 10 € (livraison gratuite)

La carte mémoire SDHC

IMG_4476Afin de pouvoir stocker suffisamment de photos, j’ai choisi une carte SDHC Kingston SD10V/32GB Carte SD 10 Mo/s 32 Go Classe 10.

Commandé sur Amazon pour 21 € (livraison gratuite)

La caméra

IMG_4468J’ai opté pour une webcam USB standard. L’objectif est d’avoir une résolution suffisante et de ne pas avoir de problème de luminosité ni de mise au point. J’ai donc choisi un modèle de logitech Logitech C525 très bon marché, HD 720p avec autofocus :

Commandé sur Amazon pour 36 € (livraison gratuite)

La connexion réseau – dongle 3G

Dongle 3G + SIM FreeD’après ce que j’ai vu sur le net, le Huawei E220 est particulièrement bien supporté par le Raspberry Pi, et part Linux en général. J’utiliserai une carte SIM Free Mobile, avec l’abonnement à 2€ avec l’option 3G (20Mo inclus) pour 0,99€. Ce sera suffisant pour prendre la main sur le Raspberry Pi via SSH.

Commandé sur Amazon pour 40 € (livraison gratuite)

La batterie

batterie_5VLe Raspberry Pi doit être alimenté par un courant de 1 A (en prenant en compte les périphériques USB, webcam + dongle 3G) sur 5V.

Il existe de nombreux modèles de batterie 5V servant de batterie de secours pour téléphone mobile. De capacité, puissance, prix et qualité très variable, il est difficile de choisir.

En creusant le sujet, il apparait que les batteries de la marque TeckNet soient clairement au dessus du lot. Bonne durée de vie, puissance jusqu’à 2A avec des capacité de 7000 mAh à 12000 mAh. Pour rester dans un budget raisonnable, je choisi le modèle intermédiaire avec une capacité de 9000 mAh.

Commandé sur Amazon TeckNet iEP389 9000mAh  pour 39€ (livraison gratuite)

La boîte

IMG_4740Pour rester discret, je fais place le dispositif dans une boite en plastique (étanche de préférence), et enterrer le tout dans le sol, au fond du jardin. Seule la webcam sortira furtivement du sol, accrochée à une hauteur de un mètre environ, sur un poteau. La webcam sera renforcée pour résister à la pluie, et camouflée.

Prix environ 6 € (en grande surface)