Fabriquer une imprimante 3D pour moins de 150 euros - sixième partie

Retrouvez les premières parties : Partie 1, Partie 2, Partie 3, Partie 4 et Partie 5

Dernière ligne droite ! Les parties mécaniques sont en place, l'extrudeur aussi.
Il ne reste plus qu'à câbler tout ça, et ajouter les capteurs de butée nécessaires.

Vous êtes prêts ? Alors c'est parti !

Nous avons à nous occuper aujourd'hui des pièces suivantes : (on vérifie en même temps qu'il ne vous manque rien)

  • Une alimentation 12V min 350W (une alim de PC pas trop vieille fera l'affaire)
  • Un Arduino Mega
  • une carte RAMPS 1.4
  • 4 stepsticks A4899 avec leur radiateurs (c'est un plus)
  • du câble (genre câble ethernet démonté)
  • 3 interrupteurs simple cf photo ci-dessous
  • un fer à souder, de l'étain
  • une bonne dose de minutie :)

Fabriquer imprimante 3D Fabriquer imprimante 3D Fabriquer imprimante 3D Fabriquer imprimante 3D

Nous allons commencer par les interrupteurs. Ils serviront à indiquer au firmware que vos axes sont arrivés en butée ou à leur point d'origine. Ou les deux, c'est à vous de voir. Dans la pratique, un interrupteur par axe suffit, il doit être positionné pour indiquer la position 0 : à gauche sur l'axe X, en bas du le Z et au fond sur le Y.

Sur chacun des axes, j'ai bricolé à partir d'une chute de bois un support creusé pour chaque interrupteur : Fabriquer imprimante 3D Fabriquer imprimante 3D Fabriquer imprimante 3D

Le but étant que votre partie mobile vienne appuyer sur cet interrupteur lorsqu'elle atteint l'origine de l'axe. Gardez-vous un peu de marge de maneouvre, histoire que votre partie mobile ne se retrouve pas complètement coincée au moment où elle tape la butée.

De plus, histoirede vous simplifier la vie sur les réglages de l'axe Z (X et Y n'ont pas besoin d'être aussi précis), je vous conseille de placer une vis sur la partie mobile, en face de l'interrupteur. Comme ça, si vous vous décaler votre Z0 de 0.05mm, il suffit de tourner très légèrement la vis, et rien de plus !

Je vous laisse libre choix quand à la fabrication des supports :)

Une fois que vous avez placé / fixé les interrupteurs, il vous faut ramener les fils jusqu'à l'emplacement où se situera votre Arduino. Il en est de même pour toutes les autres parties à cabler : thermistance extruder, thermistance plateau chauffant, alimentation extrudeur, plateau chauffant, les 4 moteurs.

Autant les moteurs, thermistances et interrupteurs nécessite un faible ampérage donc un fil de faible section, autant je vous recommande de prendre un fil de section un peu plus grosse (par exemple câble 12V utilisé pour l'automobile sur les haut-parleurs par exemple) car sinon gare à la surchauffe !

Prenez garde de laisser assez jeu sur les câbles reliés aux parties mobiles : il serait fâcheux de coincer un des axes :)

Vous avez un joli sac de noeuds ? c'est normal :)

Fabriquer imprimante 3D

Pour alimenter tout ce petit monde, j'ai opté pour une alimentation ATX d'un PC désossé :) Il faut savoir qu'une alimentation ATX nécessite un petit bricolage pour être allumée. Il faut relier le fil vert du connecteur principal à la masse (n'importe quel fil noir de la même broche). Libre à vous de monter un petit interrupteur entre ces deux fils pour allumer / éteindre l'ATX à volonté.

Démonter un connecteur Molex de l'alimentation (les gros à 4 fils qui alimentent les disques dur / lecteur DVD) pour récupérer les fils rouge,jaune et noir. Le jaune correspond au +12V, le rouge au +5V, et le noir la masse. Dans la pratique, le +5v ne vous servira pas (sauf si vous souhaitez vous passer de votre PC pour alimenter l'Arduino)

Avant de relier tout ça, nous allons monter les stepstick sur la carte RAMPS, et la carte RAMPS sur l'Arduino :

Fabriquer imprimante 3D Fabriquer imprimante 3D Fabriquer imprimante 3D

Tout est en place ? Ok, on continue :)

Le schéma ci-dessous, issu de reprap.org, illustre très bien le câblage à effectuer avec votre RAMPS et tous vos appareils.

Armez-vous de patience et de minutie, il est temps de relier tout ça/

Les alimentations +12v sont simples, il s'agit juste de bornier à visser. Idem pour la sortie ventilateur (optionnel), la cartouche chauffante de l'extruder et le plateau chauffant.

Concernant les moteurs, vous avez deux choix : soit vous avez des connecteurs capables de s'enficher sur les 4 broches de chaque moteur, soit il vous faut jouer du fer à souder. J'ai opté pour la seconde méthode. Je vous préviens tout de suite, il va falloir vous armer de patience, les broches sont proches et souder à ces emplacements c'est pas chose des plus aiséé (mais pas impossible, la preuve :p)

Au niveau de l'ordre des fils des moteurs : les schémas dispo sur internet montrent souvent la séquence rouge/bleu/vert/noir. Si vos fils de sont pas de cette couleur, un petit truc : les moteurs pas à pas fonctionnent par paire de fil. Quand aucun fil ne se touche, le moteur tourne librement. Qd un fil est associé à son homologue, le moteur devient plus dur à tourner à la main. Essayez donc de reformer les paires ;) et câbles paire 1 / paire 2 sur la carte RAMPS.

Dernière ligne droite, il vous reste les capteurs à brancher (interrupteurs x3 et température x2)

