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 tu propio controlador de brazo robótico MK2 Plus

Componentes y materiales

ComponenteCantidad
Shield CNC para Arduino1
Motores paso a paso NEMA 17 (genéricos)3
Arduino UNO1
Drivers A4988 (SparkFun o genéricos)3
Finales de carrera micro (OpenBuilds)3

Herramientas necesarias

Aplicaciones y servicios

Sobre el proyecto

El brazo EEZYBOT MK2

El EEZYBOT MK2 (diseñado por daghizmo) es un brazo robótico impreso en 3D basado en la cinemática del ABB IRB460 a escala 1:7. La versión original usa servomotores, lo que lo hace algo tembloroso. El MK2 Plus reemplaza los servos por 3 motores paso a paso para mayor precisión y suavidad.

Construye tu propio controlador de brazo robótico MK2 Plus

La impresión lleva varios días. Hay muchos tutoriales de montaje en línea.

Selección de posición Home

A diferencia de los servos, los steppers no saben su posición al encender. Usamos 3 finales de carrera para una rutina de homing al inicio. Coloca los finales en la base principal (Z) y en los puntos donde los enlaces accionan los interruptores X e Y.

Construye tu propio controlador de brazo robótico MK2 Plus

Cableado

El shield CNC tiene bornes marcados. Conecta:

Construye tu propio controlador de brazo robótico MK2 Plus

Usa una fuente 12V capaz de suministrar la corriente necesaria sin que los motores pierdan pasos.

Código

Usamos la librería AccelStepper (instalable desde el Gestor de Librerías del IDE) para movimiento suave, aceleración/desaceleración y control simultáneo de varios motores.

Construye tu propio controlador de brazo robótico MK2 Plus

Definición de pines y objetos

#define XSTEP 2
#define YSTEP 3
#define ZSTEP 4
#define XDIR 5
#define YDIR 6
#define ZDIR 7
#define ENABLE 8
#define XLIMIT 9
#define YLIMIT 10
#define ZLIMIT 11
#define XMOTORACC 250
#define XMOTORMAXSPEED 1000
#define YMOTORACC 250
#define YMOTORMAXSPEED 1000

#include <AccelStepper.h>
AccelStepper XMOTOR(1, XSTEP, XDIR);
AccelStepper YMOTOR(1, YSTEP, YDIR);
AccelStepper ZMOTOR(1, ZSTEP, ZDIR);

Configuración de pines

void pinsetup() {
  pinMode(ENABLE, OUTPUT); digitalWrite(ENABLE, LOW);
  pinMode(XLIMIT, INPUT_PULLUP);
  pinMode(YLIMIT, INPUT_PULLUP);
  pinMode(ZLIMIT, INPUT_PULLUP);
}

Rutina de homing (autohome)

La cinemática del brazo requiere una secuencia en varios pasos:

  1. Mover X e Y en direcciones opuestas hasta pulsar final Y.
  2. Girar ambos en misma dirección hasta pulsar final X.
  3. Retroceder ligeramente para liberar los finales.
  4. Homing del eje Z (rotación base).
void autohome() { xyhome(); zhome(); }

void xyhome() {
  int initial_xhome = -1, initial_yhome = -1;
  XMOTOR.setMaxSpeed(500); XMOTOR.setAcceleration(50);
  YMOTOR.setMaxSpeed(500); YMOTOR.setAcceleration(50);
  while (digitalRead(YLIMIT)) {
    XMOTOR.moveTo(initial_xhome); YMOTOR.moveTo(initial_yhome);
    initial_xhome--; initial_yhome--;
    XMOTOR.run(); YMOTOR.run(); delay(5);
  }
  XMOTOR.setCurrentPosition(0); YMOTOR.setCurrentPosition(0);
  initial_xhome = -1; initial_yhome = 1;
  while (digitalRead(XLIMIT)) {
    XMOTOR.moveTo(initial_xhome); YMOTOR.moveTo(initial_yhome);
    initial_xhome--; initial_yhome++;
    XMOTOR.run(); YMOTOR.run(); delay(5);
  }
  YMOTOR.setCurrentPosition(0);
  YMOTOR.setMaxSpeed(250); YMOTOR.setAcceleration(10);
  initial_yhome = 1;
  while (!digitalRead(YLIMIT)) {
    YMOTOR.moveTo(initial_yhome); YMOTOR.run(); initial_yhome++; delay(5);
  }
  YMOTOR.setCurrentPosition(0);
  YMOTOR.setMaxSpeed(YMOTORMAXSPEED); YMOTOR.setAcceleration(YMOTORACC);
  XMOTOR.setCurrentPosition(0);
  XMOTOR.setMaxSpeed(250); XMOTOR.setAcceleration(10);
  initial_xhome = 1;
  while (!digitalRead(XLIMIT)) {
    XMOTOR.moveTo(initial_xhome); XMOTOR.run(); initial_xhome++; delay(5);
  }
  XMOTOR.setCurrentPosition(0);
  XMOTOR.setMaxSpeed(XMOTORMAXSPEED); XMOTOR.setAcceleration(XMOTORACC);
}

