Accéder aux soldes du Black Friday Amazon Black friday Banggood Black Friday Gearbest
10% de remise supplémentaire* sur les produits domotiques Xiaomi

Kits domotiques, caméras de sécurité, robot aspirateur, purificateur d'air... *Hors produits déjà en promotion

Voir le code promo
39 jours restants
raspberry pi camera v2.1

Depuis sa sortie, la librairie Picamera qui permet de piloter et d’exploiter la caméra du Raspberry Pi a pas mal évoluée. Dans cet article, nous allons voir les changements introduits dans la version 1.8 ainsi que les nouveautés de la version 1.9 (si vous avez besoin, la documentation officielle se trouve ici). Pour ceux qui prennent le train en marche et qui découvrent le Raspberry Pi, nous allons commencer par un petit rappel des étapes à suivre pour activer la caméra sur la distribution Raspbian.

Quelle caméra choisir pour son Raspberry Pi ?

Avant de rentrer dans le vif du sujet, voici un petit rappel sur les caméras disponibles pour le Raspberry Pi. La version 2 actuelle est disponible en deux versions.

La première désignée v2.1 est une caméra couleur classique basée sur un capteur de type CMOS 8MP (les pixels ne débordent pas sur les voisins en cas de saturation).

La seconde caméra désignée v2.1 NoIR est équipée d’un capteur sur lequel le filtre Infra Rouge n’a pas été installé. La caméra est plus sensible lorsqu’il y a peu de lumière.

Attention, certaines dénominations sont trompeuses, ce n’est pas une caméra à vision nocturne. Dans le noir complet, le capteur sera totalement aveugle. Par contre en ajoutant une lumière complémentaire (2 ou 3 Led infra-rouge), le capteur est (vraiment) très performant. Dans le noir complet, vous pouvez espérer voir à 10m, ce qui est suffisant pour fabriquer une caméra de surveillance 100% DIY. Pour en savoir plus, vous pouvez lire ce comparatif détaillé.

Parallèlement aux produits officiels Raspberry, de nombreux fabricants (principalement chinois) commercialisent des caméras compatibles. Bien souvent les performances sont inférieures mais le budget aussi.

Voici une petite synthèse des principales caractéristiques techniques.

Caméra v2.1 couleur officielle Raspberry Caméra v2.1 NoIR (1) officielle Raspberry Caméra asiatique NoIR (1)

(double éclairage à Led)

raspberry pi camera v2.1 raspberry pi v2.1 noir camera official noir compatible camera raspberry pi
Connecteur CSI CSI CSI, compatible Raspberry
Dimensions 25 × 24 × 9 mm 25 × 24 × 9 mm 25 x 24 x 26 mm

25 x 75 x 26mm (avec Leds)

Résolution 8MP

3280 × 2464 pixels

8MP

3280 × 2464 pixels

5MP

2592 × 1944 pixels

Capteur CMOS Sony IMX219 CMOS Sony IMX219 CMOS OmniVision OV5647
Résolution vidéo max. 1080p30 1080p30 1080p30
Taille du capteur 1/4 pouces 1/4 pouces 1/4 pouces
Driver V4L2  V4L2  V4L2
Focale 3.60 mm 3.60 mm 3.60 mm
Champ de vision 53°(horiz.) x 41°(vert.) 53°(horiz.) x 41°(vert.) 75,7° (horiz.)
Liens commerciaux Amazon, environ 26€

Banggood, environ 28€

Amazon, environ 33€

Banggood, environ 29€

Aliexpress, environ 18€

Banggood, à partir de 15€

(1) La désignation NoIR signifie que la caméra n’est pas équipée de filtre infrarouge. C’est à dire qu’elle dispose d’une bien meilleure sensibilité par faible luminosité. Cette sensibilité peut être améliorée avec un éclairage à Led additionnel. Un éclairage additionnel est même obligatoire en extérieur ou en pleine nuit. Ce ne sont pas des caméras à vision nocturne. En contrepartie, l’image est beaucoup moins colorée. Ce type de caméra est surtout destiné à faire de la vidéosurveillance.

Quelle caméra pour le Raspberry Pi Zero W ?

