DistributeurBoisson

De troyesGEII
Aller à : navigation, rechercher

Introduction

Le Bianchi LEI700 est un distributeur de boissons chaudes permettant de distribuer du café moulu à partir de grains qui peuvent être stockés dans la machine ou de poudres (cacao/soupe/café).
Le but de ce projet est de remettre le distributeur en état de marche.

Le système

Bacs de la machine

La machine sur laquelle manœuvrer est une Bianchi LEI 700.
Elle est composée de 6 bacs:

  • 2 pouvant contenir des grains de café à moudre
  • 4 pouvant contenir des solutés en poudre (cacao/soupe/café)


L'arrivée d'Eau

Elle bénéficie d'une arrivée d'eau contrôlée par une électrovanne ainsi que deux cuves afin d'accueillir l'eau.

Lorsque l'eau arrive dans la machine, une électrovanne s'active afin de laisser s'échapper l'air de la grande cuve qui se remplit et une fois remplie, la petite cuve en plastique transparent se remplit à son tour jusqu'à ce qu'un capteur relié à un flotteur s'active.

Les deux cuves n'ont pas la même utilité, leur utilité est listée ci-dessous.

Cuve Utilité
Grande Cuve Apporter l'eau aux solubles et la chauffer par la même occasion
Petite Cuve Apporter l'eau à une chaudière en laiton qui la chauffera

Un système d'écoulement d'eau est prévu afin de vider les deux cuves. La grande est vidée via une électrovanne tandis que la petite se vide lorsqu'un bouchon fixé au tube est retiré.


Le Bloc Café

Le bloc café est la partie de la machine qui permet de moudre le café et de le mélanger avec l'eau afin d'obtenir le café qui sera servi dans un gobelet.


En premier, les grains de cafés sont moulus par deux moteurs (la finesse de la mouture est réglable). En même temps, la poudre obtenue tombe sur un clapet qui s'ouvre lorsqu'il y a assez de poudre.
Celle-ci tombe dans un gros bloc qui compresse la poudre en une pastille.
Antérieurement à cela, une pompe a apporté de l'eau depuis la cuve transparente vers une chaudière en laiton.


Après que la poudre ait été compressée en une pastille, l'eau dans la chaudière va chauffer jusqu'à une certaine température qui est contrôlée par une thermistance.


L'eau est ensuite passée dans le bloc où la pastille de café se situe et les deux se mélangent.
En même temps, l'eau qui est entrée en contact avec la pastille est évacuée du bloc et est versée dans le gobelet de l'utilisateur.

Cahier des Charges

Fonctions attendues du système

  • Utilisation de boutons pour actionner le système
  • Chauffage de l'eau
  • Mouture de café
  • Distribution d'un café froid puis chaud

Contraintes

  • Facilité d'utilisation
  • Utilisation d'une carte modulable

Elements du système

Il est possible de découper le système en plusieurs éléments:

  • Le cerveau
  • Le 230V
  • Le 24V
  • Les boutons
  • Les capteurs


Elements du Système

Le Cerveau de la Machine

Au départ, la machine est entièrement gérée grâce à une carte électronique programmable qui est située dans la porte de la machine. Cette carte gère la machine au travers de multiples cartes qui sont directement branchées sur les différents capteurs et moteurs de la machine.

Ports d'une Arduino Uno

Cependant, ne sachant pas comment elle fonctionne, quel langage de programmation est utilisé ni comment la programmer, une Arduino Uno sera utilisée et de nouvelles cartes qui seront compatibles avec l'Arduino seront conçues et réalisées. Ces cartes seront dotées d'I/O (Input/Output | Entrées/Sorties) expanders qui permettent d'augmenter le nombre de ports d'une Arduino qui en possède 19. Le modèle utilisé sera le MCP produit par la société Motorola.

I2C
Carte Mère avec les modules

L'avantage de ces I/O expanders est que, grâce au protocole I2C(protocole de liaison qui permet à plusieurs microcontrôleurs ou, dans notre cas, des MCP, d'intéragir avec l'Arduino en leur attribuant une adresse), une économie de branchements est faite et quatre ports seulement sont utilisés:

  • Send Data (SDA) qui permet l'envoi des instructions aux composants reliés
  • Send Clock (SCL) qui permet de synchroniser la liaison
  • Alimentation +5v ou +3.3v
  • Masse (GND)

L'Arduino Uno est programmée en C++ depuis son IDE (Integrated Development Environment, Environnement de Développement Intégré en français) qui permet de programmer plus facilement à l'aide de librairies.


Pour le Semestre 4, une contrainte a dû être respectée:

