Fonctionnement du module caméra pour Raspberry Pi

Posté le par | Réponse(s) : 20

Depuis le 14 mai (grand jour pour moi car je viens de passer le cap des 40 processeurs de ma vie), le module caméra pour Raspberry Pi est disponible. Du coup, je me suis offert un nouveau RPi et le module caméra.

La commande a été passée via le site Farnell qui m'a redirigé vers kubii.fr (partenaire de Farnell pour la France) le samedi 25 mai 2013, réception le 29 mai 2013. Du rapide malgré la rupture de stock parmi bon nombre de distributeurs 🙂

Passons à la présentation de ce module et à son utilisation.

Un peu de technique

Le module reçu est une rev 1.3, le capteur Omnivision (OV5647) me fait tout de suite penser à celui présent dans de nombreux smartphones (ressemblance flagrante avec le capteur de mon ancien Samsung ACE). Il a une définition maximale de 5 millions de pixels et est capable de filmer en 1080p à 30 images/s ou en 720p à 60 images/s. Il est monté sur une petite carte qui se connecte au Raspberry Pi via une nappe (un bus de type CSI-2), ce qui laisse l'avantage de rendre disponible les ports USB de la carte peu nombreux.

Assemblage du module caméra sur le Raspberry Pi

Rappel : avant de manipuler tout composant électronique, il est bon de décharger toute électricité statique de vos main en touchant un objet relié à la terre (par exemple un radiateur ou l'eau du robinet).

La nappe s'insère dans le connecteur situé entre le port RJ45 (Ethernet) et le port HDMI, la face striée de la nappe côté HDMI et la face bleue côté port RJ45. Pour insérer correctement la nappe, le connecteur du RPi doit être "ouvert" en tirant délicatement sur sa languette noire (dessus du connecteur) d'abord vers le haut puis vers le port Ethernet. La nappe doit être insérée dans le connecteur, en prenant soin de ne pas la plier à un angle trop aigu (dans le sens des flèches sur les images ci-dessous).

installation-camera-RPI

Une fois la nappe insérée, la partie supérieure du connecteur doit alors être poussée vers le connecteur HDMI puis vers le bas.

installation-camera-RPI-2

La nappe est ainsi "verrouillée", maintenue en place sans risque de se décrocher. Si vous n'avez pas compris ces explications, vous pouvez visionner cette vidéo :

Le module de caméra est désormais fonctionnel sur le Raspberry Pi, n'oubliez pas de retirer le petit morceau de film plastique translucide bleu couvrant la lentille, la qualité des photos n'en sera que meilleur 😉

Activer le support de la caméra dans Raspbian

L'installation physique étant terminée, nous allons maintenant activer la caméra. Je pars du principe que nous partons d'une base d'installation sous "Raspbian wheezy".

Démarrez le RPi et connectez-le. (s'il n'ont pas été modifiés, le nom d'utilisateur par défaut est pi, et le mot de passe par défaut est raspberry).

Avant toute modification/installation sur le système, il est bon de mettre à jour la distribution avec la dernière version en tapant dans un terminal :

sudo apt-get update && sudo apt-get upgrade

Il ne nous reste plus qu'à accédez aux paramètres de configuration du RPi en exécutant la commande suivante :

sudo raspi-config

Ce menu vous rappelle des souvenirs, c'est en effet le même que celui rencontré lors de la première installation. Déplacez-vous dans le menu jusqu'à "camera" et activez-le.

rpi-camera

Pour terminer, sélectionner "Finish" et rebooter le RPi.

Utilisation de la RasPiCam

L'utilisation est simple, la caméra est accessible grâce à deux logiciels en ligne de commande qui permettent de prendre des photos (raspistill) et des vidéos (raspivid).

Par défaut, les photos sont en JPEG avec une compression moyenne et une définition de 5 mégapixels. Les nombreuses options de ces deux logiciels permettent de régler la définition, de définir une zone à capturer (une sorte de zoom numérique) ou même de capturer des données en format RAW.

Côté vidéo, la caméra filme par défaut en H.264 à un débit de 14 mégabits/s environ. L'image a une définition de 1 920 x 1 080 et la caméra travaille à 25 images/s (on peut monter sous certaines conditions à 30 fps). La compression est effectuée par le SoC du Raspberry Pi et c'est du H.264 en High Profile de niveau 4.0 avec CABAC. Toujours grâce aux options, on a le choix de la définition, la cadence des images ou le bitrate. En sortie, on obtient un fichier de type .h264, lisible avec des logiciels comme VLC, mais il est parfaitement possible de changer le conteneur et de passer en .MP4 ou en .MKV sans pertes avec des logiciels dédiés, à vous de voir ce que vous souhaitez en faire.

En plus de produire des images ou des vidéos, le module permet une utilisation de type caméra de surveillance. Il est en effet assez simple de diffuser la vidéo en direct sur un réseau local ou même directement sur Internet (en local, envoi d'un flux 1080p sans soucis en évitant tout de même le Wi-Fi 11g ou les boîtiers CPL 85 mégabits/s ; sur Internet, il faudra bien évidemment adapter la qualité à la vitesse, un flux VGA à 700 kilobits/s offre une qualité correcte et fluide - que je ne pourrait tester car ma bande passante ne me le permet pas -).

Quelques exemples de commandes :

raspistill -o image.jpg // capture d'une image en jpeg
raspivid -o video.h264 // capture d'une vidéo de 5s en h264
raspivid -o video.h264 -t 10000 // capture d'une vidéo de 10s (en milliseconde) en h264

Pour connaître toutes les options possibles et exploiter pleinement les fonctions de raspistill et raspivid, il suffit de taper :

raspistill | less
ou
raspivid | less
(se déplacer avec les flèches et taper "q" pour sortir)

Une documentation détaillée (en anglais) est disponible sur github ou sur modmypi

Petit truc si vous capturez une vidéo en .h264, sous Linux et pour rendre la vidéo exploitable avec un logiciel de montage vidéo, utiliser la commande suivante :

# installation :
sudo apt-get install -y gpac
# conversion :
MP4Box -fps 30 -add video.h264 video.mp4

Le petit truc qui peut servir, désactiver la led rouge lors de la prise d'image ou de vidéo est possible, ne serait-ce que pour ne pas avoir son reflet dans la vitre si vous envisager des prises de vue lors d'un temps exécrable comme nous l'avons connu ces dernières semaines. Pour cela, éditer le fichier de configuration via la commande suivante :

sudo nano /boot/config.txt
# ajouter la ligne suivante :
disable_camera_led=1
# rebooter
sudo reboot

Autre méthode, la gestion de cette led via le GPIO 5 sur le site raspberrypi-spy.

Pour conclure

Ce module, à prix très raisonnable, est un excellent complément au Raspberry Pi, les bidouilleurs vont s'en donner à cœur-joie pour développer de nouvelles fonctionnalités et/ou autres logiciels. Pour celles (oui il y a des bidouilleuses de RPi...) et ceux qui s'attendent à un outil remplaçant complètement une webcam (comme  on les connaît de nos jours), la déception risque de les freiner car le module le gère pas l'autofocus, ne prend le son. Je rappelle que le RPi a été conçu plus dans un but éducatif (utilisation et développement) qu'en ordinateur low-cost. Il faut retenir que la qualité d'image est très correcte, l'installation et l'utilisation restent simples et même si la nappe parait fragile, on en reste pas moins des bidouilleurs qui savent contourner ce genre de désagrément.

Comme il fait beau, oui, oui le soleil est revenu sur nos contrées auvergnates, j'ai fait une photo et une vidéo à l'extérieur. La photo faisait initialement 2592x1944 / 4Mo, je l'ai redimensionnée en 1280x960 et 90% de la qualité. La prise de vue est largement sur-exposée (soleil de face). Les couleurs sont fidèles et pourraient faire pâlir bon nombre de smarphones aux capteurs plus sensibles.

cnrpi-photo

La vidéo est aussi de bonne qualité, mais lorsqu'on cherche à faire un balayage du paysage, l'image devient très instable. À voir dans les options de raspivid si la solution ne s'y cache pas.

Sources


Licence Creative Commons
Cet article, sauf mention contraire expresse, est publié sous licence Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licence.

Vous avez aimé cet article ? Alors partagez-le avec vos amis en cliquant sur les boutons ci-dessous :
Google Plus Twitter Facebook Linkedin Framasphere email Flattr !

20 commentaires sur “Fonctionnement du module caméra pour Raspberry Pi

  1. Bonjour,
    D'abord un grand merci pour votre travail. Motionpie c'est du lourd! Je galérais pour configurer mon Raspi en video surveillance et là c'est du bonheur. Le boulot de ccrisan est formidable, sa distribution fonctionne à merveille.
    Petite question, je suis un peu newbie sous Linux, comment étendre la led rouge la camera pi en passant par ssh? J'arrive bien à me rooter mais après?
    Vos conseils me serais précieux;
    Merci d'avance. 😉

    • Bonjour Patrick,
      Tu dois certainement faire référence à l'article motionPie, surveillance vidéo avec Raspberry Pi
      Oui motionPie c'est du lourd et tellement plus accessible.
      Pour éteindre le LED rouge, deux solutions s'offrent à toi :

      - tu éteins motionPie, tu retires la carte SD, tu l’insères dans ton lecteur et tu édites le fichier config.txt (première partition en FAT32 (sur 3 partitions)). Il ne te reste plus qu'à ajouter à la fin de ce fichier :
      disable_camera_led=1
      Une fois fait, tu n'as plus qu'à remettre la carte SD dans le RPi et redémarrer.

      - en mode SSH, c'est un peu plus complexe car la partition /boot (la première) est en lecture seule même en étant root :
      ssh -l root IP_DU_RPI (saisis le mot de passe)
      On va démonter la partition :
      umount /boot/
      On va lister les partitions :
      fdisk -l
      On choisit la première partition en FAT16 et on remonte la partition avec accès en écriture :
      mount -o rw /dev/mmcblk0p1 /boot
      On se déplace dans la partition :
      cd /boot
      On édite le fichier :
      nano config.txt
      Ajoute la même ligne qu'au dessus :
      disable_camera_led=1
      "CTRL + X" pour sortir de nano), "y" (pour valider les changements) puis "Entrer" (pour écraser le fichier concerné)
      Pour que les changements prennent effet, il faut redémarrer le RPi.

      Quand on utilise une distribution Linux classique, être root permet d'avoir accès en lecture ("r"), en écriture ("w") et en exécution ("x") à l'ensemble des fichiers (donc pas de démontage / montage). Il semble que pour des raisons de sécurité, motionPie (la distribution sur laquelle elle est basée) bride cet accès. C'est pourquoi, on est obligé de démonter/remonter la partition pour donner ces droits à root. Après reboot, la partition redevient en mode "lecture seule".

      J'espère avoir répondu à ta question et détaillé correctement. GNU/Linux est vraiment très puissant, fais-toi plaisir dans cet environnement 😉

      • Merci pour ta réponse.
        Effectivement c'est bien de ce post dont je parlais.
        Je vais mettre les mains dans le cambouis et me pencher là-dessus en espérant le moins de casse possible 😉 Je vais faire une sauvegarde de ma carte avant de m'y mettre!

  2. Salut je voulais te dire que j'ai bien réussi a installer MontionPie grace a ton Tuto, mais un problème est survenue :/ Quand je met en marche la RPi tout fonctionne sauf que, je ne peux plus y accéder via PuTTY (en tout cas via SSH). En comptant le serveur phpMyAdmin et le serveur Mumble que j'ai installer dessus auparavant ne fonctionnent plus non plus... Alors si tu pourrais m'aider se serais cool car je suis un peu dans la merde et c'est le cas de le dire.. 😉

    PS: quiche comme je suis je n'ai meme pas fait de sauvegarde ce qui m’embête avec tout ce que j'ai fait dessus :/

  3. J'ai posé un jour une question sur un forum, mais je retrouve pas sur lequel !!. Je me permet de la reposer ici:
    Peut-on avec la raspicam afficher une vidéo en continu, sans enregistrer.
    Merci d'avance de votre réponse.

  4. Pingback: Enable the camera support into Raspbian – raspberry quadcopter

  5. bonjour
    pour mon projet j'ai besoin de lecture de marquage de dimension 4.*4 et de lecture de étiquette de dimension 5*5 est ce que avec le caméra v2.1 peux être la lecture de code a barre précis ou non si non tu peux m'aider de choisir modèle de caméra .
    cordialement

  6. Pingback: Technologie | Pearltrees

Laisser un commentaire

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