INTERVALLONET


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é à :

  1. Un APN par la prise déclencheur externe et (ou) par la liaison USB.
  2. Un APN pour étalonner le temps de latence du déclenchement.
  3. Une caméra numérique dont il cadence l'acquisition des images (via le signal de synchronisation externe).
  4. Rien, mais la Led peut "flasher" des images dans une séquence de vidéo analogique.

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:

  1. Capturer les données issues d'un GPS (Heure, localisation géophysique) et son signal PPS.
  2. Mettre à l'heure le système qui supporte le service.
  3. Communiquer par TCP/IP pour recevoir les ordres de déclenchements et retourner un statut du service et du système.
  4. Commander le relèvement du miroir d'un APN.
  5. Piloter un signal d'exposition soit d'un APN, soit d'une caméra, à partir d'une date et heure précise donnée.
  6. Piloter une LED pour mesurer le décalage de déclenchement réel, ou synchroniser une séquence vidéo de caméra analogique.
  7. Fournir l'heure par NTP aux autres services du réseau local.
  8. Produire un fichier des dates exactes de changement d'etats des signaux.
  9. Communiquer avec un APN Canon par liaison USB, et ainsi récupérer à distance les images de l'APN, et configurer la prise de vue. Cette solution est interessante quand l'APN n'est pas muni d'une liaison Wifi.

(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.

 

Description du langage de communication (Fonctionalités de la "feature" 3).

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 ! :-)

Performances

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.

 

Solution technique

La solution technique a pas mal variée depuis que j'ai définit ce projet, à cause de problèmes d'obsolescence. 

  1. Au début vers 2010, (Expérience MEDOR) ce système était basé sur un Beck, le SC12, et un GPS Garmin, mais Beck n'a pas maintenu la production de ces composants.  
  2. Ensuite 2014, il y a eu changement de GPS (Adafruit) et portage sur le Rabbit RCM4000, mais ce qui n'était pas écrit dans les flyers, c'est que le compilateur ne fonctionnait qu'avec un seul fichier C !
  3. 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).

 

Interface utilisateur

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.

Comment construire un INTERVALLONET ?

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 seconde

Pour 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 

  • sans routeur il vous faut un cable croisé, et mettre le serveur en adresse IP fixe.
  • avec routeur vous pouvez utiliser le DHCP du routeur. Il faudra lancer la commande ifconfig sous Linux pour connaitre l'adresse IP.

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 ./intervallonet

Pour 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 :

http://www.pihomeserver.fr/2013/05/24/raspberry-pi-home-server-donner-une-ip-statique-a-votre-machine/

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

 

Retour au SOMMAIRE


Copyright 2015- 2016. Cet article ne peut être reproduit totalement ou partiellement sans le consentement de son auteur.

Page crée le 29.11.2015 - - - - -Dernière mise à jour 12.11.2016