Surveillance imprimante 3D

Membres du projet :

Guillaume MAEDER (GEII)

Erwan PACI (GEII)

Thibaud FARNY (GMP)

Felix BERGER (GMP)

___________________________________________

Table des matières :

Introduction

1. Présentation générale du projet
1.1 L’impression 3D
1.2 Cahier des charges
1.3 Gestion des tâches et du temps
1.4 Coût du projet

2. Recherche d’une solution
2.1 Analyse du système
2.2 Le Raspberry Pi 3
2.3 MQTT
2.4 Solution mécanique

3. Réalisation
3.1 Programmation
3.2 Réalisation des supports

Conclusion

Introduction :

Nous sommes actuellement en deuxième année de DUT Génie Electrique et Informatique Industrielle à l’IUT de Mulhouse et nous avons réalisé ce projet en collaboration avec deux étudiants en Génie Mécanique et Productique. Nous avons choisi la surveillance de l’imprimante 3D, en effet, l’impression 3D est une technologie pour le futur. Ainsi, de plus en plus de particulier possède une imprimante 3D et la surveillance du bon déroulement de l’impression à distance est susceptible d’intéresser un bon nombre de personnes.

La vision est un outil en plein développement au sein de l’industrie mais également chez les particuliers. Nous allons donc réaliser la supervision de l’impression d’une imprimante 3D située au sein du Département Génie Mécanique de l’IUT de Mulhouse. Cette supervision permettra de vérifier le bon fonctionnement de l’imprimante grâce à une image, si nous avons un défaut nous pourrons arrêter l’impression à distance.

Pour vous expliquer en détail le déroulement de ce projet, nous allons dans un premier temps réaliser une présentation générale du projet, puis nous allons vous exposer les solutions que nous avons proposé pour mener le projet à son terme. Ensuite, nous allons vous présentez la solution que nous avons mis en œuvre. Et pour finir, nous conclurons sur ce que nous à apporter ce projet.

 

1. Présentation générale du projet

Dans cette première partie nous expliquerons tout d’abord le principe de l’impression 3D, puis nous définirons le cahier des charges. Ensuite nous montrerons notre répartition des tâches et pour finir nous définirons le coût du projet.

1.1 L’impression 3D

L’impression 3D est un procédé qui permet de fabriquer des pièces en volume. Cela permet de réaliser un objet réel à partir d’un logiciel de conception assistée par ordinateur (CAO). Sur ce logiciel nous réalisons une pièce en 3 dimensions qui sera ensuite traitée par un logiciel qui organise le découpage en différentes couches nécessaires à la réalisation de la pièce.

modelisation

Sur l’image ci dessus on retrouve le fichier avant l’impression et on retrouve le résultat après l’impression 3D. Il existe de nombreux types d’imprimante 3D avec une très large gamme de prix, ceci allant de l’imprimante basique pour un particulier à une imprimante complexe pour un industriel.

1.2 Cahier des charges

La surveillance de l’imprimante 3D est nécessaire pour les enseignants du département Génie Mécanique et Productique. En effet, certaines impressions peuvent durer plus de 24 heures et sont donc lancer le week-end. Cependant sans surveillance l’imprimante peut avoir un défaut et ne s’arrêtera pas. Une impression de 24 h raté engendre une perte de temps et de matière conséquente.

Définition du besoinbêtes à cornes

Fonction principale et contraintes

 

diagramme pieuvre

Fonctions Critères Niveaux/flexibilité

FP1 : Permettre la vision à distance afin de garantir le bon déroulement du procédé de fabrication

 

Fonctionnalité

 

Vision depuis une connexion internet

 

Microprocesseur

Marche/arrêt, lumière

 

Serveur MQTT

 

 

Rapsberry Pi 3

FC1 : Garantir une vision du procédé de fabrication

Qualité de l’image

 

Positionnement de la caméra

Résolution minimum 240p

 

Réglable

FC2 : résister au milieu extérieur

Vibrations,

chocs

Utilisation courante
FC3 : S’adapter à l’imprimante 3D

Type d’accroche

 

Ergonomie

Visser dans le carter de l’imprimante

Réglable/montable par l’utilisateur

FC4 : Garantir l’alimentation de la caméra

Electricité

 

Connexion internet

230V 50hz (secteur)

 

Wi-Fi ou RJ45

1.3 Gestion des tâches et du temps

tâches

diagramme

En bleu : tâches des étudiants en GEII
En vert : tâches des étudiants en GMP

1.4 Coût du projet au niveau électrique

Matériel à commander Fournisseur Références Quantité à commander Prix
Raspberry Pi3  Raspberry RASPBERRY-PI-3B 1 40 €
Alimentation 5 V 3A 1 10 €
Câble Ethernet 5m  5 €
Caméra LOGITECH C170  Logitech PN 960-001066 1 25 €
Servomoteur HS- 422 HITEC Hitec MRC-HS311VR 1 10 €

