3D Printer

De fablab
Aller à : navigation, rechercher

Introduction

Membres de l'équipe

  • Léo Bongiorno
  • Nicolas Follet
  • Antoine Marinier
  • Thomas Trompette
  • Hedi Zitouni

Problématique

Nous avons eu à disposition une imprimante 3D. Celle-ci ne permettait plus l’impression d’objet, cependant il était toujours possible de faire fonctionner les moteurs. Notre idée fut donc de reconvertir cette imprimante en machine à écrire.

Scénario principal

Le principal objectif de ce projet se résume ainsi :

  • L’utilisateur écrit un message via une interface
  • Le message est converti en Gcode puis transmis à l’imprimante
  • L’imprimante écrit le message initial sur une feuille de papier placée sur le plateau

Les possibles extensions sont les suivantes :

  • Permettre l’insertion d’une image SVG en entrée et l’imprimer
  • Offrir une interface globale via OpenHab

Technologies nécessaires

Une imprimante 3D (voir type) avec :

  • Un moteur pas à pas permettant le déplacement des rails en 2D
  • Un moteur pas à pas permettant le déplacement du plateau verticalement
  • Un moteur pas à pas permettant des rotations

Photo imprimante / Moteurs

Une pièce imprimée permettant de :

  • Se fixer au moteur permettant des rotations
  • Insérer le feutre qui écrira sur la feuille

Pièce moteur.jpgPièce moteur 2.jpg


Un Raspberry Pi connecté à l’imprimante afin de récupérer la saisie de l’utilisateur et de la transmettre à notre programme Java:

Raspberry.jpg

Mise en place

Evolution du projet

Les principales étapes de prise en main étaient :

  • Apprendre le Gcode (langage permettant d’envoyer des coordonnées à l’imprimante) et les transmettre à l’aide d’une carte SD dans un premier temps


  • Apprendre à utiliser Sketchup, outil permettant l’impression de pièces par une imprimante 3D. En effet, il nous manquait une pièce pour fixer le stylo aux rails.

Sketchup.jpg

Une fois le Gcode maîtrisé, nous avons pu nous tourner vers d'autres moyens pour le transmettre qu'une carte SD:

  • Ecriture d'un programme en Java
  • Configuration d'un Raspberry Pi

Explication du programme Java

La création du programme se sépare en trois parties :

  • Communication avec l’imprimante
  • Dessiner du texte donné en entrée
  • Convertir un fichier SVG en commande gcode pour dessiner


Communication avec l’imprimante

La première partie du programme permet de communiquer directement avec l’imprimante pour automatiser l’envoie des commandes gcodes.

Pour cela, nous avons utilisé l’outil en ligne de commande GPX, développé par Dr. Henry Thomas et disponible sur GitHub. Grâce à cet outil et un câble reliant l’ordinateur à l’imprimante, nous pouvions directement envoyer un fichier gcode vers l’imprimante afin qu’elle dessine sur une feuille en papier.

Créer le gcode correspondant avec des lettres

La deuxième partie du programme prend un texte fourni en entrée et le converti en commande gcode pour l’imprimante.

En premier on a commencé par créer les lettres de l’alphabet, voici par exemple le code correspondant à la lettre L.

// Initialisation
G28 X0 Y0
G92
G90
// Déplacement vers la position (2,39)
G0 X2 Y39
// Met le stylo en position WRITE
G0 E-2
// Déplacement de l’axe Y vers 4
G0 Y4
// Déplacement de l’axe X vers 26
G0 X26
// Met le stylo en position RAISED
G0 E2

Imprimante3DL.png

Pour générer ce fichier avec notre programme, il faut faire:

java -jar Waouh.jar "L"

Une fois toutes les lettres de l’alphabet converties en instruction GCODE, il nous fallait calculer les positions de chaque lettre. Pour cela, il faut calculer combien de ligne il va nous falloir pour écrire la phrase, en faisant attention à ne pas couper un mot et en rentrant le plus de lettres par ligne.

Impimante 3D 3.png

Pour générer ce fichier avec notre programme, il faut faire:

java -jar Waouh.jar "BONJOUR JE MANGE UNE POMME"

Une fois la l’écriture de toutes les lettres dans le code et le calcul des emplacements des lettres terminé, nous pouvions enfin envoyer n’importe quelle phrase (uniquement des lettres) à l’imprimante 3D pour qu’elle dessine grâce au stylo la phrase.

Convertir un fichier SVG en commandes GCODE

Lorsque le programme pour écrire des phrases était terminé, nous voulions aller encore plus loin et ajouter une fonctionnalité : celle de pouvoir dessiner une image directement.

Pour cela, nous avons trouvé un convertisseur pour transformer les fichiers SVG (dessin vectoriel) en commande GCODE. Pour cela, nous avons utilisé Svgmill. Bien sûr, nous avons dû le transformer pour l’adapter à notre utilisation pour descendre et relever le stylo.

Imprimante3DBatman.png

Pour générer ce fichier avec notre programme, il faut faire:

java -jar Waouh.jar -f ./Batman.svg

Comme l’imprimante 3D a cessé de fonctionner peu avant la fin du projet, nous n'avons malheureusement pas pu tester en conditions réelles le dessin de fichier SVG. Cependant, grâce à des simulateurs sur Internet, nous avons pu vous proposer ces captures d’écrans.

Livrables

Étant donné que l'imprimante 3D a cessé de fonctionner, nous n'avons malheureusement pas pu intégrer notre production au pavillon prévu à cet effet.

Nous avons cependant une vidéo de l’imprimante réalisant le déplacement pour écrire 3 lettres:

Media:Imprimante3DVideo.mp4


Voici le code source décrit plus haut avec un fichier jar pour l'utiliser sans compilation:

Media:Imprimante3DCode.zip


Voici également les fichiers pour les règles et les items destinés à OpenHab. Ils possèdent un item STRING modifiable. Une fois modifiée, une rule est triggered permettant d'envoyer une commande au Raspberry connecté pour exécuter le programme d'impression.

Media:Imprimante3DOpenHab.zip