Imprimante 3D à chocolat : Différence entre versions

De Wiki de Projets IMA
(Imprimante 3D)
(Imprimante 3D)
Ligne 156 : Ligne 156 :
 
Pour finir, dans la boucle loop, dans le cas où l'utilisateur à choisi le mode chocolat, et que l'on est en train d'imprimer on lit la valeur sur la pin. Si on reçoit un ordre d'arrêt, on execute l'instruction pause. Lorsqu'on reçoit à nouveau l'ordre d'imprimer, on execute l'instruction de reprise.
 
Pour finir, dans la boucle loop, dans le cas où l'utilisateur à choisi le mode chocolat, et que l'on est en train d'imprimer on lit la valeur sur la pin. Si on reçoit un ordre d'arrêt, on execute l'instruction pause. Lorsqu'on reçoit à nouveau l'ordre d'imprimer, on execute l'instruction de reprise.
 
[[Fichier:main_loop.png|500px|thumb|center|Marlin_main.cpp]]
 
[[Fichier:main_loop.png|500px|thumb|center|Marlin_main.cpp]]
 +
 +
La version intégrale de notre firmware est disponible ici[https://drive.google.com/open?id=0B_SY6F3ko-U7bmdrMlR0c3lHYUE]
  
 
== Partie matérielle ==
 
== Partie matérielle ==

Version du 22 mai 2016 à 21:43

Cahier des charges

Contexte

Les imprimantes 3D sont en plein essor actuellement, sous de plus en plus de formes différentes. De l'imprimante capable d'imprimer de petits objets en une seule couleur, nous passons aux imprimantes multi-fils, celles capables d'imprimer des bâtiments, ou encore celles capables de transformer les aliments. C'est vers ces dernières, encore aux balbutiements, que se dirige notre projet.

TasseChocolat.jpg

Description du projet

Nous allons créer une imprimante capable d'imprimer des aliments, et plus précisément, nous nous orientons vers le chocolat. Le chocolat est un aliment bien connu, qu'on sait liquide à chaud et solide à froid. Il semble donc idéal pour commencer.

La principale problématique se pose dans la création d'un extrudeur adapté au matériau, et le contrôle du milieu environnant (température ambiante notamment) puisque les propriétés du chocolat varient énormément selon ces conditions.

Dans le but d'une utilisation ultérieure plus diverse, nous souhaitons rendre l'asservissement en température ajustable de manière compréhensible pour qu'un tiers puisse adapter la consigne à d'autres aliments que le chocolat.


Nous allons reprendre ce projet d'après les premières tentatives d'Antoine Urquizar, du Fabricarium de Polytech.

Problématiques

Les difficultés auxquelles nous nous attendons à être confrontés, d'après les expériences menées par Antoine, sont les suivantes :

  • Contrôle de la température ambiante : l'environnement d'extrusion doit être modifiable en température de façon à ce que le chocolat se solidifie de manière contrôlée à la sortie de la buse.
  • Étanchéité de la seringue : nous optons pour une seringue contenant le chocolat liquide avant extrusion. Le piston de cette seringue doit être étanche, mais opposer le moins de résistance possible à la poussée du chocolat.
  • Chauffage du chocolat : le chocolat doit être maintenu à une température idéale pour qu'il soit assez liquide pour être extrudé, mais qu'il puisse être stable une fois déposé.
  • Actionneur de la seringue : la manière dont le chocolat sera poussé hors de la seringue. Il faut un système adapté à l'utilisation de l'imprimante, mais pouvant déployer une force suffisante pour agir sur le chocolat.
  • Refroidissement du chocolat : Le chocolat, une fois sorti de la seringue, doit pouvoir être refroidi immédiatement pour que la suite de l'impression se déroule correctement.
  • Stockage du chocolat : Si nous optons pour la méthode de la seringue, le chocolat sera en quantité limitée.

Aucune de ces difficultés ne nous semble bloquante pour le projet. De plus, nous savons que des imprimantes de ce type existent déjà et nous pourrons nous inspirer de ces expériences pour créer notre propre système.

Solutions envisagées

Au travers multiples conversations avec Alexandre Boé et Antoine Urquizar, nous avons envisagées nombre solutions différentes nous confrontant à divers problèmes :

  • Chauffage du chocolat : Dans un réservoir externe puis acheminement du chocolat ou directement dans l'extrudeur. Dans un réservoir, on peut chauffer avec des modules Peltier, ou des thermistances. Dans l'extrudeur, on utiliserai du fil résistif. Un système hydrolique chauffé permettrait un chauffage proche du bain marie, mais entraîne des problèmes d'étanchéité.
  • Extrudeur : Seringue ou autre. Si on a besoin de chauffer la seringue, le plastique isole le chocolat de chaleur et la passage du piston déforme la localement.
  • Actionneur de l'extrudeur : Électrovanne ou piston avec vérin ou vis sans fin
  • Stockage chocolat : Si le chauffage se fait dans un réservoir externe, on peut l'approvisionner en chocolat. Ce réservoir pourrait être imprimé en 3D à base de PLA qui supporte des températures supérieurs à 100°C. Si on stocke le chocolat dans l'extrudeur, on ne peut imprimer qu'une certaine quantité de chocolat.

Solution retenue

Stockage du chocolat dans un réservoir en métal (type tuyau en cuivre assez large) chauffé par du fil résistif enroulé. Le chocolat fondu est envoyé sous pression grâce à une électrovanne.

Schéma de principe3D.jpg

Matériel nécessaire

Pour commencer, nous nécessiterons une imprimante 3D. Nous n'envisageons pas d'y apporter de grosses modifications outre le remplacement de l'extrudeur. Bien que nous envisageons de la placer dans un environnement étanche, pour y contrôler la température.

Ensuite nous aurons besoin de chocolat. Non seulement pour les essais, mais aussi pour déterminer avec précisions certaines données qui varient selon le type de chocolat, telles que les points de fusion et de solidification.

Ainsi que des seringues, solution principale envisagée comme extrudeur.

Pour le contrôle de la température

  • Fil résistif - Module peltier - Résistance de puissance
  • ventilateurs
  • thermistances

Pour l'extrudeur

  • système pneumatique
  • électrovanne
  • joint

Rencontres avec les encadrants

Nous avons d'abord eu une discussion préliminaire avec Emmanuelle Pichonat pour découvrir sa vision du projet.

Ensuite, mardi 01 décembre nous avons rencontrés Alexandre Boé ainsi qu'Antoine Urquizar, avec qui nous avons échangé sur les bases du projets, défini les problématiques et discuté des solutions envisagées.


Bibliographie et documentation

Déroulement du projet

Partie logicielle

Labview

Première version

Le projet fonctionnera sur Labview, qui permet d'obtenir une interface facile d'utilisation pour n'importe quel utilisateur. De plus, ce logiciel s'adapte très bien à l'arduino, et il est conçu pour la régulation et la mesure. La principale contrainte de notre projet étant la gestion de la température en sortie de l'extrudeur, et la mesure de la pression, Labview nous semble la meilleure solution.

De plus, c'est l'occasion pour nous de nous familiariser avec ce logiciel très utilisé en industrie.


Pour apprendre à utiliser Labview avec un arduino, nous nous sommes inspiré de ce tutoriel : http://innovelectronique.fr/2012/05/04/arduino-et-lifa-labview-interface-for-arduino/.


Nous avons commencé à créer notre programme qui prend cette allure :

Face avant

La face avant se compose d'une partie commande à gauche, qui ici consiste simplement en un bouton rotatif qui permet de sélectionner la température désirée dans le tube.

A droite, nous avons les indicateurs : La température actuelle dans le tube, la pression disponible, et un voyant qui passe du vert au rouge en fonction de si la pression est suffisante dans le tube ou non.


Diagramme

Dans la partie diagramme, le fonctionnement commence par l'initialisation de l'arduino, et se termine par sa fermeture correcte par les blocs "INIT" et "CLOSE". Ces blocs sont proposés par LabView dans un module à installer gratuitement qui permet les commandes de l'arduino.

Dans une boucle while infinie (se termine en pressant "STOP"), les valeurs des ports analogiques 0 et 1 pour la pression et la température sont récupérées, et une fois la correspondance en température effectuée, sont envoyés sur les indicateurs. Ces mesures sont effectuées par un sous-VI (le VI étant le programme Labview) portant l'indice "2" nommé Lecture_analog dont voici le diagramme :

Lecture Analog.PNG

Un bloc "READ" proposé par Labview permet de récupérer directement la valeur analogique en entrée sur le port correspondant.

Dans le même temps, ces valeurs sont comparées à la pression exigée pour le bon fonctionnement du système, et à la température demandée par l'utilisateur.

Révision

Suite à des problèmes avec le capteur de pression, le programme a été modifié pour en sortir ce paramètre.

De plus, la gestion de la température et la gestion de la pression dans le réservoir ont été séparés en deux sous-programmes différents pour qu'ils puissent s'exécuter simultanément.

Pour réguler la vitesse de chauffe et la vitesse d'extrusion, nous avons également mis en place un système type PWM qui laisse un temps de repos fixe (non-chauffe pour le fil résistif, état fermé pour l'électrovanne), mais qui adapte le temps de chauffe/d'ouverture en fonction de la consigne. Pour le fil résistif, on met en place un PID qui permet de réduire progressivement la chauffe à l'approche de la température demandée, pour éviter un dépassement trop important.