2.    Recherche d’une solution

Dans cette seconde partie nous vous présenterons tout d’abord une analyse du système, puis le Raspberry Pi 3 et MQTT que nous allons utilisée. Et pour finir nous verrons la solution que nous avons trouvé au niveau mécanique.

2.1 Analyse du système

boutons

Tout d’abord rappelons que l’imprimante 3D fonctionne à une température ambiante d’environ 70°C. L’installation de la caméra peut se faire de deux façons différentes :

  • Insérer la caméra dans l’imprimante et mettre en place un système de ventilation
  • Positionner la caméra à l’extérieur de l’imprimante
Nous avons conserver la deuxième solution, c’est à dire de positionner la caméra à l’extérieur de l’imprimante. En effet, une caméra supportant une telle température serait trop coûteuse et de plus la mise en place de ce système de ventilation serait bien trop compliqué.
Nous avons donc choisie l’emplacement de la caméra mais il faut également prévoir le système permettant d’arrêter l’impression et d’ allumer la lumière.
Ainsi nous avons  pu remarquer que les boutons de commande sont câblés à travers une nappe. Cette nappe est ensuite insérer dans un connecteur qui lui-même est soudé sur une carte électronique. Il n’est pas possible de reprendre le câblage des boutons poussoirs.
Sur la première image ci contre on aperçoit la sortie des boutons sur la carte électronique.
Et sur les deux boutons suivants, on aperçoit la nappe de sortie des boutons poussoirs. Il faut donc trouver un système qui permettra d’appuyer physiquement sur les boutons poussoirs.

2.2 Le Raspberry Pi 3

Le Raspberry Pi est un nano ordinateur de la taille d’une carte de crédit. Il fonctionne avec différentes versions du systèmes d’exploitations Linux, en effet, la plus utilisée est Raspbian. Le Raspberry Pi ne comporte pas d’alimentation, clavier, souris ou écran. On retrouve sur un aperçu du Raspberry Pi 3.

raspberryComme on peut le voir sur l’image ci dessus, le Raspberry Pi 3 comporte 3 Ports USB et une prise Ethernet. On peut voir qu’il dispose également de ports GPIO qui peuvent être utilisés comme entrée/sortie. Il est également équipé d’une carte Wifi et du Bluetooth.

Ce Raspberry Pi 3 comporte donc parfaitement à nos besoins, il nous permettra tout d’abord de pouvoir branché une caméra à travers le port USB. Nous pourrons gérer des entrée et des sorties à travers les ports GPIO. Et de plus nous pourrons nous connecter à internet et au réseau de l’UHA grâce à la prise Ethernet ou à la carte Wifi.

2.3 MQTT

MQTT : Message Queuing Telemetry Transport

MQTT est une protocole de messagerie qui fonctionne sur le principe de subscriber / publisher qui a été développé pour simplifier la communication entre les machines. Il est basé sur le protocole TCP/IP. C’est un protocole très léger, de ce fait, nous pouvons envoyer des messages qui ne dépassent pas 256 Mo. Ceci est également un avantage, ce qui en fait un des protocoles de communication du « futur ». En effet, une partie d’application Messenger de Facebook utilise le protocole MQTT.  Nous allons vous illustrer le fonctionnement avec le schéma suivant.

principe mqttNous retrouvons donc les subscriber et les publisher. Cependant nous avons un également le broker MQTT, c’est un serveur qui permettra de faire passer les messages entre les différents clients.

Un subscriber (souscripteur) souscrit à un ‘topic’. Ce topic sera alors ouvert dans le serveur. Ensuite le publisher (publieur) publiera dans le même topic que celui du subscriber et celui-ci réceptionnera le message.

Nous avons donc une communication entre les différents composants, mais tout le monde pourrait accéder au contenu qui passe par le broker MQTT.

En efet, nous pouvons sécurisé la communication du protocole MQTT. Dans un premier temps nous pouvons définir qui a le droit de publier sur le topic mais également ceux qui ont le droit de s’y abonner.

De plus nous avons un autre aspect de sécurité, c’est le Quality of Service pour les messages :

  • QoS niveau 0 : le message sera délivré une fois sans garantie de réception et ne sera pas sauvegardé sur le serveur ;
  • QoS niveau 1 : le message sera livré au moins une fois jusqu’à la réception d’un accusé de réception de la part du broker MQTT ;
  • QoS niveau 2 : le message sera renvoyé puis sauvegardé tant que le récepteur n’aura pas répondu.
A présent nous avons éclaircie le fonctionnement du protocole de communication MQTT. Cela a été difficile pour notre groupe d’intégrer ces notions du fait que nous n’avions jamais travaillé dans ce domaine de l’Internet of Things (IOT).

