Skip to main content

Réalisation d'une burette automatique (Groupe H)

Réalisation d'une burette automatique par mesure d'intensité optique :

Dans le cadre du module "Optimisation et contrôle des procédés" , notre projet, intitulé "Réalisation d'une burette automatique" , vise à concevoir un dispositif innovant pour automatiser les opérations de titrage en laboratoire. Ce projet s'inscrit dans une démarche visant à optimiser la précision, l'efficacité et la reproductibilité des expériences chimiques.

Membres du projet 
  • AIT MBAREK Amani, TOUNSI Imene, CECCAROSSI Giuliano, ENNAZI Fadwa, GHERROUZ Mohamed Amine

  • Fadwa.Ennazi@etu.sorbonne-universite.fr ; amani.ait_mbarek@etu.sorbonne-universite.fr ; Imene.Tounsi@etu.sorbonne-universite.fr ; Giuliano_Rey.Ceccarossi@etu.sorbonne-universite.fr ; Mohamed_amine.GHERROUZ@etu.sorbonne-universite.fr 

  • Projet MU5CI803 : Optimisation et contrôle des procédés (groupe H)

  • Période du réalisation du projet : Octobre 2024 - Janvier 2025

Contexte

Dans le cadre de l'UE "Optimisation et contrôle des processus", nous avons pour objectif de réguler un système en utilisant une carte Arduino. Pour atteindre cet objectif, il est essentiel de déterminer le matériel requis, de concevoir et assembler correctement la structure, ainsi que de réaliser les branchements nécessaires. En outre, nous devons développer les différents codes permettant l’automatisation du procédé.

L’objectif principal sera d’appliquer nos connaissances en programmation (notamment avec l’environnement Arduino) tout en utilisant les équipements du fablab pour réaliser une manipulation manuelle des machines. Cela nous permettra de créer un système automatisé et optimisé, consistant en une burette capable de verser une quantité précise de liquide coloré dans un récipient, afin d’obtenir un changement de couleur conforme à la valeur souhaitée.

Objectifs

Notre sujet porte sur la réalisation d'une burette automatique. Pour effectuer la régulation, nous utiliserons un capteur de mesure d'intensité optique et notre actionnement sera un servomoteur; Le but est d'atteindre une couleur définie dans le récipient rempli d'eau.

Matériels nécessaires :
  • Carte Arduino
  • Photorésistance
  • Servomoteur
  • Planche à pain
  • Résistances
  • Transistor
  • LED verte et rouge
  • Tuyaux
  • Fils
  • Destinataires : verres
  • Robinet
  • Électrovanne 
  • Agitateur (impression 3D)
  • Plaque peuplier 6mm

Mise en situation 

Le titrage est une technique utilisée en laboratoire pour déterminer la concentration d'une solution chimique. Toutefois, les manuels de titrages présentent des limites en termes de précision et de reproductibilité, en raison des erreurs humaines et des variations dans la manipulation. C'est dans ce contexte que s'inscrit notre projet visant à concevoir une burette automatique capable de réguler avec précision l'ajout d'un réactif, jusqu'à l'obtention d'une couleur cible dans le récipient de titrage. 

Pour assurer ceci, nous avons choisi de baser notre système sur une approche innovante utilisant une carte Arduino comme unité de contrôle et d'intégrer un capteur d'intensité optique qui permet de détecter précisément le changement de couleur, tandis qu'un servomoteur qui agit en tant qu'actionnement pour ouvrir et fermer une électrovanne, régulant ainsi l'écoulement du réactif. Ensuite le dispositif sera complété par un ensemble d'éléments mécaniques et électroniques à savoir : une breadboard pour les connexions, des tuyaux pour le transfert des liquides, et un agitateur imprimé en 3D pour homogénéiser la solution. 

Ce système vise à offrir une solution automatisée, économique et efficace, adaptée aux besoins des laboratoires pédagogiques ou de recherche.

Journal de bord
Lundi 14/10/2024 : 

