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

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

En este tutorial aprendemos a construir un robot SCARA basado en Arduino. Te muestro todo el proceso: desde el diseño del robot hasta desarrollar nuestra propia Interfaz Gráfica de Usuario (GUI) para controlarlo.

Video o tutorial escrito abajo.

Resumen

Robot de 4 grados de libertad (4 DOF), impulsado por 4 motores paso a paso NEMA 17. Además, pequeño servo para efector final (gripper). Cerebro: Arduino UNO + CNC Shield + 4 drivers A4988.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Con Processing creé una GUI con control por Cinemática Directa (Forward Kinematics) e Inversa (Inverse Kinematics).

  • Cinemática Directa: movemos manualmente cada articulación (sliders izquierda) → posición final efector (X, Y, Z) calculada y mostrada a la derecha.
  • Cinemática Inversa: fijamos posición deseada del efector → programa calcula automáticamente ángulos de cada articulación para alcanzarla.
Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

La GUI permite usar ambos métodos simultáneamente en la misma pantalla. Ángulos y coordenadas X,Y,Z siempre vinculados y visibles.

Funcionamiento automático: botón Save guarda cada posición/movimiento. Botón Run ejecuta secuencia guardada en bucle. Velocidad y aceleración ajustables desde GUI.

Modelo 3D del Robot SCARA

Vista del modelo 3D.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Diseñado con 3DEXPERIENCE SOLIDWORKS (patrocinador).

3DEXPERIENCE SOLIDWORKS = SOLIDWORKS con capacidades cloud vía plataforma 3DEXPERIENCE. Acceso a datos/modelos desde cualquier lugar/dispositivo. Apps productividad/gestión incluidas.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Ej.: Project Planner (organizar tareas, plazos, progreso). 3D Markup (ver, explorar, anotar modelos desde portátil, tablet, móvil).

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

También SOLIDWORKS xDesign, modelador 3D cloud en navegador, usable solo o con Solidworks, ideal para modelar en cualquier sitio/dispositivo.

Gracias Solidworks por patrocinar. Enlaces para probar:

Prueba 3DEXPERIENCE gratis: www.solidworks.com/HTMTryNow

Más sobre 3DEXPERIENCE SOLIDWORKS: www.solidworks.com/HTMLearnMore

Volvamos al modelo. Objetivo: mayoría de piezas imprimibles en 3D (incluso en impresoras con cama pequeña). Poleas GT2 también imprimibles. Diseño paramétrico: cambias número de dientes → dimensiones se actualizan solos.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Primera articulación: reducción 20:1 en dos etapas con poleas custom. Correas GT2 lazo cerrado 200 mm y 300 mm. Articulaciones: 2 rodamientos de empuje + 1 radial.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Segunda: reducción 16:1 mismo sistema. Tercera: 4:1 una sola etapa. Articulaciones huecas → paso cables motores y micro switches. Ranuras en correas para poleas tensoras.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Gripper: servo MG996R, puntas intercambiables para distintos tamaños. Eje Z: husillo 8 mm. Brazo desliza en 4 varillas lisas 10 mm + rodamientos lineales bolas. Altura = longitud varillas (40 cm). Husillo 2 cm más corto (o motor Z subido 2 cm con espaciadores).

Modelo 3D en Thangs (descarga y exploración navegador):

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Descarga modelo ensamblaje en Thangs.

Archivos STL para impresión 3D:

Impresión 3D de piezas del robot

Imprimí todo en Creality CR-10 (buena y asequible). Piezas caben en impresoras pequeñas (ej. Ender 3).

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Mayoría en PLA+ (azul) y PLA normal (poleas, gripper). ~120 h a 60 mm/s. Base = pieza mayor (32 h). A mayor velocidad, menos tiempo.

Ver también: Mejores Impresoras 3D para Principiantes y Makers [Actualización 2021]

Todas las piezas impresas:

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Nota: todas con Horizontal Expansion -0,1 mm en slicer → cotas más precisas, mejor encaje con rodamientos, varillas, tornillos.

Montaje del robot

Lista componentes mecánicos (electrónicos en sección circuito):

  • 4x Varilla lisa 10 mm 400 mm……… Amazon / Banggood / AliExpress
  • 1x Husillo 8 mm 400 mm ………………… Amazon / Banggood / AliExpress
  • 4x Rodamientos lineales 10 mm …………………..……. Amazon / Banggood / AliExpress
  • 1x Rodamiento empuje 40×60×13 mm …..… Amazon / AliExpress
  • 2x Rodamiento empuje 35×52×12 mm …..… Amazon / AliExpress
  • 5x Rodamiento radial 8×22×7 mm ……………. Amazon / Banggood / AliExpress
  • Tornillos/tuercas M3, M4, M5 varias longitudes