2.4 Solution mécanique

Nous avons donc réalisé une représentation du panneau de contrôle de l’imprimante sous créo.créo

Quelques modifications ont été apportés au moteur afin de pouvoir l’adapter à l’imprimante. Il a été nécessaire de réaliser une nouvelle came pour celui-ci afin de pouvoir atteindre les boutons du panneau de l’imprimante grâce à deux tiges de pression.

De ce fait, nous avons repris la base de la came initialement prévue puis créé une plus large qui nous a permis d’y insérer 2 boutons poussoir sous forme de vis pour exercer la pression sur les boutons. Avant la réalisation de cette came, nous avons donc réalisé un prototype sur créeo en récupérant l’entraxe entre les deux boutons de l’imprimante.

Came moteur :

plan came

 

model came

L’objectif de cette partie est donc de détailler comment nous avons imaginé le système pour qu’il soit le mieux adapter au système.

 

 

 

 

Dans un premier temps il serait intéressant d’observer notre base de travail pour cette partie.

model ensemble

L’objectif de ce système était qu’il soit adaptable tant au niveau de la caméra que du cerveau moteur. Nous réalisé un montage sur créo pour observer la mise en place du système. Néanmoins, il manque la partie « bras et support de caméra » et la représentation des tige filetés permettant de régler la distance du cerveau moteur.

Pour cela, nous avons réalisé un système permettant de gérer par système de coulissement la position de notre caméra et de notre cerveau moteur. Le fait de pouvoir régler la caméra en hauteur nous permet d’anticiper la fabrication des pièces dans l’enceinte de l’imprimante car plus les pièces sont importantes en volume, plus il y aura des variations de hauteur du plateau.

 

 

Système de coulissement :

model couli

 

Cette partie est assez simple d’utilisation et de fabrication. Nous avons utilisé une tige de diamètre 15 et réalisé un méplat sur celle-ci pour la bloquer en rotation dans nos guides. Un système de vis de pression est utilisé d’une part pour bloquer notre tige dans les guides et ce même système est utilisé pour bloquer nos composants sur cette tige. Nous avons donc utilisé une tige en acier comportant la contrainte de poids mais néanmoins reste plus solide pour appliquer une pression avec les vis. Toutes les autres pièces sont donc usinées ou découper dans l’aluminium ou dans le plastique pour des raisons de légèreté.

 

 

 

 

model méplat model tige

 

Support cerveau moteur :

La plaque du cerveau moteur a donc une double fonction, d’une part la fixation du servomoteur et d’autre part elle permet la liaison entre le serve et le système de mise en position.

Pour la partie servomoteur, nous avions à disposition un moteur fourni par monsieur Chassignet. De ce fait, pour éviter les dépenses extérieures, nous avons réalisé un support adapté à ce moteur. Pour cela, nous avons récupéré les côtes de celui-ci (largeur du moteur, entraxe entre les alésages prévu pour la fixation) pour que l’on puisse l’insérer et le fixer sur le support.

La fonction de liaison entre le support came et le système de mise en position est réalisable par l’intermédiaire de 2 tiges filetées de diamètre 6 et d’un système d’écrou contre écrou.

model servo

 

Pièce liaison système coulissant et support cerveau :

Cette pièce sert à effectuer la liaison entre les deux parties du système. Nous retrouvons le diamètre 16 de notre basse et les deux tarauds M6 pour nos tiges filetés. Pour régler cette pièce en position, un système de vis de pression a été réalisé sur le diamètre 16.

L’ensemble de cette pièce est réalisable en découpe jet d’eau pour un gain de temps. Néanmoins les tarauds et les alésages sont à réaliser sur une perceuse à colonne.

model coulis

 

Bras de réglage de la caméra :

Notre caméra sera maintenue à l’aide d’une pièce support réalisé par impression 3D qui se pince sur le bras de positionnement de la caméra.

mise en plan bras mise en plan cam

Celui-ci s’adaptera au bâti de notre système de fixation qui sera directement ancré sur le profil de l’imprimante.

Ce bras permettra le réglage de la caméra en hauteur et en profondeur afin de pouvoir garantir le meilleur champ de vision pour surveiller les impressions en cours. Celui-ci se compose du tube ci-contre qui prend place sur le bâti du système et d’un simple tube cintré à 90°, coulissant dans le premier et situer grâce à une goupille sur lequel viens se pincer le support ci dessus.

3. Réalisation

3.1 Programmation

Afin de réaliser ce projet nous utilisons donc le protocole de communication MQTT. A travers nos différentes recherches sur celui-ci nous avons pu remarquer que le langage de programmation de plus utilisée est le langage Python. C’est un langage de programmation très puissant qui nous permettra de réaliser notre partie de programmation.

