Module caméra pour le Raspberry Pi

Sommaire


  • Présentation du module caméra
  • Installation de la caméra
  • Activation du module
  • Test
  • Time-lapse
  • Diffusion
  • Stop-motion

I) Présentation du module caméra

1) Photo :
2013-08-14 17.09.33
2) Caractéristique technique :

  • Capteur Omnivision 5647 avec objectif à focale fixe
  • Capteur 5 Mégapixels
  • Résolution photo : 2592 x 1944 px
  • Résolution viéo maximum : 1080p
  • Images par seconde maximum : 30fps
  • Taille du module : 20 x 25 x 10mm
  • Connexion par câble platà l'interface 15-pin MIPI Camera Serial Interface (CSI) (Connecteur S5 du Raspberry Pi)

II) Installation de la caméra

1) Le connecteur de la caméra se trouve entre le port HDMI et le port réseau Ethernet :

2013-08-14 17.01.16

2) Le connecteur en gros plan :

2013-08-14 17.07.35
3) Enlever l'autocollant de protection du connecteur :

2013-08-14 17.08.00
- La caméra avec sa nappe blanche :

2013-08-14 17.09.33
4) Soulever délicatement la protection noir vers le haut puis la basculer vers l'arrière :

2013-08-14 17.10.32
5) Positionner la nappe de la caméra, la partie bleu vers le connecteur réseau :

2013-08-14 17.12.09
6) Insèrer la nappe dans le connecteur :

2013-08-14 17.12.44
7) Remettre la protection noir à sa position initial :

2013-08-14 17.13.28
8) Caméra en place sur le Raspberry Pi :

2013-08-14 17.14.52

III) Activation de la caméra

1) Lancement de l'application de configuration :
pi@raspberrypi ~ $ sudo raspi-config



2)  Activation de la caméra

- [5 Enable Camera     Enable this Pi to work with the R]
- [Entrée]                                                                                                             



3) Activer la caméra :

- [< Enable>]
- [Entrée]        



3) Finir la configuration :

- [Finish] 
- [Entrée]



4) Redémarrer le Raspberry Pi :

- [Oui]        
- [Entrée]





IV) Test de la caméra

Image
1) Installation d'un visualisateur d'image :
pi@framboisepi ~ $ sudo apt-get install gqview
2) Capturer une image :
pi@framboisepi ~ $ raspistill -o image.jpg
3) Vérification :
pi@framboisepi ~ $ ls -l image.jpg 
-rw-r--r-- 1 pi pi 2527753 janv. 9 19:14 image.jpg
Taille de l'image : 2592x1944 px
4) Visualiser l'image :
pi@framboisepi ~ $ gqview image.jpg 
Vidéo.
1) Capturer une vidéo : 
pi@framboisepi ~ $ raspivid -o video.h264 -t 10000
Durée de la vidéo : 10 sec. => 10000 millisec.
2) Vérification :
pi@framboisepi ~ $ ls -l video.h264 
-rw-r--r-- 1 pi pi 20902952 janv. 9 19:27 video.h264
3) Visualiser la vidéo avec le lecteur de vidéo par défaut OmxPlayer :
pi@framboisepi ~ $ omxplayer video.h264
4) Convertir la vidéo en .mp4 : Installation du logiciel de conversion :
pi@framboisepi ~ $ sudo apt-get install -y gpac  
5) Conversion :
pi@framboisepi ~ $ MP4Box -fps 30 -add video.h264 video.mp4
AVC-H264 import - frame size 1920 x 1080 at 30.000 FPS
AVC Import results: 297 samples - Slices: 5 I 292 P 0 B - 0 SEI - 5 IDR
Saving to video.mp4: 0.500 secs Interleaving
6) Vérification :
pi@framboisepi ~ $ ls -l video.mp4 
-rw-r--r-- 1 pi pi 20904999 janv. 9 19:47 video.mp4
7) Truc et astuce :

- Désactivation de la led rouge de la caméra :

Ouvrir :
/boot/config.txt
Ajouter à la fin :
disable_camera_led=1
Action :
$ sudo reboot

V) Timelapse

1) Répertoire de travail :

- Répertoire de stockage des photos :
pi@framboisepi ~ $ mkdir TIMELAPSE
- Répertoire de traitement :
pi@framboisepi ~ $ mkdir CAMERA
pi@framboisepi ~ $ cd CAMERA/
pi@framboisepi ~/CAMERA $
2) Script de timelapse :

