Date de mise à jour : 21 janvier 2012

Caméra

Ces commandes permettent de contrôler l'acquisition d'images avec des caméras reconnues par AudeLA : Audine, Hi-SIS, ST7, CookBook 245, Starlight, Kitty, WebCam (port USB Windows uniquement), AudiNet (liaison Ethernet), EthernAude (liaison Ethernet), etc. Les commandes qui permettent de contrôler une caméra s'écrivent "cam" suivi d'un numéro. Ces commandes n'existent pas au démarrage de AudeLA, mais sont créées par la commande "::cam::create ...". Ainsi il est possible de piloter plusieurs caméras, mais il est laissé à l'utilisateur le soin de ne pas exécuter des commandes simultanément. Lors d'une acquisition, l'image est stockée dans un buffer (à renseigner avec la fonction cam1 buf). En plus, si on précise à quel télescope (automatique) est reliée la caméra (à renseigner avec cam1 tel), elle récupère automatiquement ses coordonnées, et les inscrit dans le header FITS si l'option cam1 radecfromtel vaut 1.

Il est important de savoir que les auteurs ne disposent pas personnellement de ces caméras, et donc qu'il peut y avoir des problèmes avec certaines caméras.

Les commandes sont divisées en deux catégories :

1. Commandes communes

1.1. Commandes d'acquisition

cam1 acq ?-blocking?

Cette commande déclenche l'acquisition d'une image avec les paramètres de vue courants (voir plus loin). Cette commande rend la main tout de suite, alors que la numérisation de l'image sera effectuée à la fin de la pose. Pour détecter le moment où la pose est terminée, cette commande modifie la variable globale status_cam1 (pour la caméra 1, status_cam5 pour la caméra 5). En fin de pose la valeur "stand" est ré-écrite dans la variable status_cam1. Ainsi il est possible grâce à un vwait d'attendre la fin de la pose pour continuer un script, mais il est également possible de faire autre chose pendant la prise de vue.

Remarque : Les valeurs "read" et "exp" ne sont plus écrites dans la variable status_cam1.

cam1 exptime 10
cam1 acq
# traitement qui dure moins de 10 s
...
vwait status_cam1
# la pose est terminée
...

Si -blocking est présente, la commande déclenche l'acquisition d'une image et rend la main seulement après la fin de l'acquisition car l'interpéteur TCL est bloqué pendant toute la durée de l'acquisition.

cam1 exptime 10
cam1 acq -blocking
# la pose est terminée
...

cam1 stop

La fonction "stop" permet d'interrompre une pose en cours. Si aucune pose n'est en cours, le message d'erreur "No current exposure" est renvoyé. Sinon, la lecture du CCD est déclenchée tout de suite, et l'image est disponible dans le buffer d'acquisition dès que cette commande rend la main.

1.2. Informations de la caméra

cam1 debug ?0|1|2|3|4? (defaut=0)

Active (1|2|3|4) ou désactive (0) l'édition d'un fichier de traces pour les fonctions de la partie commune du driver. Il prendra le nom suivant : libcam.log.

Attention le niveau de traces 1 ne crée le fichier "libcam.log" que si le fonctionnement de la caméra est perturbé par des erreurs.

Les différents niveaux de traces sont les suivants :

La commande "cam1 debug" retourne le niveau de traces courant.

cam1 info

Renvoie le type de caméra que pilote la commande cam1 (de même pour les autres commandes cam...).

cam1 ccd

Renvoie le nom du capteur CCD qui est installé dans la caméra que pilote la commande cam1.

cam1 name

Renvoie le nom de la caméra.

cam1 nbpix

Renvoie une liste de deux éléments. Le premier élément est le nombre de pixels sur l'axe x et le second élément est le nombre de pixels sur l'axe y. Attention, le nombre de pixels dépend du binning et de la fenêtre.

cam1 nbcells

