Archives par étiquette : webcam

RaspiCamAero : Aéronautique de loisir, caméra sur piste et informations METAR (màj déc 2016)

materiel2

MàJ déc 2016 : changement de nom de domaine pour le projet qui devient www.cam-aero.eu

Il fait beau et chaud, les vacances d’été ne sont plus très loin. Le temps parfait pour les activités de plein air. Ca tombe bien, aujourd’hui je vais vous présenter un projet réalisé pour le site www.cam-aero.eu, en partenariat avec MagdiBlog.fr, qui ravira les amateurs d’aéronautique de loisir 🙂

L’objectif de ce projet est de doter tous les aérodromes d’un module caméra qui prend des photos de la piste et de la météo ambiante à intervalles réguliers tout en incrustant la date, l’heure et les informations météorologiques locales (telles que METAR, TAF, SIGMET) dans l’image.

Voici un aperçu d’une image d’un aérodrome dans la région de Brest :

IroiseAF-1024x768

L’ensemble des images de tous les aérodromes équipés sont collectées et stockées sur un serveur central. Toutes les images et informations météorologiques locales sont ensuite consultables par tous les membres ; ce qui leur permet de mieux préparer leurs vols, par exemple, en connaissant l’état de l’aérodrome de destination.

Un système collaboratif simple, économique, à la porté de tous (Le module s’installe sur une fenêtre avec une ventouse et nécessite une simple connexion Internet. L’installation du logiciel et sa configuration se font en une seule ligne de commande), qui permettra à tous les aérodromes de partager une vue de leur piste et leurs informations METAR facilement 🙂

Le système complet est réalisé avec des Raspberry Pi, sans composants particuliers :

N’hésitez pas à partager l’info et à promouvoir ce projet autour de vous 🙂

Je vous laisse découvrir le projet sur le site officiel : www.cam-aero.eu

Raspberry Pi Camera – 5 façons de faire du streaming

IMG_8806Le module Raspberry Pi Camera (et la version sans filtre IR, le module NoIR) sont de petits circuits (2,5cm x 2,5cm) dotés d’un capteur photo de 2592 x 1944 pixels capable d’enregistrer en 1080p à 30 images par secondes (ou 60 fps en 720p). Ce module se branche directement sur le port CSI du Pi prévu à cet effet.

La version NoIR permet de voir les infra-rouge, ce qui autorisera une vision nocturne si on le couple à un projecteur infra-rouge comme expliqué à fin de cet article : Système de vidéo-surveillance abordable avec des Raspberry Pi

Que ce soit pour un système de vidéo surveillance ou pour le pilotage d’un robot à distance, il faut pouvoir récupérer le flux vidéo et le diffuser à travers le réseau (streaming). Nous allons voir dans cet article 5 méthodes pour diffuser le flux vidéo d’un module Raspberry Pi Camera, plus ou moins efficacement.

Continuer la lecture

BateauRaspberry : un bateau entièrement fait main, piloté par un Pi (màj)

Il y a quelques temps j’ai été contacté par Tim, un lecteur de MagdiBlog, pour son projet de bateau piloté par un Raspberry Pi 🙂

Après plusieurs échanges de mails, et quelques semaines (mois ?) de travail, Tim est arrivé au bout de son projet :

tim_bateau_telecommande_raspberry_piSon projet, très complet, aborde plusieurs problématiques entre la gestion des moteurs et servos moteurs, le pilotage à distance via WiFi, la capture d’image, etc…

Continuer la lecture

PiTimeLapse – 13 – Premier retour d’expérience et améliorations

J’ai pu tester le dispositif pendant une semaine sur notre terrain. En mode commando avec une petite pelle et une lampe frontale, tout l’équipement dans un sac noir, je suis allé enterrer le paquet au fond du terrain un dimanche soir, et suis revenu le cherché le dimanche suivant.

IMG_5676J’ai imprimé une petite note explicative sur le dessus de la boite contenant le dispositif avec mes coordonnées, au cas où quelqu’un tomberait dessus…

Après avoir armé le système et synchronisé l’horloge du circuit d’alimentation, j’ai creusé un trou au fond du terrain pour y cacher la boite. La webcam est attachée sur une clôture à environ un mètre du sol. Il n’y a plus qu’à croiser les doigts pour que tout se passe bien… Le lendemain, je devrais recevoir les premières images sur le serveur de monitoring à partir de 8h. Bizarrement, je sens une légère angoisse en laissant tout ce matériel dans la nature :/

Continuer la lecture

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 :

 

5 – Schéma global et utilisation

Le dispositif au complet se compose de trois éléments :

  • Le système de capture d’image
  • Le circuit de temporisation de l’alimentation
  • Un serveur de monitoring

schéma global Pi TimeLapse

Le système de capture d’image

Composé du Pi, d’une webcam, d’un dongle 3G et d’une batterie 5V, ce système se contente de prendre une photo à chaque démarrage, puis s’éteint immédiatement. Une fois sur trois, il envoi une requête au serveur de monitoring pour signifier que tout va bien 🙂

Le circuit de temporisation de l’alimentation

Ce circuit alimenté par une batterie 12V, pilote un relais électrique permettant de commander l’alimentation du Pi pendant 2 minutes toutes les 10 minutes, de 8h00 à 18h00, du lundi au vendredi.

Un serveur de monitoring

Un script PHP publié par un serveur web Apache permet d’enregistrer les requêtes POST envoyée par le Pi toutes les 30 minutes. Il réceptionne une miniature d’une la dernière photo prise, et enregistre l’heure exacte à laquelle il l’a reçu dans une base de données MySQL. Si tout est ok, il envoi un mail avec la date et la photo miniature, ce qui me permettra d’être continuellement averti du bon fonctionnement du système de capture d’image.

En parallèle, ce serveur web publie une page web, qui liste l’ensemble des miniatures ainsi enregistrées, ce qui permet d’avoir une vue d’ensemble du bon déroulement des choses sur une semaine.

Scénario d’utilisation

  1. Le circuit de tempo alimente le Pi qui boot immédiatement
  2. Une fois démarré, le Pi prend une phot et lance un shutdown
  3. Une fois sur trois (soit toutes les 30 minutes) le Pi envoi une requête sur un serveur de monotoring distant pour dire qu’il est toujours en vie
  4. Le circuit de tempo coupe l’alimentation du Pi après 2 minutes