DOI: https://doi.org/10.37811/cl_rcm.v8i1.9639

Brazo Robótico de Tres Articulaciones Mediante Servomotores con Tecnología Arduino

 

MSc Ing. Roberto Carlos Ortega Ordoñez[1]

[email protected]

[email protected]  

https://orcid.org/0000-0003-1121-7507  

Instituto Superior Tecnológico Tsa’chila

Santo Domingo de los Tsáchilas

Ecuador

 

RESUMEN

En este estudio se expone el proceso de construcción de un brazo robótico con una longitud de 0.40 m y tres articulaciones. Este brazo está conectado a una garra mecánica de cierre angular, diseñada para llevar a cabo movimientos y manipulación de objetos. El sistema utiliza servomotores en corriente continua, distribuidos en función de cada articulación dentro del brazo. Estos servomotores tienen una abertura de funcionamiento de 270°, según sus especificaciones técnicas, y son controlados mediante una placa electrónica Arduino Uno, junto con un probador digital multicanal de servomotores. El brazo robótico se ha desarrollado con fines didácticos, destinados a facilitar la enseñanza y el aprendizaje de tecnologías. El controlador utilizado permite realizar movimientos básicos, aunque no de precisión para aplicaciones especiales.

 

Palabras clave: servomotor, brazo, arduino, articulaciones, movimientos


 

Three-Joint Robotic Arm Using Servomotors with Arduino Technology

 

ABSTRACT

This study presents the construction process of a robotic arm with a length of 0.40 m and three joints. This arm is connected to an angular closing mechanical gripper, designed to perform movements and object manipulation. The system uses direct current servomotors, distributed according to each joint within the arm. These servomotors have an operating range of 270°, as per their technical specifications, and are controlled through an Arduino Uno electronic board, along with a multichannel digital servomotor tester. The robotic arm has been developed for educational purposes, aiming to facilitate the teaching and learning of technologies. The controller employed enables basic movements, though not precise enough for specialized applications.

 

Keywords: servomotor, arm, arduino, joints, movements

 

 

 

 

Artículo recibido 22 diciembre 2023

Aceptado para publicación: 28 enero 2024

 


 

INTRODUCCIÓN

La necesidad de implementar nuevas tecnologías al aprendizaje diario se planteó el desarrolló del brazo robótico de tres articulaciones empleando servomotores y para el control Tarjeta Arduino. Este brazo no solo será capaz de realizar movimientos básicos, sino que también incorporará una garra robótica de metal SWAYTAIL para ampliar sus capacidades funcionales.

La elección de utilizar servomotores ANNIMOS de 150 kg, 80 kg y 25kg, así como un probador digital multicanal de servos nos brinda la flexibilidad necesaria para controlar de manera eficiente las articulaciones del brazo, permitiendo una gama diversa de movimientos y aplicaciones prácticas. Este proyecto no solo busca explorar el funcionamiento detrás de un brazo robótico, sino que también destaca la integración de la tecnología de Arduino como eje central del sistema de control. Arduino proporciona una plataforma robusta y de código abierto que facilita la programación y control del brazo, permitiéndonos personalizar su comportamiento de acuerdo con nuestras necesidades específicas. Con estos elementos, nos introducimos a un trayecto de aprendizaje práctico y aplicación de conocimientos teóricos, con la ambición de desarrollar un brazo robótico funcional y adaptable que pueda ser aplicado en diversos contextos y tareas.

El servomotor de 150 kg-cm, con la capacidad de carga, está ubicada en el hombro, manejando toda demanda de peso del brazo. A continuación, el servomotor de 80 kg-cm se ubicó en la articulación del codo operando parte del peso del brazo, seguido por el servomotor de 25 kg-cm instalada en la muñeca. La disposición de cada servomotor se analizó en base al peso que debe soporta manipular para emular el movimiento de brazo humano.

METODOLOGÍA

Investigación de campo

A través de la toma de medidas y la recopilación de datos de los dispositivos se lleva a cabo la elaboración del diseño utilizado AutoCAD, seguido por la fase de construcción. Se realiza una verificación del funcionamiento y la condición actual del brazo robótico utilizando de cada componente. Con todos estos datos se verifica el correcto funcionamiento del brazo (Baena Paz, 2017).


 