Tornillos necesarios:

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Empezamos por base. Insertar rodamiento radial 35×47 mm.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Luego rodamiento empuje 40×60 mm (entre polea y base). Otro lado base: otro empuje 40×60 + acoplador articulación.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Acoplar polea y parte superior: 4 tornillos M4 55 mm. Tuercas autoblocantes, apriete adecuado → articulación robusta pero gira libre.

Polea intermedia: emparejada con polea articulación por correa 300 mm. 2 rodamientos 608 (arriba/abajo base). Tornillo M8 45 mm + arandela + tuerca autoblocante.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Motor paso a paso para esta articulación: emparejado con polea intermedia por correa 200 mm. 4 tornillos M3 a base.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Antes de apriete final, tensar correa al máximo. Nota: cambié tornillo M8 de polea intermedia con cabeza abajo para que quepa en base.

Comprobar tensión correas. Si flojas, poleas tensoras. Uso tornillo M5 35 mm + tuercas para polea tensora.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Se fija en ranuras de correa → tensar a gusto. Tensé ambos lados. Primera articulación completada.

Micro switch para esta articulación. Soldé cables antes de fijar (espacio justo). Tornillo M3 20 mm + tuerca.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Acoplador pasa muy cerca del switch → usé solo un tornillo para switch; en otro agujero puse tornillo corto pegado abajo. Switch queda firme y funcional.

Eje Z: sobre acoplador, fijar placa base Z.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Encima: 4 abrazaderas para varillas lisas. Insertar varillas (ajuste forzado, hasta acoplador). Apriete con tornillos M4/tuercas.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Insertar rodamiento para husillo. Cubierta simple para ocultar y dar acabado limpio.

Primer brazo: dos piezas atornilladas. Primera pieza: rodamientos lineales (deslizan por varillas). Inserción dura (ajuste justo).

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Depende precisión impresora. Usar Horizontal Expansion al imprimir y ajustar según tu impresora. En mi caso 2 rodamientos no bajaron del todo, pero no es grave.

Unir dos piezas brazo: 4 tornillos M5 25 mm.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Motor paso a paso 2ª articulación. Polea GT2 20 dientes impresa (diseño paramétrico, funciona bien). Fijar tuerca husillo.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Correas y poleas 2ª articulación: 400 mm y 300 mm. Mismo procedimiento que 1ª.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

2ª y 3ª articulación: rodamientos menores. Radial 30×42 mm, empuje 35×52 mm.

Antes de 2º acoplador: insertar 6 tornillos M4 20 mm en ranuras hexagonales.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Sirven para atornillar 2º brazo. Si hace falta tensar correas, mismo método poleas tensoras. Fijé 2º micro switch. Brazo 1 completado.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Unir 2º brazo a acoplador: tornillos previos en acoplador fijan parte superior 2º brazo.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Probé juego (backlash) en articulaciones. Esperaba algo por correas, pero había mucho juego entre mitades de articulación. Problema: agujeros tornillos ligeramente mayores que tornillos. Solución: ajuste más apretado tornillo-agujero.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

En mi caso: taladré agujeros a 4,5 mm y usé tornillos M5 en vez de M4. Actualicé modelo 3D: agujeros 3,5 mm → tornillos M4 funcionan. También retocqué 1ª articulación. Juego casi eliminado (salvo backlash correas).

2º brazo: motor 3ª articulación.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Motor NEMA 17 más corto (24 cm) para aligerar brazo.

Correas/poleas 3ª articulación: una sola etapa, correa 400 mm. Antes de unir parte inferior a superior: conectar motor y micro switch, pasar cables por 2ª articulación.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Insertar cables efector final. Usé cable 4 hilos de motor paso a paso para servo gripper (3 hilos).

Insertar tuercas M4 en ranuras brazo superior → fijar parte inferior.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Antes de cerrar, pasar cables bajo ganchos para evitar partes móviles.

Cables saliendo de 2ª articulación pueden pillarse con tuercas polea → soporte cables impreso para apartarlos.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Cables por un lado del brazo. Cubierta 1er brazo: encaje a presión (snap-fit).

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Brazos completados. Insertar conjunto en varillas Z.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Placa superior Z: micro switch Z + 4 abrazaderas.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Antes de poner placa superior: cubierta simple (como inferior) oculta abrazaderas, tornillos, switch. Luego placa superior atornillada a varillas.

Husillo: el mío venía largo → corté 38 cm con sierra metal. Motor 4º paso a paso + acoplador eje 5→8 mm.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Pasar cables por cubierta y fijar a placa superior (2 tornillos).

Gestión cables: fundas + bridas.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Marcar cables antes de meter en fundas para no equivocarse.

