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]
https://orcid.org/0000-0003-1121-7507
Instituto Superior Tecnológico Tsa’chila
Santo Domingo de los Tsáchilas
Ecuador
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
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
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.
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).
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
N° |
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
6 |
Arduino uno R3 |
Arduino |
|
1 |
|
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)
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
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/