Dans un article précédent , il a été montré comment calibrer l'imprimante delta en mode manuel. Mais en raison de la complexité et de la complexité des paramètres, il a été décidé de procéder à un étalonnage automatique. La version finale étant au stade des tests et de la fabrication, nous souhaitons toujours simplifier la vie de nos clients et de tous ceux qui se sont fait des imprimantes selon ce schéma. Ensuite, l'une des façons de mettre en œuvre l'étalonnage automatique sera considérée.Il existe de nombreuses approches, l'installation d'une sonde rétractable sur un éjecteur avec un micro-interrupteur, des capteurs FSR, un capteur Hall, etc. Mais ces systèmes ont un inconvénient important - ils mesurent la distance non pas à la buse, mais directement au capteur, plus, dans certains cas, l'alignement peut échouer (si le capteur n'est pas situé à la place de la buse, le calcul de la géométrie peut être violé. Sans parler de la précision) .L'option idéale est de fixer le toucher de la buse elle-même sur la table. Et ici, vous pouvez aller de deux façons:- Créez un contact électrique entre le HotEnd et l'effecteur, afin que le HotEnd soit mobile et ouvre (ou ferme) le contact lorsque vous cliquez dessus.
- Créez un contact électrique entre la buse métallique et la table.
La première option est plus compliquée dans la fabrication et la stabilité du travail, mais avec une conception appropriée donnera un résultat stable permanent, sans mouvements corporels supplémentaires.La deuxième option est moins pratique à utiliser, mais elle est simple à mettre en œuvre, et le plus souvent, l'étalonnage est rarement requis et peut être effectué selon les besoins.Nous parlerons de la deuxième méthode:
De l'outil dont nous avons besoin:- Ruban adhésif en aluminium (en fait, c'est du papier d'aluminium sur une base adhésive, et pas toutes sortes de rubans de renforcement là-bas)
- «Crocodile» - pour connecter l'un des contacts au boîtier métallique à extrémité chaude, en principe, vous pouvez le faire avec n'importe quel trombone, ou fixer l'extrémité du fil en le vissant ou en le soudant (sévèrement mais efficacement)
- Pince à linge de bureau
- Pin pin 2.54 pour connecter notre capteur improvisé à la carte RAMPS 1.4 (ou au connecteur EndStop correspondant sur votre carte). Peu de gens ont un sertissage pour monter de tels blocs, mais vous pouvez trouver un bloc similaire dans l'unité informatique en le retirant du «tweeter» ou des boutons.
- Accessoires de soudage, il est souhaitable d'avoir un flux actif et un fer à souder moins puissant.
- Fils, environ un mètre.
La façon la plus simple d'appliquer une couche conductrice de courant sur notre plan de travail (verre) était un autocollant de ruban d'aluminium, mais il est important de le coller uniformément et de le lisser afin qu'il y ait un contact électrique entre les bandes de ruban, il est vérifié élémentairement avec un multimètre pour la «sonnerie».
De plus, pour commuter, vous devez faire un fil, comme il a été écrit plus tôt, presser l'une des extrémités dans un bloc 2,54 (ou y souder), les deux autres extrémités seront fixées sur le radiateur du HotEnd et sur la table avec du ruban d'aluminium. Afin de ramper vers le radiateur, nous prenons un crocodile ordinaire et soudons l'une des extrémités du fil, je conseille d'utiliser de l'acide pour faciliter le soudage, bien que je l'ai géré avec un bon réchauffement et de la colophane ordinaire, mais la deuxième extrémité peut également être soudée au crocodile, mais dans ce cas, il y a une chance d'endommager le ruban adhésif une fois fixé, et le crocodile devrait être assez grand. Nous avons agi comme suit: prenez un trombone et nettoyez-le de la peinture (de préférence de tous les côtés). Le point important ici estque nous allons souder un fil de cuivre sur une pince à linge métallique avec une soudure ordinaire (PIC 61) et pour une soudure réussie tout de même, nous avons besoin d'un flux actif, nous avons utilisé de l'acide orthophosphorique ordinaire (acide de soudure).
Voici des photos de la connexion à la carte et à l'imprimante elle-même. Les extrémités des fils de notre imprimante sont connectées au Z-max. Et dans le firmware, il est nécessaire d'indiquer quel est l'état normal du fin de course (notre capteur, fermé ou ouvert). Avec cette approche, le capteur est ouvert dans des conditions normales.


Le micrologiciel avec calibrage automatique pour les imprimantes delta peut être pris à partir d'ici: Micrologiciel Marlin Delta avec mises à jour d'autocalibration. Paramètres dumicrologiciel RichCattell :Cohfiguration.h
#define AUTOCALIBRATION_PRECISION 0.03
#define BED_DIAMETER 170
const bool X_MIN_ENDSTOP_INVERTING = false;
const bool Y_MIN_ENDSTOP_INVERTING = false;
const bool Z_MIN_ENDSTOP_INVERTING = false;
const bool X_MAX_ENDSTOP_INVERTING = false;
const bool Y_MAX_ENDSTOP_INVERTING = false;
const bool Z_MAX_ENDSTOP_INVERTING = true;
Après avoir connecté les fils et réglé le micrologiciel de l'imprimante, vous devez démarrer l'étalonnage lui-même. Et voici un point très important que l'étalonnage doit être fait à partir d'un ordinateur, car L'imprimante elle-même n'effectue pas correctement cette opération. Apparemment, la mémoire de l'appareil est insuffisante et l'étalonnage se termine quelque part au milieu.De plus, l'une des caractéristiques de l'étalonnage automatique est que l'algorithme sélectionne séquentiellement les paramètres de géométrie, ce qui peut prendre un temps considérable, surtout si la géométrie est gravement cassée ou si les paramètres initiaux ne sont pas correctement définis (par exemple, la longueur des diagonales est de 150 mm, et en fait 200 mm, et l'algorithme avec l'étape donnée répétera à nouveau l'étalonnage à chaque itération, à la fin il sera étalonné, mais cela prendra un temps inconcevable)Pour démarrer le calibrage automatique, connectez-vous à l'imprimante via USB et utilisez le programme pronterface. Il existe trois types d'étalonnage:- La commande G30 - étalonne les décalages - définit essentiellement la hauteur des fins de course.
- Équipe G30A - calibre toute la géométrie de l'imprimante, la longueur des diagonales, l'indentation des interrupteurs de fin de course (hauteur) et la courbure de la géométrie en fonction de la «tour» - tours (très probablement, l'imprimante prend en charge différentes hauteurs)
- Team G29 - le soi-disant AutoBedLevel - calibrage automatique de la courbure de la table. Sur les imprimantes delta, cela fonctionne plus correctement et démarre immédiatement avant le début de l'impression dans le g-code initial.
Par conséquent, les deux derniers sont les plus pertinents.Voici une liste de la console d'imprimante sans étalonnage initial et redémarrage.Principe d'étalonnage court:- Vérification / ajustement des décalages de fin de course
- Vérifier / ajuster le rayon delta
- Vérification des erreurs de géométrie de la tour
- Sélection de la longueur diagonale> Vérification de la géométrie de la tour> Rapprochement des décalages d'extrémité. Lorsque les deux premiers paramètres changent, le troisième est sélectionné et le cycle est répété jusqu'à ce que les trois paramètres soient satisfaits.
Liste des étalonnages initiaux - les itérations de 4 à 17 sont coupées depuis il répète l'actionConnecting...
start
Printer is now online.
echo:Marlin 1.0.0
echo: Last Updated: Jul 31 2015 11:09:21 | Author: (RichCattell, Prism Mini)
Compiled: Jul 31 2015
echo: Free Memory: 1753 PlannerBufferBytes: 1232
echo:Hardcoded Default Settings Loaded
echo:Steps per unit:
echo: M92 X100.00 Y100.00 Z100.00 E156.00
echo:Maximum feedrates (mm/s):
echo: M203 X200.00 Y200.00 Z200.00 E200.00
echo:Maximum Acceleration (mm/s2):
echo: M201 X9000 Y9000 Z9000 E9000
echo:Acceleration: S=acceleration, T=retract acceleration
echo: M204 S3000.00 T3000.00
echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s), Z=maximum Z jerk (mm/s), E=maximum E jerk (mm/s)
echo: M205 S0.00 T0.00 B20000 X20.00 Z20.00 E20.00
echo:Home offset (mm):
echo: M206 X0.00 Y0.00 Z0.00
echo:Delta Geometry adjustment:
echo: M666 A0.000 B0.000 C0.000 I0.000 J0.000 K0.000 U0.000 V0.000 W0.000 R66.00 D154.00 H230.00
echo:Endstop Offsets:
echo: M666 X0.00 Y0.00 Z0.00
echo:Z-Probe Offset:
echo: M666 P X0.00 Y0.00 Z0.00
echo:PID settings:
echo: M301 P15.09 I0.75 D76.13
echo:SD init fail
Setting hotend temperature to 190.000000 degrees Celsius.
Setting bed temperature to 70.000000 degrees Celsius.
>>> g30 a
SENDING:G30 A
Starting Auto Calibration..
Calibration precision: +/-0.100mm
| Z-Tower Endstop Offsets
| -7.8500 X:0.00 Y:0.00 Z:0.00
| -5.2400 -8.5900 Tower Offsets
| -6.8400 A:0.00 b:0.00 C:0.00
| -3.7200 -8.0400 I:0.00 J:0.00 K:0.00
| -5.6900 Delta Radius: 66.0000
| X-Tower Y-Tower Diagonal Rod: 154.0000
Iteration: 1
Checking/Adjusting endstop offsets
x:-3.6800 (adj:-3.6800) y:-7.9600 (adj:-7.9600) z:-7.7700 (adj:-7.7700)
X=ERROR Y=ERROR Z=ERROR
x:0.7500 (adj:-2.9300) y:-0.1900 (adj:-8.1500) z:-0.2200 (adj:-7.9900)
X=ERROR Y=ERROR Z=ERROR
x:0.1600 (adj:-2.7700) y:-0.0800 (adj:-8.2300) z:0.0500 (adj:-7.9400)
X=ERROR Y=OK Z=OK
x:0.0300 (adj:-2.7400) y:-0.0200 (adj:-8.2500) z:0.0100 (adj:-7.9300)
X=OK Y=OK Z=OK
| Z-Tower Endstop Offsets
| -0.0300 X:-2.74 Y:-8.25 Z:-7.93
| -0.0200 0.1500 Tower Offsets
| -0.2800 A:0.00 b:0.00 C:0.00
| -0.0300 -0.0300 I:0.00 J:0.00 K:0.00
| -0.1900 Delta Radius: 66.0000
| X-Tower Y-Tower Diagonal Rod: 154.0000
Checking delta radius
Adjusting Delta Radius
x:-0.0600 (adj:-2.8000) y:-0.0300 (adj:-8.2800) z:-0.0500 (adj:-7.9800)
X=OK Y=OK Z=OK
c: -0.2000 delta radius:66.0000 prec:0.010 tries:0
done:false
x:0.0700 (adj:-2.7300) y:0.0900 (adj:-8.1900) z:0.0300 (adj:-7.9500)
X=OK Y=OK Z=OK
c: -0.2100 delta radius:66.2000 prec:0.010 tries:0
done:false
x:0.0600 (adj:-2.6700) y:0.0300 (adj:-8.1600) z:0.0600 (adj:-7.8900)
X=OK Y=OK Z=OK
c: -0.1500 delta radius:66.4000 prec:0.010 tries:0
done:false
x:0.0400 (adj:-2.6300) y:-0.0100 (adj:-8.1700) z:0.0300 (adj:-7.8600)
X=OK Y=OK Z=OK
c: -0.0800 delta radius:66.6000 prec:0.010 tries:1
done:false
x:0.0300 (adj:-2.6000) y:0.0400 (adj:-8.1300) z:0.0600 (adj:-7.8000)
X=OK Y=OK Z=OK
c: 0.0200 delta radius:66.8000 prec:0.010 tries:2
done:false
x:-0.0100 (adj:-2.6100) y:0.0200 (adj:-8.1100) z:-0.0200 (adj:-7.8200)
X=OK Y=OK Z=OK
c: -0.0900 delta radius:66.7000 prec:0.010 tries:3
done:false
x:-0.0000 (adj:-2.6100) y:-0.0000 (adj:-8.1100) z:-0.0000 (adj:-7.8200)
X=OK Y=OK Z=OK
c: -0.0500 delta radius:66.7500 prec:0.020 tries:0
done:false
x:0.0500 (adj:-2.5600) y:0.0100 (adj:-8.1000) z:0.0300 (adj:-7.7900)
X=OK Y=OK Z=OK
c: -0.0400 delta radius:66.8000 prec:0.020 tries:1
done:false
x:-0.0100 (adj:-2.5700) y:-0.0500 (adj:-8.1500) z:-0.0400 (adj:-7.8300)
X=OK Y=OK Z=OK
c: 0.0100 delta radius:66.8500 prec:0.020 tries:1
done:true
Iteration: 2
Checking/Adjusting endstop offsets
x:-0.0000 (adj:-2.5700) y:0.0300 (adj:-8.1200) z:0.0300 (adj:-7.8000)
X=OK Y=OK Z=OK
| Z-Tower Endstop Offsets
| 0.0100 X:-2.57 Y:-8.12 Z:-7.80
| 0.0100 0.1700 Tower Offsets
| 0.0000 A:0.00 b:0.00 C:0.00
| 0.0200 -0.0200 I:0.00 J:0.00 K:0.00
| -0.1900 Delta Radius: 66.8500
| X-Tower Y-Tower Diagonal Rod: 154.0000
Checking for tower geometry errors..
x_diff = 0.15000
y_diff = 0.03000
z_diff = 0.20000
high_diff = 0.20000
xy_equal = false
xz_equal = true
yz_equal = false
Opp Range = 0.36000
t1:Err t2:OK t3:Err
Tower geometry OK
Checking DiagRod Length
target:0.0033 c:0.0000 adj:0.00000
| Z-Tower Endstop Offsets
| -0.0000 X:-2.57 Y:-8.12 Z:-7.80
| 0.0400 0.2000 Tower Offsets
| -0.0000 A:0.00 b:0.00 C:0.00
| -0.0100 -0.0000 I:0.00 J:0.00 K:0.00
| -0.2000 Delta Radius: 66.8500
| X-Tower Y-Tower Diagonal Rod: 154.0000
Iteration: 3
Checking/Adjusting endstop offsets
x:-0.0100 (adj:-2.5800) y:0.0300 (adj:-8.0900) z:0.0300 (adj:-7.7700)
X=OK Y=OK Z=OK
| Z-Tower Endstop Offsets
| -0.0300 X:-2.58 Y:-8.09 Z:-7.77
| 0.0300 0.1400 Tower Offsets
| -0.0200 A:0.00 b:0.00 C:0.00
| 0.0100 -0.0400 I:0.00 J:0.00 K:0.00
| -0.2200 Delta Radius: 66.8500
| X-Tower Y-Tower Diagonal Rod: 154.0000
Checking for tower geometry errors..
x_diff = 0.13000
y_diff = 0.07000
z_diff = 0.19000
high_diff = 0.19000
xy_equal = true
xz_equal = true
yz_equal = false
Opp Range = 0.36000
t1:Err t2:OK t3:Err
Tower geometry OK
Checking DiagRod Length
target:-0.0033 c:-0.0200 adj:-0.20000
target:0.2133 c:0.2000 adj:-0.20000
target:0.4267 c:0.4000 adj:-0.20000
target:0.6233 c:0.6200 adj:0.00000
Diag Rod Length changed .. Homing Endstops
| Z-Tower Endstop Offsets
| -0.4600 X:-2.58 Y:-8.09 Z:-7.77
| -0.4000 -0.2900 Tower Offsets
| -0.4600 A:0.00 b:0.00 C:0.00
| -0.4500 -0.5200 I:0.00 J:0.00 K:0.00
| -0.6900 Delta Radius: 66.8500
| X-Tower Y-Tower Diagonal Rod: 153.4000
Iteration: 17
Checking/Adjusting endstop offsets
x:0.0100 (adj:-3.0300) y:0.0300 (adj:-8.5000) z:0.0100 (adj:-8.2300)
X=OK Y=OK Z=OK
| Z-Tower Endstop Offsets
| -0.0300 X:-3.03 Y:-8.50 Z:-8.23
| 0.0400 0.1200 Tower Offsets
| -0.0300 A:0.00 b:0.00 C:0.00
| 0.0100 -0.0600 I:0.00 J:0.00 K:0.00
| -0.2600 Delta Radius: 66.8500
| X-Tower Y-Tower Diagonal Rod: 153.3453
Checking for tower geometry errors..
x_diff = 0.11000
y_diff = 0.10000
z_diff = 0.23000
high_diff = 0.23000
xy_equal = true
xz_equal = false
yz_equal = false
Opp Range = 0.38000
Tower 3 has largest error
t1:Err t2:Err t3:Err
Tower3 Error: Adjusting
tower: -0.0400 opptower:-0.2700 tower radius adj:0.0000
done:false
x:0.0000 (adj:-3.0300) y:0.0000 (adj:-8.5000) z:-0.0600 (adj:-8.2900)
X=OK Y=OK Z=OK
tower: -0.0700 opptower:-0.1300 tower radius adj:-1.0000
done:false
x:-0.0600 (adj:-3.0900) y:-0.0900 (adj:-8.5900) z:-0.0900 (adj:-8.3800)
X=OK Y=OK Z=OK
tower: -0.0900 opptower:0.0900 tower radius adj:-2.0000
done:false
x:-0.0500 (adj:-3.1400) y:-0.0400 (adj:-8.6300) z:-0.0700 (adj:-8.4500)
X=OK Y=OK Z=OK
tower: 0.0400 opptower:0.0500 tower radius adj:-1.5000
done:true
Tower Postions changed .. Homing Endstops
| Z-Tower Endstop Offsets
| 0.6400 X:-3.14 Y:-8.63 Z:-8.45
| 0.3300 0.4500 Tower Offsets
| 0.0900 A:0.00 b:0.00 C:0.00
| 0.0900 0.0100 I:0.00 J:0.00 K:-1.50
| -0.0200 Delta Radius: 66.8500
| X-Tower Y-Tower Diagonal Rod: 153.3453
Iteration: 18
Checking/Adjusting endstop offsets
x:0.1000 (adj:-3.0400) y:0.0600 (adj:-8.5700) z:0.6500 (adj:-7.8000)
X=OK Y=OK Z=ERROR
x:-0.0500 (adj:-3.0900) y:-0.0400 (adj:-8.6100) z:0.0600 (adj:-7.7400)
X=OK Y=OK Z=OK
| Z-Tower Endstop Offsets
| -0.0000 X:-3.09 Y:-8.61 Z:-7.74
| -0.0600 0.0200 Tower Offsets
| -0.1100 A:0.00 b:0.00 C:0.00
| -0.0000 -0.0700 I:0.00 J:0.00 K:-1.50
| 0.0200 Delta Radius: 66.8500
| X-Tower Y-Tower Diagonal Rod: 153.3453
Checking delta radius
Adjusting Delta Radius
x:-0.0200 (adj:-3.1100) y:-0.0300 (adj:-8.6400) z:0.0200 (adj:-7.7200)
X=OK Y=OK Z=OK
c: -0.1100 delta radius:66.8500 prec:0.010 tries:0
done:false
x:0.0500 (adj:-3.0600) y:0.0400 (adj:-8.6000) z:0.0100 (adj:-7.7100)
X=OK Y=OK Z=OK
c: -0.0400 delta radius:67.0500 prec:0.010 tries:1
done:false
x:0.0400 (adj:-3.0200) y:0.0800 (adj:-8.5200) z:0.0600 (adj:-7.6500)
X=OK Y=OK Z=OK
c: -0.0000 delta radius:67.2500 prec:0.010 tries:1
done:true
Iteration: 19
Checking/Adjusting endstop offsets
x:-0.0000 (adj:-3.0200) y:-0.0200 (adj:-8.5400) z:0.0100 (adj:-7.6400)
X=OK Y=OK Z=OK
| Z-Tower Endstop Offsets
| -0.0200 X:-3.02 Y:-8.54 Z:-7.64
| -0.0600 0.0200 Tower Offsets
| 0.0000 A:0.00 b:0.00 C:0.00
| -0.0100 -0.0300 I:0.00 J:0.00 K:-1.50
| 0.0200 Delta Radius: 67.2500
| X-Tower Y-Tower Diagonal Rod: 153.3453
Autocalibration Complete
SENDING:M500
echo:Settings Stored
Liste complète de recalibrageSENDING:G30 A
Starting Auto Calibration..
Calibration precision: +/-0.100mm
| Z-Tower Endstop Offsets
| -0.1800 X:-3.02 Y:-8.54 Z:-7.64
| -0.3000 -0.1600 Tower Offsets
| -0.2200 A:0.00 b:0.00 C:0.00
| -0.2200 -0.2000 I:0.00 J:0.00 K:-1.50
| -0.1500 Delta Radius: 67.2500
| X-Tower Y-Tower Diagonal Rod: 153.3453
Iteration: 1
Checking/Adjusting endstop offsets
x:-0.2100 (adj:-3.2300) y:-0.2000 (adj:-8.7400) z:-0.1700 (adj:-7.8100)
X=ERROR Y=ERROR Z=ERROR
x:0.0100 (adj:-3.2200) y:0.0100 (adj:-8.7300) z:-0.0200 (adj:-7.8300)
X=OK Y=OK Z=OK
| Z-Tower Endstop Offsets
| 0.0200 X:-3.22 Y:-8.73 Z:-7.83
| -0.1000 0.0300 Tower Offsets
| 0.0000 A:0.00 b:0.00 C:0.00
| -0.0200 -0.0300 I:0.00 J:0.00 K:-1.50
| 0.0100 Delta Radius: 67.2500
| X-Tower Y-Tower Diagonal Rod: 153.3453
Autocalibration Complete