Face avant
Diagramme

Imprimante 3D

L'imprimante que nous utilisons est une RepRap Prusa i3[1], et nous avons étudié le logiciel embarqué de notre imprimante 3D : Marlin RepRap 3D, afin de comprendre son fonctionnement et pouvoir y apporter les modifications nécessaire à l'utilisation de notre programme de régulation en parallèle. Ce firmware est OpenSource, disponible sur GitHub[2]

Nous cherchons notamment à pouvoir mettre en pause l'impression lorsque la pression est trop basse.

L'implémentation de ce firmware se fait à l'aide de tutoriels disponible sur internet tels que celui-ci[3]

Voici le détail des modifications apportées au firmware :

Dans le fichier configuration.h, nous définissons une variable externe, globale à tous les fichiers, qui indique si l'utilisateur veut imprimer du chocolat ou de manière classique.

configuration.h


Dans le fichier ultralcd.cpp, nous ajoutons l'option d'activer ou de désactiver l'impression du chocolat, ainsi qu'une fonction pour modifier l'état de la variable définit précédemment.

ultralcd.cpp
ultralcd.cpp


Dans le fichier language_en.h, nous ajoutons les messages correspondants à afficher dans le menu prepare. Ces messages ne sont définit qu'en anglais, langue par défaut de l'imprimante.