void zhome() {
  int initial_zhome = -1;
  ZMOTOR.setMaxSpeed(100); ZMOTOR.setAcceleration(100);
  while (digitalRead(ZLIMIT)) {
    ZMOTOR.moveTo(initial_zhome); initial_zhome--; ZMOTOR.run(); delay(5);
  }
  ZMOTOR.setCurrentPosition(0);
  ZMOTOR.setMaxSpeed(50); ZMOTOR.setAcceleration(50);
  initial_zhome = 1;
  while (!digitalRead(ZLIMIT)) {
    ZMOTOR.moveTo(initial_zhome); ZMOTOR.run(); initial_zhome++; delay(5);
  }
  ZMOTOR.setCurrentPosition(0);
  ZMOTOR.setMaxSpeed(1000); ZMOTOR.setAcceleration(1000);
}

Setup y loop de ejemplo

void setup() {
  Serial.begin(9600);
  pinsetup();
  autohome();
  Serial.println("HOMING OK");
}

void loop() {
  XMOTOR.runToNewPosition(100); delay(1000);
  YMOTOR.runToNewPosition(50); delay(1000);
  YMOTOR.runToNewPosition(-50); delay(1000);
  YMOTOR.runToNewPosition(0); delay(1000);
  XMOTOR.runToNewPosition(0); delay(1000);
}

¡Cuidado en el primer homing! Si los giran al revés, corta la alimentación y invierte el conector del motor.

Conclusión

Muchos usan firmware GRBL (requiere PC). Si solo necesitas movimientos fijos, puedes programarlos directamente en el Arduino. También es fácil añadir control por serie (ej. enviar "5,6,7*" para mover X=5, Y=6, Z=7) o incluso implementar cinemática inversa para coordenadas 3D.

¡Diviértete y gracias a los diseñadores de Thingiverse!

Código completo

Descarga el sketch robotArm.ino desde el repositorio GitHub.

Modelos 3D

Archivos CAD en Thingiverse (créditos a ackyltle).

Proceso de manufactura

  1. Brazo Robótico MeArm V1.0 – Construye tu Brazo Robótico con Arduino y Raspberry Pi
  2. Brazo Robótico Controlado por Ethernet: Control Remoto Simplificado
  3. LittleArm 2C: Brazo Robot 3D Imprimible para Educación STEM con Arduino Nano
  4. Brazo Robótico Arduino Controlado por Gestos Manuales – Construcción Paso a Paso
  5. Controla tu brazo robótico Arduino con app Android dedicada
  6. Controlador Joystick Preciso para Robot MeArm - Grabar y Reproducir Coordenadas con Arduino Uno
  7. Realtime Robotics lanza controlador avanzado para simplificar la integración y acelerar el despliegue
  8. KUKA KMR iiwa: brazo robótico colaborativo móvil para Industria 4.0
  9. Robot SCARA de doble brazo: soluciones avanzadas de ensamblaje y producción
  10. Yama Seiki GA-2000CR: Centro de torneado compacto con brazo robot y sistema de palets avanzado
  11. Infineon presenta controlador de motor IMC300 con Arm Cortex-M0 integrado para mayor flexibilidad