IMA4 2017/2018 P1 : Différence entre versions

De Wiki de Projets IMA
(Partie matériel/programmation)
(Semaine 7)
Ligne 217 : Ligne 217 :
 
Après quelques essais à l'aide du langage php, nous avons décidé d'utiliser le Java, car celui ci permettra de réaliser plus facilement un affichage dynamique des températures.
 
Après quelques essais à l'aide du langage php, nous avons décidé d'utiliser le Java, car celui ci permettra de réaliser plus facilement un affichage dynamique des températures.
 
Nous avons recours à la bibliothèque RXTX, développée par arduino, qui permet la réalisation de liaisons séries entre classes java et un des ports COM du PC.
 
Nous avons recours à la bibliothèque RXTX, développée par arduino, qui permet la réalisation de liaisons séries entre classes java et un des ports COM du PC.
 +
 +
===Partie matérielle===
 +
 +
La carte réalisée a été récupéré et les composants y ont été soudés. Néanmoins, toutes les connectiques pour les moteurs, la sonde et les pins Arduino ne seront faites qu'une fois le modèle de la structure finalisé.
  
 
=Documents Rendus=
 
=Documents Rendus=
 
[[Média:Code version1.txt]]
 
[[Média:Code version1.txt]]

Version du 14 mars 2018 à 17:46


Présentation générale

Description

L'objectif de ce projet est de réaliser un système automatisé de production de bière. Celui ci devra être capable de mélanger, chauffer et refroidir le mélange suivant la recette donnée et les ingrédients choisis par l'utilisateur.

Objectifs

Analyse du projet

Positionnement par rapport à l'existant

Analyse du premier concurrent : Saveur Bière

Cette société se pose comme la 1ère en terme de vente de bière en ligne. Un de ses secteur d'activité concerne notamment les kits pour réaliser ses propres mélanges chez soi. Elle propose une très large gamme de produit, notamment en proposant des packs adaptés aux différents "niveaux" des consommateurs. On trouve ainsi des produits adaptés aux débutants et brasseurs confirmés.

Son principal point fort est la possibilité de pouvoir réutiliser son kit plusieurs fois, en mettant en vente tous les ingrédients nécessaires, les produits de nettoyage, les filtres, le matériel d'embouteillage...

Cependant tous les produits de Saveur Bière demandent au consommateur de contrôler à tout instant le mélange, lors des différentes étapes de fabrication. Le consommateur doit donc contrôler la température, le brassage et la durée de chaque phase.

Contre ce concurrent nous devrons axer notre communication sur le fait que notre produit est entièrement automatisé et qu'il ne nécessite pas une vigilance constante de l'utilisateur.

Analyse du second concurrent : Youtube

Un autre concurrent qui ne peut pas être négligé, bien qu'il soit indirect, est youtube.

Allez sur le site, tapez tout simplement "fabrication bière maison", et vous aller trouver des centaines de vidéos sur le sujet. L'intérêt de ces vidéos c'est que leurs réalisateurs n'utilisent que du matériel de cuisine classique pour leurs préparations. Ainsi une personne qui souhaite s'initier à la fabrication maison ne verra pas forcément l'intérêt d'acheter un kit ou une machine.

Cependant cette méthode présente le même défaut que pour Saveur Bière : vigilance constante. De plus les résultats sont très "hasardeux", même en faisant particulièrement attention à sa préparation.

La plateforme Youtube pourrait cependant être un bon moyen pour mettre en valeur notre produit, et notamment proposer de nouvelles recettes.

Scénario d'usage du produit ou du concept envisagé

Notre produit se présente sous la forme suivante : la cuve de mélange est la partie principale, elle est assez grande pour contenir 5L de bière; au dessus de celle ci se trouvent les cuves à ingrédients, plus petites, elles servent à ajouter les différents produits (houblon, levures, épices...); sur notre produit se trouve un écran qui indique à quelle étape du processus nous nous trouvons, ainsi que le temps restant de l'ensemble de la préparation.

Notre produit est contrôlable grâce à une application smartphone ou par ordinateur, via une liaison Bluetooth.

Lorsqu'un client veut réaliser sa bière il doit d'abord ajouter ses ingrédients dans les cuves concernées. Très important c'est à lui de doser les différentes produits, l'appareil ne le fera pas lui même. Ensuite il doit s'assurer que l'appareil est branché à une arrivée d'eau. Puis vient le réglage de la recette.

