Idiomes

dimecres, 21 d’octubre del 2015

Calibració motors dels eixos, prusa i3 | Calibración de motores de los ejes de la prusa i3

Hola de nou, avui vaig a mostrar com calibrar els motors dels eixos d'una impressora 3D, en concret una prusa i3.

Una vegada s'ha aconseguit que els motors es moguin, el normal és que amb els valors per defecte que es carreguen en el firmware amb el script de Marlin, aquests es moguin uns valors no desitjats, per exemple quan volem moure l'eix X cap a l'esquerra 10 milimetres, aquest es mogui un valor diferent, la qual cosa no ens interessa...

Bé, per realitzar el calibratge es necessita:
  • L'ide Arduino 
  • Un peu de rei o calibre 
  • Pronterface o un altre programari per al control de la impressora 
Amb l'ide Arduino s'obre el fitxer Marlin.pde, llavors s'obren diverses pestanyes, la que ens interessa és la demoninada configuration.h.

En ella, hem de buscar la clau:

DEFAULT_AXIS_STEPS_PER_UNIT {215.12,215.12,8034.69,760*1.1}  

que portarà associats aquests o altres valors(les comes fan de separador i els punts indiquen posició decimal). El primer valor correspon al motor de l'eix X, el segon a l'eix Y, el tercer a l'eix Z i el quart al motor de l'Extrusor.

Els valors indiquen el nombre de passos que deurà moure's cada motor.

A continuació, comencem amb el calibratge, per a això hem de connectar la impressora i tenir comunicació amb ella i poder controlar-la mitjançant algun programari, en el meu cas usaré Pronterface.


Procediment de calibratge

El procediment consisteix a mesurar la distància del carro d'impressió fins a un lateral i a continuació moure el carro 10 milimetres, tornar a mesurar i calcular el que en realitat s'ha mogut mitjançant una simple resta i després calcular el nombre de passos que deuria d'haver-se mogut, mitjançant una regla de tres.

He vist gent que ho calculava amb una excel·lent calculadora, concretament la calculadora a l'enllaç següent:
http://www.mendelmax.com/reprapcalculator.html , lamentablement ja no està disponible, encara que no passa res, amb una simple regla de tres es pot realitzar el càlcul.

Calibrant l'eix X 

Per començar, anem a calibrar l'eix X(és el que porta el carro de l'extrusor), per a això, accionem el motor de l'eix X perquè es mogui el carro a una distància a la qual es pugui mesurar amb el calibre, i mesurem, després de fer el mesurament, en el meu cas, la distància entre un extrem i el carro és de 6 cm exactes.

A continuació, mitjançant Pronterface(o equivalent), ordenem al motor de l'eix X que es mogui 10mm i ara cal tornar a mesurar la distància entre el carro i l'extrem.

El mesurament dóna 8'66 cm o sigui que el carro s'ha mogut 8'66 - 6 = 2'66 cm quan en realitat deberia haverse mogut 1 cm.

Bé, ara mitjançant una regla de tres es pot calcular el nombre de passos equivalents que es deurien d'introduir en el paràmetre de la configuració de Marlin.

Si amb 215'12 passos ha mogut 2'66 cm, quin serà el nombre de passos perquè mogui 1 cm ?

 215'12 --------------- 2'66 aplicant la regla de tres 215'12*1/2'66 = 80'87 passos
      X     --------------- 1

Per tant, el primer valor del paràmetre

DEFAULT_AXIS_STEPS_PER_UNIT {215.12,215.12,8034.69,760*1.1}

, el podem substutir per 80'87, quedant

DEFAULT_AXIS_STEPS_PER_UNIT {80.87,215.12,8034.69,760*1.1}

Ara, es guarda, compila i es carrega de nou el firmware en l'arduino per veure el resultat de la modificació.

Una vegada carregat el script modificat, es torna a repetir el procés de mesurament, comprovant que ara efectivament el carro de l'eix X mou les distàncies demanades.

Calibrant l'eix Y 

L'eix Y, és el que mou el llit calent. Anem a realitzar el mateix procediment, moure el llit a una distància que ens sigui facil mesurar amb el calibre, mesurar i apuntar la mesura, a continuació ordenar al motor de l'eix Y que mogui el llit 10(10 mm) i tornar a mesurar, per comprovar quina distància ha recorregut realment.

