Résumé
Astrokit consiste en l'exécution d'un programme après le boot d'un OS Linux compilé pour un SOC Broadcom ARM Cortex A7 (RaspberryPi2).
Une fois démarré (5 secondes de boot), ce programme gère les entrées et les sorties de manière parallélisée :
- gestion des entrées (infrarouge, raquette de commande, etc..)
- gestion des signaux à injecter aux moteurs par l'intermédiaire du module posé sur la RaspberryPi2
Module électronique
Relié aux Gpios de la RaspberryPi2, ce module possède très peu d'électronique.
Il gère l'alimentation, l'entrée infrarouge via une diode réceptrice, et l'amplification en courant des signaux envoyés par le programme.
L'architecture logicielle
Un programme principal lance et simule du temps réel mou au travers de quatres threads avec des priorités différentes et des verrous placés judicieusement (mutex lock + sleep CPU).
Un thread réalise en plus un asservissement en fréquence en comparant fréquences calculées et mesurées. Cela permet de moyenner les latences du système, à savoir les interruptions matérielles et autres appels systèmes. Après analyse des résultats, la dérive finale n'est finalement que peu tributaire des latences, grâce à la correction permanente des erreurs par asservissement logiciel. Comme tout asservissement, un réglage est nécessaire pour éviter les oscillations inévitables liées à la fonction de transfert de l'ensemble. A partir du moment où aucun service au sens Linux ne montre une activité tout d'un coup supérieure à la moyenne, le comportement est prédictible et la quasi totalité de la CPU est finalement allouée au processus utile.
Le noyau Linux est compilé et patché temps réel, ce qui augmente la précision de l'ensemble.
Afin de bien évaluer ce niveau de précision, un test sur plusieurs étoiles, à différents endroits du ciel, a été nécessaire.
Ce test a permis de constater un suivi impeccable à environ 75x avec un petit télescope et une monture construite à cet effet.
Sur l'astre observé, on n'y voit donc que du feu : les dérives éventuelles sont donc beaucoup plus liées à la mécanique et à la monture.