Ouvrir :
timelapse.sh
Ajouter :
#!/bin/sh

while [ true ]; do
image=photo_$(date -u +"%Y%m%d_%H%M%S").jpg
echo $image
raspistill -o /home/pi/TIMELAPSE/$image
sleep 10;
done;
Action :
$ chmod 755 ./timelapse.sh
3) Exécuter le script de timelapse :
pi@framboisepi ~/CAMERA $ screen -S timelapse
pi@raspberrypi ~/CAMERA $ ./timelapse.sh

Après quelques heures de prise vue, arrêter le script :
[Contrôle] + [c]
4) Vérification :
pi@framboisepi ~/CAMERA $ ls -l ../TIMELAPSE/*.jpg
total 1373808
-rwxr-xr-x 1 pi pi 2443966 2013-08-16 17:11 photo_20130816_171108.jpg
-rwxr-xr-x 1 pi pi 2446662 2013-08-16 17:11 photo_20130816_171124.jpg
-rwxr-xr-x 1 pi pi 2462648 2013-08-16 17:11 photo_20130816_171140.jpg
...
-rwxr-xr-x 1 pi pi 2875121 2013-08-16 19:20 photo_20130716_192011.jpg
-rwxr-xr-x 1 pi pi 2885910 2013-08-16 19:20 photo_20130816_192027.jpg
-rwxr-xr-x 1 pi pi 2879237 2013-08-16 19:20 photo_20130816_192043.jpg
-rwxr-xr-x 1 pi pi 2887403 2013-08-16 19:21 photo_20130816_192100.jpg
-rwxr-xr-x 1 pi pi 2857805 2013-08-16 19:21 photo_20130816_192116.jpg
Temps de prise : 2 heures 10 minutes.
Nombre de photo : 495
Temps de prise entre chaque photos : environs 6 sec.
5) Rassembler les noms des fichers dans une liste :
pi@framboisepi ~/CAMERA $ ls -tr > liste.txt
6) Conversion des .jpg en video : Installation de mencoder :
pi@framboisepi ~/CAMERA $ sudo apt-get install mencoder
7) Création de la vidéo :
pi@framboisepi ~/CAMERA $ mencoder -nosound -ovc lavc \
-lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=8000000 -vf scale=1920:1080 \
-o timelapse.avi -mf type=jpeg:fps=24 mf://@./liste.txt
...
Video stream: 8072.857 kbit/s (1009107 B/s) size: 20854881 bytes 20.667 secs 497 frames
Durée du traitement : ?? min.
Ne voulant pas attendre, j'ai traità les images sur un autre ordinateur largement plus puissant.
8) Visualisation de la vidéo :
pi@framboisepi ~/CAMERA $ omxplayer timelapse.avi
9) Résultat : timelapse.avi

Télécharger la vidéo : timelapse.avi

Youtube : http://www.youtube.com/watch?v=wKKJhv8fYqs

Atelier : Timelapse

VI) Diffusion

1) Avec GStreamer : Installation de GStreamer :
pi@framboisepi ~ $ sudo apt-get install gstreamer-tools \ 
gstreamer0.10-plugins-base gstreamer0.10-plugins-good \
gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly
2) Vérification :
pi@framboisepi ~ $ gst-inspect
videocrop:  aspectratiocrop: aspectratiocrop
videocrop:  videocrop: Crop
...
staticelements:  pipeline: Pipeline object

Nombre total :233 greffons, 695 fonctionnalités
3) Lancement de la diffusion du flux vidéo :
pi@framboisepi ~ $ raspivid -t 0 -w 1280 -h 720 -fps 25 -b 2500000 -p 0,0,640,480 \ 
-o - | gst-launch -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 \
! gdppay ! tcpserversink host=192.168.1.16 port=5000
4) Lire le flux audio :

Sous Ubuntu 12.04 :

- Installation de GStreamer :
[~] ➔ sudo add-apt-repository ppa:gstreamer-developers/ppa
[~] ➔ sudo apt-get update
[~] ➔ sudo apt-get install gstreamer1.0*

- Lecture du flux :
[~] ➔ gst-launch-1.0 -v tcpclientsrc host=192.168.1.16 port=5000  ! gdpdepay \ 
! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false
5) En http avec Mjpeg-Streamer.
6) Installation de paquetage de base :
pi@framboisepi ~ $ sudo apt-get install libjpeg62-dev libjpeg8-dev \ 
imagemagick subversion
7) Compilation de Mjpeg-Streamer :
pi@framboisepi ~ $ mkdir -p /home/pi/tmp/flux
pi@framboisepi ~ $ mkdir mjpeg-streamer
pi@framboisepi ~ $ cd mjpeg-streamer/
pi@framboisepi ~/mjpeg-streamer $
pi@framboisepi ~ $ svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ .
pi@framboisepi ~/mjpeg-streamer $ make
pi@framboisepi ~/mjpeg-streamer $ sudo make install

8) Lancer la diffusion du flux vidéo en tâche de fond :
pi@framboisepi ~/mjpeg-streamer $ raspistill -w 640 -h 480 -q 5 \ 
-o /home/pi/tmp/flux/image.jpg -tl 100 -t 9999999 -th 0:0:0 &
9) Lancement du serveur web :
pi@framboisepi ~/mjpeg-streamer $ LD_LIBRARY_PATH=./ ./mjpg_streamer \ 
-i "input_file.so -f /home/pi/tmp/flux -n image.jpg" \
-o "output_http.so -w ./www" &
MJPG Streamer Version: svn rev: 3:172
i: folder to watch...: /home/pi/tmp/flux/
i: forced delay......: 0
i: delete file.......: no, do not delete
i: filename must be..: image.jpg
o: www-folder-path...: ./www/
o: HTTP TCP port.....: 8080
o: username:password.: disabled
o: commands..........: enabled

10) Visualiser le flux vidéo :

Sous Ubuntu 12.04 :

http://192.168.1.16:8080/stream.html


11) Arrêter tout :
pi@framboisepi ~ $ kill $(pgrep raspistill)
pi@framboisepi ~ $ kill $(pgrep mjpg_streamer)

Atelier : Diffusion

VII) Stop-motion

Animation Studio
1) Paquetage de base :
pi@framboisepi ~ $ sudo apt-get install -y libav-tools
pi@framboisepi ~ $ sudo apt-get install -y python-imaging-tk
3) Répertoire de travail
pi@framboisepi ~ $ mkdir STOPMOTION
pi@framboisepi ~ $ cd STOPMOTION/
4) Téléchargement

https://drive.google.com/file/d/0B87aGq7vEpoFTkR6RmJDaGVqN2M/edit?usp=sharing
5) Téléchargement des ressources : blankScreen.gif

https://docs.google.com/file/d/0B87aGq7vEpoFYTl6ZlAyWnBES0k/edit
6) Lancement de l'application :
pi@framboisepi ~/STOPMOTION $ python ./AnimationStudio.py
Pi-Mation
1) Mise-à-jour du système :
pi@framboisepi ~ $ sudo apt-get update && sudo apt-get upgrade
2) Mise-à-jour du micro-logiciel :
pi@framboisepi ~ $ sudo rpi-update
Redèmarrer le RaspPi.
3) Installation des dépendances :

- Outils d'installation pour Python :
pi@framboisepi ~ $ sudo apt-get install python-setuptools
- Bibliothèque de gestion de la caméra en Python :
pi@framboisepi ~ $ sudo easy_install picamera
- Bibliothèque Pygame :
pi@framboisepi ~ $ sudo apt-get install python-pygame
- Outils de gestion vidéo :
pi@framboisepi ~ $ sudo apt-get install libav-tools 
4) Installation d'un lecteur vidéo :
pi@framboisepi ~ $ sudo apt-get install omxplayer
5) Répertoire de travail :
pi@framboisepi ~ $ mkdir -p STOPMOTION/PIMATION
pi@framboisepi ~ $ cd STOPMOTION/PIMATION/
6) Téléchargement :
pi@framboisepi ~/STOPMOTION/PIMATION $ git clone https://github.com/russb78/pi-mation.git
pi@framboisepi ~/STOPMOTION/PIMATION $ cd pi-mation/pi-mation/
pi@framboisepi ~/STOPMOTION/PIMATION/pi-mation/pi-mation $ 
7) Lancement de l'application :
pi@framboisepi ~/STOPMOTION/PIMATION/pi-mation/pi-mation $ chmod 755 ./pi-mation.py
pi@framboisepi ~/STOPMOTION/PIMATION/pi-mation/pi-mation $ ./pi-mation.py
Atelier : Stop-motion

ZE END

Par Le Sanglier des Ardennes

http://framboisepi.fr

http://framboisepi.fr | GraouLAB, le 16/01/14 : Présentation et atelier sur le module caméra du Raspberry Pi fait avec reveal-js