Efector final: gripper simple con servo MG996R. Basado en 2 varillas 6 mm donde deslizan lados.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Lados deslizantes → servo por perno, links impresos, tornillos/tuercas M3. Todo gripper con M3. Espacio justo → paciencia. Ventaja: puntas intercambiables (más anchas/estrechas/formas). Fijar gripper a brazo: tornillos/tuercas M4.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso
Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Conectar servo a cables preinstalados.

¡Robot SCARA montado completamente! Falta electrónica.

Diagrama de circuito SCARA

Arduino UNO + CNC Shield + 4 drivers A4988.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Aunque es robot y parece complejo, eso es toda la electrónica. Alternativa: Arduino MEGA + RAMPS (controladora impresora 3D).

Carcasa impresa 3D para Arduino UNO, se fija a base. Micropaso 1/4 → jumpers en pines correspondientes. Conectar motores y micro switches a CNC Shield.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Diagrama de circuito:

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Componentes:

  • Motor paso a paso – NEMA 17………………
  • Driver A4988…………………..…
  • Arduino CNC Shield ………………………. Amazon / Banggood / AliExpress
  • Arduino Uno………………………………..…
  • Servo MG996R………………….….
  • Interruptor fin de carrera …………………………………. Amazon / Banggood / AliExpress
  • Fuente DC …………………………. Amazon / Banggood / AliExpress

Alimentación: 12 V, mínimo 4 A (sugiero 6 A). Depende de limitación corriente drivers (poner mínimo posible).

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Metí cables en carcasa dejando disipadores drivers libres, puse tapa.

Finalizando montaje

Robot listo. Fijar base a algo. Usé madera 20 mm. Base robot: 12 agujeros. Imprimí plano base, úsalo para taladrar madera.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Avellané lado inferior (tornillos allen cabeza plana, rasantes). Inserté tuercas M4 en ranuras base y atornillé madera a base.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Ideal: atornillar a mesa; yo usé sargentos.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Robot SCARA completado. Veamos cómo funciona.

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

Funcionamiento del robot SCARA

Dos métodos de control en posicionamiento/orientación: cinemática directa e inversa.

Cinemática directa: hallar posición/orientación efector desde ángulos articulares dados.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Cinemática inversa: hallar ángulos articulares para posición dada del efector. Tiene más sentido en robótica: queremos que la herramienta vaya a X,Y,Z concreta.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Ecuaciones (trigonometría) para ambas cinemáticas.

Programación SCARA – Código Arduino y Processing

Al final del artículo: códigos Arduino y Processing completos.

Ecuaciones en código (Processing):

// CINEMÁTICA DIRECTA void forwardKinematics() { float theta1F = theta1 * PI / 180; // grados a radianes float theta2F = theta2 * PI / 180; xP = round(L1 * cos(theta1F) + L2 * cos(theta1F + theta2F)); yP = round(L1 * sin(theta1F) + L2 * sin(theta1F + theta2F)); }

Cinemática directa: calcula X,Y del efector según ángulos theta1, theta2 y longitudes L1, L2.

Cinemática inversa: calcula theta2, theta1 según X,Y dados.

// CINEMÁTICA INVERSA void inverseKinematics(float x, float y) { theta2 = acos((sq(x) + sq(y) - sq(L1) - sq(L2)) / (2 * L1 * L2)); if (x < 0 & y < 0) { theta2 = (-1) * theta2; } theta1 = atan(x / y) - atan((L2 * sin(theta2)) / (L1 + L2 * cos(theta2))); theta2 = (-1) * theta2 * 180 / PI; theta1 = theta1 * 180 / PI; // Ajuste ángulos según cuadrante coordenada final x,y if (x >= 0 & y >= 0) { // 1er cuadrante theta1 = 90 - theta1; } if (x < 0 & y > 0) { // 2º cuadrante theta1 = 90 - theta1; } if (x < 0 & y < 0) { // 3er cuadrante theta1 = 270 - theta1; phi = 270 - theta1 - theta2; phi = (-1) * phi; } if (x > 0 & y < 0) { // 4º cuadrante theta1 = -90 - theta1; } if (x < 0 & y == 0) { theta1 = 270 + theta1; } // Calcular ángulo "phi" para gripper paralelo a eje X phi = 90 + theta1 + theta2; phi = (-1) * phi; // Ajuste phi según cuadrante if (x < 0 & y < 0) { // 3er cuadrante phi = 270 - theta1 - theta2; } if (abs(phi) > 165) { phi = 180 + phi; } theta1=round(theta1); theta2=round(theta2); phi=round(phi); cp5.getController("j1Slider").setValue(theta1); cp5.getController("j2Slider").setValue(theta2); cp5.getController("j3Slider").setValue(phi); cp5.getController("zSlider").setValue(zP); }

Según cuadrante, ajustes con "if". Configuración robot: cinemática inversa con 2 eslabones. 3er ángulo "phi" = orientación gripper.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