Renvoie une liste de deux éléments. Le premier élément est le nombre de photosites sur l'axe x et le second élément est le nombre de photosites sur l'axe y. Attention, le nombre de photosites ne dépend pas du binning, ni de la fenêtre. Cela correspond au nombre de pixels en binning 1x1, fenêtre entière.

cam1 celldim

Renvoie une liste de deux éléments. Le premier élément est la dimension d'un photosite sur l'axe x et le second élément est la dimension d'un photosite sur l'axe y. L'unité de la dimension est le mètre.

cam1 pixdim

Renvoie une liste de deux éléments. Le premier élément est la dimension d'un pixel sur l'axe x et le second élément est la dimension d'un pixel sur l'axe y. L'unité de la dimension est le mètre. Les pixels sont définis comme des rassemblement de photosites en fonction de la valeur du binning.

cam1 maxdyn

Renvoie la valeur du nombre de pas codeurs maximal délivré par le convertisseur analogique numérique de la caméra. Il s'agit de la valeur du niveau de saturation.

cam1 fillfactor

Renvoie la valeur du facteur de remplissage des pixels. C'est une valeur comprise entre zéro et un.

cam1 rgb

Renvoie le type de codage du masque RGB pour une matrice CCD couleur. "none" pour une matrice noir & blanc. "cfa" pour une matrice couleur codée CFA (Kaf-0400 couleur par exemple).

cam1 timer ?-countdown?

Renvoie le nombre de secondes écoulées depuis le début de pose. Si la pose n'est pas en cours, revoie la valeur -1. L'option -countdown permet de renvoyer le nombre de secondes qui reste avant la fin de la pose.

cam1 gain

Renvoie le gain théorique de la caméra en électrons par pas codeur (e-/adu).

cam1 readnoise

Renvoie le bruit de lecture théorique de la caméra, en électrons.

cam1 temperature

Renvoie la température du capteur CCD, en degrés Celsius.

1.3. Paramétrage de la caméra

cam1 exptime ?durée?

Sans argument, cette commande renvoie le temps de pose qui sera utilisé pour réaliser les images. L'argument durée permet de régler cette valeur. Par exemple :

cam1 exptime 5.2
# Ok
cam1 exptime
# 5.20

cam1 bin ?binning?

Cette commande permet de connaître ou de modifier le binning courant utilisé pour réaliser les images, suivant que l'on spécifie ou non l'argument. Celui-ci prend la forme d'une liste à deux éléments : les facteurs de binning suivant les deux axes du CCD.

cam1 bin [list 2 3]
# Ok
cam1 bin
# 2 3

Attention, certaines caméras ne permettent pas n'importe quelles valeurs de binning. Se renseigner.

cam1 window ?coords?

Réglage des coordonnées de la fenêtre de numérisation du CCD. Lorsque le paramètre optionnel est précisé, il doit s'agir d'une liste de 4 entiers qui correspondent à l'abscisse et l'ordonnée du coin inférieur gauche, et à l'abscisse et l'ordonnée du coin supérieur droit. Le système de coordonnées a pour origine le premier pixel dans le coin inférieur gauche, et a pour coordonnées (1,1). Les coordonnées de la fenêtre s'expriment hors de tout facteur de binning : par exemple, une image pleine trame en binning 2x2 a quand même un fenêtrage à (1,1)-(768,512) pour un CCD comme celui de Audine.

cam1 port

Retourne le nom du port de communication (LPT1:, USB, quickaudine0, etc.).

cam1 buf ?bufNo?

Cette commande permet de savoir, ou de modifier, le buffer dans lequel sera stockée l'image d'acquisition. L'argument optionnel, tout comme la valeur renvoyée est un nombre qui est le numéro du buffer. Ainsi, si "cam1 buf" renvoie 2, la commande qui permet d'avoir accès à l'image acquise est "buf2 ...".

cam1 tel ?telNo?