Investigación de cualitativa

Se examinaron las propiedades y especificaciones técnicas de cada componente tangible, teniendo en cuenta su configuración y dimensiones para garantizar una adecuada instalación dentro del brazo robótico. Establecer la disposición correcta de todos los dispositivos en el proyecto contribuye a la reducción de costos al optimizar el uso de los recursos disponibles (Ruiz Huaraz & Valenzuela Ramos, 2021).

RESULTADOS Y DISCUSIÓN

En la tabla 1, se detallan las características técnicas y la cantidad de los diferentes dispositivos principales que se utilizó en la construcción del brazo robótico. Es importante destacar que la elección de estos dispositivos se basó en diversos criterios que se describen en el presente trabajo. Los elementos electrónicos y conductores adicionales se tratarán en una publicación separada, la cual estará vinculada con este artículo. 

Los dispositivos principales para la elaboración del brazo robótico, donde se incluyen los diferentes servomotores, tarjeta electrónica de Arduino, la garra o pinza mecánica accionada mediante un servomotor y entre otros dispositivos. En este apartado no se hace el análisis de la fuente de alimentación, pero se van a aplicar baterías de litio recargable de 8000 mA- 3.7 V aproximadamente para su funcionamiento.


 

Tabla 1. Lista de cantidad y características técnicas de dispositivos principales

Descripción

Marca

Capacidad

Torsión

Cant.

Imagen

1

Servomotor completo DSSERVO – RDS3225 Robot digital servo.     (4.8 - 6.8) V DC. Compatible Arduino/PLC/STM32, Raspberry Pi/Microcontroller. 

ANNIMOS

55.1 lb-cm

25 kg-cm

1

Texto

Descripción generada automáticamente

2

Servomotor DSSERVO – RDS5180 (6 – 8.4) V Alto Torque, Engranaje de acero con soportes de Montaje.

ANNIMOS

176 lb-cm

80 kg-cm

1

ANNIMOS 176.4 lbs Robot Servo Motor 12V Engranaje de acero de alto par impermeable Servos de dirección digital grande con ...

3

Servomotor DSSERVO – RDS51150 (10 – 12.6) V DC. Alto Torque, Engranaje de acero con soportes de Montaje.

ANNIMOS

330 lb-cm

150 kg-cm

1

ANNIMOS 330.7 lbs Robot Servo Motor 12V Alto Voltaje Alto Torque Acero Engranaje Servos de Dirección Digital Grande con So...

 

4

Comprobador de servomotores de protección contra sobre corriente y 2 modos de control RC Car Airplane Robots Tester Tool.

Servo Tester Indicator Diagram

6 canales

1

Servo probador digital RC de 6 canales, servo controlador de motor, herramienta de centrado con protección contra sobrecor...

5

Brazo de robot de metal profesional/pinza/garra mecánica/abrazadera/clip con servo de alto par, pieza robótica RC educativa DIY para Arduino/Raspberry Pie, plataforma Science STEAM Maker (plateado)

Swaytail

Incluye 1 servomotor MG996R

1

Swaytail Brazo de robot de metal profesional/pinza/garra mecánica/abrazadera/clip con servo de alto par, pieza robótica RC...

6

Arduino uno R3

Arduino

 

1

Anuncio Patrocinado - Arduino Uno R3 Microcontrolador A000066

 

Tabla 2. Características de servomotor RDS5115 – 150 kg Servo Digital

Voltaje operación

10 V

12 V

12.6 V

Corriente señal

4 mA

5 mA

6 mA

Velocidad operación

0.24 s/60°

0.24 s/60°

0.19 s/60°

Par de carga

150 kg-cm

165 kg-cm

173 kg-cm

Corriente consumo

7.4 A

8.0 A

8.3 A

Elaborado por: el autor (2024) 

Obtenido de: https://m.media-amazon.com/images/W/MEDIAX_792452-T1/images/I/61pgKyNsMYL._AC_SL1001_.jpg

 

