bas de page

 
Des pilotes d'appareils de mesure, pour l'enseignement
et la recherche scientifiques

Pierre Dieumegard
 

   Les tables des laboratoires scientifiques sont très encombrées. En plus des ordinateurs, comme partout, il y a aussi des appareils de mesure électroniques : spectrophotomètres, pHmètres, balances de précision, interfaces multifonctions... Il existe aussi des appareils (que l'on peut appeler « actionneurs ») capables d'agir sur le monde extérieur : appareils chauffants, vannes à commande électrique, agitateurs, etc.

   Ces appareils scientifiques sont souvent connectables aux ordinateurs, autrefois par les connecteurs sériels RS232, aujourd'hui par port USB. Ces appareils qui peuvent échanger des données avec l'ordinateur sont nommés des « périphériques ».

   Dans la pratique, ils sont peu connectés aux ordinateurs, et lorsqu'ils le sont, ils fonctionnent indépendamment les uns des autres, parce qu'il n'existe pas de logiciels capables de faire des enregistrements simultanément à partir de plusieurs appareils.

   Cet article essaie de montrer que de tels logiciels sont souhaitables, à la fois pour les laboratoires de recherche et pour les travaux pratiques dans les établissements d'enseignement, et qu'il est techniquement possible de faire assez facilement des logiciels pouvant fonctionner avec divers appareils de mesure et actionneurs. Un bénéfice supplémentaire serait que l'enseignement de l'informatique pourrait être appliqué aux interactions entre les ordinateurs et le monde extérieur. L'auteur de cet article est enseignant de SVT, c'est pourquoi les exemples choisis traiteront souvent de la biologie.

1. Des logiciels polyvalents seraient utiles aussi bien pour la recherche scientifique que pour les salles de travaux pratiques des lycées et collèges

   Clarifions d'abord le vocabulaire. Ici, « recherche scientifique » ne signifie pas la « grosse science », avec des budgets en millions d'euros et des appareils uniques conçus spécialement pour leur objectif. C'est plutôt la pratique quotidienne des laboratoires, où il faut surveiller les conditions d'une expérience, et où on essaie de mesurer simultanément plusieurs paramètres à l'aide de plusieurs appareils différents.

   « Logiciels polyvalents » signifie qu'un même logiciel serait capable d'enregistrer les données en provenance de plusieurs sources. Par exemple, dans une étude de biologie, on peut souhaiter mesurer simultanément le pH d'un milieu de culture avec une bonne précision, donc un pHmètre de haute qualité, et l'absorbance optique du milieu qui donne la concentration en micro-organismes, tout en vérifiant que la température est constante.

   Il arrive fréquemment que les appareils de mesure connectables à un ordinateur soient livrés sans logiciel (pHmètres, conductimètres, spectrophotomètres, balances...), mais avec une documentation technique indiquant les réglages de la communication : c'est à l'utilisateur de réaliser le programme. Dans d'autres cas, il y a un logiciel, mais qui ne fonctionne qu'avec l'appareil en question (multimètres, spectrophotomètres), et uniquement pour un seul système d'exploitation. Pour enregistrer simultanément les valeurs mesurées par plusieurs appareils, il faut lancer simultanément plusieurs logiciels, enregistrer les données dans plusieurs fichiers, et ensuite se débrouiller manuellement réunir dans un seul tableau les différentes données issues de ces fichiers. Ces complications découragent rapidement le thésard. Ce serait mieux s'il existait des logiciels pouvant travailler simultanément avec différents périphériques scientifiques.

   Dans les salles de travaux pratiques des lycées français, on utilise fréquemment l'EXAO, c'est à dire l'EXpérimentation Assistée par Ordinateur. Dans une même salle, on trouve une dizaine d'ordinateurs équipés d'une interface multifonctions, provenant de quelques fournisseurs (Jeulin, Micrelec-Orphy, Sordalab-Pasco). Les logiciels utilisés sont les logiciels spécifiques de l'interface, et correspondant souvent à un TP particulier (respiration des levures, photosynthèse des Élodées...).

   Cette situation pose divers problèmes. Il est impossible ou très difficile de faire évoluer ou de diversifier le matériel de la salle. On ne peut pas mettre une ou quelques interfaces Micrelec-Orphy dans une salle équipée en Sordalab-Pasco, car les capteurs sont différents, les logiciels sont différents, et le professeur serait obligé de donner des explications du type « Pour les ordinateurs le long de la fenêtre, lancez tel logiciel, puis cliquez sur telle option du menu ; par contre, pour ceux qui sont le long du couloir, il faut procéder différemment... ». Ce serait tellement mieux si un même logiciel pouvait fonctionner avec toutes ces interfaces d'EXAO, puisque l'expérience est la même : enregistrer la quantité de dioxygène consommée par respiration pendant une demi-heure.

   Pourtant, que ce soit pour la recherche pouvant conduire au prix Nobel ou pour les travaux pratiques de lycée, les interfaces, appareils de mesure et actionneurs ont des fonctions que l'on peut regrouper simplement en quatre groupes :

  1. les entrées analogiques, qui transmettent une information numérique à l'ordinateur : température, pH, masse, tension en volts, résistance en ohms...
  2. les entrées logiques, qui n'ont que deux états possibles (vrai/faux, 0/1...).
  3. les sorties analogiques, qui donnent l'ordre à l'appareil de faire varier quelque chose : tension en volts, position d'un moteur, longueur d'onde d'un spectrophotomètre...
  4. les sorties logiques, qui donnent l'ordre de passer d'un état à un autre : ouverture/fermeture d'un tiroir, allumage/extinction d'une lampe ou d'une diode lumineuse...

2. La solution pratique est l'emploi de pilotes d'appareils scientifiques

   Il n'y a pas que le matériel scientifique qui soit concerné par les interactions logiciel/matériel. Les logiciels de bureautique n'ont de sens que si une imprimante peut imprimer le texte rédigé avec le traitement de texte. Imagine-t-on une imprimante qui ne fonctionnerait qu'avec un seul logiciel de traitement de texte ? C'était pourtant le cas il y a une trentaine d'années, lors des débuts des « ordinateurs personnels », où les fabricants d'ordinateurs vendaient en même temps l'imprimante et le logiciel de traitement de texte, qui ne fonctionnaient qu'avec leur ordinateur. Actuellement, ce n'est plus le cas, et les logiciels peuvent imprimer sur n'importe quelle imprimante, actuelle ou future, grâce à un système de pilotes d'imprimantes. Lorsque l'on achète une nouvelle imprimante, il faut « installer le pilote » pour l'ordinateur et le système d'exploitation utilisés à partir du cédérom fourni ou par téléchargement sur Internet, et les logiciels préexistants deviennent immédiatement capables d'imprimer leurs textes et leurs graphiques sur cette nouvelle imprimante.

   Un tel système peut être valable aussi pour le matériel scientifique. Lorsqu'on recevrait un nouveau spectrophotomètre, il suffirait d'installer le pilote en question pour qu'il soit automatiquement utilisable par des logiciels scientifiques variés. On pourrait bien sûr utiliser un programme qui enregistre l'absorbance au cours du temps pour une réaction de cinétique chimique, mais aussi utiliser un logiciel d'étalonnage pour tracer automatiquement la courbe d'étalonnage et calculer l'équation de cette courbe, et un logiciel de traçage de spectre, qui commencerait pas demander de mettre une cuve avec le « blanc », puis demanderait de mettre la cuve avec la solution à étudier.

   Au collège et au lycée, un même logiciel pourrait fonctionner avec diverses interfaces, et le professeur donnerait les mêmes explications pour tous les élèves. Si une interface de marque A tombe en panne, on pourrait la remplacer par une interface de marque B sans trop de perturbations. L'important serait que le logiciel qui lisait auparavant une entrée analogique de l'interface A lise alors l'entrée analogique correspondante de l'interface B.


Principe du système Mensurasoft.

   Un tel système existe déjà, et ne demande qu'à être développé, c'est le système Mensurasoft.

   Le système Mensurasoft est fondamentalement du type « logiciel libre », même s'il est possible de faire des pilotes ou des logiciels d'application de type « non libre ». On peut trouver des exemples de pilotes pour plusieurs dizaines d'appareils sur le site sciencexp.free.fr.

   Fondamentalement, les pilotes d'appareils de mesure sont des fichiers de type « bibliothèque dynamique ». Ces bibliothèques dynamiques sont connues dans le monde Windows avec l'extension .dll et dans le monde Linux avec l'extension .so (et dans le monde Macintosh avec l'extension .dylib).

   Pour les utilisateurs de base, il suffit de copier les pilotes en question dans le répertoire du logiciel d'application (ou dans un sous-répertoire de leur choix), et le logiciel d'application pourra aller chercher les informations de ce pilote de façon à utiliser commodément l'appareil.

   Pour les programmeurs qui veulent réaliser des pilotes pour un nouvel appareil, la programmation de ces pilotes est possible avec tous les langages compilés (C/C++, Pascal, Basic...).

   Pour les programmeurs qui veulent réaliser des programmes d'application utilisant ces pilotes, de très nombreux langages de programmation peuvent appeler les bibliothèques dynamiques. On peut utiliser les mêmes langages compilés que précédemment, mais aussi beaucoup de langages interprétés plus spécialisés : divers dialectes de Basic (Gambas pour Linux, FNXBasic, Panoramic, OpenBasic, ThinBasic pour Windows), Logo, Python, Freemat, Scilab, et certainement beaucoup d'autres.

   Sur le site sciencexp.free.fr existent quelques logiciels d'application, principalement des logiciels libres, pour Windows et pour Linux : MGW32, Visu32, Mensurasoft-PB et Mensurasoft-LZ, ainsi que de petits programmes de démonstration dans différents langages.