Réalise le même genre de lien que pour la fonction "buf", mais avec le télescope. S'il est informatisé, alors à chaque prise de vue le télescope est interrogé sur ses coordonnées, et elles sont inscrites dans le header FITS.

cam1 radecfromtel ?1|0? (defaut=0)

Active (1) ou désactive (0) l'inscription des coordonnées du télescope dans le header FITS de la prise de vue.

La désactivation permet de gagner du temps ( 1,2 seconde pour un LX200 ) dans le cas d'une série d'acquisitions rapides où les coordonnées dans le header ne sont pas utiles, par exemple l'autoguidage ou la focalisation.

cam1 shutter ?shut_mode?

Lorsque l'obturateur est supporté par la caméra, on peut en préciser le comportement. La commande "cam1 shutter" permet cela. Elle a un argument optionnel, qui si il est précisé permet de régler ce mode de fonctionnement. S'il est absent, cette commande renvoie le mode actuel.

Les trois modes supportés sont opened, closed, synchro. Les deux premières valeurs infligent un comportement statique à l'obturateur. Le dernier mode, synchro, ouvre l'obturateur en début de pose et le ferme à la fin. C'est le mode par défaut, qui est utilisé pour l'acquisition traditionnelle. Pour faire des noirs et offsets, on se servira du mode closed.

cam1 cooler ?cool_mode?

Lorsque le système de refroidissement d'une caméra est géré par le logiciel, cette fonction a pour paramètre, l'une des valeurs suivante :

cam1 foclen ?value?

Fixe la valeur de la longueur focale du système optique placé devant le capteur CCD. Entrer la valeur mètres.

cam1 overscan ?off|on?

Permet de commuter la prise en compte ou non des cellules cachées à la lumière sur la matrice CCD. Par défaut, on ne lit pas ces cellules pour obtenir une image esthétique (paramètre sur off). Une étude scientifique de l'image exige parfois de connaître la valeur de ces pixels cachés. Dans ce cas, on fixera le paramètre de l'overscan sur on.

cam1 interrupt ?1|0?

Permet de commuter l'arrêt des interruptions de type cli/sty lors du dialogue avec le port parallèle.

3. Commandes spécifiques à Audine

cam1 mode ?mode?

Attention, ce mode n'a pas encore été porté dans le driver externe !!!

Le mode correspond à la manière dont est lu le CCD. Trois modes sont possibles : "full", "half", "grid". Le premier (et par défaut) correspond au mode pleine trame, c'est à dire le mode classique d'acquisition. Le mode "half" correspond au mode demi-trame. Enfin le mode "grid" est un mode particulier qui permet de ne lire qu'un pixel sur 'n' dans les deux directions. C'est un mode pratique pour faire le pointage d'une planète lorsque le fond de ciel est intense : en mode grid 4x4, seul un pixel sur 16 est lu, l'image couvre la surface du CCD, mais le contenu des photosites n'est pas accumulé comme dans l'opération de binning. Ainsi ni le fond de ciel, ni la planète n'est saturé.

cam1 set0, cam1 set255, cam1 test, cam1 test2

Ces quatre commandes sont celles qui permettent de tester la caméra Audine, comme décrit dans sa documentation de montage.

cam1 scan width height bin dt ?-biny biny? ?-firstpix index? ?-fast speed? ?-perfo? ?-tmpfile?

Déclenche une acquisition en mode drift scan avec le fonctionnement suivant : A l'issue de chaque période dt, biny lignes sont sommées dans le CCD avant d'être lues (si l'argument facultatif biny n'est pas spécifié, par défaut il prend la valeur 1). Seule la partie de cette "super-ligne" décrite par -firstpix et width sera lue avec un binning en x de bin. L'image créée aura alors comme largeur width/bin (arrondi) et comme hauteur height. Le temps d'intégration de chaque ligne est bien dt.

Width indique la largeur de l'image en photosites (donc indépendante du binning).