Le Raspberry Pi Zero W tout comme la révision 1.3 dispose d’un connecteur caméra. Oui, mais il est plus petit que celui du Raspberry Pi. Il est tout à fait possible d’utiliser une caméra v2.1 ou v2.1 NoIR en remplaçant la nappe souple par une nappe compatible (aussi appelé camera ribbon).

Si vous avez déjà une caméra, vous pouvez en acheter sur Amazon pour environ 8€. En direct d’Asie, on en trouve pour environ 2€.

adaptateur nappe camera raspberry pi zero 1.3

Connecter la caméra au Raspberry

Le Raspberry Pi dispose d’un connecteur CSI dédié à communiquer avec les caméras compatibles. Le connecteur CSI se trouve juste à coté de la sortie vidéo HDMI. Avant de connecter la caméra au Raspberry, arrêtez Raspbian et débranchez la carte.

Soulevez le connecteur

raspberry pi camera connector connecteur picamera

Il n’y a pas de d’indicateur de sens sur le ruban. Insérez le ruban en plaçant les pistes en direction du connecteur HDMI.

raspberry pi connect ruban camera picamera

Refermez le connecteur. On le verrouille en le descendant à fond vers le bas. Il n’y a pas de “clic” qui confirme la fermeture du connecteur. Tirez légèrement pour vous assurer que le ruban est en place et correctement maintenu. Vous l’avez compris, ce n’est pas un montage mécanique à toute épreuve. Il ne faut pas d’action mécanique trop intense sur le ruban sous peine de débrancher la caméra.

camera connectee raspberry pi 3

Activer le module caméra sur Raspbian

Avant de pouvoir utiliser le module caméra, il est nécessaire de l’activer. Ouvrez le Menu puis Préférences et enfin ouvrez le panneau de Configuration du Raspberry Pi. Allez à l’onglet Interfaces puis activez le module caméra.

 raspberry pi configuration camera

Si vous utilisez le Raspberry Pi uniquement en ligne de commande ou depuis une connexion externe SSH, vous pouvez également accéder à raspi-config avec la commande  sudo raspi-config. Allez au menu 6 (Enable Camera) et répondez par Yes.

raspberry pi activer module camera v2

Dans tous les cas, vous devrez redémarrer pour prendre en compte le nouveau réglage.

Installation de la librairie Picamera

La librairie Picamera fait partie des paquets de base de la distribution Raspbian. Toutefois, ça ne coute rien de vérifier que tous les paquets nécessaires sont bien présents sur votre système. Exécutez la commande  dpkg-query -l '<em>picamera</em>' qui permet d’énumérer les paquets qui contiennent la chaîne de caractères picamera. Vous devriez avoir les 3 paquets suivants d’installés sur votre système.

Si ce n’est pas le cas, commencez par les installer

Profitez en pour mettre à votre votre système

Mise à jour du firmware du Raspberry Pi

Attention. Il est préférable de faire une copie de sauvegarde de la carte SD avant de mettre à jour le firmware. Suivez ce guide si nécessaire.

Autre point à vérifier, le firmware du Raspberry (dépôt GitHub). Avant de mettre à jour le firmware, vous pouvez vérifier le numéro de version de ce dernier avec la commande  uname -a

Le numéro de révision se trouve à coté de #. Ici c’est la 915.

Ensuite, exécutez la commande rpi-update pour mettre à jour le firmware. L’opération dure quelques minutes

Enfin, redémarrez le Raspberry

Après la mise à jour, le firmware est passé à la révision #936.

Fonctions dépréciées depuis la version 1.8

Depuis la version 1.8 de la librairie piCamera, ne nombreux changements ont été opérés. Ces fonctions seront définitivement retirées de la librairie à partir de la version 2.0. Pour le moment, tous les codes existants peuvent fonctionner. Les développeurs ont clarifiés l’écriture de nombreuses fonctions.

Il est possible d’ajouter un marqueur dans votre code pour repérer plus facilement les fonctions dépréciées. Pour cela ajoutez ce morceau de code à vos projets :

Par exemple si vous exécutez le code suivant (tiré de la documentation officielle)

vous obtiendrez les messages suivants :

Fonction camera.capture

Le format de capture devait être définit dans une variable raw_capture puis ensuite appelé

Ancienne syntaxe

Nouvelle syntaxe

Maintenant, on passe directement le paramètre souhaité directement dans l’option format comme ceci.