Suite à notre première réunion, nous avons examiné deux approches distinctes. La première consiste à détecter le point d'équivalence par un changement de couleur chimique, en utilisant un dosage colorimétrique (oxydoréduction ou acide-base). L'avantage principal de cette méthode réside dans sa simplicité et sa rapidité d'exécution. La seconde approche, quant à elle, repose sur une détection physique de la couleur. Elle implique l'ajout progressif d'une solution colorée dans un récipient initialement rempli d'eau pure. L'ajout se poursuit jusqu'à l'obtention de la concentration finale souhaitée, ce qui se
traduit par une variation de l'intensité lumineuse. Ce paramètre sera mesuré avec précision à l’aide d’un capteur spécifique.
Après une discussion approfondie et une analyse comparative des deux méthodes, nous avons décidé d'opter pour la seconde approche qui est plus conforme aux instructions imposées dans le sujet. L'image suivante montre le schéma de discussion et brainstorming : 

image.png

Ensuite nous avons fait un schéma qui résume l'idée que nous avons choisie :

image.png

Lundi 04/11/2024 :

Aujourd'hui, nous avons discuté des approches pratiques pour la réalisation du projet en examinant les matériels disponibles et nécessaires. Nous avons également pris en compte les dimensions spécifiques de chaque élément, comme le volume du récipient destiné au mélange ou le débit du système de pompage à intégrer.

Par ailleurs, nous avons abordé les expériences de dilution à réaliser afin de déterminer des valeurs fixes (consignes), notamment le volume de solution colorée à ajouter, ainsi que les concentrations initiale (C₀) et finale (Cf).

image.pngl33image.png

Lundi 18/11/2024 : 

1) Conception expérimentale pour trouver la concentration de la solution colorée : Cm 

Pour cela, nous aurons besoin d'une balance analytique et de plusieurs récipients. L'objectif est de déterminer une concentration optimale de colorant qui permette d'obtenir une solution colorée, ni trop foncée ni trop claire. Nous réalisons plusieurs dilutions en maintenant un volume fixe d'eau, en variante uniquement la masse de colorant ajouté. La balance analytique sera utilisée pour mesurer avec précision les masses d'eau et de colorant.

En connaissant la masse d'eau et de colorant ajouté, nous pourrons calculer la concentration de chaque dilution préparée, exprimée en pourcentage massique (%wt). Ensuite, à l'œil nu, nous déterminerons quelle dilution sera la plus adaptée pour notre travail.

Le plan expérimental sera montré à suite : 

2) Conception expérimentale pour trouver le volume de solution colorée à ajouter (V)

Pour ce faire, il sera nécessaire de définir au préalable la concentration finale souhaitée. Ensuite, en connaissant la concentration de la solution colorée initiale, nous pourrons calculer le volume à ajouter pour atteindre la concentration finale visée à l'aide de la règle de dilution : 

Vsc*Csc = Veau * Cf

Vsc = Veau*Cf / Vsc

avec :

  • Vsc = volume solution colorée à ajouter
  • Csc = cconcentration solution colorée à ajouter (calculée précedemment)
  • Veau = volume d'eau initial dans le récipient
  • Cf = concentration finale souhaitée dans le récipient 

3) Conception expérimentale pour l'étalonnage de la pompe : 

Lundi 18/11/2024 :

Conception expérimentale pour déterminer la concentration de la solution colorée (Cm)
Nous avons utilisé une balance analytique et plusieurs récipients pour préparer différentes dilutions de colorant dans un volume fixe d'eau. En ajustant les masses de colorant, nous avons calculé les concentrations (% massique) pour chaque dilution. Ensuite, à l'œil nu, nous avons sélectionné la dilution offrant une teinte optimale.

Conception expérimentale pour déterminer le volume de solution colorée à ajouter (V)
En connaissant la concentration initiale de la solution colorée (Csc) et le volume d'eau dans le récipient (Veau), nous avons calculé le volume de solution colorée à ajouter pour obtenir la concentration finale souhaitée (Cf) à l'aide de la formule :

Vsc*Csc = Veau * Cf

Vsc = Veau*Cf / Vsc

avec :

  • Vsc = volume solution colorée à ajouter
  • Csc = cconcentration solution colorée à ajouter (calculée précedemment)
  • Veau = volume d'eau initial dans le récipient
  • Cf = concentration finale souhaitée dans le récipient 

