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

Brazo robótico de soldadura automatizado

Componentes y suministros

Motor paso a paso 28BYJ-48 con módulo de controlador ULN2003
× 1
Arduino UNO
× 1
Servomotor TowerPro MG955
× 1
MÓDULO LCD 1602 SERIE I2C
× 1
Módulo reductor
× 1
Motor paso a paso OpenBuilds NEMA 17
× 1

Herramientas y máquinas necesarias

Cortadora láser (genérica)
Juego de brocas de corte para herramientas rotativas para Dremel

Aplicaciones y servicios en línea

Arduino IDE
Microsoft Visual Studio 2015

Acerca de este proyecto

Introducción

La idea de este proyecto me vino a la mente accidentalmente cuando estaba buscando las diferentes habilidades de los brazos robóticos, luego descubrí que hay algunos que cubren esta área de uso (Soldadura automatizada y brazo robótico de soldadura).

De hecho, tuve una experiencia antes en la construcción de proyectos similares, pero esta vez el proyecto fue muy útil y efectivo.

Antes de decidir la forma, vi muchas aplicaciones y otros proyectos, especialmente en el campo de la industria, los proyectos de código abierto me ayudaron mucho a encontrar la forma correcta y adecuada.

Eso se debe a la ciencia detrás de la alimentación visual de nuestro cerebro.

Paso 1:diseño

Al principio vi muchos proyectos profesionales que no pude implementar debido a su complejidad.

Luego decidí hacer mi propio producto inspirado en los otros proyectos, así que usé Google Sketch up 2017 pro. Cada parte fue diseñada para ensamblarse una al lado de la otra en un orden específico como se muestra en la siguiente imagen.

Y antes de ensamblarlo tuve que probar las piezas y elegir el soldador adecuado, esto sucedió dibujando un proyecto de acabado virtual como guía para mí.

Estos dibujos muestran la forma de tamaño real del acabado real y las dimensiones correctas de cada pieza para elegir el soldador correcto.

Paso 2:funcionamiento e instalación

Durante el trabajo enfrenté algunos obstáculos que tenemos que anunciar al respecto.

1. Los brazos eran demasiado pesados ​​para ser sostenidos por los pequeños motores paso a paso, y lo arreglamos en la siguiente versión o en la impresión con corte láser.

2. Debido a que el modelo estaba hecho de material plástico, la fricción de la base giratoria era alta y los movimientos no eran suaves.

La primera solución fue comprar un motor paso a paso más grande que pudiera soportar el peso y la fricción, y rediseñamos la base para adaptarse a un motor paso a paso más grande.

En realidad, el problema se detiene y el motor más grande no lo solucionó, y eso se debió a que la fricción entre dos superficies de plástico al lado no podemos ajustar la olla en un porcentaje. La posición de rotación máxima no es la corriente máxima que puede proporcionar el conductor. Debe utilizar la técnica mostrada por el fabricante, donde mide el voltaje mientras gira la olla.

Luego recurrí a cambiar totalmente el diseño de la base y le puse un servomotor con engranaje metálico instalado de mecanismo de engranajes.

3. voltaje

La placa Arduino puede recibir alimentación desde el conector de alimentación de CC (7 - 12 V), el conector USB (5 V) o el pin VIN de la placa (7-12 V). El suministro de voltaje a través de los pines de 5V o 3.3V evita el regulador, y decidimos comprar un cable USB especial que admita 5 voltios de la PC o cualquier fuente de alimentación.

por lo que los motores paso a paso y los demás componentes funcionan correctamente con solo 5 voltios y para proteger las piezas de cualquier problema, solucionamos el módulo reductor.

El módulo reductor es un convertidor reductor (convertidor reductor) es un convertidor de potencia CC a CC que reduce el voltaje (mientras aumenta la corriente) desde su entrada (suministro) a su salida (carga) y también mantiene la estabilidad o el voltaje.

Paso 3:modificaciones

Después de algunas modificaciones, cambiamos el diseño del modelo reduciendo el tamaño de los brazos y haciendo un orificio adecuado para el engranaje del servomotor como se muestra.

Y mientras probaba, el servomotor logró girar el peso 180 grados correctamente porque su alto par significa que un mecanismo es capaz de manejar cargas más pesadas. La cantidad de fuerza de giro que puede generar un servomecanismo depende de los factores de diseño:voltaje de suministro, velocidad del eje, etc.

También usar I2c fue bueno porque solo usa dos pines, y puede colocar varios dispositivos i2c en los mismos dos pines. Entonces, por ejemplo, ¡podría tener hasta 8 mochilas LCD + LCD en dos pines! La mala noticia es que tienes que usar el pin i2c de 'hardware'.

Paso 4:Soporte o pinza para cautín

La pinza se fijó utilizando un servomotor de engranajes metálicos para soportar el peso del soldador.

  servo.attach (9, 1000, 2000); servo.write (restringir (ángulo, 10, 160));  

Al principio teníamos un obstáculo que era el motor temblando y vibrando hasta que encontramos un código complicado que nos da ángeles de restricciones.

Porque no todos los servos tienen una rotación completa de 180 grados. Muchos no lo hacen.

Entonces escribimos una prueba para determinar dónde están los límites mecánicos. Use servo.write Microsegundos en lugar de servo.write Me gusta más esto porque le permite usar 1000-2000 como rango base. Y muchos servos serán compatibles fuera de ese rango, de 600 a 2400.

Entonces, probamos diferentes valores y vemos de dónde obtiene el zumbido que le dice que ha alcanzado el límite. Entonces solo manténgase dentro de esos límites cuando escriba. Puede establecer esos límites cuando usa servo.attach (pin, min, max)