En la tabla 2, está las características técnicas del servomotor de RDS5115 – 150 kg en cuál se describe el voltaje de operación que tiene un dentro del rango (10 – 12.6) V, el consumo y par de carga. Mediante análisis de los datos se determina que a menor voltaje operación el par de carga disminuye, por tal motivo es importante mantener cargada las baterías para que el servomotor no pierda fuerza.

Tabla 3. Características de servomotor RDS5180 – 80 kg Servo Digital

Voltaje operación

6 V

7.4 V

8.4 V

Corriente señal

4 mA

5 mA

6 mA

Velocidad operación

0.24 s/60°

0.21 s/60°

0.19 s/60°

Par de carga

85 kg-cm

98 kg-cm

105 kg-cm

Corriente consumo

7.4 A

8.0 A

8.3 A

 

Elaborado por: el autor (2024)                                                                                                             

Obtenido de: https://m.media-amazon.com/images/W/MEDIAX_792452-T1/images/I/61wfjcqDM6L._AC_SL1001_.jpg

 

En la tabla 3, está las características técnicas del servomotor de RDS5180 – 80 kg en cuál se describe el voltaje de operación que tiene un dentro del rango (6 – 8.4) V, el consumo y par de carga. Mediante análisis de los datos se determina que a menor voltaje operación la velocidad de operación disminuye, por tal motivo es importante mantener cargada de las baterías para que el servomotor mantenga su velocidad.

Tabla 4. Características de servomotor RDS3225 – 25 kg RC Servo Digital

Voltaje operación

5 V

6.8 V

Corriente señal

4 mA

5 mA

Velocidad operación

0.16 s/60°

0.14 s/60°

Par de carga

24.5 kg-cm

28 kg-cm

Corriente consumo

2.1 A

2.9 A

Elaborado por: el autor (2024)                                                                                                                

Obtenido de: https://m.media-amazon.com/images/W/MEDIAX_792452-T1/images/I/716WZ2Lp1JL._AC_SL1500_.jpg


 

Divisor de voltaje

Un divisor de voltaje es un circuito conformado por dos resistencias conectadas en serie, donde el voltaje de salida se mide en el punto común entre las dos resistencias y la parte interior de la segunda resistencia, como se muestra en la figura 1. En este estudio, se aplicó con el fin de suministrar un voltaje estable de operación necesario para cada servomotor. Las resistencias utilizadas son de potencias adecuadas para soportar la corriente de carga que circula.

La primera resistencia se asumió un valor de 1 kΩ. La segunda resistencia variar dependiendo del voltaje de salida, y se puede colocar un potenciómetro lineal de (0 – 10) kΩ para disponer más valores de voltajes sin necesidad de cambiar la resistencia dos. Despejando de la ecuación del divisor de voltaje obtenemos la resistencia dos.

 

Figura 1. Diagrama de divisor de voltaje

Elaborado por: (Ingeniería eléctrica , 2024)

 


 

Servomotores

Servomotor de DSSERVO - RDS51150

En el caso del servomotor de 150 kg-cm, se inicia el cálculo para determinar el torque en newton – centímetro. La siguiente fórmula se desglosa utilizando magnitudes básicas. Como último paso, se multiplica por la gravedad.

Una vez determinado el torque nominal de 1470 N-cm del servomotor, se procede a realizar un análisis a una longitud de 40 cm del brazo robótico para calcular la masa teórica que puede manejar el brazo. Se despeja la siguiente fórmula la masa teórica.

Para calcular la carga máxima que puede soportar el servomotor a una distancia de 40 centímetros, es necesario tener en cuenta dos parámetros principales: primero la masa propia del brazo robótico y el segundo la eficiencia que tiene todo mecanismo que genere movimiento. El peso aproximado del brazo es de 1.5 kg y una eficiencia de 80%, dado por unidad es 0.8.

 


 

Figura 2. Diagrama de brazo robótico para calculo carga servomotor 150 kg-cm

Servomotor de DSSERVO – RDS5180

En el caso del servomotor de 80 kg-cm, se inicia el cálculo para determinar el torque en newton – centímetro. La siguiente fórmula se desglosa utilizando magnitudes básicas. Como último paso, se multiplica por la gravedad.