3. Ces pilotes peuvent aussi rendre l'enseignement d'informatique plus ouvert sur le monde réel

   L'enseignement de l'informatique peut être fait avec divers langages de programmation : dans tous les cas, il faut enseigner les divers types de variables (entiers, réels, caractères et chaînes de caractères...), les instructions conditionnelles, les boucles, les fonctions...

   Très souvent, les instructions exécutables portent uniquement sur des variables « théoriques », c'est-à-dire des nombres ou des chaînes de caractères créés uniquement pour l'exercice.

   Autrefois, il y a une quarantaine d'années, le langage LOGO avait été conçu pour permettre l'apprentissage de la programmation, et une de ses caractéristiques était la « tortue », que l'on pouvait faire déplacer à l'écran avec des instructions exécutables. Une implémentation en avait été le « Lego-Logo » qui permettait de faire déplacer de vrais robots Lego, par exemple sur une table ou sur le sol de la pièce.

   La vieille idée de la tortue de Logo n'a pas disparu. Dans le même esprit que Logo, le langage moderne Scratch (info.scratch.mit.edu) propose pour une quarantaine de dollars le « ScratchBoard » ou « PicoBoard », qui est une petite interface permettant quelques mesures.

   C'est une bonne idée, et on peut la généraliser, d'une part à davantage de langages de programmation, d'autre part à davantage de matériel.

   Le système de pilotes Mensurasoft décrit précédemment ne se limite pas aux appareils scientifiques : on peut l'utiliser aussi pour tous types d'appareils agissant sur le milieu extérieur ou donnant des informations sur le milieu extérieur. On peut l'employer pour allumer des diodes lumineuses, faire tourner des servo-moteurs, et donc aussi animer un robot.

   On peut utiliser diverses cartes électroniques pour faire des montages variés, par exemple Arduino ou ExpEyes (et PicoBoard dès qu'un pilote aura été fait). Il n'y a pas de frontières entre l'utilisation de ces petites cartes électroniques et l'utilisation d'appareils plus compliqués : la programmation est identique.

   On peut aussi utiliser des langages plus classiques que Scratch, et qui permettent de manipuler facilement les chaînes de caractères, les tableaux de nombres ou les fichiers. Les divers langages Basic, Pascal, C/C++, Python, etc. permettent en quelques lignes de programmation de faire des mesures ou de commander des actions. Ces programmes peuvent être identiques pour tous les périphériques, puisque les commandes à envoyer aux pilotes sont identiques.

   Le système Mensurasoft peut donc permettre un apprentissage de l'algorithmique et de la programmation plus excitant que des exercices portant uniquement sur des variables numériques ou des chaînes de caractères.

Conclusion

   Ne vous privez pas des avantages des pilotes d'appareils de mesure. N'hésitez pas à contacter l'auteur à ce sujet.

Pierre Dieumegard
professeur de SVT
Lycée Pothier
45044 Orléans
pierre.dieumegard@ac-orleans-tours.fr

Ce texte est à rapprocher d'un article plus ancien, publié en 1995 dans la Revue de l'EPI n° 80 (papier), « Pilotes d'interfaces de mesure, pour les logiciels d'expérimentation », où Pierre Dieumegard défendait déjà l'idée de séparer la programmation des logiciels d'application et la programmation des pilotes d'appareils.
http://www.epi.asso.fr/fic_pdf/b80p213.pdf

Sites internet

http://sciencexp.free.fr : le site de l'auteur, avec des logiciels fonctionnant sur le système Mensurasoft, des pilotes pour plusieurs dizaines d'appareils, des exemples de pilotes et de programmes d'application dans plusieurs langages informatiques

https://github.com/pierredieumegard/mensurasoft : des programmes-sources utilisant le système Mensurasoft.
On y trouve également la totalité de la version la plus récente du dépôt sous forme compactée :
https://github.com/pierredieumegard/mensurasoft/archive/master.zip

haut de page
Association EPI
Décembre 2012

Accueil Articles