Ce projet a pour but de proposer une interface centralisant le contrôle d'un maximum d'équipements se trouvant autour d'une installation astronomique.
Philosophie
La philosophie selon laquelle se base ce projet ressemble à la philophie OpenSource. Ainsi, ce projet est ouvert à toute personne et tous les schémas sont accessibles. Afin d'assurer un fonctionnement optimal du projet et de tirer parti de ce mode de fonctionnement, nous demandons cependant le respect d'une règle : - les personnes apportant des modifications, ajouts et améliorations aux documents fournis s'engagent à les remettre à disposition de la communauté en prenant soin d'en informer les responsables de projet. Il est, par ailleurs, possible de s'intégrer directement à l'équipe projet en faisant une simple demande auprès des responsables du projet.
Présentation globale du système
Le but d'AstrARM étant de proposer un système répondant au besoin d'un maximum de combinaisons matérielles différentes (chaque installation étant composée d'éléments différents), l'idée est de présentée une interface modulaire. Une modularité totale n'étant pas forcément possible, nous définirons un certain nombre de fonctionnalités de base qui seront présentes sur une interface principale. Cette interface se présentera sous la forme suivant (susceptible d'être modifié) :
Sur cette carte mère viendra se connecter la carte IHM qui se présentera sous forme d'un pad en format "de poche". Cette IHM comprendra : - un afficheur matriciel rétroéclairé - un encodeur rotatif pour la navigation (ou des boutons +/-, à définir d'après des essais sur le terrain) - des boutons poussoirs pour une utilisation en remplacement du pad de contrôle de la monture (afin de n'avoir qu'un pad à manipuler) Voici une première ébauche de ce à quoi pourrait ressembler une IHM en version sans encodeur rotatif :
Concernant les modules, ceux-ci seront à déterminer au fur et à mesure en fonction du besoin, mais actuellement, les modules retenus sont : - contrôle d'un focuser - mise à l'heure sur signaux DCF77 + horloge temps réel/datation d'événements - mesure de la température (utile pour le focuser par exemple) - contrôle d'une roue à filtre
Le microcontrôleur : coeur du système
L'architecture d'AstrARM est, comme son nom l'indique, construite autour d'un microcontrôleur disposant d'un coeur ARM (et plus précisément un ARM7). Le choix du microcontrôleur se porte actuellement sur la famille LPC21xx de chez NXP. Ce choix vient non seulement du fait que c'est un LPC qui est livré avec la carte de développement EasyARM, mais aussi parce que la gamme LPC est relativement étendue, ainsi que parce que qu'il existe de nombreux projets disponibles sur la toile à base de micro de cette famille avec une liste Yahoo! très active à ce sujet. Le coeur du microcontrôleur, comme tout coeur ARM, est basé sur une architecture RISC 32-bits. Sa fréquence de fonctionnement interne peut atteindre les 60MHz pour un puissance d'exécution d'une instruction par cycle d'horloge (donc 60Mips maximum). Ce coeur ne disposant cependant pas d'une MMU (Memory Management Unit), nous ne pourrons donc pas y faire tourner un système exploitation. Les performances de ce microcontrôleur ouvrent toutefois de larges horizons, permettant de réaliser un certain nombre de fonctionnalités simultanément. La sélection du microcontrôleur dans la gamme se fait selon les critères suivants : - boîtier contenant le moins de pattes possible : le plus petit de la gamme LPC est en boîtier TQFP64 (pitch de 0,5mm) - SPI (pour la carte SD) : au moins une SPI, idéalement deux - I2C : deux liaisons I2C, une pour l'IHM, l'autre en spare - CAN : une ou deux liaisons CAN pour la communication avec les cartes filles - GPIO : sur les pins restantes, il doit y avoir un maximum d'entrées sorties, en cas de besoin (ne serait-ce que pour allumer des LEDs ou autres) - mémoire : le plus petit boîtier avec le maximum de mémoire