Haz tu propia CNC. Proyecto Realización de CNC 5 Ejes

 Proyecto Realización de CNC 5 Ejes.

     3. Montaje de la CNC 

        El montaje de la cnc se ha realizado sin muchos problemas y realmente ha costado meter los tubos en las piezas, pero era lo que se esperaba y quería para quede bien sujetos.

    Se ha instalado Arduino Mega con la tarjeta Ramps 1.4 insertada. Se conectan los motores X, Y y Z que una vez configurados se tiene que ver que funcionen en el sentido correcto, si no, pues le das la vuelta al conexionado del cable. 

    Una vez realizada toda la estructura, imprimí los finales de carrera y los instalé. Ciertamente me volví loco intentando configurarlos y visto lo leído, sirven de protección de seguridad, o eso es lo que encuentro bicheando las webs. Si es cierto que la coordenada origen no es como en la impresión 3d, yo al menos he visto que lo colocas manual o automáticamente donde quieras y luego reseteas las coordenadas para que ese sea el origen. Ya estudiaré más detenidamente este tema de finales de carrera y de origen.
Sobre la configuración del GRBL es extenso como para meterse en este post. Ya haré alguno que describa los puntos más importantes.
El firmware utilizado es el utilizado para 5 ejes y lo puedes encontrar en github en el siguiente enlace:

https://github.com/fra589/grbl-Mega-5X

Si estás interesado en 3 ejes sólo, es cuestión de buscarlo o simplemente no utilizarlos con esta versión de GRBL. No es difícil encontrarlo, por ejemplo, en github. Según la placa de control que uses, te interesará una versión u otra de GRBL.
Os pongo imágenes de la cnc a falta de los dos ejes finales.

CNC de 3 a 5 ejesCNC 3 a 5 ejesCNC de 3 a 5 ejes
Fig. 1 Diferentes vistas de CNC de 3 a 5 ejes

    4. Calibrado de CNC

    Una vez concluido los ajustes del GRBL y conectado el motor realicé las pruebas de corte de un sencillo palet, que al ser una madera de baja calidad no esperaba demasiado, solo probar con un archivo gcode y ver que tal funcionaba tanto en dimensiones, como de velocidad de recorrido. 

    Poco a poco te vas adaptando al software y vas viendo diferencias de funcionamiento con respecto a la impresora 3. 

    A medida que va recorriendo el corte observo que el eje X, al estar en el aire, se dobla al realizar demasiado esfuerzo la broca. 
            
Dos posibilidades tengo:
  • Realizar las piezas más lenta y con más capas de Z
  • O bien, sujetar los tubos de acero de X en los tubos de Y, y que se deslicen en estos con rodillos.
    Es algo que tendré que decidir, pero de todos modos estoy contento con los resultados que voy consiguiendo.
    Os dejo video de la primera prueba:

Video 3: Prueba de CNC con 3 Ejes

5. Conclusiones

    Queda pues, concluir el diseño de los dos ejes faltante ( A y C ) y seguir realizando pruebas con la cnc con los tres ejes. Así iré pensando si realizar las modificaciones para la estabilidad del eje X, y viendo el software tanto de creación de los archivos gcode, como de mecanizado.
    Otra de las cuestiones con las que tendré que familiarizarme es con los tipos de brocas y usos de estas. Ya estoy recopilando datos sobre las brocas y seguramente haré un resumen con las más utilizadas.
    Esta publicación se acabará de completar con la elaboración de los 5 ejes. Si estás interesado en ello no pierdas este enlace.
    Daros las gracias por leer este post .
    Saludos,👋


Pruebas Realizadas con el Software Editor de Movimientos "Motion Editor" del Robot Plen 2.

Pruebas  con software editor de movimientos "Motion Editor". Robot Plen 2.

Introducción.

Hay diferentes maneras de conectarnos con la placa ViVi. Puede ser a través del puerto USB (PL2303) ó por Wifi según el software que utilicemos.

Este software, que ahora comentamos, es por WiFi .

