Quelle caméra choisir pour le Raspberry Pi ou le RPi Zero W ? • Domotique et objets connectés à faire soi-même

Meilleur deal à : aliexpress.com

€ 12,36 € 15,45

Tous les modèles de Raspberry Pi (Raspberry Pi 3 et Raspberry Pi Zero W notamment) possèdent un connecteur CSI permettant de brancher une caméra numérique. La fondation commercialise une caméra v2.1 couleur équipée d’un capteur 8MP et une caméra sensible en faible luminosité (v2.1 NoIR). Vous trouverez également des caméras compatibles avec un éclairage à Led moins cher chez les fabricants asiatiques.

Quelle caméra pour le Raspberry Pi ?

La fondation propose deux caméras. La première désignée v2.1 est une caméra couleur basée sur le capteur de type CMOS Sony Sony IMX219 ayant une résolution de 8MP (3280 × 2464 pixels). La technologie CMOS (Complementary Metal-Oxide-Semiconductor) permet d’obtenir une image d’excellente qualité même lorsque la luminosité est très élevée. Contrairement au capteur CCD (Charge Coupled Device), chaque pixel est indépendant de son voisin. Les pixels ne débordent pas sur les voisins en cas de forte luminosité. C’est la traînée banche verticale (aussi appelé blooming) que l’on peut voir sur certaines photos numériques.

Source : http://www.camerarepair.org/2012/03/blooming-a-camera-repair-that-isnt/

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 en faible 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 par exemple), 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. 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 est plus raisonnable.

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

Le connecteur caméra du Raspberry Pi est appelé connecteur CSI pour Camera Serial Interface. C’est un standard industriel géré par l’alliance Mobile Industry Processor Interface. Il existe 3 normes (CSI-1, CSI-2, CSI-3) actuellement. La version la plus récente date de 2012. Le Raspberry Pi est équipé d’un connecteur CSI-2. Le problème avec le connecteur CSI c’est qu’il n’existe aucun logo qui permet de s’y retrouver aussi bien coté Raspberry Pi que coté caméra. Et c’est la même chose pour l’Orange Pi qui est lui aussi équipé d’un connecteur CSI incompatible avec la caméra du Raspberry Pi !

Bref, restez en terrain connu et vérifiez bien au moment de l’achat la compatibilité avec le Raspberry Pi (ou un autre mini-PC).

Quelle caméra pour le Raspberry Pi Zero W ?

Le Raspberry Pi Zero W (depuis la révision 1.3) dispose également de son connecteur caméra CSI. Mais il est plus étroit que celui qui équipe son grand frère 😈 .

Heureusement, 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 en anglais). C’est d’ailleurs la solution retenue par la plupart des fabricants.

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€.

Connecter la caméra au Raspberry

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

Soulevez le connecteur

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.

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.

Activer le module caméra sur Raspberry Pi OS (ancien Raspbian)

Avant de pouvoir utiliser le module caméra, il est nécessaire de l’activer. Pour la distribution Raspberry Pi OS avec le bureau graphique, ouvrez le Menu puis Préférences et enfin ouvrez le panneau de Configuration. Allez à l’onglet Interfaces pour activer le module caméra.

Redémarrer pour terminer l’activation de la caméra.

Activer la caméra avec raspbi-config en ligne de commande

Depuis le Terminal, la version Server (sans interface graphique) de Raspberry Pi OS, ou depuis une connexion externe SSH, vous pouvez accéder à raspi-config en exécutant la commande

sudo raspi-config

Allez au menu (5) Interfacing Options

Puis au menu (P1) Enable Camera et répondez par Yes.

Redémarrer pour terminer l’activation de la caméra.

Tester la caméra avec la commande raspistill

Raspbian est livré avec un petit utilitaire qui permet de prendre des clichés et d’enregistrer de petites séquences à l’aide de la caméra. C’est la commande raspistill. Ouvrez le Terminal

Pour prendre un cliché appelé demo.jpg, le cliché sera enregistré dans le répertoire d’exécution de la commande, exécutez

raspistill -o demo.jpg

Vous pouvez ajouter l’option -vf  pour faire une rotation verticale de 180° et -hf  horizontalement

raspistill -o -vf -hf demo.jpg

Exécutez la commande raspistill sans argument pour lister toutes les options disponibles. C’est une commande très puissante qui peut très facilement être intégrée dans un script Linux sans aucune autre dépendance.

raspistill

raspistill Camera App v1.3.11

Runs camera for specific time, and take JPG capture at end if requested

usage: raspistill [options]

Image parameter commands

