PyModaq

De Wiki_du_Réseau_des_Electroniciens_du_CNRS
Aller à la navigationAller à la recherche


PyMoDaq : un système d'acquisition modulaire et « libre » utilisant Python

PyMoDAQ par Sebastien WEBER

Tout expérimentateur confronté à "l'automatisation de l'acquisition de données" connaît la problématique de développer un software répondant à ses besoins et nécessitant une connaissance plus ou moins approfondie d'un ou des langages informatiques.

Ces besoins se résument souvent en une même forme qui est :

une acquisition consistant à enregistrer des données de divers instruments en fonction de divers paramètres contrôlables.

Pour la suite nous nommerons : - « SCAN » ce type d'acquisition, - « ACTUATEURS » les paramètres contrôlables (cela peut être un déplacement mais aussi une température, une tension...) - et enfin « DETECTEURS » les instruments de mesure.

Il est divisé en trois modules principaux:

   DAQ Scan: C'est le module qui initialisera tous les actionneurs et détecteurs préréglés. Puis va automatiser l'acquisition de données.
   DAQ Move: utilisé pour contrôler / piloter un actionneur (autonome et / ou automatisé). N'importe quel nombre de ces modules peut être instancié.
   DAQ Viewer: utilisé pour contrôler / piloter un détecteur (autonome et / ou automatisé). N'importe quel nombre de ces modules peut être instancié.

La grande majorité des laboratoires utilisent des logiciels commerciaux qui, bien que très performant et simples de prise en main, ont certaines limites qui rendent leur utilisation sur le court et long terme problématiques (coût de licence, portabilité limitée, gestion des versions ...) et peu versatile.

PyMoDaq est un logiciel écrit sous python, libre de droit et ouvert au développement collaboratif qui présente une interface unique pour tout type d'acquisition.

Le choix de Python a été fait car celui-ci est relativement simple d'utilisation et offre une grande communauté d'utilisateurs ainsi qu'une immense bibliothèque de programmes de contrôle d’instruments et d'analyse de données.

Ses modules peuvent être utilisés indépendamment ou intégrés à un programme tiers tel que l'interface DAQ_Scan qui permet de définir des scans automatisés, de synchroniser l'acquisition des données et enfin de les sauvegarder dans un fichier binaire hiérarchique de type HDF5 facile d'accès et compressible.

Ses possibilités d'utilisation et la facilité de pouvoir ajouter de nouveaux instruments (actuateurs ou détecteurs) sous forme de plugins écrit dans un template python en font un atout pour tout utilisateur qui souhaite s'y investir. https://redmine.electroniciens.cnrs.fr/projects/pymodaq


GitHub repo: https://github.com/CEMES-CNRS

Documentation: http://pymodaq.cnrs.fr/

Basé sur la librairie pyqtgraph : http://www.pyqtgraph.org par Luke Campagnola.

PyMoDAQ est développé par Sébastien Weber: sebastien.weber@cemes.fr sous licence MIT.