L'application affiche chaque étape. Dans celles ci on peut paramétrer quel ingrédient ajouter, quelle quantité d'eau, la température, la durée ... Certaines étapes sont parfois optionnelles, ou n'apparaissent que dans des recettes précises, nous avons donc ajouté la possibilité de passer celles ci.


Réponse à la question difficile

Chacune des étapes de production implique une température précise. Par conséquent un système de chauffage doit être implémenté sur notre produit. Cependant toutes les recettes n'impliquent pas une augmentation de la dite température, il est parfois nécessaire de refroidir le mélange.

Or attendre pendant X heures que notre bière refroidisse serait particulièrement inconvenant. Aussi voici notre problématique: Quel système pourrions nous implanter afin de pouvoir gérer les hausses et baisses de température?

Nous avons décidé d'utiliser un serpentin, qui sera plongé dans la cuve de brassage. Celui ci sera alimenté par trois arrivées d'eau, chacune reliée au serpentin par une pompe : une d'eau chaude (100°C), une d'eau à température ambiante (nous considérons 20°C) et une dernière d'eau froide (0°C). Quand nous souhaitons chauffer le mélange, on activera les pompes 1 et 2 de façon à obtenir la température souhaitée dans le serpentin. Par analogie le refroidissement s'effectue de la même manière, via les pompes 2 et 3.

Préparation du projet

Cahier des charges

Choix techniques : matériel et logiciel

Matériel

Trois pompes Walfront DC 12V. Il s'agit d'un modèle peristaltique. Ces pompes possèdent un débit réglable, via une PWM.

Une alimentation 12V DC afin de faire fonctionner les pompes et le système de contrôle.

Une Arduino UNO afin de gérer le système.

Trois transistors BC547.

Trois résistances 1Kohms.

Une résistance 4,7 Kohms.

Trois diodes.

Un capteur de température pour liquides DS18B20.

Liste des tâches à effectuer

Calendrier prévisionnel

Réalisation du Projet

Feuille d'heures

Tâche Prélude Heures S1 Heures S2 Heures S3 Heures S4 Heures S5 Heures S6 Heures S7 Heures S8 Heures S9 Heures S10 Total
Analyse du projet 0


Prologue

Semaine 1

Au début du projet nous avons pensé à concevoir un système composé de plusieurs cuves, chacune étant réservées à un rôle précis (chauffer ou refroidir).

Après avoir proposé aux enseignants ce modèle, afin de répondre à la question difficile, nous avons modifié celui ci. Notre système comportera toujours plusieurs cuves mais leur rôles seront différents. Nous aurons une cuve principale (1), destinée à contenir le mélange. A coté se trouveront trois autres qui contiendront de l'eau, respectivement, froide (environ 0°C) (2), chaude (environ 100°C)(3) et à température ambiante(4).

Dans la cuve principale, à environ 1/3 de sa hauteur, nous positionnerons un capteur de température afin d'observer l'évolution du mélange.

Afin de gérer la température, un serpentin sera placé dans la cuve (1). Nous y ferons circuler de l'eau provenant des 3 autres. Chacune d'entre elles sera reliée au serpentin via une pompe. Si nous souhaitons chauffer, nous actionnerons la pompe de la cuve (3) à pleine vitesse jusqu'à un certain seuil. Quand celui ci sera atteint, nous actionnerons la pompe de la cuve (4) afin d'obtenir la température voulue. Quand le point de chauffe souhaité sera atteint, nous maintiendrons les débits des pompes (3) et (4) afin de se maintenir à ce point. Pour refroidir, nous n'actionnerons que la (2) au début pour refroidir rapidement, puis nous stabiliserons avec la pompe (4).

Lorsque l'eau sort du serpentin, il faut distinguer trois cas:

1) Il n'y a que de l'eau provenant de (3), nous la renverrons dans (3), en considérant que cela n'aura pas d'impact sur la température de (3)

2) C'est un mélange entre (3) et (4) nous renvoyons toujours dans (3)

3) Elle provient de (2), l'eau est complétement évacuée du système

Semaine 2

Après quelques recherches nous avons décidé d'utiliser le circuit de contrôle suivant

Circuit pompe.JPG

Semaine 3

Circuit une pompe.jpg
Circuit transistor.jpg

