Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

En este tutorial muestro cómo convertí mi robot SCARA impreso en 3D (construido en un video anterior) para que funcione como grabadora láser. Puedes ver el video o leer el artículo.

Resumen del proyecto

El robot SCARA tiene 4 grados de libertad impulsados por 4 motores paso a paso NEMA 17 y controlados con Arduino. En el video original usé Arduino UNO + CNC Shield, pero ahora emplearé Arduino MEGA + placa RAMPS, necesario para correr el firmware Marlin de impresora 3D.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Mecánicamente, solo hay que cambiar el gripper por un módulo láser. Uso uno de 5,5 W, suficiente para grabar.

Una ventaja de este SCARA es su amplio recorrido en Z, permitiendo grabar objetos altos.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

El área de trabajo es impresionante para su huella: usa el espacio frontal y ambos laterales, pudiendo configurar casi 360° alrededor. Esto es posible gracias al firmware Marlin open-source, que incluye opciones para grabado láser y configuración SCARA.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Para generar G-codes uso Inkscape + plugin Inkscape-Lasertools (open-source). Permite generar contornos solos o con relleno, ajustar haz láser, velocidades, comandos láser on/off con control PWM, etc.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Ahora recorreremos todo el proceso: diseño del SCARA, instalación y configuración de Marlin, y preparación de dibujos y G-codes. ¡Empecemos!

Diseño y modelo 3D

Vista rápida del modelo 3D por si no viste el tutorial original donde explico la construcción en detalle.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

El robot está diseñado para que la mayoría de piezas se impriman en 3D. Las articulaciones usan motores NEMA 17 con reducción por correas GT2 y poleas GT2 impresas en 3D. Tiene 4 DOF, pero para grabado solo usamos 3: dos rotaciones para alcanzar cualquier punto en el área de trabajo y un movimiento lineal para la altura del láser.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

La 4ª articulación (rotación del efector) no se usa, aunque el láser se monta en ella. Diseñé el soporte para que el haz quede en el centro de rotación de ese 4º eje; así, aunque gire, no afecta la posición final.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Puedes encontrar y descargar el modelo 3D, y explorarlo en tu navegador en Thangs:

Descarga el modelo de ensamblaje 3D desde Thangs.

Gracias a Thangs por apoyar este tutorial.

Archivos STL para impresión 3D:

Patrocinado


Diseñé este SCARA con 3DEXPERIENCE SOLIDWORKS for Makers, patrocinador del video. SOLIDWORKS lleva sus herramientas líderes a makers a un precio increíblemente bajo.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Makers acceden a las mejores herramientas de SOLIDWORKS por solo $99/año, pero para mis espectadores hay una oferta limitada: ¡20 % de descuento adicional mientras duren existencias!

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

El paquete incluye SOLIDWORKS conectado a la nube, y herramientas basadas en navegador como 3D Creator y 3D Sculptor. Solo haz clic en mi enlace, crea tu 3DEXPERIENCE ID gratis y accede a la oferta. ¡Gracias a SOLIDWORKS por patrocinar contenido educativo!

Ver SOLIDWORKS for Makers | 20 % descuento SOLIDWORKS for Makers


Instalación del módulo láser

Primero quité el mecanismo del gripper (4 tornillos).

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Los cables del servo del gripper ahora servirán para el láser.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Mi módulo láser funciona a 12 V y se controla por PWM con dos hilos (GND y VCC). Usé el conector de 3 pines que trae: negro = GND, blanco = VCC. Soldé conectores macho a estos hilos para enchufarlos fácilmente a los cables del efector.

Coloqué el conector, pasé el cable por una abertura del soporte y fijé el láser con dos tornillos M3. Luego aseguré el conjunto al robot con cuatro tornillos M4.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Como dije, ahora hace falta Arduino MEGA + placa RAMPS (en lugar del UNO del video original).

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Primero seleccionamos la resolución de micropasos de los drivers. Para movimiento suave, ponemos 3 jumpers por driver (máxima resolución). Uso drivers A4988 (1/16 paso), pero también valen DRV8825 (1/32).

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Conecté todos los cables (los tenía marcados para no liarme).

Diagrama de circuito del SCARA Robot Grabador Láser

Esquema de conexiones:

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Los motores van sobre los drivers. Los fines de carrera (Normalmente Cerrados, 2 hilos) van a pines S y – de cada eje. Para el láser usamos pin D9 (en impresora 3D controla ventilador), PWM capable, así regulamos intensidad. Alimentación: 12 V, mínimo 3 A.

