ITopie maxProject

De Centre de Ressources Numériques - Labomedia
Aller à : navigation, rechercher

Projet "Fabriquer une iTopie from scratch"

Je cherchais un projet pour me mettre en jambe. Cela faisait quelques temps que je souhaitais réaliser une RepRap, car je trouve le concept d'une beauté désarmante, je me suis donc lancé. J'avais d'abord jeté mon dévolue sur une variante d'une Prusa i3 : un kit de P3Steel à monter, car plutot costaud (j'aime la robustesse). Jérémie m'a conseillé de regarder le projet iTopie, ce qui m'a tout de suite convaincu d'en réaliser une from scratch. La RepRap iTopie est grosso modo une i3 avec pour particularité d'avoir un cadre robuste en MDF. Ce cadre hautement configurable peut etre fabriqué avec une CNC. Si l'on considère qu'une imprimante 3D est une CNC, alors on peut éstimer que l'on augmente ainsi la capacité d'auto réplication de cette imprimante.

Découpage du cadre avec la CNC du c01n

Logiciels

  • OpenScad
  • Heekscad & HeeksCNC
  • LibreCad

Préparation de la découpe avec la CNC

Pitfall :

  1. Configuration "step over" & "material allowance" du pocketage. (cf Usinage Demo 6)
  2. Configuration de "roll radius" sur les profilages. (cf Usinage Demo 6)
  3. La profondeur du pocketing est plutot mauvaise : avec 6mm on obtient 7mm. Avec 5mm on obtient 5.7mm. Avec 5.5mm on obtient à peu près 6mm.

Tips :

  1. Pointer le centre des trous : séléctionner point > clic droit sur un trou > click mid point
  2. Changer le zero : séléctionner set origin > pick 1 point ; Séléctionner tous les items plus coordinate > clic droit sur coordinate > transform selected items to world coordinates

Usinage d'une démo

Problèmes à régler : Les pochetages n'ont pas la bonne profondeur : environ 6,7mm Le réglage dans heekscnc était de 6mm de profondeur avec des passes de 3 mm. De mémoire, les passes dans dans linuxcnc était superieur à 3 mm. Peut ^etre le problème vient-il de là.

Le pochetage accueillant les tiges de metal glissière fait 7 mm au lieu de 8 mm. On dirait que le gcode de heekscnc calcul mal cette découpe.

L'angle inferieur droit en bas à gauche de la pièce est percé dans la pièce plutot qu'à l'exterieur.

Usinage du plateau 1 alpha

Usinage "demo6"

  1. "step over" 2mm (au lieu de 1mm) pour réduire le temps de pocketage
  2. "material allowance" 0mm (au lieu de 0.2mm) pour augmenter la surface "pocketé"
  3. "roll radius" 1mm (au lieu de 2mm) pour réduire la taille des drills "profilés"

Validation des paramètres suivants avec démo 4 :

  1. Vitesse de découpe rapide (tour de la pièce): 400mm / min avec 10k rpm ok
  2. Vitesse de découpe moyenne (petits évidages): 300mm / min avec 10k rpm ok
  3. Vitesse de découpe précise (perçage de trous): 200mm / min avec 10k rpm ok
  4. Découpe "roll radius" à 1mm (< au rayon de la fraise) pour le perçage fait avec l'operation profiling
  5. Pocketage "step opver" à 1.5mm (= au rayon de la fraise)
  6. Vitesse de pocketage : 200mm / min

Tips:

  1. Ralentir la dernière couche de la découpe finale.
  2. Utiliser les finish pass pour diminuer le feed rate : à tester

Usinage du plateau 2

Améliorations:

  1. Perçage de coin à 1mm à l'exterieur du coin

Usinage du footer seul. Utilisation des réglages "demo 6".

25 min + ??? => pièce OK

Usinage du plateau 1

25 min + 3h 15 min

Impression 3D des pièces de la iTopie

Globalement, l'impression fût plutôt laborieuse au début, car la tête d'impression de la foldarap chauffait trop à cause d'un faux contact sur la sonde de température. J'ai fais beaucoup de test pour commencer à apprivoiser la foldarap.

Structure

J'ai pris les pièces dispo sur le projet github ici : https://github.com/lautr3k/RepRap-iTopie

Extrudeur

Concernant l'extrudeur, j'ai choisis celui-ci : https://github.com/lautr3k/Wade-L3K

Enfin, j'ai décidé d'effectuer une maj de l'extrudeur en utilisant une courroie. Ceci est expliqué dans la description de l'extruder sur thingiverse : http://www.thingiverse.com/thing:512338

Logs

L'extrudeur Wade L3K est celui conseillé par l'auteur.

Pièce 1 : "Big gear 43 dents"

La premiere pièce imprimé : la grande roue 42 dents semble parfaite. => Config: layer: 0.25mm ; first: 140% ; perimetre x2 ; top & bot: x3 ; infill 40% ; rectilinéar x2 ; brim: 0mm

Pièce 2 : "Small gear 10 dents"

Elle a nécéssité 3 tentatives => La pièces gondole rapidement et nécéssite d’utiliser un brim => Config retenue: layer: 0.25mm ; first: 140% ; perimetre x3 ; top & bot: x4 ; infill 40% ; rectilinéar x2 ; brim: 3mm

Pièce 3 : "Idler"

Temps éstimé 1 heure.

Tentative 1

Dès la première couche, Le brim se soulève un peu à l’avant de l’imprimante. Retirer le birm ? La pièce extrude très mal un trou censé accueillir un écrou à l’avant de l’imprimante.

Tentative 2

Sans brim avec 0.2mm par couche. Le Infill est plutot moche.

Tentative 3

Réduction des vitesse d'impression Réglage du paramétrage avancé de slicer => utilisation des valeurs par défaut à la place de custom Retour à 0.25mm / layer => Encore un peu d'over-heating ==> Ventillation de l'impression au journal à la mano.

Bien meilleure qualité. Infill beaucoup mieux. Je dois pouvoir réduire à 3 le nombre de perimètre des pièces.


Add-ins

Support de connecteur d'alimentation

J'ai dessiné et imprimé un support pour le connecteur secteur C14 et son interrupteur. le voici :https://github.com/mxbossard/3dPrints/tree/master/power_connector_holder

Impression d'un support pour les connecteurs d'alimentation

Assemblage de la iTopie

Assemblage du cadre

J'ai suivi le guide de montage pour assembler l'imprimante disponible ici : http://www.reprap.org/wiki/ITopie_Build_Manual.

Peinture

Peinture à l'eau random pendant les open atelier du coin. La prochaine fois je testerai peut-être l'aerosol.

Extruder

[TODO] Pour l'extrudeur, j'ai utilisé l'image représentant une vue explosée, disponible sur thingiverse: http://www.thingiverse.com/thing:512338 [IMG]

Alimentation

ref: 12V 30A max J'ai décidé de fixer l'alimentation en dessous de l'imprimante pour gagner minimiser l'encombrement de l'imprimante. L'avenir nous dira si c'était un choix judicieux. J'ai donc fixé le bloc d'alimentation à l'aide de 3 vis dans le cadre.

Câblage

[TODO] Prolongation des fils des moteurs, de l'extrudeur, des thermistors, ... Cette étape est plutôt fastidieuse. Il faut de plus braser des connecteurs "molex" pour connecter tout ce matériel à l’électronique embarqué.

Moteurs

ref: NEMA17 Stepper motor 1.8 degrees step / 4.8 kg/cm Attention pour l'alimentation des moteurs pas à pas. Ceux que j'utilise ont 4 fils. J'ai testé tous les branchements possible sur un moteur, il semble qu'il y en ai plusieurs qui soit fonctionnel. J'ai donc choisis un branchement que j'ai utilisé pour tout les moteurs et qui au final est correcte.

Interrupteurs de fin de course

Les fins de courses des axes X et Y sont cablés pour relier l'entrée du microcontrôleur à la masse lorsque le fin de course est activer (état logique "0"). C'est le comportement par défaut du firmware marlin. Si l'axe n'est pas en fin de course, le circuit reste ouvert, une résistance de "pull up" dans le microcontrôleur force un état logique "1".

Test des capteurs de fin de course via le firmware marlin avec M119 ?

Capteur inductif

ref: LJ12A3-4-Z/BY (INDUCTIVE PROXIMITY SENSOR DETECTION SWITCH PNP DC6-36V 12MM) Doc: [TODO] C'est un capteur actif, je l'alimente en 5V entre les fils bleu(0V) et marron(+5V). Lorsque le capteur est proche de certains matériaux comme l'aluminium (métal de notre bed), la sortie du capteur (fil noir) est à l'état logique "1" (+5V). Dans le cas contraire, la sortie du capteur est à l'état logique "0". Cela est un l'inverse de comportement par défaut du firmware marlin.

Lit chauffant (heated bed)

ref: Heatbed MK3 Alu lien: [TODO] Pour utiliser le capteur inductif, j'ai choisis un lit chauffant aluminium de type MK3. Je l'alimente en 12V, et je lui scotch un thermistance de ref: avec du kapton. Le lit chauffant consomme 120 W, soit 1A à 12V. Je décide donc d'utiliser du fil de section 0.75 mm² pour son alimentation. J'utilise une mince couche de liège pour isoler le lit chauffant du plateau de l'imprimante.

Pour la thermistance du bed : ref: B57560G1104F000 (EPCOS / TDK Thermistances CTN G1560/ 100K/ 1% NTC Thermistor) http://www.mouser.com/ds/2/400/Glass_enc_Sensors__B57560__G560__G1560-525576.pdf

Hot end (le bout qui chauffe le fil plastique)

ref: Kit E3D v6 chez reprap.me doc: [TODO] Attention, il n'est pas si simple de l'assembler. La hot end va atteindre 200°C à 300°C, ce qui pourra faire fondre les pièces plastiques se trouvant aux alentours. Il est nécessaire de la monter correctement pour dissiper les excès de chaleur. Le dissipateur thermique sur lequel est monté le ventilateur ne doit pas être chaud au touché.

Le kit était fourni avec une cartouche résistive chauffante, une thermistance relativement inconnue, un ventilateur pour refroidir le dissipateur.

L'électronique de bord

"Carte mère" minitronics v1.1

[PDF minitronics] [TODO] http://reprap.org/wiki/Minitronics_10

Arduino plugin

Pour programmer la carte minitronics "à la mode Arduino", il faut utiliser un plugin arduino. [TODO] [Détail de l'installation] [Fichiers]

Firmware de test

[TODO]

Configuration du firmware marlin

Axes X, Y, Z

Mes moteurs sont des 200 pas / tour. Le driver XXX de la carte minitronics pilote les moteurs au 1/32 de pas. C'est ce que l'on appel du micro stepping. Nous considérons donc que les moteurs nécessitent d'effectuer 6400 "µpas" (micro pas) (200 * 32) pour réaliser un tour.

Pour les axes X & Y, le moteur entraîne via une roue de 20 dents, une courroie 2mm par dent. Un tour de moteur implique donc un déplacement de la courroie de 40mm. (20 * 2mm = 40mm) Pour effectuer un déplacement de 1 mm sur les axes X & Y, il faut donc tourner le moteur de 160 µpas (6400/40) ou 5 pas.

Pour l'axe Z, le moteur entraîne une vis de pas 8mm. Un tour de moteur implique donc une translation verticale de 8mm. Pour effectuer un déplacement de 1 mm sur l'axe Z, il faut donc tourner le moteur de 800 µpas (6400/8) ou 25 pas.

L'imprimante ayant une précision de 1 µpas, les déplacements minimum qu'elle est capable d'effectuer sont :

  1. sur X & Y: 0.1mm => 16 µpas ; 16,25 µm / pas
  2. sur Z: 0.1mm => 80 µpas ; 1,25 µm / pas

Optimisation possible

On voit qu'une optimisation pourrait être de réduire le nombre de micro pas. Il faut vérifier si cela est intéressant, mais il est possible de conserver une bonne résolution ainsi:

  • sur X & Y
    • pour 100µm par µpas: piloter le moteur au 1/2 de pas (400 µpas / tour pour translater de 40mm).
    • pour 12,5µm / µpas: piloter le moteur ai 1/16 de pas.
  • sur Z
    • pour 40µm par µpas: piloter le moteur au pas complet (200 µpas / tour pour translater de 8mm).
    • pour 10µm par µpas: piloter le moteur au 1/4 de pas.

"Axe E" moteur de l'extrudeur

Cet axe pousse le fil plastique dans l'extrudeur. Pour le réglage, j'ai effectué une règle de 3:

  • J'extrude 10mm de fil
  • Je mesure la distance de filament réellement "consommé" par l'extrudeur, et j'ajuste dans le firmware le nombre de pas nécessaire pour extruder 1mm de filament.
  • Je répète plusieurs fois l'opération en augmentant la distance d'extrusion pour augmenter la précision des mesures.

Thermistance

[TODO]


Fin de course

[TODO]

Régulateur PID

Le PID est un algorithme d'asservissement en boucle fermée. Il est intégré dans le firmware marlin pour contrôler les températures du lit chauffant et de la hot-end. Il permet d'atteindre rapidement la température désirée, et de la conserver de manière précise et robuste. [TODO]

Zone d'impression

[TODO]

Auto bed leveling

[TODO]

Connecteurs

[TODO] J'ai eu du mal à trouver les bon connecteurs à souder pour raccorder tous les équipements (moteur, thermistance, capteurs, ...) à la carte électronique de bord. Il sont pourtant courant, mais difficile à trouver sur les sites marchands. Voila leur référence dans la serie MOLEX 6471:

  • 2 positions femelle: ??? MOLEX 22-01-2025 (2 CRT TERM HOUSING) !!! pas reçu le bon élément !
  • 3 positions femelle: MOLEX 22-01-2035 (3 CRT TERM HOUSING)
  • 4 positions femelle: MOLEX 22-01-2045 (4 CRT TERM HOUSING)
  • connecteurs à sertir: ??? !!! pas reçu le bon élément !

Logiciels

Pronterface

Dispo sur github : git clone https://github.com/kliment/Printrun.git sudo aptitude install build-essential cython libpython2.7-dev python setup.py build_ext --inplace

( peut etre aussi: sudo aptitude install python-wxgtk3.0 python-numpy python-pyglet python-psutil)

Slic3r

Dispo en téléchargement sur http://slic3r.org

Configuration des impressions

Refroidissement (cooling)

Pas de refroidissement sur les 3 premières couches. J'utilise pour le moment le cooling par défaut de Slic3r.

Gcode

Quelques instructions GCode comprises par Marlin.

Start (avant impression)

G1 Z5 F500 ; lift nozzle G28 X Y ; home X & Y axes G29 ; auto bed leveling G1 Z5 F500 ; lift nozzle

End (après impression)

M104 S0 ; turn off extruder temperature M140 S0 ; turn off bed temperature G91 ; set relative coordinates G1 Z20 F500 ; lift nozzle G90 ; set relative coordinates G28 X  ; home X axis G1 Y200 F1000 ; move bed to front M84 ; disable motors