Por fin monte un sensor inductivo para auto bed leveling



  • Me llegó el sensor hace unos días y no había tenido tiempo hasta ayer para montarlo.


    Después de pegarme varias horas con el diseño de un acople para montarlo lo imprimí y me prepare para configurarlo. Otros que había visto por ahí no me convencían por su escasa rigidez.
    Así que hice éste:

    Podéis apreciar que a mitad de impresión la paro y bajo un par de mm la esquina derecha de la cama y vuelvo a iniciar otra impresión y la impresora se "autocalibra".

    En un comentario posterior pongo el software implementado, echarle un vistazo más abajo

    Un saludo 



  • Este hilo necesita fotos jejej.



  • Si por favor, me llega un sensor de 1-10mm el jueves y tengo una chapa de aluminio preparada, me vendria muy bien losn esquemas del puenteo con el conector del final de carerra del z ya que yo tambien quiero dejar los dos



  • A mi tambien me pica la curiosidad por ver como funciona. ¿Salen muy caros esos sensores?




  • Muromberg dijo:
    A mi tambien me pica la curiosidad por ver como funciona. ¿Salen muy caros esos sensores?

    La friolera de 3.99 dolares, aquí lo compré yo:

    http://www.dx.com/p/lj12a3-4-z-bx-inductive-proximity-switch-black-silver-dc-6-36v-100cm-cable-228309i

    Por cierto siento no haber podido seguir hoy con la explicación, a ver si mañana puedo...



  • Gastate unos pocos euros mas y ve a por uno que detecte 1-10mm, si mas adelante vas a comprar la ampliacion de cama te vendra bien ya que el cristal es de 5 milimetrazos



  • Otra opción es poner un diodo en el pin de señal, así no es necesario realizar el divisor de tensión. 



  • A ver, creo ver que la idea es sustituir o dejar en segundo plano el final de carrera de z, pero creo que eso no es autoleveling, ¿verdad? ¿O sí?
    Es ideal cuando la cama está totalmente horizontal, pero digamos que eso no comprende desniveles de la cama, simplemente baja hasta que la encuentra.
    El software que he visto (lo típico del servo) lo que hace es recorrer toda la cama el extrusor solito y luego al imprimir aunque esté torcida, al moverse el extrusor también se mueve Z.
    Por lo demás es genial, gran idea, puede que yo también me anime con un sensor capacitivo, para no tener que poner aluminio.



  • En una base plana no hace falta recorrerla para saber su inclinación con 4 medidas en las esquinas con este sensor sabe la inclinación de la cama y la corrige. Si me apuras con tres medidas tambien podrias



  • Lo que hace el sensor es coger un determinado número de puntos para saber que inclinación tiene el plano de la base con referencia al extrusor. Como dice McV, con tener tres puntos ya tienes un plano, pero es bueno coger algunos más para tenerlo bien definido.



  • He actualizado un poco el hilo en el comentario inicial, pero no se como subir las fotos correctamente.. que torpe soy

    En breve pondré el video y terminaré la explicación

    Un saludo



  • Líneas de Software añadidas para el seguro de final de carrera:

    Sin abrir el IDE Arduino y para la versión 1.3.1 de marlin hephestos:
    Debemos asignar un nuevo pin de funcionamiento, con cualquier editor de texto plano (yo uso notepad++)
    editar el archivo pins.h de la carpeta del firmware y poner en las primeras lineas, por ejemplo después de
    #define DIGIPOTSS_PIN -1
    En la ínea 15
    añadir:
    #define KILL_PIN2 57

    Cerrar y guardar los cambios.

    Ahora abrimos el IDE Arduino y abrimos nuestro firmware a modificar, vamos al marlin_main

    Buscar lo siguiente:
    void setup_killpin()
    {
      #if defined(KILL_PIN) && KILL_PIN > -1
        pinMode(KILL_PIN,INPUT);
        WRITE(KILL_PIN,HIGH);
      #endif
    }

    justo después de éste codigo añadir:

    void setup_killpin2()
    {
      #if defined(KILL_PIN2) && KILL_PIN2 > -1
        pinMode(KILL_PIN2,INPUT);
        WRITE(KILL_PIN2,HIGH);
      #endif
    }

    Ahora buscar estas líneas:
     #if defined(KILL_PIN) && KILL_PIN > -1
        if( 0 == READ(KILL_PIN) )
          kill();
      #endif

    Y justo debajo añadir estas:

      #if defined(KILL_PIN2) && KILL_PIN2 > -1
        if( 0 == READ(KILL_PIN2) )
          kill();
      #endif

    Guardar los cambios y meter el firmware en la impresora y funcionará el final de carrera. Lo hará como si pulsarais el boton de "pánico" y parará la impresora inmediatamente. 

    Os aconsejo encarecidamente que lo hagáis, en varias ocasiones de forma sorpresiva, debido a bugs del firmware, a un pegote de plástico o a que alguién accidentalmente pulse en el LCD el auto level, el sensor se puede quedar fuera de la cama y al no haber un final de carrera el eje Z no parará de bajar.


  • Si señor Rafael, es muy buena idea. Veo que le has puesto papel de aluminio. Si lanzas varias veces el proceso de medir las distancias, ¿siempre da el mismo valor? No se si el papel puede tener algo de tolerancia en el movimiento.



  • sgruben dijo:
    Si señor Rafael, es muy buena idea. Veo que le has puesto papel de aluminio. Si lanzas varias veces el proceso de medir las distancias, ¿siempre da el mismo valor? No se si el papel puede tener algo de tolerancia en el movimiento.
    Me dá unas decimas de error entre medidas, del orden de 10 decimas.
    Tengo que decir que intenté hacerlo con una plancha de acero inoxidable y misterios de la física el sensor detectaba mucho más tarde al acero que al papel de aluminio, con lo cual y lo ajustado del sensor (4mm) no me daba para poner el cristal como base de impresión.
    No obstante la tolerancia del sensor con el acero era muy similar a la del papel de aluminio (supongo que tendrá que ver con lo barato del sensor) es decir que el error es más probable que sea del sensor que del propio material.


  • Volviendo al tema del tipo de base tengo que decir que confio más en una solución de metal muy fino sobre "no metal" porque de esta manera evitamos problemas de deformación, es decir que usamos como base la original de la mesa que al no ser metal es mucho menos sensible a combarse debido a contracciones-dilataciones por efecto del calor o torsiones de los propios tornillos.

    Por lo tanto, creo que una buena solución sería usar la propia cama y un tipo de lamina de aluminio algo más gruesa que el papel de aluminio y pegarla definitivamente a la placa de plástico original de la mesa.

    Probaré con la cinta metálica para aislamiento térmico de conducciones de aire acondicionado y os cuento...



  • Hola...

    Como posible solución...,funcionaría cambiando el cristal de la base por un espejo???



  • aobreg dijo:
    Hola...

    Como posible solución...,funcionaría cambiando el cristal de la base por un espejo???


    La cinta de aire acondicionado me la detecta peor que el papel de aluminio, probaré el espejo y te digo.

    De todas formas, un sensor de 10 mm vale 5 euros, es la mejor solución.


    Acabo de pedir uno y en un mes lo tendré por aquí, la configuración es la misma, sólo hay que subir un poco la referencia de distancia en el Marlin.



  • Otra opción es poner un diodo en el pin de señal, así no es necesario realizar el divisor de tensión. 
    Me puedes decir como se hace, mañana me traen el sensor y no se montarlo No tengo ni idea de electronica, tiene q ser una esplicacion para niño pequeño


  • En este

     se explica fenomenal. Te lo podría redactar, pero es que malpartida lo explica tan bien que es difícil mejorar.



  • hola el sensor q he comprado es Capacitivo se pone igual q el otro sensor, no me he dado cuenta