Manipulador de brazo robótico. Brazo robótico de mesa de bricolaje, manipulador de plexiglás con servos o ingeniería inversa de uArm. Materiales y herramientas

¡Hola!

Hablamos de la línea de manipuladores robóticos colaborativos de Universal Robots.

La empresa Universal Robots, originaria de Dinamarca, produce manipuladores robóticos colaborativos para la automatización cíclica. procesos de producción. En este artículo presentamos sus principales especificaciones y considerar las áreas de aplicación.

¿Qué es esto?

Los productos de la empresa están representados por una línea de tres dispositivos de manipulación industrial ligeros con cadena cinemática abierta:
UR3, UR5, UR10.
Todos los modelos cuentan con 6 grados de movilidad: 3 portátiles y 3 orientables. Los dispositivos de Universal Robots producen únicamente movimientos angulares.
Los manipuladores robóticos se dividen en clases, según la carga útil máxima permitida. Otras diferencias son: radio área de trabajo, peso y diámetro de la base.
Todos los manipuladores UR están equipados con sensores de posición absoluta de alta precisión, que simplifican la integración con dispositivos y equipos externos. Gracias a su diseño compacto, los manipuladores UR no ocupan mucho espacio y pueden instalarse en secciones de trabajo o en líneas de producción donde los robots convencionales no caben. Características:
¿Por qué son interesantes?Facilidad de programación

La tecnología de programación patentada y especialmente desarrollada permite a los operadores no calificados configurar y controlar rápidamente los brazos robóticos UR utilizando tecnología de visualización 3D intuitiva. La programación se produce mediante una serie de movimientos simples del cuerpo de trabajo del manipulador a las posiciones requeridas, o presionando las flechas en programa especial en tableta.UR3:UR5:UR10: Configuración rápida

El operador inicial necesitará menos de una hora para desempacar, instalar y programar la primera operación simple. UR3: UR5: UR10: Colaboración y seguridad

Los manipuladores UR pueden reemplazar a los operadores que realizan tareas rutinarias en entornos peligrosos y contaminados. El sistema de control tiene en cuenta las influencias perturbadoras externas que se ejercen sobre el manipulador del robot durante el funcionamiento. Gracias a esto, los sistemas de manipulación UR pueden funcionar sin barreras protectoras, cerca de los puestos de trabajo del personal. Los sistemas de seguridad de robots están aprobados y certificados por TÜV, la inspección técnica alemana.
UR3: UR5: UR10: Variedad de cuerpos de trabajo.

Al final manipuladores industriales UR proporciona un soporte estandarizado para instalar piezas de trabajo especiales. Se pueden instalar módulos adicionales de sensores de fuerza-par o cámaras entre el cuerpo de trabajo y el eslabón final del manipulador. Posibles aplicaciones

Los manipuladores robóticos industriales UR abren la posibilidad de automatizar casi todos los procesos rutinarios cíclicos. Los dispositivos de Universal Robots han demostrado su eficacia en diversos campos de aplicación.

Traducción

La instalación de manipuladores UR en áreas de transferencia y embalaje aumenta la precisión y reduce la contracción. La mayoría de las operaciones de transferencia se pueden realizar sin supervisión. Pulido, pulido, esmerilado

El sistema de sensores incorporado le permite controlar la precisión y uniformidad de la fuerza aplicada en superficies curvas e irregulares.

Moldeo por inyección

La alta precisión de los movimientos repetitivos permite que los robots UR se utilicen para tareas de procesamiento de polímeros y moldeo por inyección.
Mantenimiento de máquinas CNC.

La clase de protección de la carcasa ofrece la posibilidad de instalar sistemas de manipulación para la colaboración con máquinas CNC. Embalaje y apilado

Las tecnologías de automatización tradicionales son engorrosas y caras. Los robots UR, fácilmente personalizables, son capaces de trabajar con o sin escudos protectores alrededor de los empleados las 24 horas del día, lo que garantiza alta precisión y productividad. Control de calidad

Para mediciones tridimensionales es adecuado un manipulador robótico con cámaras de video, lo que es una garantía adicional de la calidad de los productos. Asamblea

Un sencillo dispositivo de fijación permite equipar a los robots UR con los mecanismos auxiliares adecuados necesarios para el montaje de piezas de madera, plástico, metal y otros materiales. Constituir

El sistema de control le permite controlar el par desarrollado para evitar un apriete excesivo y garantizar la tensión requerida. Unión y soldadura