El propósito del software Motion Editor es la creación, modificación y corrección de movimientos del robot Plen2. A parte de esto, nos sirve para que la posición del robot coincida con el robot del software.
Podemos cargar archivos de movimiento .json que ya vienen con el propio programa, o bien, crearlos desde el principio.
Una vez estemos satisfecho con el movimiento lo podemos guardar, para luego cargarlo al robot.


Software Motion Editor Plen2
Fig.1 Software Motion Editor.

Observaciones.

Tras el montaje del Robot Plen2 con la placa ViVi(el chino es Miniplan), he tenido serios problemas a la hora de conseguir movimientos suaves y controlados. 

He conseguido que no se descontrole quitando las tensiones de alimentación y poniéndolas directa a la batería, dejando libre de esta sobrecarga a la placa control VIVI de doit.com.

Ahora sólo controla las señales de los servos quedando libre de alimentar a los servos.

Hecho esto, ya se queda en la posición inicial y no descontrola los movimientos, aunque sigue dando problemas cuando nos conectamos a la App ViVi Robot. 😔
Con la App nos conectamos al wifi del robot, y una vez hecho esto, pasar a colocar la posición del robot desde el menú Develop

App vivirobot Plen2
Fig.2 Development Plen2

He hecho multitud de pruebas de ajustar los servos y luego probarlos ejecutando los movimientos, no son correctos, produciendo movimientos descontrolados con colisiones y perdiendo la posición inicial creada. Estas colisiones son fundamentales evitarlas, pues si se bloquea por tropezar y recibe señal, querrá seguir hacia adelante, y esto produce descontrol de la placa.

Da la impresión de que se debe a los archivos json. , parecen ser incorrectos en velocidad y en los movimientos. 
Por este motivo he decidido editar cada movimiento con este programa y una vez probado con el robot guardarlos y descargarlo en éste. 👊


Creación de movimientos más pausados y suaves sin colisión

Conclusiones.

Arduo trabajo, pero que si sale bien será gratificante. 🤗
Una vez realizado este paso de transformación viene la tarea de descargarlo en el Robot Plen2.
Para ello tengo pensado varios métodos que tengo aún que probar. Será cuestión de "machacar" las tablas de movimientos que ya tiene, por las nuevas.

Os espero para poderos pasar este último paso, esperando que sea exitoso.

Otra cuestión que habrá que abordar será la batería final con la que trabaje,  ya que de momento trabaja con una fuente de alimentación ATX de ordenador.

Os espero! 🤖🖖



 

Haz tu propia CNC. Ensamblado final de la CNC

Haz tu CNC. Montaje de la CNC

Tras la impresión de las últimas piezas y de comprar los tubos de acero finalizo el ensamblaje general de la CNC. 

Aún queda el montaje de la electrónica que tendré que adaptar con piezas diseñadas e impresas con impresión 3d

Máquina CNC

A medida que vaya implantando la electrónica, empezaré con la programación.

Máquina CNC

La electrónica será para una CNC de 5 ejes y constituida por un Arduino Mega y una Ramp's 1.4. Se comenzará con motores Nema 17 para ir familiarizándonos con el hardware y a medida que vea la necesidad, pasaré a motores Nema 23.

Máquina CNC

    El software preferente será el Mach3, teniendo soporte dicho software para el eje C y el eje A, aparte de los ya normalmente usados X, Y y Z.

Si por algún motivo veo oportuno algún cambio en el hardware, pasaré a placa de control con los drivers correspondiente de los motores, y que sea compatible con el software.

Espero que os guste 👋




Comandos del software ROBOIDE para placa control SSC-32.

  Utilizando placa SSC32. Roboide

Fig. 1 Distintos tipos de placas SSC-32


Comandos SSC32

Esta placa de control, la SSC32, es un dispositivo auxiliar que sólo puede aceptar comandos o ejecutar comandos preestablecidos. 
Usa protocolo de comunicación con el exterior: comunicación en serie (nivel TTL), velocidad en baudios 9600 (por defecto 9600, puede configurar otras velocidades en baudios a través del software de PC), sin bit de paridad, 8 bits de datos y 1 bit de parada. 
Los comandos tienen una cosa en común, todos tienen \ r \ n , este es el final del comando, debe estar presente. Otro dato a tener en cuenta es que no hay espacios en los comandos. 

