INTERVALONET Intervallomètre sur Ethernet Do.It.Yourself ! R.C.E Novembre 2016 Gérald Mauboussin
Plan de la présentation Objectifs Solution Principe Cas d’utilisations Le langage de commande Les tests Fabrication Aide Questions ?
Objectifs (techniques) Connaitre le temps UTC de début d’acquisition d’images. Pour les phénomènes d’occultation. Fournir une solution sur Ethernet pour systèmes informatiques distribués. Fournir une solution de commande par scripts pour l’automatisation. Fournir un serveur NTP stratum1. Evaluation des possibilités temps réels avec nano ordinateur Raspberry, et Linux sans toucher au noyau.
Solution Linux fournissait une solution NTP pas chère sur carte Raspberry avec un GPS adapté. Composants sous licence GNU ; projet non commercial.
Principe du système Une antenne Un GPS (PPS+UART) Raspberry Une sortie LED Deux sorties déclencheur (miroir et pose B) Serveur NTP Programme C « intervalonet ».
Principe du système (HW)
Photos
Principe du système (SW) Le PPS et les messages NMEA mettent le système Linux à l’heure. Le serveur NTP peut transmettre ces données vers le réseau. En interne, le programme « Intervalonet » utilise: Les timers pour cadencer les signaux. les fonctions gettimeofday() pour marquer les signaux à la microseconde près.
Utilisation 1 PC + câble Ethernet + APN Connaître le retard de déclenchement de l’APN.
Utilisation 2 PC + Switch + camera GigE
Langage de commande 3 mots de commande sur le principe des « accesseurs »: SET pour imposer une valeur à un paramètre. GET pour vérifier une valeur ou récupérer une information. RESET pour remettre à 0 tous les paramètres.
La syntaxe SET;PRM=xx; SET;PRM1=xx;PRM2=yy; SET;PRM=xx;HeureUTC; SET;2016:11:14A23H18m00123456; Ce qui déclenche la programmation c’est l’heure UTC, donc il faut donner cette information en dernier.
Les paramètres EXPOS Donne la durée d’exposition. SLEEP Donne la durée de repos entre expositions. LED Fixe le comportement de la LED. MIROR Fixe le temps où le miroir se relève. REPEAT Nombre de répétitions de EXPOS et SLEEP. FILE Produit un fichier des dates de tous les signaux. INFO Donne les coordonnées GPS. VER Donne le nom et la version du service. TRACE Impose la sortie de trace sur console ou fichier. EXIT Sortie de la boucle infinie du service. HELP Renvoi un texte d’aide.
Comment envoyer les commandes ? Par messages TCP, donc nous avons l’embarras du choix… Bashc (Linux) RaquetteXP (Windows) Tablette et navigateur sur interface Web. Ou par tous les langages qui supportent les sockets (c’est à dire tous): PHP, Python, C, C++ , etc…
Les tests Quand on fait un test sur le ciel, il est trop tard, c’est à l’oscilloscope que l’on peut faire une preuve. Différence entre l’horloge IMCCE et le PPS du module GPS = 300ns Tests de mise à l’heure du réseau par NTP menés par le groupe de travail : http://www.satsignal.eu/ntp/Raspberry-Pi-NTP.html
Les tests Si la mise à jour par rapport au PPS n’a lieu qu’une fois, la dérive lente du temps système par rapport au PPS est de 100ms pour 342s.
Test de dispersion Le programme Intervalonet commence par une boucle de 1024 datations par la fonction gettimofday() : Intervallonet:Hello World! Intervallonet:Init srv socket done : 4 Intervallonet:Server started. Intervallonet:Nombre de processeur(s):4 Intervallonet:Qualification de gettimeofday(); Sur 1024 echantillons. Intervallonet: 0 : 1478821730.059220 Diff=2 ( Les diff sont en microsecondes ) TestIntervallonet:22 : 1478821730.059236 Diff=2 TestIntervallonet:174 : 1478821730.059342 Diff=26 TestIntervallonet:524 : 1478821730.059613 Diff=2 TestIntervallonet:525 : 1478821730.059615 Diff=2 TestIntervallonet:534 : 1478821730.059625 Diff=2 TestIntervallonet:542 : 1478821730.059634 Diff=2 TestIntervallonet:543 : 1478821730.059636 Diff=2 TestIntervallonet:545 : 1478821730.059639 Diff=2 TestIntervallonet:549 : 1478821730.059644 Diff=2 TestIntervallonet:686 : 1478821730.059743 Diff=8 TestIntervallonet:Boucle principale...
Tests Séquence de déclenchements pour une caméra et son fichier DateFile.txt. Retard d’enclenchement d’un Appareil Photo Numérique. (Tenir compte aussi du Rolling shutter). La somme de toutes les erreurs tiennent dans une enveloppe de 500µs.
Copie d’écran d’oscilloscope
DateFile.txt Exposition=60000, Repos=40000, Miror=0.800000 Repeat=7 File=1 Annee=2016 Mois=11 Jour=12 19 h 57 min 0s 0 microsecondes Indice;signal;année;mois;jour;heure;minute;seconde;microseconde; 0;Mir_up;2016;11;12;19;56;59;200018; 1;Acq_start;2016;11;12;19;57;0;000039; 2;Acq_stop;2016;11;12;19;57;0;060018; 3;Acq_start;2016;11;12;19;57;0;100015; 4;Acq_stop;2016;11;12;19;57;0;160018; 5;Acq_start;2016;11;12;19;57;0;200014; 6;Acq_stop;2016;11;12;19;57;0;260015; 7;Acq_start;2016;11;12;19;57;0;300014; 8;Acq_stop;2016;11;12;19;57;0;360037; 9;Acq_start;2016;11;12;19;57;0;400015; 10;Acq_stop;2016;11;12;19;57;0;460015;…/…
Mesure du délais de déclenchement d’un EOS6D : 105ms Le signal que l’on voit sur la photo est celui qui a servi à déclencher la photo de l’oscilloscope. Le trigger a été réglé sur le front descendant.
Fabrication Les grandes étapes: Approvisionnements. Installation de l’OS sur carte SD. Configurations pour le GPS. Configurations pour le serveur NTP. Installation de « intervalonet ». Tests.
Aide Impossible d’expliquer la procédure exacte en 30 minutes. C’est pourquoi j’ai écrit cette page web: http://gerald.mauboussin.free.fr/Intervalonet/intervalonet.htm Une solution alternative et plus rapide: par une image de la carte micro SD. (Mon adresse email est sur le site.)
Questions ? Remarques ? Idées ? Collaborations ?
Merci !