Componentes:

  • Motor paso a paso – NEMA 17………………
  • Driver A4988…………………..…
  • Placa RAMPS 1.6………………………..…
  • Arduino MEGA………………….…..………
  • Interruptor de fin de carrera …………………………………. Amazon / Banggood / AliExpress
  • Fuente DC …………………………. Amazon / Banggood / AliExpress
  • Módulo láser ………………………………… Amazon / Banggood / AliExpress
  • Gafas seguridad láser …………………….. Amazon / Banggod / AliExpress

Componentes mecánicos: ver artículo original.

Tras conectar todo, ordené cables y cubrí la electrónica para dejarlo limpio.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Finalizando el montaje

Quedaba un ajuste: cambiar cuándo salta el fin de carrera del segundo brazo. Como el SCARA trabajará en modo "diestro", el homing del segundo brazo debe ser a 0° (alineado con el primero) pudiendo girar a la izquierda. Pegué una pieza pequeña en la articulación para que active el final de carrera en esa posición.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Otro detalle: el gatillo original del final de carrera interfería con una tuerca en la base del brazo, limitando su recorrido.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Quité esa tuerca y puse un inserto roscado para que al volver a atornillar no sobresalga.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

El SCARA ya está listo mecánicamente, pero falta flashear el firmware en el Arduino.

Ver también: Brazo Robot Arduino con Control por Smartphone

Firmware Marlin para Grabado Láser con Robot SCARA

Usaré Marlin, firmware open-source muy usado en impresoras 3D, que incluye opciones para grabado láser y configuración SCARA. Se descarga de su web oficial o GitHub.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Para instalarlo en Arduino MEGA usaremos PlatformIO IDE (no Arduino IDE), ya que Marlin es grande y complejo y el IDE de Arduino a veces falla al compilarlo.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

PlatformIO es una extensión de Visual Studio Code. Instalamos VS Code, buscamos PlatformIO en el gestor de extensiones e instalamos.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Hecho esto, clic en Open Project, navegamos a la carpeta Marlin descargada y descomprimida, y clic en Open Marlin.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Se cargan todos los archivos. Los dos principales para configurar son Configuration.h y Configuration_adv.h.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Importante: antes de abrir la carpeta Marlin, ve al repositorio Configurations en GitHub y descarga archivos de configuración pre-testados. En la carpeta Examples/SCARA copia los dos archivos de configuración y pégalos en tu carpeta Marlin.

Ver también: Cómo Configurar GRBL y Controlar Máquina CNC con Arduino

Configuración del firmware Marlin

Reabrimos la carpeta Marlin con los archivos SCARA y editamos Configuration.h. Primero, tipo de robot SCARA:

/** * MORGAN_SCARA desarrollado por QHARLEY (Sudáfrica) 2012-2013. * Implementado y retocado por JCERNY junio 2014. */ //#define MORGAN_SCARA /** * Mostly Printed SCARA, diseño open-source de Tyler Williams. Ver: * https://www.thingiverse.com/thing:2487048 * https://www.thingiverse.com/thing:1241491 */ #define MP_SCARA #if EITHER(MORGAN_SCARA, MP_SCARA) // Si el movimiento va a tirones, bajar este valor #define SCARA_SEGMENTS_PER_SECOND 100 // Longitud de brazos interno y externo. Medir con precisión. #define SCARA_LINKAGE_1 228.15 // Brazo 1 - 228 mm #define SCARA_LINKAGE_2 136.2 // Brazo 2 - 136.5 mm // Offset de la torre SCARA (posición de la torre respecto al cero de la cama) #define SCARA_OFFSET_X 300 // (mm) #define SCARA_OFFSET_Y 150 // (mm)

MORGAN_SCARA es para SCARA paralelo; MP_SCARA para SCARA serial (el nuestro). Basado en diseño open-source de Tyler Williams que implementa cinemática inversa sobre G-codes generados para sistemas cartesianos.

En mi tutorial anterior expliqué qué es cinemática inversa y cómo funciona con este SCARA. Brevemente: calculamos los ángulos de los dos brazos para alcanzar una coordenada X,Y dada. La matemática usa trigonometría y depende solo de las longitudes de los brazos.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Aquí introducimos las longitudes: 228 mm (brazo 1) y 136,5 mm (brazo 2). Luego, posición cero de la cama de trabajo (SCARA_OFFSET_X/Y): distancia desde la torre (primera articulación) al cero de la cama.

Otro parámetro clave: MANUAL_X_HOME_POS para X e Y. Son las distancias X e Y desde el efector final (láser) en posición home, respecto al cero de cama definido antes. Para obtenerlos hice un boceto en SOLIDWORKS con dos líneas representando los brazos.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Desde ahí fijé la posición cero deseada y obtuve los valores para MANUAL_X_HOME_POS.

Definimos conectores de fin de carrera: uno por eje, en posición mínima.