Qualité d’enregistrement : le paramètre quantization devient quality

La drôle de dénomination quantization est abandonnée au profit tu terme quality beaucoup plus clair.

Devient

Nombres fractionnaires

Auparavant, il était nécessaire de passer les nombre fractionnaire (très employé pour des ratios d’image) sous la forme (numérateur , dénominateur). Depuis la version 1.8, la librairie piCamera supporte les types Python int, float, Decimal, et fraction. Par exemple, pour indiquer le framerate, on peut faire comme ceci maintenant

Prévisualisation : fonction preview

Il est possible d’avoir plusieurs couches overlay. Pour cela, la fonction preview a été séparée de la librairie. Les attributs preview_alpha, preview_fullscreen et preview_window sont maintenant des méthodes de la fonction preview.

Ancienne syntaxe

Nouvelle syntaxe

Encore plus facile, on peut maintenant passer tous les paramètres au moment de l’appel de la fonction preview comme ceci

Enfin, l’attribut previewing est maintenant obsolète. Pour tester si la caméra est déjà démarrée, on doit faire ainsi maintenant

Zoom remplace crop

La fonction crop pouvait porter à confusion car il pouvait laisser penser que cette fonction permettait de découper l’image alors qu’il n’en était rien. La sémantique est corrigée.

Ancienne syntaxe

Nouvelle syntaxe

Nouveautés de la version 1.9

La version 1.9 est surtout est version qui corrige plusieurs bugs et introduit quelques nouvelle fonctions :

  • La paramètre sensor_mode permet de forcer le réglage de la caméra durant la phase d’initialisation (#165)
  • La vitesse de rafraichissement ainsi que la résolution de la caméra peuvent être spécifiés comme arguments à l’initialisation ce qui permet de réduire le temps d’initialisation (#180)
  • Prise en charge de still_stats  de raspstill  (#166)
  • Correction de l’attribut led  qui devrait maintenant fonctionner sur le modèle Raspberry Pi B+(#170)
  • Correction d’une fuite mémoire dans le moteur de rendu qui pouvait apparaître après la création / destruction répétée d’une couche d’overlay (#174)
  • Correction d’un bug lors de l’enregistrement d’une séquence MPEG lorsque la résolution était supérieure au VGA (#47 and #179).
  • Correction d’un bug sur les metadata de la fonction PiCameraCircularIO. La compatibilité ascendante n’est plus assurée, il faudra reprendre tous les codes existants en suivants les nouvelles spécifications des attributs (#177)
  • Autres bugs corrigés #176#167, #168, #171, #172, #182

Exemple : affichage en live de l’image de la caméra avec prise de cliché au clavier

La distribution Raspbian est livrée sans aucun utilitaire par défaut pour visualiser directement l’image produite par le module caméra. Ce n’est pas grave, c’est l’occasion de montrer comment mettre en oeuvre la librairie Picamera pour interagir avec le module caméra. Disposer d’un affichage en direct, permet de régler facilement la mise au point de l’optique sans devoir enregistrer une longue vidéo.

Voici donc un petit programme Python qui réalise les opérations suivantes :

  • Affichage en direct de la caméra en plein écran
  • Fonctions au clavier (à l’aide de la librairie Pygame)
    • Barre d’espace : enregistrer un cliché. L’image est enregistrée dans le même répertoire que le programme Python. Un compteur s’incrémente à chaque cliché. Attention, le compteur est réinitialisé à chaque démarrage du programme.
    • Enter/Return : enregistre un clip vidéo de 10 secondes. Il est possible de modifier la durée dans la fonction take_video
    • Echap : quitter le programme

Pour récupérer les événements du clavier (on peut aussi récupérer les événements de la souris, d’un écran tactile…), nous allons utiliser la librairie Pygame qui est dédiée à la création de jeux en Python. Commencez par installer la librairie Pygame sur votre environnement.

Placez vous dans le dossier  /home/pi/Documents par exemple et ouvrez l’éditeur de texte en nommant le fichier (par exemple livecamera.py). Collez le code ci-dessous.

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous dés inscrire à tout moment.

Comparateur de prix

Bons plans

Les offres suivantes se terminent bientôt. Utilisez le coupon indiqué pour profiter du prix promo

Projets DIY - Domotique et objets connectés à faire soi-même