(Pierre Dieumegard) Informatisation de la burette automatique Schott T80 Principe : la burette automatique Schott T80 peut délivrer 50 0V millilitres (pour le modèle T80/50) boutonpar pas de 0,01 mL (soit 100µL) poussoir grâce à un bouton poussoir. Ce 5V bouton poussoir est connecté à Illustration 1: Dispositif de commande de la burette : un bouton l'appareil par une prise DIN à 3 poussoir faisant contact entre deux broches d'une prise DIN broches. En remplaçant le contact de ce bouton poussoir par l'équivalent relié à un ordinateur ou à un microcontrôleur (ici Arduino1), on peut commander informatiquement le débit de cette burette automatique. Un appui bref sur le bouton poussoir permet d'éjecter du liquide, par unités de 10 microlitres. Remplacement du bouton-poussoir par un dispositif électronique (diode lumineuse + photorésistance, ou optocoupleur) Dans la pratique, le « contact » du bouton poussoir peut être remplacé par une résistance de quelques centaines d'ohms, laissant passer assez de courant pour que l'appareil considère que le contact est établi. Une photorésistance a une résistance quasiment infinie à l'obscurité (<=> pas de contact), et une résistance faible à la lumière (<=> contact). Les diodes lumineuses (LED) peuvent l'éclairer suffisamment pour aboutir à cette résistance faible. dispositif électronique ou informatique diode lumineuse fils connectés à la photorésistance et au câble de commande fils de commande de la diode lumineuse (tension commandée par Arduino) photorésistance diode lumineuse (LED) câble de commande de la burette Arduino (Câble USB de liaison à l'ordinateur) photorésistance Illustration 3: Réalisation pratique de commande par Arduino, diode lumineuse et photorésistance Burette Schott T80 De nombreux dispositifs électroniques peuvent commander l'allumage de Illustration 2: remplacement diodes lumineuses : les interfaces d'EXAO classiques (Jeulin ESAO3, du bouton-poussoir par une ESAO4, Orphy GTS, Portable, GTI, Orphylab, ExpEyes, MicroHope, et photorésistance commandée Arduino dont il sera question ici. par une diode lumineuse Une impulsion doit être environ 50 millisecondes de « contact », c'est-àdire d'allumage de la diode lumineuse, suivie d'environ 100 millisecondes d'ouverture, c'est-à-dire d'extinction de la diode lumineuse. Les « optocoupleurs » font la même action que ce couple diode lumineuse/photorésistance. 1 L'essai a été fait avec Arduino, mais le même système doit être utilisable par toutes les interfaces qui peuvent commander l'allumage d'une diode lumineuse : ExpEyes, MicroHope, Jeulin ESAO4, etc. Arduino en tant que dispositif de commande autonome Arduino est une carte électronique que l'on peut relier à une prise USB d'ordinateur de façon à y implanter un programme. Lorsque le programme (rédigé initialement dans un langage proche de C sur l'ordinateur) est implanté dans Arduino, on peut déconnecter celui-ci de l'ordinateur, et l'alimenter simplement par une pile, un accumulateur ou un transformateur (5 à 10 volts). Arduino a notamment des entrées/sorties binaires (notées « DIGITAL »), qui peuvent passer de 0 à 5 volts. On peut donc faire un programme réglant l'éjection de 10 microlitres toutes les minutes, par exemple : cela fait 0,6mL par heure, il faudra donc environ 4 jours pour vider la totalité des 50mL de la burette. En reliant une entrée analogique d'Arduino à la sortie analogique d'un pHmètre, on peut aussi réguler le pH d'un milieu de culture de micro-organismes, en injectant un petit volume de solution basique lorsque le pH diminue par suite de fermentation lactique. Arduino en tant que périphérique d'ordinateur (système Mensurasoft) Sur les ordinateurs de type PC, de nombreux langages de programmation existent, qui peuvent appeler les pilotes d'appareils de mesure de type Mensurasoft : si le programme convenable est implanté dans Arduino, le pilote correspondant permet de faire des programmes dans beaucoup de langages, en particulier Python, Basic, Pascal, C/C++. Les logiciels généraliste de type MGW32 ou Mensurasoft-LZ peuvent commander l'éjection de liquide par la burette, mais ils ne sont pas conçus dans ce but, et le mieux est de faire des programmes spécifiques. # coding: utf-8 import pymensura2#module pour utiliser facilement les pilotes Mensurasoft import time #pour gérer le temps, par sleep(nombre_de_secondes) import sys # pour utiliser flush(), pour que print soit efficace sans attente mamachine=pymensura2.mensura("lib_arduino9600_delphi_multiport2.dll") #la ligne précédente charge le pilote pour Arduino print(mamachine.titre()) #affiche le titre de l'appareil, ici "Arduino" def envoie_n_uL(n): #fonction qui envoie n microlitres nb_impulsions=n//10 #chaque impulsion envoie 10 microlitres : diviser le volume en µL par 10 for i in range(nb_impulsions): mamachine.sb(0,1) #sortie binaire 0 à l'état haut : allumage time.sleep(0.05) #attente de 50 millisecondes mamachine.sb(0,0) #sortie binaire 0 à l'état bas : extinction time.sleep(0.25) #attente de 250 millisecondes print('Début du programme') for i in range(5): print(mamachine.ead(0));sys.stdout.flush()#facultatif (affiche l'entrée analogique 0) envoie_n_uL(100) #envoie 100 microlitres time.sleep(2) # attend deux secondes print('fin du programme') Illustration 4: Programme en Python (EduPython 1.3) commandant la burette Schott T80 (envoi de 5 fois 100 microlitres) Des programmes de quelques lignes de Python (par exemple) permettent de régler finement le débit éjecté. En quelques lignes aussi, si on a un appareil de mesure connecté à l'ordinateur, on peut aussi faire des dosages automatisés : injecter n1 microlitres de solution de soude toutes les n2 secondes, jusqu'à ce que le pH soit neutre.