#define USE_XMIN_PLUG #define USE_YMIN_PLUG #define USE_ZMIN_PLUG

Y dirección de homing: -1 = MIN.

// Dirección de endstops en homing; 1=MAX, -1=MIN // :[-1,1] #define X_HOME_DIR -1 #define Y_HOME_DIR -1 #define Z_HOME_DIR -1

Verificar que todos los __MIN_ENDSTOP_INVERTING estén en FALSE.

Ajustar DEFAULT_AXIS_STEPS_PER_UNIT para nuestra máquina.

#define DEFAULT_AXIS_STEPS_PER_UNIT { 177.7777777, 142.2222222, 400, 93 }

Estos valores indican cuántos pasos enviar al driver para mover una unidad (aquí, 1° de rotación de la articulación). Cálculo para mi SCARA:

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Motores NEMA 17: 200 pasos/vuelta. Con micropaso 1/16 → 3200 pasos/vuelta. Primera articulación: reducción 20:1 → 64000 pasos/vuelta. 64000/360 = 177,777 steps/°. Segunda: reducción 16:1 → 142,222 steps/°. Eje Z: husillo 8 mm paso → 1 vuelta = 8 mm. 3200/8 = 400 steps/mm. El 4º valor es para extrusor (no usado).

La dirección del motor depende del cableado. Si va al revés, invertir cables o poner INVERT_X_DIR a true.

// Invertir dirección del stepper. Cambiar (o invertir conector) si un eje va al revés. #define INVERT_X_DIR false #define INVERT_Y_DIR false #define INVERT_Z_DIR false

Cambios extra para que Marlin funcione en modo SCARA (pequeños bugs sin resolver en esa versión):

  • En scara.cpp línea 75: reemplazar MORGAN_SCARA por MP_SCARA.
  • En motion.cpp: comentar líneas 1716 y 1717.
  • En configuration.h: comentar VALIDATE_HOMING_ENDSTOPS.
  • En configuration_adv.h: descomentar QUICK_HOME.

Incluso con esto, el homing no funcionaba 100 % bien; explicaré el truco que usé.

Clic en Upload (abajo izquierda) y Marlin se instala en el Arduino. Puedes descargar mi versión modificada abajo, o bajar el original de GitHub y hacer los cambios tú mismo.

Software de control – Repetier-Host

Con Marlin flasheado, necesitamos un programa para controlar el robot y enviar G-codes. Elegí Repetier-Host, popular para impresión 3D, gratis.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

En Config > Printer Settings ajustamos: puerto COM del Arduino, Baud Rate (el de Marlin), y en pestaña Printer Shape los máximos X, Y y área de impresión.

Aplicamos, clic en Connect y debería conectar. En pestaña Manual Control probamos movimientos.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Nota: al pulsar flechas X o Y, el robot puede comportarse raro porque aplica cinemática inversa al instante y moverá ambos brazos aunque pulses solo una flecha.

Para ponerlo en marcha, primero homing. Antes de dar a Home, acercamos manualmente las articulaciones a los fines de carrera.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Al dar a Home: el segundo brazo (Y) va a su final de carrera mientras el primero (X) se mueve en sentido opuesto. Cuando Y toca, X va a su final. Luego va por Z.

Tras homing, deberíamos poder grabar o mover manualmente. Pero si intentamos algo de inmediato, el robot se comporta extraño. Solución: desconectar y reconectar en el software.

Ahora el movimiento manual y grabado funcionan. Probablemente un bug de Marlin por falta de soporte al modo SCARA.

Si enviamos G00 X0 Y0 el robot va a su posición cero (definida en Configuration.h).

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Activamos láser con M106 S10. Valor S (0-255) = PWM 0-100 %. S10 para que sea visible sin quemar, y así ver posición cero y enfocar.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Enfoque manual girando la lente del láser; distancia recomendada ~5 cm, ajustar hasta punto más pequeño.

Grabado láser con el robot SCARA

Para calibrar, grabamos un cuadrado simple y vemos si sale bien.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Mi primer intento: cuadrado mal posicionado/orientado por valor erróneo en MANUAL_X_HOME_POS. Corregido, salió casi perfecto.

Cargué G-code de mi logo y grabé.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

¡OBLIGATORIO usar gafas de seguridad láser! La luz UV es muy peligrosa. También usar mascarilla respiradora y trabajar en espacio abierto/ventilado: los humos del grabado son tóxicos.

El logo salió bien, pero no totalmente cuadrado.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Volví al cuadrado simple para diagnosticar. El problema: dimensiones de los brazos. Al no ser rígido, al extenderse los brazos su peso hace que el robot se incline un poco, alterando la posición real.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Tras decenas de pruebas, ajusté longitudes: brazo 1 de 228 a 228,15 mm; brazo 2 de 136,5 a 136,2 mm. Así el cuadrado salió correcto. La precisión aún varía según dónde se grabe (brazo más o menos extendido).

