PAUSES LONGUES avec une PI cam HQ

la dernière née des PI camera , outre une meilleure définition (4056 x 3040) offre la possibilité de faire des pauses longues jusqu’à 200 secondes pour l’astrophotographie du ciel profond . nous allons voir comment exploiter ces capacités .

tout d’abord petit rappel des caractéristiques des différentes PIcam dans le tableau comparatif ci dessous:

pour exploiter les capacités des Picam , il existe 2 possibilités:

  • les commandes en ligne Raspistill pour la photo et Raspivid pour la video .
  • un programme Python avec 2 options: passer des commandes raspistill ou utiliser la librairie Picam .

Pauses longues avec Raspistill

on ouvre l’éditeur de commande et on tape une instruction du genre:

raspistill -n -md 3 -awb off -ex off -ISO 800 -ss 100000000 -o PLtest01.jpg

tout ce qui est derriere “raspistill” consiste aux differentes option , ici :

  • -n inhibe la previsualisationa l’issue de la prise de vue
  • -md 3 met la Picam HQ en mode 3 (permet les pauses longues jusqu’a 200″)
  • -awb off , annule la balance des blanc
  • -ex off , annule le mode d’exposition
  • -ISO 800 : fixe la sensibilité ISO a 800 , les valeurs possibles sont 100-200-400-800. il faut avoir enlever l’exposition et la balance des blancs pour controler les ISO.
  • -ss 100000000 : fixe le Shutter Speed a 100 secondes (100000000 microsecondes)
  • -o PLtest01.jpg enregistre la photo dans le fichier “PLtest01.jpg”

pour plus d’information sur les options raspistill et raspivid , voir le fichier PDF ci dessous

attention, raspistill ne met pas a jour les donnes EXIF du fichier ….

Pauses longues avec PYTHON

methode 1 : envoyer une commande raspistill avec Python

pour envoyer une commande shell avec Python, c’est tres simple, il faut appeller la fonction subprocess .call(), en reprenant la commande plus haut cela donne:

import subprocess
cmd="raspistill -n -md 3 -awb off -ex off -ISO 800 -ss 100000000 -o PLtest01.jpg"
subprocess.call(cmd, shell=True)

bien sur avec ce principe, il est possible de parametrer des variables pour la durée de pause et rajouter une boucle while avec compteur et implementation du nom de fichier pour une sequence time laps pause longue (voir ci dessous)

methode 2 : utiliser la librairie PICAM

voyons un premier exemple basique

import picamera
from time import sleep
from fractions import Fraction
camera = picamera.PiCamera()
# camera en resolution max
camera.resolution=(4056, 3040)
# capteur en mode Pause longue (mode 3) 
camera.sensor_mode=3
# exposure mode off pour pouvoir utiliser les ISO
camera.exposure_mode = 'off'
# autowhite balance mode off pour utiliser les ISO
camera.awb_mode = 'off'
# framerate a 50s
camera.framerate =Fraction(1,50)
# vitesse d'obturation a 50 secondes
camera.shutter_speed = 50000000
#sensibilite ISO a 800 pour un gain maximum en condition nocturnes
camera.iso = 800
#prise de vue et sauvegarde sous le nom 'pauselongue.jpg'
camera.capture('pauselongue.jpg')
camera.close()

ce petit bout de python, permet de voir qu’avec quelques simples lignes de commandes python on peut déclencher une prise de vue pause longue de 50 secondes a 800 ISO et sauvegarder le fichier résultant.

outre le fait que l’on peut paramétrer tout un tas de valeurs de reglage ( gain, AWB, ISO, résolution, shuter speed, etc …) . il est important de noter qu’avec la librairie PICAMERA la vitesse d’obturation (shutter speed ) est en fait dépendante directement du framerate. il est donc indispensable de ne jamais dissocier les deux => donc on défini systématiquement le framerate avec la fonction Fraction , et ensuite le shutter speed a l’identique avec la même valeur x 1000000.

ATTENTION: si au lancement du programme vous avez un message d’erreur Python du genre “out of ressources error” c’est en général que la memoire graphique GPU allouée est insuffisante . en standard elle est souvent fixée a 128, mais pour du traitement d’image pause longue a la def max du capteur de la PI cam HQ il faut au minimum passer a 256 . pour cela , via le shell aller dans le fichier “boot/config.txt” et avec l’éditeur nano de debian modifier la valeur memoire de 128 a 256 . cela devrait régler le problème. il est egalement possible de modifier l’allocation GPU dans le menu de configuration de la version debian avec bureau et ecran type windows.

NOTE: je n’ai personnellement pas reussi a faire des pauses de plus de 50 secondes avec la librairie PICAMERA , cela semble etre du a une limitation a 60 secondes du parametre time_out dans les fichiers de config et d’erreur de la librairie.

la PI camera HQ est fournie en standard avec un cadre fileté au pas de monture photo Type C . pour l’utiliser sur un telescope ou une lunette , il faut lui adjoindre un adaptateur d’oculaire au pas de la monture type C ( 11€ sur Amazone tarif mai 2021):

sur la base du premier programme , il est facile de programmer une sequence de prise de vues pause longue en automatique en ajoutant une boucle while avec increment et de numeroter automatiquement le nom du fichier a l’enregistrement :


import picamera
from time import sleep
from fractions import Fraction
camera = picamera.PiCamera()
camera.resolution=(4056, 3040)
camera.sensor_mode=3
camera.exposure_mode = 'off'
camera.awb_mode = 'off'
camera.framerate =Fraction(1,50)
camera.shutter_speed = 50000000
camera.iso = 800

i=1
while i=< 5:
	camera.capture('pauselongue' + str(i) +'.jpg')
	sleep(10)
	i=i+1

ce deuxième programme fait donc une série de 5 photos en pause de 50 secondes chacune avec un temps d’attente de 10 secondes entre chaque photo.

sur ces bases et en utilisant Tkinter ( voir rubrique ICI et ICI ) il est possible de faire des menu et d’intégrer des boutons et sliders pour paramétrer le nombre de photos, le temps de pause , le temps interpose , la sensibilité ISO et tous les autres paramètres potentiels utilisables.

exemple d’une appli perso qui transforme la PI cam HQ en capteur multimode combinant Video / timelapse Photo / timelaps pauses longues, l’ensemble très pratique en mode nomade avec un ecran TFT HDMI touschscreen qui permet d’activer les sliders et boutons sans clavier ni souris …

a vos clavier pour développer vos appli perso ….

pour aller plus loin , voici le lien vers la documentation picamera:

https://picamera.readthedocs.io/en/release-1.13/index.html