INTERVALLONET est la contraction de
Intervallomètre sur EtherNET. En
instrumentation astronomique, certaines mesures doivent être datées précisément.
La date et l'heure de début de la photo doivent être connus précisément à
la miliseconde près. C’est
le cas des occultations ; dans le profil photométrique, le temps est en
abscisse.
Pour les applications que j'envisage, le positionnement du téléscope semblerait accepter une précision moins grande, sans dépasser une erreur de positionnement de plus de 5% du champs. Là, un transfert de la date et heure UTC, par NTP est suffisant. Ceci dit, c'est discutable, c'est encore une question de cahier des charges...
Les cas d'usages sont les suivants:
L'intervalonet peut être connecté à :
INTERVALONET est le premier d'un ensemble de services automatiques qui piloteront mes téléscopes sur réseau Ethernet. Chacun de ces services sont indépendants, c'est tout l'interêt que je décris en détails sur la page Arcctel.
Les caractéristiques principales (features) de ce service INTERVALLONET sont:
(A l'heure ou est modifiée cette page, la feature 9 n'est pas intégrée.)
Dans le temps, ce qu'il faut obtenir correspond au chronogramme suivant:
Commentaires de cette figure.
Sur cette figure on retrouve les mots clefs des paramètres qui sont décrits au chapitre suivant MIROR, LED, SLEEP, EXPOS, REPEAT.
Exemples de commandes et de cas d'erreurs:
Requete du client | Réponse du serveur |
SET; | CMD KNOWN;DATE RESET; |
GET; | CMD KNOWN;NO PARAM;DATE RESET; |
PBA; | UNKNOWN COMMAND; |
RESET; | CMD KNOWN;DATE RESET; |
SET;EXPOS=1234; | CMD KNOWN;PRM OK;DATE RESET; |
SET;MIROR=8765; | CMD KNOWN;PRM OK;DATE RESET; |
SET;REPEAT=1; | CMD KNOWN;PRM OK;DATE RESET; |
SET;FILE=1; | CMD KNOWN;PRM OK;DATE RESET; |
SET;SLEEP=1123456789; | CMD KNOWN;PRM OK;DATE RESET; |
SET;EXPOS=5454;MIROR=8787;SLEEP=9090;REPEAT=555; | CMD KNOWN;PRM OK;PRM OK;PRM OK;PRM OK;DATE RESET; |
GET;EXPOS; | CMD KNOWN;NO PARAM;EXPOS=5454; |
RESET;EXPOS; | CMD KNOWN;PRM OK;DATE RESET; |
RESET;MIROR; | CMD KNOWN;PRM OK;DATE RESET; |
RESET;REPEAT; | CMD KNOWN;PRM OK;DATE RESET; |
RESET;SLEEP; | CMD KNOWN;PRM OK;DATE RESET; |
GET;EXPOS; | CMD KNOWN;NO PARAM;EXPOS=00; |
RESET;EXPOS;MIROR;SLEEP;REPEAT; | CMD KNOWN;PRM OK;PRM OK;PRM OK;PRM OK;DATE RESET; |
SET;2015:11:14A23H18m1234567; | CMD KNOWN;NO PARAM;DATE SET; |
SET;2015:11:14A23H18m1234567;EXPOS=1111;MIROR=2222;SLEEP=1234;REPEAT=17; | CMD KNOWN;NO PARAM;PRM OK;PRM OK;PRM OK;PRM OK;DATE SET; |
GET;INFOS; | CMD KNOWN;NO PARAM;GPS INFO:_Latt_Long UTC:0 0 0 0H0:0; DATE RESET; |
GET;INFOS; | CMD KNOWN;NO PARAM;GPS INFO:_Latt4902.4969,N_Long00109.5673,E UTC:16 1 3 9H36:28; DATE RESET; |
SET;EXIT=1; | CMD KNOWN;PRM OK;DATE RESET; |
SET;TRACE=1; | CMD KNOWN; |
GET;VER; | CMD KNOWN;NO PARAM;Service:Intervallonet-V2.02-gerald.mauboussin@gmail.com;DATE RESET; |
A propos de l'usage des majuscules... Deux Ecoles :
( Je ne suis ni pour, ni contre ! Bien au contraire ! ... c'est politique ! :-)
Le serveur TCP accepte au maximum 10 connexions par secondes. C'est un objectif minimum, dans la réalité, il accepte plus.
L'erreur maximum sur les fronts montants et descendants des signaux est de 25 microsecondes maximum. (Objectif aussi)
La durée des paramètres EXPOS, SLEEP, LED, MIROR ne peut pas excéder une heure.
Le décalage entre le PPS du GPS Adafruit et l'heure donnée par l'IMCCE a été mesurée à 300ns.
La solution technique a pas mal variée depuis que j'ai définit ce projet, à cause de problèmes d'obsolescence.
Aujourd'hui la solution est basée sur la Rasberry PI 2 et Linux. Le petit plus de cette solution est le serveur NTP. Solution pas chère mais encore provisoire, car l'interface ethernet a été connectée sur la carte sur un port USB. Et l'idée de la feature 9 provient de ce projet : https://entangle-photo.org/
Après la lecture d'un livre specialisée sur Linux Temps reel, la solution en mode user est devenu très performante au niveau de la gigue 20 microsecondes. La solution
La carte mezzanine GPS HAT n'est pas livrée avec connecteur soudé.
En soudant un connecteur ref RS 254-6110, il est possible de monter une troisième carte au dessus.
Vous voyez l'emplacement de pile CR1220. Cette pile sert à alimenter le composant RTC (Real Time Clock).
Du fait que les messages de commandes passent sur protocole TCP, beaucoup de possibilités s'ouvrent : TerraTerm, logiciel spécifique sur PC, tablettes tactiles sous Android ou sous Windows 8. Et puisque ces IHM sont communes à tous les services du téléscope, cela fera l'objet d'une page à part.
Je ne vais pas recopier ce qui est bien expliqué ailleurs, donc j'indique les liens à chaque étape. Si ces liens sont cassés un jour, prévenez moi.
Dans ce qui suit, les commandes que vous devez tapper au clavier sont en couleur violette (et non souligné).
1 Les approvisionnements
Ref | Designation | Lien | Prix approximatif |
C1 | Raspberry PI 2 | Voir Amazon, Farnell par exemple. | 45 euros |
C2 | Alimentation de la RPI 2 (5V 2A) | Voir Amazon, Farnell par exemple. | 10 |
C3 | Carte GPS HAT Adafruit | https://www.adafruit.com/products/2324 | |
C4 | Antenne | https://www.adafruit.com/products/2324 | |
C5 | Raccord | https://www.adafruit.com/products/2324 | 80 les 3 articles |
C6 | LED rouge basse consomation | Ref (RS) 1711234 | 1 |
C7 | Résistance 200 Ohm | Pas difficile à trouver. | 1 |
C8 | 2 Transistors MOSFET | Ref (RS) 8090840 Fairchild FDC637AN | 1 |
C9 | 2 Embases BNC femelle | RS ou Farnell | 3 |
C10 | Boitier de votre choix | Pas difficile à trouver. | 10 |
C11 | Pile CR1220 | Sur le site Adafruit aussi.2324 | 2 |
C12 | Carte mini SD 8go | Voir ce que disent les sites sur Raspberry à ce sujet. Il y a des essais à faire. | 6 |
Je n'ai pas mis dans cette liste un clavier USB, une souris USB, et un écran avec interface HDMI car ces éléments ne servent que pour le dévelopement.
Attention au fait que la Raspberry PI 2 ressemble, à l'extérieur, à la Raspberry PI B+. A l'intérieur, c'est pas pareil : B+ : 1 coeur ou PI 2 : 4 coeurs.
Attention aussi au fait qu'il existe 2 GPS chez Adafruit, l'un se monte sur le connecteur , en mezzanine sur la RPI2, l'autre se connecte par fils volants, et pour chacun des 2, les concepteurs ont choisis de cabler le PPS soit sur GPIO4 soit sur GPIO18.
2 Installation de Linux sur la carte Raspberry
Les liens ne manquent pas, je vous propose celui ci qui utilise NOOBS : http://www.framboise314.fr/noobs-pour-un-demarrage-plus-facile-avec-le-raspberry-pi/
NOOBS est un bootloader, qui ira chercher la bonne version du système d'exploitation pour la Raspberry PI 2.
Certains auteurs indiquent que la fondation Raspberry commence à tripoter l'OS, que celui-ci est moins stable, donc il est recommandé de conserver les anciennes images de cartes SD.
Cela prends quelques dizaines de minutes...
A la fin de l'installation de l'OS, Indiquer la bonne page de code pour les Français est plus confortable :
sudo raspi-config dans "Internationalisation Options", puis dans "Change local" cochez la ligne fr-FR ISO-8859-1.Pendant que nous sommes dans raspi-config, il faut vérifier que SSH est activé. Et ce site est très bien fait pour ceux qui debutent avec SSH.
3 Installation du serveur NTP
Le serveur NTP par défaut ne prends pas en compte l'information du PPS. Nous devons donc remercier un groupe de travail qui s'est penché sur le sujet et nous fournit la solution. Solution qui passe par une compilation de leur version de serveur NTP. Sur Raspberry PI 2 il faut vraiment respecter les options de la commande make.
http://www.satsignal.eu/ntp/Raspberry-Pi-NTP.html
4 Test du serveur NTP
En mode console:
Pour vérifier le signal PPS , tapez :
sudo ppstest "/dev/pps0" vous devriez voir une ligne de plus s'afficher à chaque secondePour vérifier la liaison UART avec le GPS :
cat /dev/ttyAMA0 vous devriez voir les messages NMEA défiler.Pour vérifier que la RPI2 se met bien à l'heure, tapez : date vous devriez voir l'heure UTC, éventuellement plusieurs fois pour se convaincre.
Avec un PC externe , Si vous voulez utiliser l'INTERVALLONET
Sur le PC vous indiquerez cette adresse IP du serveur dans cette boite de dialogue ; onglet "Temps Internet".
Ensuite vous cliquez sur le bouton mettre à jour, et si ça marche pas, il y a un message d'erreur qu'on ne comprends absolument pas. Mais c'est normal ! :-)
A noter : Jean Marie Vugnon, nous conseille d'utiliser un autre client NTP que celui de Windows, soit TARDIS soit DIMENSION 4.
5 Installation de l'application INTERVALLONET
Ecrivez moi, ,je vous enverrai la dernière version de mes sources, avec un makefile. Le piège, enfin disons le petit coté pénible, dans ce cas de transfert de fichier est dans les droits en lecture et modification du group et du owner. Si vous n'êtes pas habitué à Linux, je vous conseille ces pages : https://openclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux/les-utilisateurs-et-les-droits
6 Construction de l'interface Hardware
Pour la Led, sur la carte HAT du GPS il faut relier la résistance à la broche #17 du connecteur HE10-40 puis la résistance à la LED par un fil de 50cm puis le retour de la LED à la masse.
Pour les 2 autres signaux, on utilise un montage en drain ouvert. Le signal ACQ est disponible sur #27 et le signal MIRROR sur #22. Les #17, #27 et #22 sont sérigraphié sur la carte GPS HAT.
Dans le cas des APN de CANON, on relie directement le drain aux 2 signaux de ces APN. Pour avoir le connecteur adequat pour un EOS 6D, j'ai sacrifié un déclencheur manuel sur fil, à distance.
Pour les caméras, c'est légèrement différent, la logique est inversée, il faut une alimentation extérieure, et le drain ouvert fait chuter la tension. Mais cela dépend de vos modèles de caméras, il faut les informations du constructeur pour définir ce qu'il faut faire. Et je pourrai vous conseiller.
Pour faciliter le cablage des transistors MOSFET qui sont minuscules, j'ai dessiné ce circuit imprimé d'interface avec la Raspberry.
Sur la photo, vous voyez les composants minimum qu'il faut souder sur cette carte afin d'avoir la fonction d'intervallonet. Les autres empreintes de composants servent d'autres buts.
7 Tests
Pour lancer le programme il faut avoir les droits du superutilisateur parce qu'il fait appel aux entrées sorties matérielles. Donc
sudo ./intervallonetPour les tests, un oscilloscope à mémoire est l'idéal. Faute de copie d'écran, provisoirement, je vous donne le lien vers un fichier qui donne la liste des dates, précises à la milliseconde près des changements d'état de tous les signaux. Ce fichier est généré par la Raspberry PI 2 en RAM pendant la séquence de signaux , et sur fichier après la génération de la séquence. Ce fichier au format CSV est téléchargeable par le lien suivant, ce n'est qu'un exemple. Il n'est généré que si vous avez demandé FILE=1 (voir la liste des commandes au début de la page). Vous pouvez le récupérer sur votre PC par le protocole SSH et la commande scp. J'ai trouvé plus simple d'utiliser FileZilla et de configurer la connexion comme ceci :
8 Mise en service
Pour lancer le programme au démarrage de la Raspberry, les instructions sont ici : http://www.pihomeserver.fr/2013/05/27/raspberry-pi-home-server-lancer-un-programme-automatiquement-au-demarrage/
Il est utile aussi de désactiver le mode graphique. C'est toujours une charge de travail en moins. Lancez la commande
sudo raspi-config , ensuite choisir la rubrique qui parle du Boot, plusieurs options s'offrent à vous, dont celle du boot en mode console avec ou sans login.Pendant que vous êtes dans raspi-config, regardez si votre menu ne vous propose pas d'autoriser le SSH, par la rubrique "Advanced Options".
Il faut également configurer l'interface Ethernet avec une adresse IP statique :
Mais attention, sur ce sujet, il y a des différences entre la distribution Jessie et Wheezy.
9 Mise en boite
Voici une possibilité de mise en boitier. Avec un boitier en ABS, de marque Bopla ref 222-222 chez RS Components. Et il faut aussi un cable d'alimentation mini USB coudé.
Quand le couvercle est ouvert , nous avons accès au connecteur HDMI pour la maintenance du logiciel. Il y a encore un peu de place dans ce boitier pour loger une alimentation pour faire le signal de synchronisation de caméra. Cela pourrait être un boitier ou un coupleur de piles. Ensuite on raccorde les BNC sur ces signaux soit pour un APN soit pour une camera. Pour un APN c'est un cablage directe, pour une caméra il faut une alimentation et une résistance de pull-up (Cf plus haut au §6. Je rajouterai ici un petit schéma pour que ce soit clair).
Et si tout cela représente des difficultés, ne vous inquiétez pas, c'est normal, il faut s'habituer, au pire, j'organiserai des ateliers d'une demie journée pour vous aider.
Merci de me contacter pour vos remarques ou les erreurs qui se seraient glissées dans cette page.
mailto:gerald.mauboussin@gmail.com
Copyright 2015- 2016. Cet article ne peut être reproduit totalement ou partiellement sans le consentement de son auteur.