Le projet astrokit n'est pas forcément compliqué mais a demandé beaucoup de travail.
Au niveau mathématique
- calcul du calendrier Julien et du temps sidéral local
- calcul de la position des planètes, du soleil, de la Lune
- calcul matriciel de transformations de répères à partir des équations de Gauss
- réduction en coordonnées horaires en fonction des coordonnées équatoriales et du temps sidéral
- réduction en coordonnées topo-centriques azimutales locales (azimut + altitude)
- calcul des vitesses azimutales qui seront injectées dans les moteurs sous forme de signaux Pwm modulés
- simulation des calculs à l'aide d'un planétarium
- test final des calculs en simulation réelle sur le ciel
Au niveau électronique
- conception des schémas électroniques
- test du mode micro pas des moteurs pas à pas généré de façon logiciel
- choix test de la régulation en tension
- choix et test de différents moteurs pas à pas
- choix et test des composants
- création des typons sous ExpressPCB (portage sur Kicad en cours)
- création des circuits imprimés
- réalisation finale des cartes d'essai sous forme de modules RaspberryPi2
- réalisation de la carte finale
Au niveau informatique
- construction du noyau linux temps réel (patché avec lnux-rt) et de quelques paquets dédiés pour une cible Arm cortex A7
- paramétrages système et réseau notamment utilisation de clients légers pour les protocoles réseaux
- définition de l'architecture logicielle multi-threadée et du langage de programmation (C)
- programmation temps réelle (multi-threads à priorités hautes avec gestion des mutex)
- génération des micro-pas : programmation temps réelle d'une modulation Pwm
- recherche d'une fonction périodique efficace des rapports cycliques de modulation Pwm
- développements de librairies annexes de gestion des protocoles séries et/ou entrées-sorties (i2c, spi, gpio, ir, ..)
- paramétrage et intégration de fichiers de configuration pour l'infrarouge
- paramétrage et intégration des catalogues (ngc/messier, étoiles principales)
- paramétrage et intégration des différents modes de suivi (rattrapages manuel, suivi direct avec rafraichissement des calculs)
- optimisation du noyau linux et de la phase de boot pour un lancement rapide du binaire (5 secondes)
- optimisation de la taille du système pour un téléchargement sur le réseau des images du bootfs et du rootfs (partitions natives de la carte sd)
- lancement à la demande des services linux (dont service réseau)