Height indique le nombre de lignes qu'on souhaite sur l'image finale.

Bin indique le facteur de binning en x, donc pour les colonnes.

Dt donne l'intervalle de temps séparant deux lignes sur l'image finale, en millisecondes.

L'option -biny indique le facteur de binning en y, donc pour les lignes. Si cet argument n'est pas spécifié, par défaut il prend la valeur 1.

L'option -firstpix permet de décaler la colonne de démarrage de l'image (à indiquer avec la valeur de index). Le décalage se compte en photosites: la valeur par défaut est 1 et correspond à la première colonne de la zone image (overscan exclus). Pour faire une image de 100 pixels de large commençant à la colonne 207, il faut entrer la commande : cam1 scan 100 ... -firstpix 207. La largeur effective de l'image sur le CCD reste width.

L'option -fast permet d'activer le mode rapide du scan. Dans ce cas, l'ensemble du scan bloquera les interruptions de l'ordinateur. L'horloge de Windows ne peut plus servir de base de temps. On se sert alors de boucles de calculs pour calibrer la milliseconde. La valeur du paramètre speed correspond aux nombres de boucles à effectuer pour réaliser une attente d'une milliseconde. Cette valeur dépend de l'ordinateur. Il faut bien entendu calibrer cette valeur. Cela peut être réalisé par la fonction cam1 scanloop.

L'option -perfo permet d'obtenir un fichier texte, à la fin du scan, qui montre les durées d'attente effectivement réalisées pour obtenir un décalage régulier des lignes. Cette option ne fonctionne que dans le cas où l'option -fast n'est pas activée.

L'option -tmpfile permet de sauver un fichier binaire des pixels lus, au cours de l'acquisition. Utile si l'on craint un plantage du système pendant la réalisation d'un scan important (occultation par exemple).

Les options -biny, -firstpix, -fast, -perfo et -tmpfile sont disponibles dans le cas d'une caméra Audine pilotée par un port parallèle.

Seules les options -biny et -firstpix sont disponibles dans le cas d'une caméra Audine pilotée par une EthernAude.

La hauteur de l'image n'est limitée que par la quantité de mémoire disponible de la machine, et de ses performances. Il faut tout de même savoir que sur l'image finale il y aura un gradient sur les 512/bin premières lignes (cas d'un KAF-0400, possédant 512 lignes) car elles n'auront pas eu la même durée de présence dans le CCD (la première ligne y reste dt, la quinzième 15*dt/bin et la 700ème 512*dt/bin.

Cette commande n'effectue aucun test concernant les paramètres d'entrée, aussi il faut être vigilant sur le positionnement du scan. Par exemple avec un KAF-0400 :

cam1 scan 205 300 3 200 -firstpix 650

ne va lire que la portion de ligne comprise entre les colonnes 650 et 650+205-1=854 du CCD. Le problème est que le KAF-0400 ne possède que (!) 768 colonnes optiques : La commande fonctionnera quand même, mais les colonnes au delà de 768 correspondront à des pixels masqués, et de post-scan : Il ne faudra pas s'étonner de voir une image noire sur sa partie droite. A noter que le -1 dans le calcul de la colonne finale est lié au problème des piquets et des intervalles (n piquets équivaut à n-1 intervalles).

Pour utiliser le mode drift-scan afin de compenser la rotation de la Terre, il faut utiliser la formule suivante :

La fonction scan met à jour la variable scan_result1 pour la caméra cam1, etc. à la fin de la pose, de telle sorte qu'un vwait permette de la détecter.

cam1 scanloop

Calibre la valeur du paramètre speed pour la fonction cam1 scan dans le cas d'une caméra Audine pilotée par un port parallèle.

cam1 breakscan

Arrête un scan en cours. L'image en cours d'élaboration est conservée.

cam1 shuttertype ?audine|thierry? ?options?

Permet de sélectionner le type d'obturateur. Le paramètre value peut avoir l'une des valeurs suivantes :