-?, --help  : This help information
-w, --width : Set image width 
-h, --height    : Set image height 
-q, --quality   : Set jpeg quality 
-r, --raw   : Add raw bayer data to jpeg metadata
-o, --output    : Output filename  (to write to stdout, use '-o -'). If not specified, no file is saved
-l, --latest    : Link latest complete image to filename 
-v, --verbose   : Output verbose information during run
-t, --timeout   : Time (in ms) before takes picture and shuts down (if not specified, set to 5s)
-th, --thumb    : Set thumbnail parameters (x:y:quality) or none
-d, --demo  : Run a demo mode (cycle through range of camera options, no capture)
-e, --encoding  : Encoding to use for output file (jpg, bmp, gif, png)
-x, --exif  : EXIF tag to apply to captures (format as 'key=value') or none
-tl, --timelapse    : Timelapse mode. Takes a picture every ms. %d == frame number (Try: -o img_%04d.jpg)
-fp, --fullpreview  : Run the preview using the still capture resolution (may reduce preview fps)
-k, --keypress  : Wait between captures for a ENTER, X then ENTER to exit
-s, --signal    : Wait between captures for a SIGUSR1 or SIGUSR2 from another process
-g, --gl    : Draw preview to texture instead of using video render component
-gc, --glcapture    : Capture the GL frame-buffer instead of the camera image
-set, --settings    : Retrieve camera settings and write to stdout
-cs, --camselect    : Select camera . Default 0
-bm, --burst    : Enable 'burst capture mode'
-md, --mode : Force sensor mode. 0=auto. See docs for other modes available
-dt, --datetime : Replace output pattern (%d) with DateTime (MonthDayHourMinSec)
-ts, --timestamp    : Replace output pattern (%d) with unix timestamp (seconds since 1970)
-fs, --framestart   : Starting frame number in output pattern(%d)
-rs, --restart  : JPEG Restart interval (default of 0 for none)

Preview parameter commands

-p, --preview   : Preview window settings 
-f, --fullscreen    : Fullscreen preview mode
-op, --opacity  : Preview window opacity (0-255)
-n, --nopreview : Do not display a preview window

Image parameter commands

-sh, --sharpness    : Set image sharpness (-100 to 100)
-co, --contrast : Set image contrast (-100 to 100)
-br, --brightness   : Set image brightness (0 to 100)
-sa, --saturation   : Set image saturation (-100 to 100)
-ISO, --ISO : Set capture ISO
-vs, --vstab    : Turn on video stabilisation
-ev, --ev   : Set EV compensation - steps of 1/6 stop
-ex, --exposure : Set exposure mode (see Notes)
-awb, --awb : Set AWB mode (see Notes)
-ifx, --imxfx   : Set image effect (see Notes)
-cfx, --colfx   : Set colour effect (U:V)
-mm, --metering : Set metering mode (see Notes)
-rot, --rotation    : Set image rotation (0-359)
-hf, --hflip    : Set horizontal flip
-vf, --vflip    : Set vertical flip
-roi, --roi : Set region of interest (x,y,w,d as normalised coordinates [0.0-1.0])
-ss, --shutter  : Set shutter speed in microseconds
-awbg, --awbgains   : Set AWB gains - AWB mode must be off
-drc, --drc : Set DRC Level (see Notes)
-st, --stats    : Force recomputation of statistics on stills capture pass
-a, --annotate  : Enable/Set annotate flags or text
-3d, --stereo   : Select stereoscopic mode
-dec, --decimate    : Half width/height of stereo image
-3dswap, --3dswap   : Swap camera order for stereoscopic
-ae, --annotateex   : Set extra annotation parameters (text size, text colour(hex YUV), bg colour(hex YUV))


Notes

Exposure mode options :
off,auto,night,nightpreview,backlight,spotlight,sports,snow,beach,verylong,fixedfps,antishake,fireworks

AWB mode options :
off,auto,sun,cloud,shade,tungsten,fluorescent,incandescent,flash,horizon

Image Effect mode options :
none,negative,solarise,sketch,denoise,emboss,oilpaint,hatch,gpen,pastel,watercolour,film,blur,saturation,colourswap,washedout,posterise,colourpoint,colourbalance,cartoon

Metering Mode options :
average,spot,backlit,matrix

Dynamic Range Compression (DRC) options :
off,low,med,high

Preview parameter commands

-gs, --glscene  : GL scene square,teapot,mirror,yuv,sobel,vcsm_square
-gw, --glwin    : GL window settings 

Projets et tutoriels pour utiliser la caméra du Raspberry Pi

Voici une série d’article pour aller plus loin avec la caméra du Raspberry Pi

Avez-vous aimé cet article ?

[Total: 1 Moyenne: 5]