Date de mise à jour : 21 janvier 2012
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 :
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
...
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.
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.
La commande "cam1 debug" retourne le niveau de traces courant.
Renvoie le type de caméra que pilote la commande cam1 (de même pour les autres commandes cam...).
Renvoie le nom du capteur CCD qui est installé dans la caméra que pilote la commande cam1.
Renvoie le nom de la caméra.
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.
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.
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.
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.
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.
Renvoie la valeur du facteur de remplissage des pixels. C'est une valeur comprise entre zéro et un.
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).
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.
Renvoie le gain théorique de la caméra en électrons par pas codeur (e-/adu).
Renvoie le bruit de lecture théorique de la caméra, en électrons.
Renvoie la température du capteur CCD, en degrés Celsius.
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
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.
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.
Retourne le nom du port de communication (LPT1:, USB, quickaudine0, etc.).
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 ...".
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.
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.
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.
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 cooler check -20
Fixe la consigne de température à -20 °C.Fixe la valeur de la longueur focale du système optique placé devant le capteur CCD. Entrer la valeur mètres.
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.
Permet de commuter l'arrêt des interruptions de type cli/sty lors du dialogue avec le port parallèle.
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é.
Ces quatre commandes sont celles qui permettent de tester la caméra Audine, comme décrit dans sa documentation de montage.
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.
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.
Arrête un scan en cours. L'image en cours d'élaboration est conservée.
Permet de sélectionner le type d'obturateur. Le paramètre value peut avoir l'une des valeurs suivantes :
Permet de changer les valeurs des paramètres de l'obturateur de type Pierre Thierry.
Commute le mode de l'amplificateur du CCD des Audines . Trois modes sont possibles :
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.
Retourne la valeur décimal de l'adresse du port parallèle. Value permet de changer l'adresse du port (inutile normalement).
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.
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.
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.
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.
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.
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.
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.
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.
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".
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.
Initialisation du microcontrôleur (Hi-SIS 24/33/44).
Lecture et écriture d'ordres dans le registre du microcontrôleur (Hi-SIS 24/33/44).
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.
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.
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
.
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.
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.
Modification des paramètres d'acquisition.
Modification du format d'image.
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 :
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.
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.
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.