cam1 obtupierre ?a b c d e t flag?

Permet de changer les valeurs des paramètres de l'obturateur de type Pierre Thierry.

cam1 ampli synchro|on|off ?nbcleanings?

Commute le mode de l'amplificateur du CCD des Audines . Trois modes sont possibles :

cam1 outtime billion_out

Calcule la durée d'une instruction out envoyée sur le port parallèle. Le paramètre billion_out représente le nombre milliards de fois que va être exécuté cette instruction pour que le résultat soit correct. Comme la durée totale du calcul ne peut être connue qu'a une seconde près, une durée totale de plusieurs secondes est nécessaire pour avoir une valeur correcte. Cela correspond généralement à environ 15 pour le paramètre billion_out.

cam1 portadress ?value?

Retourne la valeur décimal de l'adresse du port parallèle. Value permet de changer l'adresse du port (inutile normalement).

cam1 wipe

Rinçage de tous les pixels du CCD et extinction éventuelle de l'amplificateur. Cette fonction peut être utilisée pour commencer une pose sans connaître d'avance sa durée.

cam1 read

Lecture immédiate, sans rinçage, des pixels du CCD avec le binning fixé par cam1 bin. On peut ainsi lire une pose commencée par la fonction cam1 wipe. Le temps de pose sera calculé à partir de la dernière fonction cam1 wipe employée.

cam1 acqnormal

Equivalent à la fonction cam1 acq, à cela près que c'est la fonction cmdCamAcqNormal du fichier tp.c qui est appelée. Cette fonction peut être utilisée en enseignement de travaux pratiques sur la caméra CCD Audine pour comprendre le chronogramme d'acquisition par les étudiants.

cam1 acqspecial

En temps normal, cette fonction ne fait rien. Elle appelle la fonction cmdCamAcqSpecial du fichier tp.c. Cette fonction est destinée à être programmée par des étudiants dans le cadre d'enseignement de travaux pratiques sur la caméra CCD Audine afin de modifier le chronogramme d'acquisition.

cam1 cantype ?AD976A|LTC1605?

Choix du type de convertisseur analogique digital. Par défaut les caméras Audine sont équipées d'un AD976A qui nécessite une durée d'environ 10 microsecondes de signal de début de conversion. Le LTC1605 équipe quelques Audines custom et nécessite seulement un durée d'environ 2 microsecondes pour le signal de début de conversion.

4. Commandes spécifiques à Hi-SIS

cam1 bell ?bell_mode?

Cette commande spécifique aux Hi-SIS 24/33/44 permet d'activer ou non la sonnerie. L'argument peut alors valoir "on", ou "off". Sans argument, la commande "cam1 bell" renvoie le mode de fonctionnement de la sonnerie.

cam1 delayloops ?{na nb nc}?

Délais de synchronisation avec le microcontrôleur des Hi-SIS 22. na, nb et nc sont des nombres d'instructions de type "out" qu'il faut attendre aux cours du dialogue avec le microcontrôleur. Par défaut, les délais sont {5 1 7}. Sans paramètre, la fonction renvoie les valeurs actuelles.

cam1 fan ?{on|off n}?

Réglages de puissance des modules Peltier (Hi-SIS 24/33/44). L'argument est une liste de deux paramètres. Le premier est on ou off. Le second est un nombre compris entre 0 et 127. Sans paramètre, la fonction renvoie les valeurs actuelles.

cam1 filterwheel ?nf?

Positionnement d'un filtre (Hi-SIS 24/33/44). nf est un numéro de filtre (compris entre 1 et 6 inclus). Sans paramètre, la fonction renvoie la valeur actuelle. Sans paramètre, la fonction renvoie la valeur actuelle si la roue à filtre est activée. Sinon elle renvoie le message "disable".

cam1 shutterdelay ?nd?