Tout d’abord nous avons dû installé une caméra sur le Raspberry, ainsi le but de cette première partie aura été de pouvoir capturé une image tout simplement. Pour cela nous avons tout d’abord utilisé une webcam de la marque Logitech.

caméra

Cette caméra Logitech présentant un bon rapport qualité/prix nous a tout de suite intéressé, en effet nous ne cherchions à avoir une caméra simple mais avec une bonne qualité de photo.

De ce fait il a tout d’abord fallu autoriser l’utilisation d’une caméra sur le Raspberry. Cela nous a donc permis de générer un code Python permettant de prendre une image de la webcam et de la lire.

 

 

 

Nous pouvons retrouvez ci dessous le code permettant de capturer une image.

capture image

On retrouve une première où l’on capture l’image, une deuxième phase où l’on compresse l’image sous le format JPEG et enfin une phase où nous enregistrons l’image dans le même dossier que le code mais où nous chargeons l’image avant l’envoi.

Afin de réaliser ces différentes phases nous avons utilisé la librairie open-cv de python.snooper

A présent nous il faut comprendre comment programmé la communication en MQTT. Tout d’abord nous cherchons à mettre en place un client dans le protocole MQTT. Pour cela nous utiliserons l’application MQTT Snooper.

Cette application Android permettra d’envoyer des messages sur un topic, par exemple « projiut/snap ». Nous pourrons alors envoyé un message qui servira d’ordre au Raspberry.

Cependant ce message doit être lue par le Raspberry et après avoir lu le message le Raspberry doit exécuté une tâche qui est par exemple la capture d’une image.

Afin de faire transiter les différents messages nous utilisons le serveur de test « test.mosquitto.org ». Celui -i nous permettra d’envoyer es ordres sur le Raspberry. Cependant pour renvoyer l’image nous ne pourrons utiliser cette solution.

En effet le serveur de test serait accessible à tout le monde et ce n’est pas ce qui est voulu. De plus nous n’avons pas la possibilité d’ouvrir un port sur le réseau de l’UHA, ceci engendrerait la mise en place d’un protocole de sécurité trop important pour la réalisation de ce petit projet.

Nous avons donc décidé de renvoyer l’image à travers la messagerie Gmail. On retrouve le code python permet d’envoyer un mail ci dessous.

mail

Ainsi lors de l’envoi d’un message sur le topic, nous capturerons une image puis nous enverrons celle-ci sur une adresse mail prédéfini. Une amélioration de ce système pourrait être que lors de l’utilisateur pourrait envoyer son adresse mail pour qu’on puisse envoyer à plusieurs utilisateurs.

Nous avons donc réalisé la partie acquisition et transmission de l’image. Il faut à présent gérer la partie commande du servomoteur. Le servomoteur présentera deux états, tout d’abord nous aurons un mouvement qui allumera la lumière pour  la prise de la photo dans l’imprimante et enfin nous aurons un mouvement qui permettra d’arrêter l’impression.

Pour cela nous avons utilisé le code suivant :

servoAfin de commander le servomoteur nous lui envoyons des impulsions ce qui lui permet dans une position. Pour cela nous définissons un angle dans lequel le servomoteur doit se positionner.

Ci dessous nous retrouvons le schéma général de notre installation.

Image1

De plus vous pouvez retrouvez l’ensemble du code python ici.

Au cours de cette partie de programmation nous avons rencontrées de nombreuses difficultés puisque pour nous le Raspberry pi et le langage python n’étaient pas familier. De plus la mise en place de MQTT sur python a été la partie la plus difficile.

3.2 Réalisation des supports

Une fois toutes les pièces réalisées, nous avons donc pu faire l’assemblage du système où nous retrouvons les différents composants tels que :

 

réa

Conclusion

Ce projet a été une expérience enrichissante du fait de la collaboration avec les étudiants du département Génie Mécanique et Productique mais également parce que nous avons acquis des connaissances très importantes dans le domaine de l’IOT. Ainsi nous maîtrisons à présent le langage python mais également le Raspberry Pi qui est un outils indispensable.

Le découverte du protocole MQTT est une véritable car en effet c’est un protocole très simple d’utilisation qui peut être mis en place d’un point de vue industriel mais également chez un particulier.*

Le système électrique avec le Raspberry Pi et la caméra fonctionne cependant la partie mécanique n’a pas été réalisé donc notre projet n’a pas pu être finalisé, c’est un point que nous regrettons puisque nous aurions apprécier voir l’aboutissement de notre travail.

Nous tenons à remercier Mr. CUDEL et Mr. VIGNE qui nous ont assistés et conseillés tout au long de notre projet. Nous tenons également à les remercier pour les connaissances qu’ils ont pu nous transmettre dans la gestion de projets.