Encuentre el rango real de movimiento y asegúrese de que el código no intente empujarlo más allá de los topes finales, la función de restricción () Arduino es útil para esto.

Paso 5:codificación

El entorno de bibliotecas que usa Arduino se puede ampliar mediante el uso de bibliotecas, al igual que la mayoría de las plataformas de programación. Las bibliotecas proporcionan una funcionalidad adicional para su uso en bocetos, p. Ej. trabajar con hardware o manipular datos. Para usar una biblioteca en un boceto.

  #include AccelStepper.h # include MultiStepper.h # include Servo.h # include Wire.h #include LiquidCrystal_I2C.h  

Código

  • Código Steppers X Y Z
Código Steppers X Y Z Arduino
 #include "AccelStepper.h" // Configuración de AccelStepperAccelStepper stepperX (1, ​​2, 3); // 1 =Interfaz Easy Driver // UNO Pin 2 conectado al pin STEP de Easy Driver // UNO Pin 3 conectado al pin DIR de Easy Driver AccelStepper stepperZ (1, 5, 6); // 1 =Interfaz Easy Driver // UNO Pin 5 conectado al pin STEP de Easy Driver // UNO Pin 6 conectado al pin DIR de Easy DriverAccelStepper stepperY (7, 8, 9); // 1 =Interfaz Easy Driver // UNO Pin 5 conectado al pin STEP de Easy Driver // UNO Pin 6 conectado al pin DIR de Easy Driver // Variables de viaje paso a paso largo TravelX; // Usado para almacenar el valor X ingresado en el Serial Monitorlong TravelZ; // Usado para almacenar el valor Z ingresado en el Serial Monitorlong TravelY; // Se usa para almacenar el valor Y ingresado en el Monitor serialint move_finished =1; // Se usa para verificar si el movimiento se completóvoid setup () {Serial.begin (9600); // Inicie el monitor en serie con una velocidad de 9600 baudios // Imprima las instrucciones en el monitor en serie al iniciar Serial.println ("Introduzca la distancia de viaje separada por una coma:X, Z"); Serial.print ("Enter Move Values ​​Now:"); // Establecer la velocidad máxima y la aceleración de cada Stepper stepperX.setMaxSpeed ​​(500.0); // Establecer la velocidad máxima del eje X stepperX.setAcceleration (500.0); // Aceleración del eje X stepperZ.setMaxSpeed ​​(250.0); // Establece la velocidad máxima del eje Z más lenta para la rotación stepperZ.setAcceleration (250.0); // Aceleración del eje Z paso a pasoY.setMaxSpeed ​​(250.0); // Establece la velocidad máxima del eje Y más lenta para la rotación paso a pasoY.setAcceleration (250.0); // Aceleración del eje Y} void loop () {while (Serial.available ()> 0) {// Verifica si hay valores disponibles en el búfer serial move_finished =0; // Establecer variable para comprobar el movimiento de Steppers TravelX =Serial.parseInt (); // Poner el primer valor numérico del búfer en la variable TravelX Serial.print (TravelX); Serial.print ("X Travel,"); TravelZ =Serial.parseInt (); // Coloca el segundo valor numérico del búfer en la variable TravelZ Serial.print (TravelZ); Serial.print ("Z Travel,"); TravelY =Serial.parseInt (); // Coloca el segundo valor numérico del búfer en la variable TravelY Serial.print (TravelY); Serial.println ("Y Travel"); stepperX.moveTo (TravelX); // Establecer una nueva posición de movimiento para X Stepper stepperZ.moveTo (TravelZ); // Establecer una nueva posición de movimiento para Z Stepper stepperY.moveTo (TravelY); // Establecer una nueva posición de movimiento para Z Stepper delay (1000); // Espere 1 segundo antes de mover el Steppers Serial.print ("Moviendo Steppers a la posición ..."); } // Compruebe si los Stepper han alcanzado la posición deseada if ((stepperX.distanceToGo ()! =0) || (stepperZ.distanceToGo ()! =0) || (stepperY.distanceToGo ()! =0)) {stepperX .correr(); // Mueve el Stepper X a la posición stepperZ.run (); // Mueve el Stepper Z a la posición stepperY.run (); // Mueve el Stepper y a la posición} // Si el movimiento se completa, muestra un mensaje en el Monitor serial if ((move_finished ==0) &&(stepperX.distanceToGo () ==0) &&(stepperZ.distanceToGo () ==0) &&(stepperY.distanceToGo () ==0)) {Serial.println ("¡COMPLETADO!"); Serial.println (""); Serial.println ("Ingresar valores de movimiento siguiente (0,0,0 para restablecer):"); // Prepárate para los nuevos valores del monitor serial move_finished =1; // Restablecer variable de movimiento}} 

Esquemas


Proceso de manufactura

  1. Makerarm:un brazo robótico genial para los creadores
  2. Diseño de controles de motor para sistemas robóticos
  3. El controlador del motor integra el núcleo Arm Cortex-M0
  4. El diseño de referencia simplifica el control de motores robóticos industriales
  5. Brazo robótico:¿Cómo se fabrica?
  6. Brazos robóticos en la fabricación y sus beneficios
  7. Servomotor para brazo robótico:¿Qué pasará??
  8. Uso de IoT para controlar de forma remota un brazo robótico
  9. Células robóticas que permiten el cuidado automatizado de piezas
  10. El mercado de los brazos robóticos crecerá hasta los 14.780 millones de USD para 2026
  11. El brazo robótico industrial:un auge en la fabricación