burette automatique Schott T80

publicité
(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.
Téléchargement