Délais d'attente entre l'ordre de fermeture de l'obturateur et le début de lecture (Hi-SIS 24/33/44). Si un nombre est passé en paramètre, il s'agit du nombre de millisecondes qu'il doit s'écouler entre l'émission de la fermeture de l'obturateur, et le début de la numérisation de l'image CCD. Si aucun paramètre n'est fourni, la commande renvoie la valeur actuelle.

cam1 reset

Initialisation du microcontrôleur (Hi-SIS 24/33/44).

cam1 register

Lecture et écriture d'ordres dans le registre du microcontrôleur (Hi-SIS 24/33/44).

cam1 status

Retourne l'état actuel du microcontrôleur (Hi-SIS 24/33/44). Les valeurs retournées sont l'une da liste suivante : idle, pause, clean ccd, exposure, digitize, cmd1, cmd2, cmd3, Bad status value.

cam1 gainampli ?g?

Réglage du gain de l'amplificateur de la chaîne analogique (Hi-SIS 24/33/44). g est la valeur du gain. Sans paramètre, la fonction renvoie la valeur actuelle.

5. Commandes spécifiques à SBIG

cam1 infotemp ?param?

Cette commande permet d'afficher les choix actuels de gestion de température de la caméra. Elle n'accepte aucun paramètres et retourne une liste composée des éléments suivants :

Exemple :
cam1 infotemp
# -15.000000 -7.715797 25.000000 1 79
Signifie que le consigne est égale à -15.00 °C, que la température actuelle du ccd vaut -7.72 °C, que la régulation en température est activée et que le régulateur Peltier fonctionne à 79/255*100=31 %. Pour les caméras USB, il n'y a pas de capteur de température extérieure. La valeur renvoyée est alors toujours 25 °C.

La température peut être réglée avec la commande : cam1 cooler check -15.

Il est recommandé par SBIG de couper la régulation et d'attendre quelques minutes avant d'éteindre l'alimentation de la caméra. L'arrêt de la régulation peut aussi être réalisée avec la commande : cam1 cooler off.

cam1 activaterelay param

Cette commande active les relais. Le paramètre est une liste de 4 entiers qui représentent la durée de l'impulsion appliquée dans chaque direction : x+, x-, y+, y-. La durée est exprimée en centièmes de seconde (cs).

Exemple : cam1 relay [list 100 0 0 0]

active le relais x+ pendant 1 seconde.

cam1 aotiptilt déviation

Le paramètre déviation est une liste à deux entiers (entre 0 et 4095) qui indique la déviation du tiptilt. La valeur 2048 correspond au centrage du miroir.

6. Commandes spécifiques aux WebCams

cam1 videosource

Modification des paramètres d'acquisition.

cam1 videoformat

Modification du format d'image.

cam1 longuepose ?0|1?

Si le paramètre est 0 la WebCam est utilisée en mode standard avec le temps de pose réglé dans la fonction videosource.

Si le paramètre est 1 la WebCam est utilisée en mode longue pose selon la modification de Steve Chambers. Le temps de pose est alors donné par la fonction exptime.

Voir http://home.clara.net/smunch/wintro.htm et http://astrosurf.com/sweiller/VproDS.html pour plus de détails sur la modification de la caméra.

Sans paramètre, la fonction renvoie la valeur actuelle.

Les fonctions ci-dessous ne s'appliquent que lorsque le paramètre longuepose vaut 1 :

cam1 longueposeport ?value?

Retourne la valeur décimale de l'adresse du port parallèle utilisé pour le contrôle de la pose. Value permet de changer l'adresse du port.

cam1 longueposestartvalue ?value?

Indique la valeur décimale du caractère envoyé sur le port parallèle au début de la pose. La valeur par défaut est 0.

cam1 longueposestopvalue ?value?

Indique la valeur décimale du caractère envoyé sur le port parallèle à la fin de la pose. La valeur par défaut est 1, elle convient si la commande est réalisée par la pin 2 du port parallèle.