ejemplos:

Los comandos específicos son los siguientes: (para mejorar) 
  
# 1 P 1500 T 100 \ r \ n  comando simple.

El dato 1 es el canal de placa de control. El dato 1500 es la posición del servo y el rango es 500-2500. El dato 100 es el tiempo de ejecución, que indica la velocidad. Grado, el rango es 100-9999 

# 1 P 600 # 2 P 900 # 8 P 2500 T 100 \ r \ n  comando Múltiple 

 Los datos 1, 2, 8 son los canales del servo. Los datos 600, 900 y 2500 son 3 respectivamente posiciones de canales de la placa de control  . El dato 100 es el tiempo de ejecución, que es de 3 timones. La velocidad de la máquina, independientemente de cuál es el número de servos. El tiempo solo puede ser uno, es decir, solo puede haber una T. Los comandos se ejecutan simultáneamente, es decir, todos los servos se mueven todos juntos.

# 1 GC 2 \ r \ n  Grupo de acción Simple

El dato 1 es el número del grupo de acción. El dato C2 es el número de ciclos llevado a cabo 

 # 1 G # 3 G # 1 GC 2 \ r \ n  Grupo de acción Múltiple 

Ejecuta el grupo de acción 1 primero, luego ejecute el grupo de acción 3, luego realice el grupo de acción 1, luego reinicia Repite otra vez. (Ejecutar el grupo de acción 1, ejecutar el grupo de acción 3, Ejecutar el grupo de acción 1, ejecutar el grupo de acción 1, ejecutar Grupo de acción 3, grupo de acción de ejecución 1) Los datos 1 y 3 son los números del grupo de acción El dato C2 es el número de ciclos Un comando solo puede tener un número de ciclo llevado a cabo 

 # 1 G # 3 G # 1 G # 1 G # 1 GC 1 \ r \ n  Grupo de acción Múltiple

Realice el grupo de acción 1, realice el grupo de acción 3, realice Grupo de acción 1, ejecutar grupo de acción 1, ejecutar Grupo de acción 1 Los datos 1 y 3 son los números del grupo de acción El último dato C1 es el número de ciclos Un comando solo puede tener un número de ciclo.

 #STOP \ r \ n  Detener todas las acciones actuales 