Afin de faciliter le dépannage et les branchements de la machine, une carte "mère" a été conçue permettant d'installer dessus des cartes sous forme de modules qu'il est possible de changer à la guise. Chaque carte module représente un élément de la machine.

Afin d'être le plus aligné possible avec la machine:

  • les connecteurs de la machine ont été repris, permettant d'éviter des problèmes de compatibilité.

Afin d'éviter tout problème de diaphonie entre le 230v et le 24v:

  • les pistes ont été séparées, permettant une isolation physique

Toutes les cartes modules ont les mêmes ports branchés sur un "bus" qui sert à la liaison I2C (visible en haut sur la carte mère)

Des problèmes de conception et fabrication mineurs ont été surmontés:

  • Mauvaises dimensions de composants créés donc soudures en l'air et perçages à d'autres endroits ont dû être faits
  • Mauvais branchements au niveau des connecteurs dûs à la mise sur schéma des branchements

Liste des Composants:

Composant Quantité
Connecteurs Molex 4 broches 2
Support Femelle 4 broches 5
Support Femelle 6 broches 5
Optotriac OMRON G3MB 2
Optotriac OMRON G3MB 2
Relais SLA-24VDC-SL-A 1
Connecteurs Larges 7

Le 230V

Plusieurs éléments de la machine doivent être alimentés en 230 volts afin de pouvoir assurer correctement leurs fonctions qui sont:

  • Chauffer l'Eau grâce à deux résistances chauffantes.
  • Transporter l'Eau grâce à une pompe.
  • Nettoyer la Machine grâce à un aspirateur qui sert à aspirer les produits volatiles lors de la fabrication de la boisson.

Afin de pouvoir actionner ces différents composants, il convient de créer un circuit profitant de plusieurs actionneurs.

Carte Transistors

Le schéma et les composants du Semestre 3 a été repris car fonctionnel mais a été éclaté:

  • Les optotriacs sont toujours fixés sur la machine
  • Le relais ainsi que les deux OMRON G3MB qui ont été utilisés au semestre précédent ont été fixés sur la carte mère, ceux-ci pouvant supporter de fortes puissances et des courants importants
  • Les transistors ont été placés sur une carte module, ceux-ci étant les plus prônes à casser

Afin d'être sûr de pouvoir activer les optocoupleurs, des transistors MOSFET ont été choisis pour les raisons suivantes:

  • Activation de ceux-ci en envoyant une tension positive sur la grille
  • Commutation rapide
  • Modèles utilisés: FDD8870 car pouvant supporter 160A/30V, le courant de drain pouvant atteindre 3/4 ampères la puissance pouvant facilement être forte
Schéma de la Carte Transistors


Ainsi, le signal de commande sera: Arduino => Transistor => Optotriac

Avant que le 230V arrive aux bornes des optotriacs, un relais a été placé, lui aussi actionné via un transistor avant les optotriacs, permettant d'éviter des fuites de tension et les optotriacs permettant une isolation galvanique, ce qui permet d'éviter toute intérférence.



Ainsi, afin de pouvoir activer un seul moteur, il faudra actionner le relais ainsi que l'optocoupleur voulu.
Une diode de roue libre a été mise en parallèle avec le relais afin d'éviter les pics de courant et des résistances de couplage ont été mises aux bornes des composants.
Un MCP23008 a été utilisé afin d'augmenter le nombre de sorties de l'arduino. A savoir que chaque carte dispose d'un MCP2300X avec une adresse différente. Cette carte dispose de l'adresse 0x00.
Il a aussi fallu faire attention de bien séparer la partie "haute tension" (230V) du reste du circuit et à relier toutes les masses ensemble afin d'avoir une masse commune.

Les mêmes composants sont à piloter:

  • Résistances chauffantes
  • Pompe
  • Aspirateur

L'implémentation du relais et des optotriacs sur la carte mère a été rapide et la conception de la carte module contenant les transistors a été rapide, les schémas et la carte sans composants ayant été fournie par Monsieur Jacquot.

Les tests ont été effectués en reprenant le programme du Semestre 3 et la carte fonctionne parfaitement: la pompe, les résistances chauffantes et l'aspirateur ont ainsi pu être activés.

Composants de la carte transistors: Liste des Composants:

Composant Quantité
Transistor FDD8870 8
MCP23008 1
Barrette Sécable Mâle 4 broches 1
Condensateur 1206 100µF 1

Le 24V