GUI con librería controlP5 (Processing). Sliders izq = ángulos articulares; campos texto = posición objetivo. Cada acción → datos por puerto serie a Arduino.

if (gripperValuePrevious != gripperValue) { if (activeIK == false) { // Solo cinemática directa si inversa desactivada gripperAdd = round(cp5.getController("gripperValue").getValue()); gripperValue=gripperAdd+50; updateData(); println(data); myPort.write(data); } }

Datos: ángulos articulares, valor gripper, velocidad, aceleración, flags save/run.

public void updateData() { data = str(saveStatus) +","+str(runStatus) +","+str(round(cp5.getController("j1Slider").getValue())) +","+str(round(cp5.getController("j2Slider").getValue())) +","+str(round(cp5.getController("j3Slider").getValue())) +","+str(round(cp5.getController("zSlider").getValue())) +","+str(gripperValue) +","+str(speedSlider) +","+str(accelerationSlider); }

Arduino recibe un String largo. Extraer datos a variables separadas:

if (Serial.available()) { content = Serial.readString(); // Leer datos Processing // Extraer a array data[] for (int i = 0; i < 10; i++) { int index = content.indexOf(","); data[i] = atol(content.substring(0, index).c_str()); content = content.substring(index + 1); } /* data[0] - SAVE data[1] - RUN data[2] - Articulación 1 data[3] - Articulación 2 data[4] - Articulación 3 data[5] - Posición Z data[6] - Gripper data[7] - Velocidad data[8] - Aceleración */

Con variables, actuamos. Botón SAVE → guarda ángulos actuales en arrays.

// Si SAVE pulsado, guardar en arrays if (data[0] == 1) { theta1Array[positionsCounter] = data[2] * theta1AngleToSteps; theta2Array[positionsCounter] = data[3] * theta2AngleToSteps; phiArray[positionsCounter] = data[4] * phiAngleToSteps; zArray[positionsCounter] = data[5] * zDistanceToSteps; gripperArray[positionsCounter] = data[6]; positionsCounter++; }

Botón RUN → ejecuta pasos guardados, etc.

Control motores: librería AccelStepper. Buena para múltiples steppers a la vez, pero limitación: no implementa aceleración/desaceleración al mover varios juntos (importante para suavidad).

stepper1.moveTo(stepper1Position); stepper2.moveTo(stepper2Position); stepper3.moveTo(stepper3Position); stepper4.moveTo(stepper4Position); while (stepper1.currentPosition() != stepper1Position || stepper2.currentPosition() != stepper2Position || stepper3.currentPosition() != stepper3Position || stepper4.currentPosition() != stepper4Position) { stepper1.run(); stepper2.run(); stepper3.run(); stepper4.run(); }

Logré implementar aceleración/desaceleración pero no tan suave como quería.

Códigos completos Arduino y Processing al final.

Conclusión

Subido código a Arduino, ejecutamos Processing, conectamos alimentación → robot va a home.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Desde ahí: control manual o automático. Cualquier efector: extrusora 3D → impresora 3D; cabeza láser → cortadora láser. Planeo probar ambas, ¡suscríbete!

Notas finales: robot no tan rígido como esperaba.

Construye un Robot SCARA DIY con Arduino – Guía Paso a Paso

Problema: casi todo (eje Z, brazos) soportado solo por 1ª articulación. Peso + fuerzas inerciales al mover → estrés en base (plástico → se dobla un poco). Correas no exentas de backlash → reduce rigidez. Pero proyecto sirve para aprender funcionamiento SCARA y animarte a construir uno.

Preguntas en comentarios y mira mi Colección Proyectos Arduino.


Proceso de manufactura

  1. Construya Sensores de Objetos Personalizados para LEGO Mindstorms EV3: "Ojos" Basados en Luz DIY
  2. Construya un robot con streaming de vídeo controlado por Internet con Arduino y Raspberry Pi
  3. Construye a Sauron: Robot semihumanoide – Guía completa con Arduino Mega 2560
  4. Construye un Monitor de Energía y Registrador de Datos Fiable con Arduino – Guía Paso a Paso
  5. Construya un mando a distancia IR universal con Arduino: Guía paso a paso
  6. LittleArm 2C: Brazo Robot 3D Imprimible para Educación STEM con Arduino Nano
  7. Puerta automática con Arduino y sensor ultrasónico HC-SR04
  8. Construye un Robot Controlado por Gestos en Casa con Arduino y MPU-6050
  9. Whitepaper: Desbloquee su potencial de automatización – 7 pasos probados para proyectos robóticos de bajo riesgo y alta recompensa
  10. Cómo Elegir el Robot SCARA Ideal: Guía Completa para Fabricantes
  11. 7 pasos para construir una hoja de ruta de automatización exitosa