La alta precisión de posicionamiento del elemento de trabajo le permite reducir la cantidad de desperdicio al realizar operaciones de pegado o aplicación de sustancias.
Los brazos robóticos industriales UR pueden funcionar Varios tipos Soldadura: arco, punto, ultrasónica y plasma. Total:

Los manipuladores industriales de Universal Robots son compactos, livianos y fáciles de aprender y usar. Los robots UR son una solución flexible para una amplia gama de tareas. Los manipuladores se pueden programar para realizar cualquier acción inherente a los movimientos de una mano humana y son mucho mejores en los movimientos de rotación. Los manipuladores no son propensos a la fatiga ni al miedo a lesionarse; no necesitan descansos ni fines de semana.
Las soluciones de Universal Robots le permiten automatizar cualquier proceso rutinario, lo que aumenta la velocidad y la calidad de la producción.

Discuta la automatización de sus procesos de producción utilizando manipuladores Universal Robots con un distribuidor oficial.

Estamos creando un manipulador robótico utilizando un telémetro e implementando retroiluminación.

Cortaremos la base de acrílico. Utilizamos servoaccionamientos como motores.

Descripción general del proyecto del manipulador robótico.

El proyecto utiliza 6 servomotores. Para la parte mecánica se utilizó acrílico de 2 mm de espesor. La base de una bola de discoteca resultó útil como trípode (uno de los motores está montado en el interior). También se utilizan un sensor de distancia ultrasónico y un LED de 10 mm.

Se utiliza una placa de alimentación Arduino para controlar el robot. La fuente de energía en sí es la fuente de alimentación de la computadora.

El proyecto proporciona explicaciones completas para el desarrollo de un brazo robótico. Las cuestiones de suministro de energía del diseño desarrollado se consideran por separado.

Componentes principales para el proyecto del manipulador.