Una vez determinado el torque nominal de 1470 N-cm del servomotor, se procede a realizar un análisis a una longitud de 20 cm del brazo robótico para calcular la masa teórica que puede manejar el brazo. Se despeja la siguiente fórmula la masa teórica.

 

Para determinar la carga máxima que el servomotor que puede soportar a una distancia de 20 centímetros. Se tiene en cuenta la mitad de la masa del brazo, que es de 0.75 kg, debido a la ubicación del servomotor y la eficiencia de 80%.

Figura 3. Diagrama de brazo robótico para calculo carga servomotor 80kg-cm.


Servomotor de DS3225 MG

En este caso, se ha optado por sobredimensionar el servomotor 25 kg-cm con el fin de lograr un sistema mecánico de engranaje más robusto, con la intensión de prevenir posibles daños al realizar movimiento o levantamiento de cargas. No se ha realizado el cálculo previo porque se encuentra cerca del punto de carga.

Tabla 5. Resumen de los cálculos de cagas consideradas.

Servomotor

Carga máxima

Carga considerada

Servomotor de DSSERVO - RDS51150

1.8 kg

1 kg

Servomotor de DSSERVO – RDS5180

2.6 kg

1 kg

Servomotor de DS3225 MG

-

1 kg

Elaborado por: El autor (2024)

 


 

Figura 4. Medidas en mm del Servomotor de 80 kg.


Elaborado por: https://m.media-amazon.com/images/W/MEDIAX_792452-T1/images/I/61mhu1gYWZL._AC_SX679_.jpg

Para el manejo de los servomotores, se utilizó Arduino en ambas facetas, tanto en el ámbito del Hardware como en el del Software. La implementación efectiva de este trabajo requirió de la librería servo, función analogWrite () y señal PWM. La salida PWM (modulación por ancho de pulso) que operan de 0 a 255, desempeña un papel esencial en la regulación de la velocidad y posición de los servomotores.

En la tabla 6, se detallan los valores asociados a voltajes, porcentajes y los argumentos utilizados en el rango 0 a 255. Estos datos son esenciales para comprender y ajustar con precisión el movimiento de los servomotores. La correcta interpretación de esta tabla es fundamental para lograr una configuración adecuada.

 


 

Tabla 6. Valores de señal PWM.

Argumento Arduino

Ciclo de trabajo

Señal de voltaje

0

0%

0,00

12

5%

0,24

25

10%

0,49

38

15%

0,75

50

20%

0,98

63

25%

1,24

76

30%

1,49

90

35%

1,76

102

40%

2,00

115

45%

2,25

127

50%

2,49

139

55%

2,73

152

60%

2,98

165

65%

3,24

178

70%

3,49

191

75%

3,75

204

80%

4,00

217

85%

4,25

230

90%

4,51

243

95%

4,76

255

100%

5,00

Elaborado por: El autor (2024)

 

En la figura 5, está el brazo robótico ensamblado con los tres servomotores y la garra o pinza mecánica. Las otras partes en constituidas por aluminio para reducir el peso. Como se indicó anteriormente para la parte de control se utiliza Arduino mediante salida PWM. Los elementos de sujeción utilizados son parte del kit que viene de cada servomotor.

Figura 5.  Brazo robótico

Elaborado por: el autor (2024)

En la figura 6, está el código de Arduino para el control de los cuatro servomotores. Se consideró una apertura de 180° para cada, pero se puede modificar para que la apertura sea con base en lo que indique el manual de cada servomotor.

Figura 6. Código de Arduino para el manejo de servomotores.

1

 2

 3

 4

 5

 6

 7

 8

 9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

#include <SoftwareSerial.h>  // TX RX software library for bluetooth

 

#include <Servo.h>                             // servo library

Servo myservo1, myservo2, myservo3, myservo4;  // servo name

 

int bluetoothTx = 10;  // bluetooth tx to 10 pin

int bluetoothRx = 11;  // bluetooth rx to 11 pin

 

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);

 