Bien que plusieurs éléments de la machine fonctionnent sous 230V, la plupart des éléments de la machine fonctionnent sous 24V afin d'assurer leurs fonctions qui sont:

  • Moudre le Café (moteurs ainsi qu'un compresseur et un clapet)
  • Apporter l'Eau à l'endroit voulu (Pompes+Electrovalves).
Carte Mère avec les modules

Afin de profiter du système de carte mère, la carte, reprenant les fonctions de celle faite au semestre 3, a été faite de façon à ce qu'elle puisse s'implanter sur la carte mère, tout comme la carte transistors du 230V. Celle-ci implémente les mêmes transistors:

  • 30V
  • 160A

Permettant une forte dissipation de puissance, les transistors utilisés directement en série avec les moteurs 24V et les relais consommant plus de 2 ampères pour 24 volts contrairement aux transistors du 230v qui actionnent les optotriacs qui ne consomment pas autant.

Afin de pouvoir activer l'actionneur que l'on veut, il suffit simplement d'envoyer une tension de 5V sur le transistor voulu et le 24V se retrouvera aux bornes de l'actionneur.

La carte fonctionne comme un interrupteur. La Source du transistor est reliée à une source de tension de 24V qui sort d'une carte abaisseuse de tension (230v vers 24v), le Drain de celui-ci est ensuite relié au pôle positif de l'actionneur et finalement le pôle négatif de l'actionneur est relié à la masse de la machine, masse qui est commune.

Ainsi, faire commuter un transistor reviendra à relier le circuit à la masse, créant une différence de potentiel qui activera l'actionneur voulu.


La carte, ayant aussi été fournie par Monsieur Jacquot, n'a seulement nécessité son assemblage. Lors des tests finaux sur la machine, un court circuit a eu lieu, cassant tous les transistors, ils ont donc dû être remplacés.


Les Capteurs

Carte Capteurs

Les capteurs jouent un rôle très important dans tout système automatisé.
En effet, ce sont eux qui aideront la machine à déterminer l'état de la machine à tout moment et à déterminer quand changer d'état. Le distributeur de boissons compte un nombre élevé de capteur qui ont les fonctions suivantes:

  • Vérifier l'état de remplissage de la cuve d'eau
  • Vérifier l'état de remplissage du bac poubelle
  • Vérifier le débit d'eau sortant de la cuve d'eau

Les capteurs étant tous des "tout ou rien", c'est-à-dire qu'on a deux niveaux en fonction de leur état, 0 ou 1, on n'a pas besoin d'utiliser de ports analogiques sur l'Arduino et aini devoir créer un circuit afin de mesurer analogiquement divers valeurs.

Les seuls capteurs qui devront être utilisés de manière analogique sont le débitmètre qui sert à mesurer le débit d'eau qui est envoyé vers le bac de mélange entre le café et l'eau pour préparer la boisson et les deux résistances thermiques qui ont pour utilité de déterminer la température de chauffe de la cuve afin que l'eau soit chauffée à la bonne température.

Carte Capteurs

La sonde immergée ainsi que le débitmètre ont donc été sujets d'une étude afin de déterminer leurs caractéristiques (tension ou courant en fonction du débit et de la température).
L'étude est disponible ci-dessous.

Ainsi, le schéma de la carte capteurs est simple. Tous les capteurs sont reliés à un MCP23017 qui est ensuite relié à l'Arduino via la liaison I2C (cf I2C)

Débitmètre

On peut remarquer qu'une résistance et un condensateur sont sur la carte capteurs, la raison de la présence de ces deux composants est que le débitmètre fournit un signal à chaque fois que le tourniquet au centre fait un tour. Ainsi, le circuit permet de renvoyer un signal carré. Ainsi, le programme a été conçu pour qu'à chaque tour, le signal carré incrémente une variable et, en fonction du volume d'eau ayant passé à travers, la variable atteint un certain intervalle de valeurs. En gardant en tête cette idée, il a été permis de déterminer l'intervalle en faisant passer à travers le débitmètre, le même volume plusieurs fois.

Ci-dessous: schéma du branchement du débitmètre:

Afin d'être compatible avec le système de carte mère, la carte faite au Semestre 3 a été revue:

  • Toutes les connections du connecteur ont été revues afin de corriger les erreurs du semestre 3
  • Deux connecteurs 4 broches ont été ajoutés afin de permettre l'intégration de la carte sur la carte mère, servants à faire la liaison I2C
  • Optimisation de la carte permettant la minimisation de la taille de celle-ci



La carte a été testée en utilisant un code nommé I2C scanner qui permet de déterminer si un esclave est disponible sur la ligne et de donner son adresse. Ensuite, un code mettant toutes les sorties sur 1 a été programmé dans l'arduino et à l'aide d'un voltmètre, il a été vérifié que les sorties envoyaient bien une tension de 5V. Finalement, un capteur tout ou rien a été relié à la carte fabriquée et un code testant l'état de la broche voulue en allumant une led quand celle ci est à 1 a été programmé dans l'arduino.

Résistance Thermique

La machine comporte deux résistances thermiques, chacune branchées sur une cuve:

  • Une sur la cuve des solubles
  • Une sur la cuve du café

Ces deux résistances permettent donc de mesurer la température de l'eau lorsqu'elle est chauffée. En fonction de la température, le circuit permet de renvoyer une valeur analogique qui varie entre 0 et 1024.

Afin de pouvoir régler la mesure afin qu'elle soit la plus précise possible en déterminant l'équation qui donne la température en fonction de la valeur lue par l'Arduino, un protocole a été mis en place:

  • Un bécher rempli d'eau est chauffé à l'aide d'une bouilloire
  • La résistance est immergée dans le bécher ainsi qu'un thermomètre
  • A plusieurs températures mesurées, la valeur lue est relevée dans un tableau
Carte Résistance

Cette mesure est faite plusieurs fois jusqu'à avoir plusieurs échantillons

  • Une courbe est faite avec la valeur moyenne de chaque valeur lue
  • L'équation de la droite est relevée

La création de la carte a été soumise à plusieurs contraintes:

  • Taille la plus petite possible
  • Accueillir deux résistances
  • Pouvoir se fixer sur la carte mère

Ainsi, pour répondre à ces contraintes:

  • La carte dispose du même système de 2*4 barrettes sécables qui lui permet de se loger sur la carte mère
  • Le circuit de montage de la résistance a été doublé
  • Les pistes sont les plus optimisées et proches possibles

Les Boutons

Afin de pouvoir la commander, la machine dispose de boutons qui sont logés dans la porte de celle-ci. Ceux-ci sont câblés d'une manière spéciale, qui est disponible ci-dessous: BottonMachineCafe.png

Afin de pouvoir les lire, une carte comprenant un MCP23017 a été faite. Pour pouvoir lire la valeur d'un bouton précis, il suffit d'activer une résistance de pull-up interne et de lire la valeur du bouton.

La carte, se fixant directement sur celle des boutons est située dans la porte. Ainsi, afin de venir se brancher sur la carte mère, une nappe de câble traversant la machine a dû être faite.



Semestre 3 
Le 230V  

Plusieurs éléments de la machine doivent être alimentés en 230 volts afin de pouvoir assurer correctement leurs fonctions qui sont:

  • Chauffer l'Eau grâce à deux résistances chauffantes.
  • Transporter l'Eau grâce à une pompe.
  • Nettoyer la Machine grâce à un aspirateur qui sert à aspirer les produits volatiles lors de la fabrication de la boisson.

Afin de pouvoir actionner ces différents composants, il convient de créer un circuit profitant de plusieurs actionneurs. Il a en premier fallu faire une liste des composants pouvant être actionnés et pouvant faire passer une tension de 230V.

Ceux qui ont été retenus sont:

  • Optocoupleur OMRON G3MB qui permet d'effectuer une isolation galvanique et de commuter sous des courants moyens
  • Optocoupleur KUDOM KSIM380D10-L qui a la même fonctionnalité que celui ci-dessus mais peut commuter sous des courants élevés et sera monté sur le distributeur pour une meilleure dissipation thermique.

Afin d'être sûr de pouvoir activer les optocoupleurs, des transistors MOSFET seront placés avant dans la commande.
Ainsi, le signal de commande sera: Arduino => Transistor => Optocoupleur

Avant que le 230V arrive aux bornes des optocoupleurs, un relais a été placé, lui aussi actionné via un transistor avant les optocoupleurs.
Ainsi, afin de pouvoir activer un seul moteur, il faudra actionner le relais ainsi que l'optocoupleur voulu.
Une diode de roue libre a été mise en parallèle avec le relais afin d'éviter les pics de courant et des résistances de couplage ont été mises aux bornes des composants.
Un MCP23008 a été utilisé afin d'augmenter le nombre de sorties de l'arduino. A savoir que chaque carte dispose d'un MCP2300X avec une adresse différente. Cette carte dispose de l'adresse 0x00.
Il a aussi fallu faire attention de bien séparer la partie "haute tension" (230V) du reste du circuit et à relier toutes les masses ensemble afin d'avoir une masse commune.

Plusieurs problèmes ont été rencontrés lors de la fabrication de la carte. A cause du manque de certaines librairies, elles ont dû être créées et lors de l'impression de la carte, il a été remarqué que les pads n'étaient pas au bon endroit, ainsi, des trous ont dû être repercés et des soudures faites en fonction.


Lors des essais de la carte avec une Arduino, il a été remarqué qu'une erreur de prototypage de la carte a été faite, en effet, afin de pouvoir correctement communiquer avec le MCP23008, il est nécéssaire de relier la patte Reset au +5V sinon la tension au sein de la puce ne cessera d'osciller et peut causer des dégâts.

D'autres problèmes ont été décelés tels que le manque d'une masse commune rendant ainsi impossible la commande des transistors ou encore le sous-dimensionnement de ceux-ci, les cassant inévitablement lors de la mise sous tension. En réponse à tous ces problèmes, une seconde carte a été fabriquée. Elle est désormais entièrement fonctionnelle et a été assemblée dans la machine.

Un code simple a été utilisé qui a pour but de mettre toutes les sorties voulues à 1 et ensuite de mesurer à l'aide d'un multimètre la tension de sortie afin de déterminer si le MCP23008 fonctionne. Il sera ensuite nécessaire de relier la carte à une source de tension de 24V afin d'activer le relais et en même temps à une source de tension quelconque afin de déterminer si les optocoupleurs fonctionnent bien.

Le 24V  

Bien que plusieurs éléments de la machine fonctionnent sous 230V, la plupart des éléments de la machine fonctionnent sous 24V afin d'assurer leurs fonctions qui sont:

  • Moudre le Café (moteurs ainsi qu'un compresseur et un clapet)
  • Apporter l'Eau à l'endroit voulu (Pompes+Electrovalves).

Pour cela, le système vu précédemment a été repris mais simplifié car les tensions et courants ne sont pas aussi élevés. Ainsi, le système d'optocoupleurs a été remplacé par des transistors MOS et le relais a été enlevé.

Afin de pouvoir activer l'actionneur que l'on veut, il suffit simplement d'envoyer une tension de 5V sur le transistor voulu et le 24V se retrouvera aux bornes de l'actionneur.


Les Capteur

Les capteurs jouent un rôle très important dans tout système automatisé.
En effet, ce sont eux qui aideront la machine à déterminer l'état de la machine à tout moment et à déterminer quand changer d'état. Le distributeur de boissons compte un nombre élevé de capteur qui ont les fonctions suivantes:

  • Vérifier l'état de remplissage de la cuve d'eau
  • Vérifier l'état de remplissage du bac poubelle
  • Vérifier le débit d'eau sortant de la cuve d'eau

Les capteurs étant tous des "tout ou rien", c'est-à-dire qu'on a deux niveaux en fonction de leur état, 0 ou 1, on n'a pas besoin d'utiliser de ports analogiques sur l'Arduino et aini devoir créer un circuit afin de mesurer analogiquement divers valeurs.

Les seuls capteurs qui devront être utilisés de manière analogique sont le débitmètre qui sert à mesurer le débit d'eau qui est envoyé vers le bac de mélange entre le café et l'eau pour préparer la boisson et les deux résistances thermiques qui ont pour utilité de déterminer la température de chauffe de la cuve afin que l'eau soit chauffée à la bonne température.

La sonde immergée ainsi que le débitmètre ont donc été sujets d'une étude afin de déterminer leurs caractéristiques (tension ou courant en fonction du débit et de la température).
L'étude est disponible ci-dessous.

Ainsi, le schéma de la carte capteurs est simple. Tous les capteurs sont reliés à un MCP23017 qui est ensuite relié à l'Arduino via la liaison I2C (cf I2C)

La carte fabriquée:

La carte a dû être refaite une fois car, lors de la conception, le connecteur choisi n'était pas le bon et aucune librairie n'était disponible. Par conséquent, le schéma Eagle a dû être refait avec une librairie qui a été créée spécialement pour le connecteur. Aussi, un "strap" a été fait afin de relier le capteur volumétrique car la connexion a été oubliée lors de la conception sur Eagle.

La carte a été testée en utilisant un code nommé I2C scanner qui permet de déterminer si un esclave est disponible sur la ligne et de donner son adresse. Ensuite, un code mettant toutes les sorties sur 1 a été programmé dans l'arduino et à l'aide d'un voltmètre, il a été vérifié que les sorties envoyaient bien une tension de 5V. Finalement, un capteur tout ou rien a été relié à la carte fabriquée et un code testant l'état de la broche voulue en allumant une led quand celle ci est à 1 a été programmé dans l'arduino.