Début de la rédaction du programme Arduino pour le contrôle de la pompe. Afin de réaliser ceci nous utiliserons une PWM.

Un Arduino possède les fonctions nécessaires à sa mise en place. Nous utiliserons donc la fonction analogWrite(pinX, vitesse).

pin correspond au port de l'Arduino qui générera notre signal (les pins pouvant réaliser cette action sont prédéterminés).

Le rapport cyclique est calculé de la façon suivante R = vitesse / 255.

Ainsi en utilisant cette fonction, nous générerons sur pinX une PWM de rapport cyclique R.

Nous avons également réalisé quelques tests afin de voir le comportement de la pompe.

Sur cette photo, les deux câbles du haut sont reliés à l'alimentation 12V.


Semaine 4

Nous avons réfléchi sur le montage électrique et hydraulique de l'ensemble du système. La partie électrique doit pouvoir alimenter les trois pompes en fonction des sorties de l'arduino ainsi que retourner les valeurs captées par la sonde de température. Le schéma a été réalisé sur Altium en prévision de la réalisation d'une carte de commande qui gérera la partie électrique.

Schéma du circuit Altium


Concernant la partie hydraulique, la seule pièce qui nous manquait était un raccord entre le tube en silicone en sortie des trois pompes et la conduite en cuivre constituant le serpentin. Un raccord a été imaginé puis modélisé prévisionnellement (surtout au niveau des côtes) sur Onshape en vue d'une impression 3d.


Raccord.png

Semaine 5

Nous avons écrit un programme Arduino pour pouvoir commander les pompes. Au départ, nous avions configuré la commande pour n'avoir que le débit équivalent à celui d'une seule pompe dans la conduite, mais cela posait problème dans les cas où le rapport cyclique du signal de commande d'une des pompes était inférieur à 30%. Nous avons donc palier ce problème en augmentant le débit dans la conduite tout en gardant la même température théorique.

Il nous fallait aussi pouvoir récupérer les données de la sonde de température. En nous basant sur le code ainsi que la librairie fournie avec cette dernière, nous avons aménagé notre code pour avoir le retour de température. Nous avons ensuite modifié la commande des pompes pour que celle ci soit dynamique selon la température retournée par la sonde. Dans la première version du code, la température cible des pompes était la même que la température voulue pour le bassin. Maintenant, grâce à la sonde de température, nous établissons une température cible qui a autant d'écart avec la température voulue que n'a cette dernière avec la température actuelle. Ainsi, la température actuelle tendra plus vite vers la température voulue pour le bassin.

Fichier:Code.png

Semaine 6

Partie interface

Pour cette séance nous nous sommes occupé de la réalisation d'une interface utilisateur.

Celle ci permettra de connaitre : le débit de chacune des pompes et la température actuelle de la cuve de mélange.

L'utilisateur pourra également choisir le mode de fonctionnement du système : en auto le système se gère tout seul, en manuel la température désirée est à choisir.

Cette première ébauche vous montre à quoi ressemblera l'interface (nous ajouterons quelques cadres et un peu de couleur, histoire de rendre ça plus vivant). Dans le cas présent nous sommes en mode Manuel, et l'utilisateur n'a pas encore entré de température.

Image site.jpg

Dans cette seconde capture l'utilisateur a entré une donnée.

Image site2.jpg

Partie matérielle

Pour la partie matérielle, nous avons finalisé le PCB sous Altium et envoyé les fichiers en vue d'une impression de la carte.

Fichier:PCB.png

Nous avons également réfléchi sur la structure du système : pour l'assemblage des différentes parties, certaines pièces comme les supports des cartes et le support du serpentin seront modélisées sous Onshape puis imprimé au Fabricarium.

Semaine 7

Partie interface

Après quelques essais à l'aide du langage php, nous avons décidé d'utiliser le Java, car celui ci permettra de réaliser plus facilement un affichage dynamique des températures. Nous avons recours à la bibliothèque RXTX, développée par arduino, qui permet la réalisation de liaisons séries entre classes java et un des ports COM du PC.

Partie matérielle

La carte réalisée a été récupéré et les composants y ont été soudés. Néanmoins, toutes les connectiques pour les moteurs, la sonde et les pins Arduino ne seront faites qu'une fois le modèle de la structure finalisé.

Documents Rendus

Média:Code version1.txt