language_en.h


Dans le fichier Marlin_main.cpp, nous commençons par rappeler la variable d'état, puis nous définissons une variable pour représenter sur quelle pin l'Arduino vas recevoir le contrôle de l'impression.

Marlin_main.cpp


Ensuite, dans la fonction setup, nous indiquons que cette pin est une entrée.

Marlin_main.cpp


Pour finir, dans la boucle loop, dans le cas où l'utilisateur à choisi le mode chocolat, et que l'on est en train d'imprimer on lit la valeur sur la pin. Si on reçoit un ordre d'arrêt, on execute l'instruction pause. Lorsqu'on reçoit à nouveau l'ordre d'imprimer, on execute l'instruction de reprise.

Marlin_main.cpp

La version intégrale de notre firmware est disponible ici[4]

Partie matérielle

Imprimante 3D

Nous utilisons une imprimante 3D qui avait été commandée par le fabricarium, mais pas terminée. Nous reprenons le projet en cours, et terminons la conception de l'imprimante.

Le mardi 15 mars, nous avons eu une réunion avec Antoine Urquizar et les deux membres du groupe P28 (travaillant sur l'imprimante 3D multi-fils) pour faire l'inventaire des pièces de l'imprimante pour l'assembler. Il manque des tiges filetées et des courroies. Le cadre de l'imprimante se fera avec la découpeuse laser de l'école.

Nous avons aussi préparé tous les fichiers STL des pièces manquantes à imprimer au fabricarium.

Pour assembler l'imprimante, nous suivons le tutoriel suivant[[5]].

Extrudeur à chocolat

L'extrudeur à chocolat sera réalisé selon le schéma de principe montré plus haut.

L'air sera mis sous pression dans une bouteille grâce à un pompe classique type pompe à vélo, ou d'un compresseur si nous en disposons. Par un système de tuyaux en caoutchouc, cet air sous pression est envoyé vers l'électrovanne. Un capteur de pression est intégré à ce circuit fermé pour vérifier que l'impression est toujours réalisable.

A la suite de l'électrovanne, le tuyau en caoutchouc laisse place à un tuyau en cuivre dans lequel est stocké le chocolat fondu. Un fil résistif enroulé autour du tuyau permet de faire fondre le chocolat à 50°C puis 35°C (valeurs à confirmer par des tests), cette température étant vérifiée par un capteur. Le chocolat sera préalablement intégré au tuyaux, sous forme de petits morceaux voir de poudre, ce choix dépendra de nos essais.


Ce chocolat est redirigé, à nouveau grâce à un tuyaux en caoutchouc vers l'imprimante elle-même. Un embout permet d'effectuer la sortie du chocolat du système dans de bonnes conditions.

[Intégrer des photos pour être plus clairs]

Pièces imprimées en 3D

Les raccords et l'embout n'existent pas tels que nous les désirons. Nous avons donc décidé de les modéliser en 3D pour les imprimer au Fabricarium.

Nous avions besoin de 3 pièces différentes :

  • Un raccord caoutchouc -> cuivre [6]
Raccord simple.JPG
  • Un raccord cuivre -> caoutchouc (dans lequel on intègres le capteur de température) [7]
Raccord capteur.JPG
  • Un embout pour l'extrusion même [8]
Embout choco.JPG

L'ensemble devant être étanche, puisque nous fonctionnons sous pression, et capable de supporter la température et le chocolat.


Ces pièces ont été créés via SolidWorks, mais un autre logiciel de modélisation aurait pu tout aussi bien fonctionner.

Problèmes rencontrés

Réalisation de l'imprimante 3D

Pour créer l'imprimante 3D qui accueille notre extrudeur à chocolat, nous devions reprendre un projet du Fabricarium à l'abandon. Il a donc fallu faire l'inventaire des composants manquants, et imprimer les pièces restantes.

Lorsque nous avons voulu imprimer ces pièces, pour plusieurs dizaines d'heures d'impression en tous, l'imprimante 3D principale du Fabricarium est tombée en panne. Nous avons dû attendre qu'elle soit réparée pour reprendre notre travail à ce niveau.

Capteur de pression

Par soucis d'économie, nous avons pris un capteur de pression très particulier. Il fait moins de 2mm de coté, avec des pads de 0,17mm de large, ce qui complique énormément la soudure des fils, qui font eux-même à peu près 1mm de large.

Nous avons étudié les différentes solutions possibles pour cette soudure, comme l'utilisation d'un four à refusion. Ces solutions n'étant jamais convenables, nous nous sommes reportés sur une proposition de M. Boé :

Nous avons réalisé une carte électronique qui se compose de 4 pads reliés à 4 pins pour y souder les fils. Les pads du composants seront reliés aux pads de la carte par un brin de fil, soudés à la colle argent. L'opération sera faite sous microscope. Une fois le composant posé et soudé, l'ensemble est recouvert de colle pour maintenir le composant et les fils. L'entrée d'air se fait à travers la carte par un trou d'1mm de diamètre sous le composant. Le tuyaux est donc relié directement à ce trou.

Commande d'électrovanne

Nous avons besoin d'une électrovanne pour gérer toute la pneumatique du système. Nous en avons donc commandé une qui correspondait à nos besoins, mais nous avons passé plusieurs semaines à l'attendre sans résultat.

Suite à un premier appel au fournisseur, nous avons appris que l'électrovanne avait tout simplement été oubliée par leurs services au moment de la commande. Notre demande n'a donc été prise en compte qu'à partir du 09/03.

Par la suite, comme nous n'avions rien reçu suite aux 10 jours d'attente annoncés, nous avons rappelé le fournisseur qui nous a annoncé une nouvelle date ultérieure. Nous avons finalement décidé de commander une autre électrovanne pour espérer l'avoir immédiatement après les vacances.

Vidéo et rapport

Vous pouvez trouver la vidéo de notre projet sous différents formats en suivant ce lien : https://drive.google.com/folderview?id=0Bypcx35zZ9WneHFXMkV3VDEtc3c&usp=sharing Le rapport est lui disponible à cette adresse : https://drive.google.com/open?id=0Bypcx35zZ9WnN2hERlZTSXhLejA