La primera distància és de 6'35 cm, ordenem moure el llit 10(1cm) i en mesurar dóna 5'67 cm apliquem la regla de tres:

6'35 - 5'67 = 0'68cm ->distància recorreguda

215'12 --------------- 0'68 amb la regla de tres 215.12*1/0'68 = 316'353 passos
    Y       --------------- 1

Per tant, el segon valor del paràmetre

DEFAULT_AXIS_STEPS_PER_UNIT {80.87,215.12,8034.69,760*1.1}

, el podem substutir per 316'353, quedant

DEFAULT_AXIS_STEPS_PER_UNIT {80.87,316.353,8034.69,760*1.1}

Ara, es guarda, compila i es carrega de nou el firmware en l'arduino per veure el resultat de la modificació.

Ara, des d'on s'habia quedat el llit és a dir, a 5'67 cm de la vora, li tornem a ordenar que es mogui 10(1cm) i ara es queda en 6'53(com podeu endevinar estic movent a un costat i a un altre, el sentit no importa), en fer la diferència, ja podem apreciar que no ha mogut el desitjat, ja que 6'53-5'67=0,86 així que tornem a aplicar la regla de tres:

316'353 --------------- 0'86 aplicant la regla de tres 316'353*1/0'86 = 367'85 passos
     Y        --------------- 1

Per tant, el segon valor del paràmetre