Conception expérimentale pour l'étalonnage de la pompe
L'étalonnage visait à mesurer et ajuster les performances de la pompe pour garantir son bon fonctionnement dans le système.

Mercredi 04/12/2024 :

Dans le cadre de notre projet, nous avons réalisé plusieurs manipulations afin de déterminer la concentration optimale à utiliser par la suite. Voici les étapes suivies :

Préparation des solutions de colorant

Nous avons préparé deux solutions :

    • La première en dissolvant 10 gouttes de colorant dans 100 ml d'eau .
    • La deuxième en dissolvant 18 gouttes de colorant dans 100 ml d'eau .

Mesures et tests de coloration

Pour chacune des solutions préparées, nous avons procédé de la manière suivante :

À l'aide d'une burette graduée, nous avons versé la solution goutte à goutte dans un bécher contenant 100 ml d'eau .

Nous avons surveillé la coloration obtenue jusqu'à atteindre la teinte désirée.

Nous avons noté le volume de solution versé pour chaque essai.

Choix de la solution optimale

Après avoir comparé les résultats pour les deux solutions, nous avons décidé d'utiliser la première solution (10 gouttes dans 100 ml d'eau) . Cette option permet d'atteindre la coloration souhaitée avec un volume de solution plus important, offrant ainsi une meilleure précision et une marge de manœuvre dans les ajustements.

Préparation de la solution diluée