Generación de G-code para grabado láser

Finalmente, cómo preparé dibujos y generé G-codes. Usé Inkscape (vectorial open-source).

Primero, tamaño de página = área de trabajo. Ejemplo: logo Arduino.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Descargué imagen del logo, importé a Inkscape. Con Trace Bitmap la convertí a vectorial. Solo se genera G-code desde formas vectoriales; usé plugin Inkscape-Lasertools (descarga en GitHub, instala copiando archivos a carpeta extensions de Inkscape).

En Extensions > Lasertools generamos G-code. Opciones: solo contornos o contornos + relleno, velocidad desplazamiento, velocidad relleno, perímetro, comandos láser on/off con PWM, etc.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Con relleno, si queremos menor intensidad láser en zona de relleno, añadimos PWM al comando M106 (ej. M106 S128 = 50 %). Efecto similar subiendo velocidad en relleno. Son parámetros para probar.

En pestaña Preferences marcar Remove tiny infill paths. En Bounding Box marcar Generate G-Code for bounding box preview: genera G-code de previsualización del área, muy útil para posicionar la pieza.

Generado el G-code, lo cargamos en Repetier-Host. Al no ser impresión 3D sino movimientos, marcar Show Travel Moves para previsualizar.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Clic en Print y el SCARA graba la pieza. Verlo trabajar es muy satisfactorio.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Buena característica: Z ajustable → graba objetos altos. Ej.: caja de madera para fresas Forstner. Grabé logo en frente y texto "Forstner bits" detrás.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Ejemplo: misma silueta de Batman, solo contornos vs. con relleno.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Con relleno tarda mucho más, pero aspecto final mucho mejor.

Grabado grande: 600×450 mm con este SCARA.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Coloqué robot sobre la pieza para alcanzar frente y laterales. Ajusté manualmente pieza y robot centrados y paralelos.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

En Marlin puse cero en esquina inferior izquierda de la pieza: 300 mm en X, 150 mm en Y desde el robot. Cuidado con signos. Ajusté también MANUAL_X/Y_HOME_POS.

Subí firmware con nuevos valores, homing como antes, mandé láser a cero y activé láser para afinar orientación de la pieza.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Con comandos G01 (líneas rectas) verifiqué y ajusté posición.

Para el G-code de este grabado hice una plantilla en Inkscape con esta configuración robot/pieza. Desde ahí veo dónde llega el láser y modifico el dibujo.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Descargué imagen, convertí a vectorial con Trace Bitmap.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Reescalé y posicioné, y con herramienta Erase borré zonas donde está el robot y fuera de su alcance.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Generé G-code y la máquina tardó 4 horas.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

Tras acabar, quise rellenar el hueco donde estaba el robot. Reposicioné robot y pieza, y cambié parámetros Marlin para que el nuevo área de trabajo fuera ese hueco.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

En general, requiere trabajo de configuración, pero funciona genial. Me encanta cómo quedó.

Conclusión

Aunque hubo problemas de firmware, encontré soluciones para que el SCARA funcione como grabadora láser. De cerca, el grabado no es perfecto.

Convierte tu Robot SCARA DIY en una Grabadora Láser Precisa con Arduino

El robot no es muy rígido y tiene backlash, así que no logra movimientos precisos y suaves. Pero lo aprendido aquí aplica a cualquier SCARA para obtener mejores resultados.

¡Espero que disfrutaras y aprendieras! Preguntas en comentarios y mira mi Colección de Proyectos Arduino.


Proceso de manufactura

  1. Construye un reloj Numitron retro con Arduino: Simple, fiable y eficiente energéticamente
  2. Robot evasor de obstáculos con servo: Construcción con Arduino y HC-SR04
  3. Controla tu Roomba Create 2 con Arduino y Android: Guía Completa
  4. Construye un voltímetro DIY con Arduino y pantalla Nokia 5110 – Guía paso a paso
  5. MobBob: Robot Arduino Impreso en 3D, Controlado por Smartphone Android
  6. Construir una rueda medidora DIY precisa con Arduino Nano y encoder rotativo
  7. Construye un monitor de calidad del aire preciso con el sensor Sharp GP2Y1010AU0F
  8. Juego Pong 1D con Arduino Nano y tira LED WS2812: Tutorial paso a paso
  9. Brazo Robótico Arduino Controlado por Gestos Manuales – Construcción Paso a Paso
  10. Controla tu brazo robótico Arduino con app Android dedicada
  11. Robot comedero con Arduino Nano: Guía paso a paso