DEFAULT_AXIS_STEPS_PER_UNIT {80.87,316'353,8034.69,760*1.1} 

, el podem substutir per 367'85, quedant

DEFAULT_AXIS_STEPS_PER_UNIT {80.87,367'85,8034.69,760*1.1} 

Es guarda, compila i es carrega de nou el firmware en l'arduino per veure el resultat de la modificació.

Ara, des d'on s'habia quedat el llit és a dir, a 6'53 cm de la vora, li tornem a ordenar que es mogui, però aquesta vegada 20(2cm, ja que com ja hem ajustat alguna cosa, ens sera més facil veure el possible error en una major distància) i ara veiem que es queda en 25'23, per tant en comptes de moure 20mm, ha mogut tan sol 18'7mm

367'85 --------------- 1'87cm aplicant la regla de tres 367'85*2/1'87 = 393'42 passos  
   Y    --------------- 2

Per tant, el segon valor del paràmetre

DEFAULT_AXIS_STEPS_PER_UNIT {80.87,367'85,8034.69,760*1.1}

, el podem substutir per 393'42, quedant

DEFAULT_AXIS_STEPS_PER_UNIT {80.87,393'42,8034.69,760*1.1}

Es guarda, compila i es carrega de nou el firmware en l'arduino per veure el resultat de la modificació.

Ara per a la comprovació, moc el llit perquè es tobe més prop de l'extrem, quedant a 11'8 cm i li tornem a ordenar que es mogui, 20(2cm), després de la qual cosa mesurant de nou dóna 32'3 cm, amb el que ara, en comptes de 20 ha mogut 20'5 cm, com veiem a poc a poc es va ajustant cada vegada més al valor idea, però s'ha passat, així que tornant a mesurar i a moure i mesurar de nou i aplicant la regla de tres, em surt un valor de 381'92 que ja deixo com a definitiu.

Calibrant l'eix Z

L'eix Z és el que porta dos motors i puja o baixa l'eix X sencer.
Aplicarem el mateix procediment, movem l'eix si és necessari i col·loquem el calibre per mesurar.

Medicion eje Z
Medint l'eix Z

La distància a la qual es troba és de 79 i li ordenem que mogui 10, en mesurar obtenim un resultat de 99'1, amb el que ha mogut 20'1 quan esperavem moure 10.

Apliquem la regla de tres:

8034'69 --------------- 2'01cm aplicant la regla de tres 8034'69*1/2'01 = 3997'36 passos
     Z      --------------- 1

Per tant, el tercer valor del paràmetre

DEFAULT_AXIS_STEPS_PER_UNIT {80.87, 381'92,8034.69,760*1.1}

, el podem substutir per 3997'36, quedant

DEFAULT_AXIS_STEPS_PER_UNIT {80.87,381'92,3997.36,760*1.1}

Es guarda, compila i es carrega de nou el firmware en l'arduino per veure el resultat de la modificació.


I funciona correctament.

Un altre dia calibrem l'extrusor.

Hola de nuevo, hoy voy a mostrar como calibrar los motores de los ejes de una impresora 3D, en concreto una prusa i3.

Una vez se ha conseguido que los motores se muevan, lo normal es que con los valores por defecto, que se cargan en el firmware con el script de Marlin, los motores se muevan unos valores no deseados.

Por ejemplo cuando queremos mover el eje X hacia la izquierda 10 milimetros, este se mueva un valor diferente, lo que no interesa...

Bien, para realizar la calibración se necesita:
  • El ide Arduino
  • Un pie de rey o calibre 
  • Pronterface u otro software para el control de la impresora
Con el ide Arduino se abre el fichero Marlin.pde, entonces se abren varias pestañas, la que nos interesa es la demoninada configuration.h.

En ella, debemos buscar la clave:

DEFAULT_AXIS_STEPS_PER_UNIT   {215.12,215.12,8034.69,760*1.1}

que llevará asociados estos u otros valores(las comas hacen de separador y los puntos indican posición decimal). El primer valor corresponde al motor del eje X, el segundo al eje Y, el tercero al eje Z y el cuarto al motor del Extrusor. Los valores indican el número de pasos que debera moverse cada motor. A continuación, empezamos con la calibración, para ello debemos conectar la impresora y tener comunicación con ella y poder controlarla mediante algún software, en mi caso usaré Pronterface.

Procedimiento de calibración

El procedimiento consiste en medir la distancia del carro de impresión hasta un lateral y a continuación mover el carro 10 milimetros, volver a medir y calcular lo que en realidad se ha movido mediante una simple resta y luego calcular el número de pasos que deberia de haberse movido, mediante una regla de tres.

He visto gente que lo hacia con una excelente calculadora, concretamente la calculadora en el enlace siguiente:http://www.mendelmax.com/RepRapCalculator.html , lamentablemente ya no está disponible, aunque no pasa nada, con una simple regla de tres se puede realizar el cálculo.

Calibrando el eje X

Para empezar, vamos a calibrar el eje X(es el que lleva el carro del extrusor), para ello, accionamos el motor del eje X para que se mueva el carro a una distancia a la que se pueda medir con el calibre, y medimos, tras hacer la medición, la distancia entre un extremo y el carro es de 6 cm exactos. A continuación, mediante Pronterface(o equivalente), ordenamos al motor del eje X que se mueva 10mm y ahora hay que volver a medir la distancia entre el carro y el extremo. La medición da 8'66 cm o sea que el carro se ha movido 8'66 - 6 = 2'66 cm cuando en realidad deberia haverse movido 1 cm. Bien, ahora mediante una regla de tres se puede calcular el número de pasos equivalentes que se deberian introducir en el parámetro de la configuración de Marlin. Si con 215'12 pasos ha movido 2'66 cm, ¿cual será el valor de pasos para que mueva 1 cm ?   215'12 --------------- 2'66    aplicando la regla de tres 215.12*1/2'66 = 80'87 pasos    X     --------------- 1 Por tanto, el primer valor del parámetro

DEFAULT_AXIS_STEPS_PER_UNIT   {215.12,215.12,8034.69,760*1.1}

, lo podemos substutir por 80'87, quedando  

DEFAULT_AXIS_STEPS_PER_UNIT   {80.87,215.12,8034.69,760*1.1}  

Ahora, se guarda, compila y se carga de nuevo el firmware en el arduino para ver el resultado de la modificación. Una vez cargado el script modificado, se vuelve a repetir el proceso de medición, comprobando que ahora efectivamente el carro del eje X mueve las distancias pedidas.

Calibrando el eje Y

 El eje Y, es el que mueve la cama caliente. Vamos a realizar el mismo procedimiento, mover la cama a una distancia que nos sea facil medir con el calibre, medir y apuntar la medida, a continuación ordenar al motor del eje Y que mueva la cama 10(10 mm) y volver a medir, para comprobar que distancia ha recorrido realmente.

La primera distancia es de 6'35 cm, ordenamos mover la cama 10(1cm) y al medir da 5'67 cm aplicamos la regla de tres:

6'35 - 5'67 = 0'68  cm ha recorrido, uando se esperaba 1cm

215'12 --------------- 0'68    aplicando la regla de tres 215.12*1/0'68 = 316'353 pasos
     Y      --------------- 1

Por tanto, el segundo valor del parámetro  

DEFAULT_AXIS_STEPS_PER_UNIT   {80.87,215.12,8034.69,760*1.1}

, lo podemos substutir por 316'353, quedando  

DEFAULT_AXIS_STEPS_PER_UNIT   {80.87,316.353,8034.69,760*1.1}

Ahora, se guarda, compila y se carga de nuevo el firmware en el arduino para ver el resultado de la modificación. Ahora, desde donde se habia quedado la cama es decir, a 5'67 cm del borde, le volvemos a ordenar que se mueva 10(1cm) y ahora se queda en 6'53(como podeis adivinar estoy moviendo a un lado y a otro, el sentido no importa), al hacer la diferencia, ya podemos apreciar que no se ha movido lo deseado, ya que 6'53-5'67=0,86 cm, así que volvemos a aplicar la regla de tres:

316'353 --------------- 0'86    aplicando la regla de tres  316'353*1/0'86 = 367'85 pasos    
      Y       --------------- 1

Por tanto, el segundo valor del parámetro

DEFAULT_AXIS_STEPS_PER_UNIT   {80.87, 316'353,8034.69,760*1.1}

, lo podemos substutir por 367'85, quedando  

DEFAULT_AXIS_STEPS_PER_UNIT   {80.87,367'85,8034.69,760*1.1}

Se guarda, compila y se carga de nuevo el firmware en el arduino para ver el resultado de la modificación. Ahora, desde donde se habia quedado la cama es decir, a 6'53 cm del borde, le volvemos a ordenar que se mueva, pero esta vez 20(2cm, ya que como ya hemos ajustado algo, nos sera más facil ver el posible error en una mayor distancia) y ahora vemos que se queda en 25'23, por tanto en vez de mover 20mm, ha movido tan solo 18'7mm

367'85 --------------- 1'87cm    aplicando la regla de tres  367'85*2/1'87 = 393'42 pasos       
   Y      --------------- 2

Por tanto, el segundo valor del parámetro    

DEFAULT_AXIS_STEPS_PER_UNIT   {80.87, 367'85,8034.69,760*1.1}

, lo podemos substutir por 393'42, quedando  

DEFAULT_AXIS_STEPS_PER_UNIT   {80.87,393'42,8034.69,760*1.1}

Se guarda, compila y se carga de nuevo el firmware en el arduino para ver el resultado de la modificación.

Ahora para la comprobación, muevo la cama para que este más cerca del extremo, quedando a 11'8 cm y le volvemos a ordenar que se mueva, 20(2cm), tras lo cual midiendo de nuevo da 32'3 cm, con lo que ahora, en vez de 20 ha movido 20'5 cm, como vemos poco a poco se va ajustando cada vez más al valor idea, pero se ha pasado, así que volviendo a medir y a mover  y medir de nuevo me sale un valor de 381'92 que ya dejo como definitivo.  

Calibrando el eje Z

El eje Z es el que lleva dos motores y sube o baja el eje X entero. Aplicamos el mismo procedimiento, movemos el eje si es necesario y colocamos el calibre para medir.
Medicion eje Z
Midiendo eje Z
La distancia a la que se encuentra es de 79 y le ordenamos que mueva 10, al medir obtenemos un resultado de 99'1, con lo que ha movido 20'1 cuando esperabamos mover 10. Aplicamos la regla de tres:

8034'69 --------------- 2'01cm    aplicando la regla de tres  8034'69*1/2'01 = 3997'36 pasos
      Z     --------------- 1

Por tanto, el tercer valor del parámetro

DEFAULT_AXIS_STEPS_PER_UNIT   {80.87,381'92,8034.69,760*1.1}

, lo podemos substutir por 3997'36, quedando  

DEFAULT_AXIS_STEPS_PER_UNIT   {80.87,381'92,3997.36,760*1.1}

Se guarda, compila y se carga de nuevo el firmware en el arduino para ver el resultado de la modificación.


Y comprobamos que funcione correctamente.

Otro dia calibramos el extrusor.;-)

Cap comentari:

Publica un comentari a l'entrada