Pour les interrupteurs, vous avez sur la RAMPS un ensemble de 6 paires de broches en haut à droite. Ils sont disposés dans cet ordre : X origine / X fin / Y origine / Y fin / Z origine / Z fin.

Etant donné que nous câblons que les origines, reliez une paire sur deux.

Un peu en dessous, vous avez les broches pour les thermistances T0,T1 et T2. Nous n'avons que 2 thermistances, reliez celle de l'extrudeur sur T0, celle du plateau sur T1.

Pour organiser un peu tout ce bazar,j'ai opté pour une fixation de l'Arduino derrière le chassis. Ca évite que tout se balade, et vous pourrez même placer un ventilateur pour refroidir les stepstick si nécessaires.

Fabriquer imprimante 3D Fabriquer imprimante 3D

Par ailleurs, au niveau des stepsticks, les axes X et Y ne comportent qu'un seul moteur, donc vous ne devriez pas rencontrer de gros soucis. Par contre, l'axe Z contient 2 moteurs en parallèles. Il sera peut être nécessaire de tourner TRES légèrement la vis du stepstick Z sur la droite pour augmenter un peu la puissance envoyée aux moteurs. (en cas de saut de pas du moteur, par exemple)

Une fois tout ce petit monde assemblé, il va falloir passer aux tests et nombreuses heures de calibrage :)
Pour celà, il faut que vous uploadiez le firmware Marlin sur votre arduino, et que vous le configuriez un peu, vie le fichier configuration.h

#define MOTHERBOARD 33

(ou 34 ou 35, en fonction de l'ordre utilisé pour brancher la cartouche de chauffe, le plateau chauffant et le ventilateur)

// 33 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed)
// 34 = RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed)
// 35 = RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan)

#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1

Si vous avez des thermistances EPCOS 100k (4.7k pullup) (le plus courant).

#ifndef ENDSTOPPULLUPS
// fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
// #define ENDSTOPPULLUP_XMAX
// #define ENDSTOPPULLUP_YMAX
// #define ENDSTOPPULLUP_ZMAX
// #define ENDSTOPPULLUP_XMIN
// #define ENDSTOPPULLUP_YMIN
// #define ENDSTOPPULLUP_ZMIN
#endif

#ifdef ENDSTOPPULLUPS
// #define ENDSTOPPULLUP_XMAX
// #define ENDSTOPPULLUP_YMAX
// #define ENDSTOPPULLUP_ZMAX
#define ENDSTOPPULLUP_XMIN
#define ENDSTOPPULLUP_YMIN
#define ENDSTOPPULLUP_ZMIN
#endif

// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
#define DISABLE_MAX_ENDSTOPS

#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

// Travel limits after homing
#define X_MAX_POS 190
#define X_MIN_POS 0
#define Y_MAX_POS 190
#define Y_MIN_POS 0
#define Z_MAX_POS 200
#define Z_MIN_POS 0

Le fichier contient des instructions pour inverser le sens des moteurs. Si jamais vos moteurs tournent à l'envers, c'est là que ça se passe :

#define INVERT_X_DIR false

Adaptez bien sur l'axe concerné, et l'inversion si elle est nécessaire.

Sauvegardez le tout, et uploadez sur votre Arduino.

Ca vous démange de tester tout ça ? Je vous comprends :)

Tous les tests que j'ai effectué sont sous Mac. Les logiciels cités ont leur contrepartie PC.

Pour tester vos moteurs, les températures, l'extrudeurs : Pronterface. Une fois que vous aurez tout testé, c'est aussi ce soft qui vous permettra d'envoyer le fichier GCode à l'imprimante.

Pour transformer vos fichiers STL en GCode, plusieurs softs existent : Slic3r, Cura ou encore Kisslicer (mon chouchou, bien qu'il soit le plus moche)

Maintenant, où trouver des fichiers STL ? La plus grosse source de STL disponible à ce jour est Thingiverse. Vous pouvez même y retrouver la page de votre serviteur à cette adresse.

J'espère que vous avez apprécié ces longs tutoriels, et que vous avez pris plaisir à monter votre imprimante autant que moi :)
Sachez que ces quelques articles ne sont que le début de votre long périple dans le monde de l'impression 3D, et que une fois que vous y aurez goûté, le sevrage sera d'autant plus dur :)

Amusez-vous bien !

Publié le :
31/08/2014
Dans la catégorie :
Auteur :
Mathieu LESNIAK
Mathieu LESNIAK
Commentaires :
muller
muller
bonjour

les données arduino me ressortent comme incorrectes...
Le " the " de // set to true.....
Pouvez vous m'éclairer?
merci
Kévin M
03/02/2015 17:51:41
chatelas
chatelas
pouvez vous me confirmer que les softwares que vous nous avez conseiller dinstaller peuvent marcher avec les modules que jai trouver sur eBay RAMPS 1.4 RepRap +5pcs A4988 Stepper Driver+1pcs Mega 2560 R3 Compatible Arduino
25,99 EUR
.merci et super explication pour cette creation
03/02/2015 21:51:30
Mathieu
Mathieu
oui cela fonctionne parfaitement. Concernant les erreurs , il faut garder à l'esprit que les lignes affichées plus haut dans l'article sont en fait sur une seule ligne. Le // est la pour marquer un début de commentaire
03/02/2015 22:12:51
chatelas
chatelas
petit question -dans descriptif vous parlez de ventilateur?
-pour engrenage nombre de dent car je trouve des 20 dent voir plus les quelle sont le mieux pour la longevite .
-j ai due mal as comprendre le upload marlin jai cliquer sur lien mes il parle ide et apres aussi tu parle de pronterface faut il les deux ou pronterface peut parametrer aussi?
04/02/2015 22:42:19