Comencemos el desarrollo. Necesitará:

  • 6 servomotores (utilicé 2 modelos mg946, 2 mg995, 2 futuba s3003 (mg995/mg946 tienen mejores características que futuba s3003, pero estos últimos son mucho más baratos);
  • acrílico de 2 milímetros de espesor (y un pequeño trozo de 4 mm de espesor);
  • sensor de distancia ultrasónico hc-sr04;
  • LED de 10 mm (color, a su discreción);
  • trípode (usado como base);
  • empuñadura de aluminio (cuesta entre 10 y 15 dólares).

Para conducir:

  • Placa Arduino Uno (el proyecto utiliza una placa casera que es completamente similar a Arduino);
  • placa de alimentación (tendrá que hacerlo usted mismo, volveremos a este tema más adelante, requiere atención especial);
  • fuente de alimentación (en en este caso se utiliza fuente de alimentación de computadora);
  • una computadora para programar su manipulador (si usa Arduino para programar, entonces el IDE de Arduino)

Por supuesto, necesitarás cables y algunas herramientas básicas como destornilladores y similares. Ahora podemos pasar al diseño.

Ensamble mecanico

Antes de comenzar a desarrollar la parte mecánica del manipulador, cabe señalar que no tengo dibujos. Todos los nudos se hicieron "en la rodilla". Pero el principio es muy simple. Tiene dos enlaces acrílicos, entre los cuales necesita instalar servomotores. Y los otros dos enlaces. También para instalar motores. Bueno, el agarre en sí. La forma más sencilla de comprar una empuñadura de este tipo es en Internet. Casi todo se instala con tornillos.

La longitud de la primera parte es de unos 19 cm; el segundo - alrededor de 17,5; La longitud del eslabón frontal es de unos 5,5 cm, seleccione las dimensiones restantes de acuerdo con las dimensiones de su proyecto. En principio, el tamaño de los nodos restantes no es tan importante.

El brazo mecánico debe proporcionar un ángulo de rotación de 180 grados en la base. Entonces tenemos que instalar un servomotor en la parte inferior. En este caso, se instala en la misma bola de discoteca. En su caso, podría ser cualquier caja adecuada. El robot está montado sobre este servomotor. Puede, como se muestra en la figura, instalar un anillo de brida de metal adicional. Puedes prescindir de él.

Para instalacion sensor ultrasónico, se utiliza acrílico de 2 mm de espesor. Puedes instalar un LED justo debajo.

Es difícil explicar en detalle exactamente cómo construir un manipulador de este tipo. Mucho depende de los componentes y piezas que tenga en stock o que compre. Por ejemplo, si las dimensiones de tus servos son diferentes, los eslabones de la armadura acrílica también cambiarán. Si las dimensiones cambian, la calibración del manipulador también será diferente.

Definitivamente tendrás que extender los cables del servomotor después de completar el desarrollo de la parte mecánica del manipulador. Para estos fines, este proyecto utilizó cables de un cable de Internet. Para que todo esto se vea así, no seas perezoso e instala adaptadores en los extremos libres de los cables extendidos: hembra o macho, dependiendo de las salidas de tu placa Arduino, blindaje o fuente de alimentación.

Después de montar la parte mecánica, podemos pasar al “cerebro” de nuestro manipulador.

Agarre del manipulador

Para instalar la empuñadura necesitarás un servomotor y algunos tornillos.

Entonces, ¿qué es exactamente lo que hay que hacer?

Tome el balancín del servo y acórtelo hasta que se ajuste a su agarre. Después de esto, apriete los dos tornillos pequeños.

Después de instalar el servo, gírelo hacia la posición extrema izquierda y apriete las mordazas de agarre.

Ahora puedes instalar el servo con 4 tornillos. Al mismo tiempo, asegúrese de que el motor todavía esté en la posición extrema izquierda y que las mordazas estén cerradas.

Puede conectar el servodrive a la placa Arduino y comprobar el funcionamiento de la pinza.

Tenga en cuenta que pueden ocurrir problemas con el funcionamiento de la pinza si los pernos/tornillos se aprietan demasiado.

Agregar iluminación al puntero

Puede alegrar su proyecto agregándole iluminación. Para ello se utilizaron LED. Es fácil de hacer y luce muy impresionante en la oscuridad.

Los lugares para instalar LED dependen de su creatividad e imaginación.

Diagrama eléctrico

Puede utilizar un potenciómetro de 100 kOhm en lugar de la resistencia R1 para ajustar manualmente el brillo. Se utilizaron resistencias de 118 ohmios como resistencia R2.

Lista de componentes principales que se utilizaron:

  • R1 - resistencia de 100 kOhmios
  • R2 - resistencia de 118 ohmios
  • transistores bc547
  • fotorresistor
  • 7 LED
  • Cambiar
  • Conexión a la placa Arduino

Se utilizó una placa Arduino como microcontrolador. La fuente de alimentación utilizada fue una fuente de alimentación de computadora personal. Al conectar el multímetro a los cables rojo y negro, verá 5 voltios (que se utilizan para los servomotores y el sensor de distancia ultrasónico). El amarillo y el negro te darán 12 voltios (para Arduino). Hacemos 5 conectores para los servomotores, en paralelo conectamos los positivos a 5 V y los negativos a tierra. Lo mismo con el sensor de distancia.

Tras esto conectamos los conectores restantes (uno de cada servo y dos del telémetro) a la placa que soldamos y al Arduino. Al mismo tiempo, no olvides indicar correctamente los pines que utilizaste en el programa en el futuro.

Además, se instaló un indicador LED de alimentación en la placa de alimentación. Esto es fácil de implementar. Además, se utilizó una resistencia de 100 ohmios entre 5 V y tierra.

El LED de 10 mm del robot también está conectado al Arduino. Una resistencia de 100 ohmios va desde el pin 13 al extremo positivo del LED. Negativo - al suelo. Puedes desactivarlo en el programa.

Para 6 servomotores, se utilizan 6 conectores, ya que los 2 servomotores siguientes utilizan la misma señal de control. Los conductores correspondientes están conectados y conectados a un pin.

Repito que como fuente de alimentación se utiliza la fuente de alimentación de una computadora personal. O, por supuesto, puedes comprar una fuente de alimentación por separado. Pero teniendo en cuenta que tenemos 6 unidades, cada una de las cuales puede consumir unos 2 A, una fuente de alimentación tan potente no será barata.

Tenga en cuenta que los conectores de los servos están conectados a las salidas PWM del Arduino. Cerca de cada uno de estos pines en el tablero hay símbolo~. Se puede conectar un sensor de distancia ultrasónico a los pines 6, 7. Se puede conectar un LED al pin 13 y a tierra. Estos son todos los pines que necesitamos.

Ahora podemos pasar a la programación de Arduino.

Antes de conectar la placa vía USB a su computadora, asegúrese de apagarla. Cuando pruebe el programa, apague también la alimentación de su brazo robótico. Si no se apaga la alimentación, el Arduino recibirá 5 voltios del USB y 12 voltios de la fuente de alimentación. En consecuencia, la energía del USB se transferirá a la fuente de alimentación y se “hundirá” un poco.

El diagrama de cableado muestra que se han agregado potenciómetros para controlar los servos. Los potenciómetros son opcionales, pero el código anterior no funcionará sin ellos. Los potenciómetros se pueden conectar a los pines 0,1,2,3 y 4.

Programación y primer lanzamiento.

Se utilizan 5 potenciómetros para el control (puedes reemplazarlos completamente con 1 potenciómetro y dos joysticks). El diagrama de conexión con potenciómetros se muestra en la parte anterior. El boceto de Arduino está aquí.

A continuación se muestran varios vídeos del brazo robótico en acción. Espero que disfrutes.

El vídeo de arriba muestra las últimas modificaciones del armamento. Tuve que cambiar un poco el diseño y reemplazar algunas piezas. Resultó que los servos del futuba s3003 eran bastante débiles. Resultó que se utilizaban únicamente para agarrar o girar la mano. Entonces instalaron mg995. Bueno, mg946 generalmente será una excelente opción.

Programa de control y explicaciones del mismo.

// los accionamientos se controlan mediante resistencias variables: potenciómetros.

int potpin = 0; // pin analógico para conectar un potenciómetro

valor int; // variable para leer datos del pin analógico

myservo1.attach(3);

myservo2.attach(5);

myservo3.attach(9);

myservo4.attach(10);

myservo5.attach(11);

pinMode(led, SALIDA);

( //servo 1 pin analógico 0

val = analogRead(potpin); // lee el valor del potenciómetro (valor entre 0 y 1023)

// escala el valor resultante para usarlo con servos (obteniendo un valor en el rango de 0 a 180)

myservo1.write(val); // lleva el servo a una posición de acuerdo con el valor calculado

retraso(15); // espera a que el servomotor alcance la posición especificada

val = analogRead(potpin1); // servo 2 en el pin analógico 1

valor = mapa(val, 0, 1023, 0, 179);

myservo2.write(val);

val = analogRead(potpin2); // servo 3 en el pin analógico 2

valor = mapa(val, 0, 1023, 0, 179);

myservo3.write(val);

val = analogRead(potpin3); // servo 4 en el pin analógico 3

valor = mapa(val, 0, 1023, 0, 179);

myservo4.write(val);

val = analogRead(potpin4); //serva 5 en el pin analógico 4

valor = mapa(val, 0, 1023, 0, 179);

myservo5.write(val);

Bosquejo usando un sensor de distancia ultrasónico

Esta es probablemente una de las partes más impresionantes del proyecto. Se instala un sensor de distancia en el manipulador, que reacciona a los obstáculos circundantes.

Las explicaciones básicas del código se presentan a continuación.

#definir pin trigonométrico 7

El siguiente fragmento de código:

Asignamos nombres a las 5 señales (para 6 unidades) (puede ser cualquier cosa)

Siguiente:

Serie.begin(9600);

pinMode(trigPin, SALIDA);

pinMode(echoPin, ENTRADA);

pinMode(led, SALIDA);

myservo1.attach(3);

myservo2.attach(5);

myservo3.attach(9);

myservo4.attach(10);

myservo5.attach(11);

Le indicamos a la placa Arduino a qué pines están conectados los LED, los servomotores y el sensor de distancia. No hay necesidad de cambiar nada aquí.

posición vacía1())(

escritura digital (led, ALTA);

myservo2.writeMicrosegundos(1300);

myservo4.writeMicrosegundos(800);

myservo5.writeMicrosegundos(1000);

Hay algunas cosas que puedes cambiar aquí. Establecí una posición y la llamé posición1. Se utilizará en el programa futuro. Si desea proporcionar un movimiento diferente, cambie los valores entre paréntesis de 0 a 3000.

Después:

posición vacía2())(

escritura digital (led, BAJO);

myservo2.writeMicrosegundos(1200);

myservo3.writeMicrosegundos(1300);

myservo4.writeMicrosegundos(1400);

myservo5.writeMicrosegundos(2200);

Similar a la pieza anterior, solo que en este caso es la posición2. Usando el mismo principio, puedes agregar nuevas posiciones para el movimiento.

larga duración, distancia;

escritura digital (trigPin, BAJO);

retrasoMicrosegundos(2);

escritura digital (trigPin, ALTA);

retrasoMicrosegundos(10);

escritura digital (trigPin, BAJO);

duración = pulseIn(echoPin, ALTA);

distancia = (duración/2) / 29,1;

Ahora el código principal del programa comienza a funcionar. No deberías cambiarlo. La tarea principal de las líneas anteriores es configurar el sensor de distancia.

Después:

si (distancia<= 30) {

si (distancia< 10) {

myservo5.writeMicrosegundos(2200); //abrir capturador

myservo5.writeMicrosegundos(1000); //cerrar el capturador

Ahora puedes agregar nuevos movimientos según la distancia medida por el sensor ultrasónico.

si (distancia<=30){ // данная строка обеспечивает переход в position1, если расстояние меньше 30 см.

posición1(); //básicamente el brazo resolverá lo que usted especifique entre corchetes ( )

else( // si la distancia es mayor a 30 cm, vamos a la posición2

posición()2 // similar a la línea anterior

Puedes cambiar la distancia en el código y hacer lo que quieras.

Últimas líneas de código

si (distancia > 30 || distancia<= 0){

Serial.println("Fuera de rango"); //enviamos un mensaje en el monitor serie indicando que hemos superado el rango especificado

Serial.print(distancia);

Serial.println("cm"); //distancia en centímetros

retraso(500); //retraso 0,5 segundos

Por supuesto, aquí puedes convertir todo a milímetros, metros, cambiar el mensaje mostrado, etc. Puedes jugar un poco con el retraso.

Eso es todo. ¡Disfruta, mejora tus propios manipuladores, comparte ideas y resultados!

¡Hola Giktimes!

El proyecto uArm de uFactory recaudó fondos en Kickstarter hace más de dos años. Dijeron desde el principio que sería un proyecto abierto, pero inmediatamente después del cierre de la empresa no tenían prisa por publicar el código fuente. Solo quería cortar el plexiglás según sus dibujos y listo, pero como no había materiales de origen y no había señales de ello en el futuro previsible, comencé a repetir el diseño a partir de fotografías.

Ahora mi brazo robótico se ve así:

Trabajando poco a poco en dos años, logré hacer cuatro versiones y gané bastante experiencia. Puede encontrar la descripción, el historial del proyecto y todos los archivos del proyecto debajo del corte.

Prueba y error

Cuando comencé a trabajar en los dibujos, no solo quería repetir uArm, sino mejorarlo. Me pareció que en mis condiciones era muy posible prescindir de rodamientos. Tampoco me gustó el hecho de que la electrónica giraba junto con todo el manipulador y quería simplificar el diseño de la parte inferior de la bisagra. Además, comencé a dibujarlo un poco más pequeño de inmediato.

Con estos parámetros de entrada dibujé la primera versión. Lamentablemente, no tengo fotografías de esa versión del manipulador (que estaba hecha en amarillo). Los errores en él fueron simplemente épicos. En primer lugar, era casi imposible montarlo. Como regla general, la mecánica que dibujé antes del manipulador era bastante simple y no tuve que pensar en el proceso de montaje. Pero aun así lo monté y traté de ponerlo en marcha, ¡y mi mano apenas se movía! Todas las piezas giraban alrededor de los tornillos y si los apretaba para que hubiera menos juego, ella no podía moverse. Si lo aflojaba para que pudiera moverse, aparecía un juego increíble. Como resultado, el concepto no sobrevivió ni siquiera tres días. Y empezó a trabajar en la segunda versión del manipulador.

El rojo ya era bastante adecuado para el trabajo. Se ensambló normalmente y podía moverse con lubricación. Pude probar el software en él, pero aún así la falta de cojinetes y las grandes pérdidas en diferentes empujes lo debilitaron mucho.

Luego dejé de trabajar en el proyecto por un tiempo, pero pronto decidí llevarlo a cabo. Decidí usar servos más potentes y populares, aumentar el tamaño y agregar rodamientos. Además, decidí que no intentaría hacer todo perfectamente a la vez. Dibujé los dibujos apresuradamente, sin dibujar hermosas conexiones, y ordené cortarlos en plexiglás transparente. Usando el manipulador resultante, pude depurar el proceso de ensamblaje, identifiqué áreas que necesitaban refuerzo adicional y aprendí a usar rodamientos.

Después de divertirme mucho con el manipulador transparente, comencé a dibujar la versión final en blanco. Entonces, ahora todas las mecánicas están completamente depuradas, me convienen y estoy listo para decir que no quiero cambiar nada más en este diseño:

Me deprime no poder aportar nada fundamentalmente nuevo al proyecto uArm. Cuando comencé a dibujar la versión final, ya habían implementado los modelos 3D en GrabCad. Como resultado, simplifiqué un poco la garra, preparé las limas en un formato conveniente y utilicé componentes muy simples y estándar.

Características del manipulador.

Antes de la llegada de uArm, los manipuladores de escritorio de esta clase parecían bastante aburridos. O no tenían ningún tipo de electrónica, o tenían algún tipo de control con resistencias, o tenían su propio software propietario. En segundo lugar, normalmente no tenían un sistema de bisagras paralelas y la propia empuñadura cambiaba de posición durante el funcionamiento. Si recopilas todas las ventajas de mi manipulador, obtendrás una lista bastante larga:
  1. Un sistema de varillas que permite colocar motores potentes y pesados ​​en la base del manipulador, así como sujetar la pinza paralela o perpendicular a la base.
  2. Un conjunto simple de componentes que son fáciles de comprar o cortar de plexiglás.
  3. Rodamientos en casi todos los componentes del manipulador.
  4. Fácil de montar. Esta resultó ser una tarea realmente difícil. Fue especialmente difícil pensar en el proceso de montaje de la base.
  5. La posición de agarre se puede cambiar en 90 grados.
  6. Código abierto y documentación. Todo está preparado en formatos accesibles. Proporcionaré enlaces de descarga para modelos 3D, archivos de corte, lista de materiales, electrónica y software.
  7. Compatible con Arduino. Hay muchos detractores de Arduino, pero creo que esta es una oportunidad para ampliar la audiencia. Los profesionales pueden escribir fácilmente su software en C: ¡este es un controlador normal de Atmel!

Mecánica

Para ensamblar, debe cortar piezas de plexiglás de 5 mm de espesor:

Me cobraron unos 10$ por cortar todas estas piezas.

La base está montada sobre un gran rodamiento:

Fue especialmente difícil pensar en la base desde el punto de vista del proceso de ensamblaje, pero estuve atento a los ingenieros de uArm. Los balancines se asientan sobre un pasador con un diámetro de 6 mm. Cabe señalar que mi codo se sujeta a un soporte en forma de U, mientras que el de uFactory se sujeta a uno en forma de L. Es difícil explicar cuál es la diferencia, pero creo que lo hice mejor.

La empuñadura se monta por separado. Puede girar alrededor de su eje. La propia garra se asienta directamente sobre el eje del motor:

Al final del artículo os dejaré un enlace a instrucciones de montaje súper detalladas en fotografías. Puedes girarlo todo con confianza en un par de horas si tienes todo lo que necesitas a mano. También preparé un modelo 3D en el programa gratuito SketchUp. Puedes descargarlo, reproducirlo y ver qué y cómo se montó.

Electrónica

Para que la mano funcione, todo lo que necesita hacer es conectar cinco servos al Arduino y suministrarles energía de una buena fuente. uArm utiliza algún tipo de motores de retroalimentación. Instalé tres motores MG995 normales y dos pequeños motores con engranajes metálicos para controlar la pinza.

Aquí mi narrativa está estrechamente entrelazada con proyectos anteriores. Hace un tiempo comencé a enseñar programación Arduino e incluso preparé mi propia placa compatible con Arduino para estos fines. Por otro lado, un día tuve la oportunidad de hacer tablas baratas (sobre lo cual también escribí). Al final, todo terminó usando mi propia placa compatible con Arduino y un escudo especializado para controlar el manipulador.

Este escudo es realmente muy simple. Tiene cuatro resistencias variables, dos botones, cinco conectores de servo y un conector de alimentación. Esto es muy conveniente desde el punto de vista de la depuración. Puedes subir un boceto de prueba y grabar alguna macro para control o algo así. También dejaré un enlace para descargar el archivo del tablero al final del artículo, pero está preparado para fabricar con agujeros metalizados, por lo que sirve de poco para la producción casera.

Programación

Lo más interesante es controlar el manipulador desde una computadora. uArm tiene una aplicación conveniente para controlar el manipulador y un protocolo para trabajar con él. La computadora envía 11 bytes al puerto COM. El primero es siempre 0xFF, el segundo es 0xAA y algunos de los restantes son señales para servos. A continuación, estos datos se normalizan y se envían a los motores para su procesamiento. Mis servos están conectados a las entradas/salidas digitales 9-12, pero esto se puede cambiar fácilmente.

El programa de terminal de uArm le permite cambiar cinco parámetros al controlar el mouse. A medida que el mouse se mueve por la superficie, la posición del manipulador en el plano XY cambia. Al girar la rueda se cambia la altura. LMB/RMB - comprimir/descomprimir la garra. Rueda RMB +: gira la empuñadura. De hecho, es muy conveniente. Si lo desea, puede escribir cualquier software de terminal que se comunique con el manipulador utilizando el mismo protocolo.

No proporcionaré bocetos aquí; puede descargarlos al final del artículo.

vídeo de trabajo

Y, por último, el vídeo del propio manipulador. Muestra cómo controlar un mouse, resistencias y un programa pregrabado.

Enlaces

Los archivos para cortar plexiglás, modelos 3D, una lista de compras, dibujos de tableros y software se pueden descargar al final de mi


Conexión:

Si ha ensamblado las piezas del manipulador de acuerdo con las instrucciones, puede comenzar a ensamblar el circuito electrónico. Sugerimos conectar los servos del manipulador al Arduino UNO a través de Trerma-Power Shield y controlar los servos mediante potenciómetros Trema.

  • Al girar la perilla del primer potenciómetro Trema, la base girará.
  • Al girar la perilla del segundo potenciómetro Trema, se girará el brazo izquierdo.
  • Al girar la tercera perilla del potenciómetro Trema, se rotará el brazo derecho.
  • Al girar la cuarta perilla del potenciómetro Trema se moverá la pinza.

El código del programa (sketch) proporciona protección a los servos, que consiste en el hecho de que el rango de rotación está limitado por el intervalo (dos ángulos) de juego libre. Los ángulos de rotación mínimo y máximo se especifican como los dos últimos argumentos de la función map() para cada servo. Y el valor de estos ángulos se determina durante el proceso de calibración, que debe realizarse antes de comenzar a trabajar con el manipulador.

Código de programa:

Si aplica energía antes de la calibración, ¡el manipulador puede comenzar a moverse de manera inapropiada! Complete todos los pasos de calibración primero.

#incluir // Conecta la biblioteca Servo para trabajar con servos Servo servo1; //Declarar un objeto servo1 para que funcione con el servodrive base Servo servo2; //Declarar un objeto servo2 para trabajar con el servo del hombro izquierdo Servo servo3; //Declarar un objeto servo3 para trabajar con el servo del brazo derecho Servo servo4; //Declarar un objeto servo4 para trabajar con el servo de captura int valR1, valR2, valR3, valR4; // Declarar variables para almacenar valores de potenciómetro // Asignar pines: const uint8_t pinR1 = A2; // Determinar la constante a partir del número de salida del potenciómetro de control. base constante uint8_t pinR2 = A3; // Determinar la constante a partir del número de salida del potenciómetro de control. hombro izquierdo constante uint8_t pinR3 = A4; // Determinar la constante a partir del número de salida del potenciómetro de control. hombro derecho constante uint8_t pinR4 = A5; // Determinar la constante a partir del número de salida del potenciómetro de control. capturar const uint8_t pinS1 = 10; // Definir la constante con el número de pin del servodrive base const uint8_t pinS2 = 9; // Defina la constante con el número de pin del servoaccionamiento del brazo izquierdo const uint8_t pinS3 = 8; // Definimos la constante con el número de pin del servoaccionamiento del brazo derecho const uint8_t pinS4 = 7; // Definir una constante con el número de pin del servodrive de captura void setup())( // El código de la función de configuración se ejecuta una vez: Serial.begin(9600); // Iniciar la transferencia de datos al monitor del puerto serie servo1.attach (pinS1); // Asignar servo1 al control del objeto del servo variador 1 servo2.attach(pinS2); // Asignar al objeto servo2 el control del servo variador 2 servo3.attach(pinS3); // Asignar al objeto servo3 el control del servo drive 3 servo4.attach(pinS4); // Asignar al objeto servo4 el control del servo drive 4 ) void loop())( // El código de función de bucle se ejecuta continuamente: valR1=map(analogRead(pinR1), 0, 1024, 10, 170); servo1.write(valR1); // Girar con la base Es posible que sea necesario cambiar (calibrar) los ángulos indicados en esta línea: 10 y 170 valR2=map(analogRead(pinR2), 0, 1024, 80 , 170); servo2.write(valR2); // Controla el hombro izquierdo Los ángulos indicados en esta línea: 80 y 170 pueden necesitar ser cambiados (calibrados) valR3=map(analogRead(pinR3), 0, 1024, 60, 170);servo3.write(valR3); // Controla el hombro derecho Los ángulos indicados en esta línea: 60 y 170 pueden necesitar ser cambiados (calibrados) valR4=map(analogRead(pinR4), 0, 1024, 40, 70); servo4.write(valR4); // Controlar la captura Los ángulos indicados en esta línea: 40 y 70 pueden necesitar ser cambiados (calibrados) Serial.println((String) "A1 = "+valR1+",\t A2 = "+valR2+",\t A3 = "+valR3+ ", \t A4 = "+valR4); // Muestra las esquinas en el monitor)

Calibración:

Antes de empezar a trabajar con el manipulador, ¡debe calibrarlo!

    La calibración consiste en especificar los valores extremos del ángulo de rotación de cada servo, para que las piezas no interfieran en sus movimientos.
  • Desconecte todos los servos del Trema-Power Shield, cargue el boceto y conecte la alimentación.
  • Abra el monitor del puerto serie.
  • El monitor mostrará los ángulos de rotación de cada servo (en grados).
  • Conecte el primer servo (que controla la rotación de la base) al pin D10.
  • Al girar la perilla del primer potenciómetro Trema (pin A2), se girará el primer servo (pin D10) y el monitor cambiará el ángulo actual de este servo (valor: A1 =...). Las posiciones extremas del primer servo estarán en el rango de 10 a 170 grados (como está escrito en la primera línea del código del bucle). Este rango se puede cambiar reemplazando los valores de los dos últimos argumentos de la función map() en la primera línea del código del bucle por otros nuevos. Por ejemplo, reemplazar 170 por 180 aumentará la posición extrema del servo en una dirección determinada. Y reemplazando 10 por 20, reducirás la otra posición extrema del mismo servo.
  • Si reemplazó los valores, deberá volver a cargar el boceto. Ahora el servo girará dentro de los nuevos límites especificados por usted.
  • Conecte el segundo servo (que controla la rotación del brazo izquierdo) al pin D9.
  • Al girar la perilla del segundo potenciómetro Trema (pin A3) se girará el segundo servo (pin D9), y el monitor cambiará el ángulo actual de este servo (valor: A2 =...). Las posiciones extremas del segundo servo estarán en el rango de 80 a 170 grados (como está escrito en la segunda línea del esquema del bucle). Este rango cambia de la misma manera que para el primer servo.
  • Si reemplazó los valores, deberá volver a cargar el boceto.
  • Conecte el tercer servo (que controla la rotación del brazo derecho) al pin D8. y calibrarlo de la misma manera.
  • Conecte el cuarto servo (que controla la pinza) al pin D7. y calibrarlo de la misma manera.

Basta con realizar la calibración una vez, después de montar el manipulador. Los cambios que realice (valores de ángulos límite) se guardarán en el archivo de boceto.

Vista del interior de la palma del robot humanoide RKP-RH101-3D. La palma de la mano del robot humanoide está sujeta al 50%. (ver figura 2).

En este caso, los movimientos complejos de la mano de un robot humanoide son posibles, pero la programación se vuelve más compleja, interesante y emocionante. Al mismo tiempo, en cada uno de los dedos de la mano de un robot humanoide es posible instalar varios sensores y sensores adicionales que controlan varios procesos.

Este es, en términos generales, el diseño del manipulador RKP-RH101-3D. En cuanto a la complejidad de las tareas que puede resolver un robot en particular, equipado con varios manipuladores que reemplazan sus manos, dependen en gran medida de la complejidad y perfección del dispositivo de control.
Es habitual hablar de tres generaciones de robots: robots industriales, adaptativos y de inteligencia artificial. Pero no importa qué tipo de robot esté diseñado, no puede prescindir de manos manipuladoras para realizar diversas tareas. Los enlaces manipuladores son móviles entre sí y pueden realizar movimientos de rotación y traslación. A veces, en lugar de simplemente agarrar un objeto de los robots industriales, el último eslabón del manipulador (su mano) es algún tipo de herramienta de trabajo, por ejemplo, un taladro, una llave inglesa, un pulverizador de pintura o un soplete. Los robots humanoides también pueden tener en sus manipuladores con forma de mano varios dispositivos en miniatura adicionales, por ejemplo para taladrar, grabar o dibujar.

Vista general del robot de combate humanoide con servos manuales RKP-RH101-3D (ver Fig. 3).

Compartir