La placa de servo control no puede aceptar el comando de parada (#STOP \ r \ n) durante la ejecución del comando del grupo de acción Cualquier orden exterior. Si configura un comando fuera de línea, entonces también está ejecutando el grupo de acción, luego el panel de control del servo en este proceso no puede aceptar otros comandos. 

 Zumbador para panel de control del mecanismo de dirección

El zumbador solo sonará cuando la placa de control de arrancar o no está encendido o no tiene suficiente energía.

Dado que el la placa de control necesita mucha corriente, si la fuente de alimentación de ésta, no es buena, en el momento en que empiece a funcionar, causará el voltaje de la fuente de alimentación se baje mucho y el zumbador sonará en este momento para indicar suministro de energía insuficiente.

Si cree que el timbre es ruidoso, puede cancelarlo mediante el propio software de PC.

Una fuente de alimentación insuficiente hará que los servos se muevan al azar o que la placa de control esté fuera de control. (Sentido común: medios de suministro de energía insuficientes

La corriente tiene que ser buena, no es que el voltaje no sea suficiente. Incluso si le das 100A , tomará solo la que necesita por ejemplo, 1A. Tomará 1A, no tomará más, controlará el consumo.

Verifique el método para una fuente de alimentación insuficiente: use un multímetro para probar el VS y GND del terminal azul en el tablero de control

Mida el valor de voltaje instantáneo de la placa de control. Si el voltaje instantáneo cae mucho, o es menor que el rango normal de la fuente de alimentación significa que su fuente de alimentación o batería no es buena.

NOTAS

 ¿Se puede establecer un retraso entre grupos de acción o entre cada comando?

En primer lugar, debe comprender que hay un tiempo T después de cada comando, T significa tiempo, luego repita el anterior

¿Puede entenderse que una orden está esperando?

 Sí, repite el último comando, el servo no se moverá, pero el tiempo corre, por lo que se puede entender que se trata de un retraso. (En la actualización posterior, puedes agregar un comando dedicado al retraso)

 Establecer las acciones iniciales del robot

En el momento en que se enciende el panel de control de los servos, el robot puede moverse aleatoriamente, lo cual puede deberse al reinicio del servo al encenderlo.
También puede deberse a la salida de señal inestable en el momento en que se enciende el tablero de control del mecanismo de dirección. El usuario puede configurar la acción para establecer un grupo de acción inicial para el robot.
 Primero, descargue un grupo de acción simple (estado inicial del robot), y luego configure el grupo de acción para que se ejecute fuera de línea. Después de la configuración, cada vez que se abre el panel de control esta acción se ejecutará cuando se encienda el interruptor de encendido. Si establece la postura de pie del robot,
Cuando el robot enciende el interruptor de encendido, se parará primero.

Algunas instrucciones para la alimentación del servo

El uso normal de los servos requiere una fuente de alimentación de alta potencia, un servo de metal con un par de 13 KG.CM, cuando no hay carga la corriente requerida es casi CERO, pero la corriente puede ser tan alta como 3A a plena carga. 

Un robot con 10 de estos servos instalados, Requiere una fuente de alimentación capaz de generar una corriente de aproximadamente 5 A para garantizar el funcionamiento correcto.

Comprueba que todos los servos funcionan. Por supuesto, si se requiere que todos los servos funcionen a plena carga, entonces 5A también está lejos de ser suficiente

Placa 32 canales SSC-32 servo motor control Joystick PS2

Placa 32 canales SSC32 servo motor control Joystick PS2

Os presento una placa de control fácil de utilizar y que es capaz de gestionar hasta 32 salidas. 


         Fig.1 Disposición de conexionado

En la figura podéis ver las entradas de alimentación de Vs,  que corresponde a la tensión que suministramos a los servos, tiras led´s o lo queramos. La tensión Vss, va de 6,5 a 12v. Estas dos tensiones tienen su negativo o tierra en GND. Tiene dos  puertos series con los que podrás comunicarte e incluso conexión inalámbrica para mandos PS2. Observamos la conexión para música MP3, la cual aún no puedo daros información. Si os puedo decir que en el mismo software de control se elige los MP3. Indagaremos... 😉. Por lo que véis es bastante completa y ha funcionado bastante bien en el banco de pruebas. Si es cierto que el software es demasiado simple y debería dar más funciones. Se ve algo escaso. 

Hablemos un poco más de la tensión Vs.

Servomotor
Fig.2 Servo Motor
Os pongo por ejemplo motores servos.

Siempre que el voltaje de la fuente de alimentación cumpla con los requisitos, se puede usar una batería para alimentar VSS y VS al mismo tiempo.

Si usamos los servos MG995 o MG996 la tensión Vs sería de entre 4.8v a 6.8v.
Si son los TR213, TR223, 1501MG sería la tensión de 4,8v a 7v.

Tened en cuenta que si no conoces la tensión nominal del servos debes de aplicar una Vss de 5 a 6v, ya que el 95% de los servos usan este rango.

Instalando DRIVERS en el PC.


Lo primero que tienes que hacer es instalar los drivers en tu ordenador. Para ello descarga el siguiente enlace e instálalo.


Mediante el software que os pongo más abajo y la instalación de los drivers podrás manipular dichas salidas a tu antojo. 
Como dije, fácil e intuitiva, se puede guardar los movimientos en sus propias memorias interiores. Dichos movimientos se realizan individualmente o por grupos, según así los guardes.


Movimientos de Servos

Formato: # <ch> P <pw> ... # <ch> P <pw> T <time> \ n \ r


<ch> = número de servo, rango 1 ~ 32 (número decimal)
<pw> = Ancho de pulso (posición del servo), rango: 500 ~ 2500. Unidad: us (microsegundos)
<time> = Tiempo utilizado para moverse a la posición, efectivo para todos los servos.
\ n \ r = Número binario 0x0d, 0x0a (retorno de carro), el terminador del comando

Ejemplo:

# 3P250T1000 \ n \ r
Mueva el servo N.3 a un ancho de pulso de 250us, usando un tiempo de 1000 microsegundos 

# 10P2000 # 30P2500T1500 \ n \ r
Mueva el servo N.10 al ancho de pulso 2000us, el servo N. 30 al ancho de pulso 2500us, usando el tiempo
1500ms. La velocidad del servo depende de la ubicación de la dirección de la vez anterior. N.10 y
Los servos N.30 llegaron al lugar designado al mismo tiempo.

Instrucciones de acción en grupo 
Ejecutar acción en grupo 

Formato de comando: # <AG> G… # <AG> G <pw> C <Ciclo> \ n \ r

<m>: número de grupo de acción
 <AG> = número de grupo de acción, rango 1 ~ n (número decimal, n es el máximo fáctico
número)
 <Ciclo> = tiempos de bucle, rango 1 ~ 999 (número decimal)
 \ n \ r = 0x0D, 0x0A en hexadecimal, significa el final del comando

Ejemplo: 

# 1GC99 \ n \ r
Realiza el grupo de acción 1 y repite 99 veces

# 1G # 2G # 4G # 2GC1 \ n \ r
Realice el grupo de acción en orden 1, 2, 4, 2 y repita solo una vez.
la instrucción se puede repetir como # 2G en este ejemplo)
Cuando finalice la instrucción, devolverá #AGF como indicación.


Funcionando sin conexión

Formato de comando: # ENABLE # <AG>… # <AG> C <Ciclo> \ n \ r

Ejemplo:

# HABILITAR # 1GC5 \ n \ r
La placa de servocontrol realizará el grupo de acción 1 y hará un bucle 5 veces cuando se encienda.

#DISABLE \ n \ r falla de ejecución sin conexión

Conexión del mando PS2 a SSC-32

Mire el lado del receptor del mango, la parte superior es grande, la parte inferior es pequeña, la siguiente forma, 9 pines, solo es necesario conectar los pines 1 2, 4, 5, 6  y 7.

Conexión mando PS2 en SSC-32
Fig3. Conexión del mando PS2

Si tienes conectada la fuente de alimentación, las dos luces del receptor del mango siempre estarán encendidas. 

Configuración PS2

Abra el software de computadora ROBOIDE, el menú superior del software, herramientas-mango PS2.

Configuración mando PS2 a Software ROBIDE
Fig.4 Configuración PS2 con ROBOIDE

Luego ingrese el comando del grupo de acción que se ejecutará con el botón en el cuadro de entrada cerca del botón de control de PS2 a la derecha.

(formato: # 1GC1 , 1G es el primer grupo de acción, C1 se ejecuta una vez en un bucle)

    Después de la configuración, presione "OK" para confirmar la configuración. Luego reinicie el tablero de control de los servos (vuelva a encender el tablero de control) y luego puede controlar el grupo de acciones con los botones del mango.

Observaciones: 

    1. Después de que el receptor del  mando y el tablero de control estén conectados normalmente, si la fuente de alimentación está conectada, las luces indicadoras en el receptor del mando estarán encendidas, si parpadea, debe verificar si el mango está encendido o si el interruptor de encendido está encendido. 

    2. El mando tiene una función de suspensión. Si encuentra que las luces indicadoras en el mando están todas apagadas, es posible que esté en hibernación. Se restablece el botón INICIO.

Finalizando

    Esto ha sido la breve descripción del hardware a algo de comandos para los inicios del software. Más adelante, haré una nueva entrada de los diferentes software que se pueden usar.
Espero que haya sido útil para vosotros. Saludos 👋👋