void setup() {

  myservo1.attach(3);  // attach servo signal wire to pin 9

  myservo2.attach(5);

  myservo3.attach(6);

  myservo4.attach(9);

  //Setup usb serial connection to computer

  Serial.begin(9600);

 

  //Setup Bluetooth serial connection to android

  bluetooth.begin(9600);

}

 

void loop() {

  //Read from bluetooth and write to usb serial

  if (bluetooth.available() >= 2) {

    unsigned int servopos = bluetooth.read();

    unsigned int servopos1 = bluetooth.read();

    unsigned int realservo = (servopos1 * 256) + servopos;

    Serial.println(realservo);

 

    if (realservo >= 1000 && realservo < 1180) {

      int servo1 = realservo;

      servo1 = map(servo1, 1000, 1180, 0, 180);

      myservo1.write(servo1);

      Serial.println("Servo 1 ON");

      delay(10);

    }

    if (realservo >= 2000 && realservo < 2180) {

      int servo2 = realservo;

      servo2 = map(servo2, 2000, 2180, 0, 180);

      myservo2.write(servo2);

      Serial.println("Servo 2 ON");

      delay(10);

    }

    if (realservo >= 3000 && realservo < 3180) {

      int servo3 = realservo;

      servo3 = map(servo3, 3000, 3180, 0, 180);

      myservo3.write(servo3);

      Serial.println("Servo 3 ON");

      delay(10);

    }

    if (realservo >= 4000 && realservo < 4180) {

      int servo4 = realservo;

      servo4 = map(servo4, 4000, 4180, 0, 180);

      myservo4.write(servo4);

      Serial.println("Servo 4 ON");

      delay(10);

    }

  }

}

Elaborado por: el autor (2024)

CONCLUSIONES

La determinación de la carga máxima de trabajo del brazo robótico solo se basó únicamente en un cálculo estático de carga, pero no un análisis dinámico donde puede presentar esfuerzos adicionales. Por tal motivo, la carga considerada que el brazo puedo manejar es de 1 kg. 

EL brazo robótico está diseñado para llevar a cabo movimientos en el plano X -Y exclusivamente. Actualmente, no tiene la capacidad de realizar movimientos en 3D. En caso de que se requieran movimientos en el plano X-Y-Z, será necesario incorporar un servo adicional en la parte superior del brazo, cuya capacidad será determinada por las características específicas del movimiento que deba ejecute.

La parte estructural del brazo robótico es construida en aluminio con el objetivo de reducir la carga propia del brazo. Es de suma importancia seleccionar materiales resistentes, pero livianos, para prevenir daños y evitar sumar cargas innecesarias.

Recomendaciones

Cuando la garra metálica sujeta un objeto por un tiempo prolongado, tiende a recalentarse. Por tal motivo se, debe cambiar el servomotor con uno de mayor capacidad. Se puede hacer el cambio por el modelo servomotor de DS3225.

Revisar de forma continua el nivel de voltaje de las baterías para evitar que los servomotores comiencen a trabajar de forma irregular. En caso de utilizar el brazo de forma continua, se debe recargar o tener más baterías de respaldo para el cambio en cada determinado tiempo.

REFERENCIAS BIBLIOGRAFICAS

Baena Paz, G. (2017). Metodología de la investigación. PATRIA.

Florentino Blas, F. (20015). ARDUINO LIBRO DE PROYETOS .

Ingeniería eléctrica . (2024). Obtenido de

https://es.khanacademy.org/science/electrical-engineering/ee-circuit-analysis-topic/ee-resistor-circuits/a/ee-voltage-divider

NAYLAMP MECHATRONICS. (2023). Obtenido de TUTORIAL USO DE SERVOMOTORES CON ARDUINO.:

https://naylampmechatronics.com/blog/33_tutorial-uso-de-servomotores-con-arduino.html

Óscar Torrente , A. (2013). Ardino Curso práctico de formación . Alfaomega.

Ruiz Huaraz, C., & Valenzuela Ramos, M. R. (2021). Metodología de la investigación . Universidad Nacional Autónoma de Tayacaja.

Zita Fernandes, A. (2023). Metodos de investigación. Obtenido de

https://www.todamateria.com/metodos-de-investigacion/

 



[1] Autor principal

Correspondencia: [email protected]