À partir de la solution mère (10 gouttes dans 100 ml d'eau), nous avons prélevé 20 ml que nous avons ajoutés à 100 ml d'eau pour préparer une solution fille diluée.

Mesure de l'intensité lumineuse

Nous avons ensuite inséré un code dans le logiciel Arduino pour mesurer la valeur de l'intensité lumineuse de la couleur rouge dans chacune des solutions. Ces mesures permettent d'affiner notre choix et d'intégrer ces paramètres dans notre système automatisé.

Ci-dessous le code utilisé : 

// Définition des broches du capteur TCS3200
const int S0 = 2;
const entier S1 = 3 ;
const entier S2 = 4 ;
const entier S3 = 5 ;
const int capteurOut = 6 ;

void setup() {
  // Configurer les broches de sortie
  pinMode(S0, OUTPUT);
  pinMode (S1, SORTIE);
  pinMode (S2, SORTIE);
  pinMode (S3, SORTIE);
  pinMode(sensorOut, INPUT);

  // Régler la mise à l'échelle à 20% (S0 HIGH, S1 LOW)
  digitalWrite(S0, HIGH);
  écriture numérique (S1, FAIBLE);

  Série.begin(9600);
}

void loop() {
  int redFrequency, greenFrequency, blueFrequency;

  // Lecture de la composante Rouge
  digitalWrite(S2, LOW);
  écriture numérique (S3, FAIBLE);
  redFrequency = pulseIn(sensorOut, LOW);

  // Lecture de la composante Verte
  digitalWrite(S2, HIGH);
  écriture numérique (S3, ÉLEVÉ);
  greenFrequency = pulseIn (sensorOut, LOW);

  // Lecture de la composante Bleue
  digitalWrite(S2, LOW);
  écriture numérique (S3, ÉLEVÉ);
  blueFrequency = pulseIn(sensorOut, LOW);

  // Affichage des valeurs dans le moniteur série
  Serial.print("Rouge: ");
  Serial.print (rougeFréquence);
  Serial.print("Vert:");
  Serial.print (fréquence verte);
  Serial.print("Bleu: ");
  Serial.println(blueFrequency);

  retard (500); // Attente avant la prochaine conférence
}

image.png

image.pngimage.png

Mercredi 18/12/2024 :

Nous avons préparé le support destiné à la présentation de notre projet en plusieurs étapes suivantes. Tout d'abord, nous avons démonté l'ancien support en dévissant ses différentes parties afin de récupérer les plaques et les éléments réutilisables. Ensuite, nous avons pris avec précision les dimensions des anciennes plaques pour nous assurer que les nouvelles soient parfaitement adaptées aux besoins du projet. Une fois ces mesures relevées, nous avons découpé les nouvelles plaques à l'aide d'une scie, en veillant à obtenir des découpes nettes et précises. Enfin, nous avons assemblé le nouveau support en fixant solidement les plaques découpées, tout en vérifiant la stabilité et la solidité de l'ensemble. Ce support est maintenant prêt à accueillir notre projet pour une présentation optimale.

y6k8dbiy.png

Lundi 30/12/2024

Nous avons effectué les différents branchements entre la carte Arduino, la breadboard, la pompe et le capteur de couleur. Cela nous a permis de préparer l'intégration de ces composants pour les prochaines étapes de notre projet.

Mercredi 15/01/2025

Nous avons lu le manuel d'utilisation de la découpeuse laser sur le Wiki du Fablab pour bien comprendre son fonctionnement et ses consignes de sécurité.

Ensuite, nous avons utilisé la découpeuse laser pour fabriquer un support destiné à couvrir le verre. Ce support comprend des trous conçus spécifiquement pour permettre le passage des tuyaux, du capteur de couleur et de l'agitateur.

En parallèle, nous avons travaillé sur le code en intégrant la partie nécessaire au bon fonctionnement du capteur de couleur. Cela inclut l'interfaçage avec la carte Arduino et les tests initiaux pour valider les valeurs captées.

Jeudi 16/01/2025

Nous avons découpé différents socles qui serviront de supports pour les récipients. Ces supports ont été ajustés pour assurer la stabilité et l'ergonomie de l'ensemble du dispositif.

Nous avons également consulté le manuel d'utilisation de l'imprimante 3D Raise3D afin de l'utiliser pour imprimer notre agitateur. Après avoir exporté le modèle de l'agitateur depuis notre logiciel de conception, nous l'avons redimensionné selon les besoins du projet. Finalement, nous avons imprimé l'agitateur avec les dimensions adéquates. Celui-ci sera fixé au moteur pour assurer un bon mélange.

Vendredi 17/01/2025

Nous avons effectué plusieurs découpages supplémentaires sur la plaque principale et commencé à fixer les socles des différents composants à l'aide de vis, afin d'assurer une fixation solide. Avant cela, nous avons réalisé un dimensionnement préliminaire sur un brouillon, permettant de déterminer les positions les plus optimales des composants sur la plaque en bois. Cette approche visait à garantir que le positionnement spatial de chaque élément ne nuise pas au bon fonctionnement des autres. Vous trouverez ci-joint la feuille de brouillon utilisée pour le montage structurel.

WhatsApp Image 2025-01-31 at 14.56.56.jpeg

De manière similaire, nous avons procédé pour les composants électroniques situés à l’arrière de la plaque de bois. Pour leur fixation, nous avons choisi des vis de taille appropriée et utilisé une perceuse, disponible dans l'atelier de menuiserie, afin de réaliser les perforations aux emplacements préalablement sélectionnés.

WhatsApp Image 2025-01-31 at 15.14.21.jpegWhatsApp Image 2025-01-31 at 15.14.22.jpeg

Ensuite, nous avons testé individuellement chaque appareil (pompe, capteur de couleur, agitateur, etc.) pour nous assurer de leur bon fonctionnement. Pendant ces tests, nous avons constaté que la résistance utilisée n'était pas adaptée, ce qui a nécessité de la remplacer par une autre correspondante aux spécifications requises.

Par ailleurs, nous avons également dû changer le transistor, car nous avions initialement sélectionné une référence incorrecte. Après avoir installé le bon transistor, les tests ont été repris avec succès.

Lundi 20/01/2025 :

Nous avons finalisé les derniers éléments du montage et avancé sur le branchement des différents composants entre eux. Cette étape nous a permis de tester l'intégration complète du système et de nous assurer que le code fonctionne correctement en interaction avec les composants.

Voici le code après les ajustements réalisés :

#include <Wire.h>
 #include <LiquidCrystal_I2C.h>
 # définir 5
 #définir S2 4
 #définir S3 3
 int R,V,B; temps longs non signés ; int pompe = 8 ;
 int agitateur = 6 ;
 LiquidCrystal_I2C écran LCD ( 0x 27 , 16 , 2 ) ;

 configuration vide() {
 pinMode ( sortie, ENTRÉE ) ;
 pinMode ( S2, SORTIE ) ;
 pinMode ( S3, SORTIE ) ;

 pinMode ( pompe,SORTIE ) ;
 pinMode ( agitateur,OUTPUT ) ;
 écran LCD. initialiser () ; // Initialiser l'écran LCD
 LCD . rétroéclairage () ;
 écran LCD.setCursor ( 0 , 0 ) ;
 écran LCD. print ( "Ca,commence !" ) ;
 retard (2000);
 digitalWrite ( agitateur, 1 ) ;
 digitalWrite ( pompe, 1 ) ;
 }

 boucle vide() {
 écriture numérique ( S2, 0 ) ;
 écriture numérique ( S3, 0 ) ;
 R = pulseIn ( sortie, 0 ) ;
 retarder ( 10 ) ;
 int temps = millis () ;

 si ( R< 220 ) {
 digitalWrite ( pompe, 0 ) ;
 débit flottant = ( 27,77 *temps ) / 1000 ;
 lcd .clear () ; // Efface l'affichage
 de l'écran LCD.setCursor ( 0 , 0 ) ;
 écran LCD . print (" Le débit est : " ) ;
 écran LCD.setCursor ( 0 , 1 ) ;
 écran LCD . imprimer ( flux ) ;
 écran LCD.imprimer ( "ml" ) ;
 }

 }

Mercredi 22/01/2025 :

En testant le bon fonctionnement de l'ensemble du montage, nous avons constaté que l'afficheur LCD n'affiche pas les résultats comme prévu. Pour identifier la cause du problème, nous avons décidé d'effectuer un test isolé. Nous avons utilisé un code simple pour afficher un message basique sur le LCD sans qu'il soit lié au reste du montage. Cette méthode nous permet de vérifier si le problème provient du module LCD lui-même ou d'une autre partie du système.

Lundi 27/01/2025 :

Nous avons réalisé des essais sur la solution en utilisant notre capteur afin de vérifier son bon fonctionnement. Parallèlement, nous avons préparé les éléments décoratifs de notre montage à l’aide de la découpeuse laser, ce qui a permis d’améliorer l’esthétique de notre dispositif.

Jeudi 30/01/2025 :

Nous avons apporté quelques modifications au code afin d’optimiser ses performances et d’assurer son bon fonctionnement. Voici la version finale du code :

#include <Wire.h>
#include "rgb_lcd.h"
#define out 5
#define S2 4
#define S3 3
int R,G,B;unsigned long temps;int pomp = 8;
int agitateur = 6;
rgb_lcd lcd;

void setup() {
pinMode(out,INPUT);
pinMode(S2,OUTPUT);
pinMode(S3,OUTPUT);
pinMode(pomp,OUTPUT);
pinMode(agitateur,OUTPUT);
lcd.begin(16,2);        // Initialize the LCD
lcd.setRGB(255,255,0);
  lcd.setCursor(0, 0);
  lcd.print("Ca,commance !");  
  delay(2000);
  digitalWrite(agitateur,1);
  digitalWrite(pomp,1);
}

void loop() {
  digitalWrite(S2,0);
   digitalWrite(S3,0);
R = pulseIn(out,0);
delay(10);
int temps = millis();

if(R<220) {
digitalWrite(pomp,0);
float flow = (27.77*temps)/1000;
lcd.clear(); // Clear the display
  lcd.setCursor(0, 0);
  lcd.print("Le Volume est : ");
  lcd.setCursor(0, 1);
  lcd.print(flow);
  lcd.print("ml");
 
}
 

}

Nous avons ensuite effectué un test du montage complet, qui s’est révélé concluant.

Vendredi 31/01/2025 :

Nous avons réalisé les dernières retouches, notamment en fixant les pièces finales pour finaliser l’assemblage. Nous avons également préparé notre solution et effectué plusieurs essais pour nous assurer de la fiabilité de l’ensemble avant la présentation finale de notre projet.

WhatsApp Image 2025-02-03 at 15.36.06.jpeg