Universidad La Salle Victoria
Campus Ciencia de la Salud “Dr. Rodolfo
Torre Cantú”
Laboratorio de Ingeniería Biomédica
Ing. Antonio Enrique Sifuentes
Elaboración de un brazo robótico
Noveno Semestre
Ingeniería Biomédica
CD VICTORIA, TAMAULIPAS Octubre, 2024
INTRODUCCION
En el campo de la robótica, los brazos robóticos representan una de las
aplicaciones más versátiles y ampliamente utilizadas. Este reporte se
centra en la elaboración de un brazo robótico de pequeña escala,
diseñado específicamente para la manipulación de materiales ligeros. El
proyecto demuestra cómo la combinación de principios de ingeniería
mecánica, electrónica y programación puede resultar en una
herramienta funcional y práctica.
El brazo robótico en cuestión ha sido desarrollado utilizando
servomotores como su principal mecanismo de actuación. Estos motores
ofrecen un control preciso de posición y movimiento, lo que es crucial
para las tareas de manipulación que el brazo está destinado a realizar.
La elección de servomotores también permite mantener un diseño
compacto y eficiente en términos de consumo de energía.
A lo largo de este informe, se detallarán los aspectos clave del proceso
de elaboración, incluyendo:
1. Diseño y planificación del brazo robótico
2. Selección de componentes, con énfasis en los servomotores utilizados
3. Proceso de construcción y ensamblaje
4. Programación y control del brazo
5. Pruebas de funcionamiento y capacidades de manipulación
Este proyecto no solo demuestra la aplicación práctica de conceptos de
robótica, sino que también sirve como base para futuras mejoras y
adaptaciones en el campo de la manipulación robótica a pequeña
escala.
3
OBJETIVO GENERAL
Diseñar y construir un brazo robótico de pequeña escala con
servomotores, capaz de manipular objetos ligeros de hasta 100 gramos,
implementando un sistema de control preciso mediante Arduino para
aplicaciones educativas y demostrativas.
OBJETIVOS ESPECÍFICOS
Desarrollar el diseño mecánico del brazo robótico considerando las
limitaciones de peso y dimensiones establecidas para su funcionamiento
óptimo.
Implementar un sistema de control basado en Arduino que permita el
movimiento preciso de los servomotores en las diferentes articulaciones
del brazo.
Construir un prototipo funcional utilizando materiales ligeros y
resistentes que garanticen la durabilidad y eficiencia del brazo robótico.
Programar secuencias de movimiento predefinidas que demuestren las
capacidades de manipulación del brazo robótico.
Realizar pruebas de funcionamiento para verificar la precisión,
repetibilidad y capacidad de carga del brazo robótico.
4
JUSTIFICACIÓN
El desarrollo de este brazo robótico responde a la necesidad de crear
una herramienta educativa y práctica que permita comprender los
principios fundamentales de la robótica y la automatización. En el
contexto actual, donde la robótica juega un papel cada vez más
importante en la industria y la educación, es fundamental contar con
prototipos funcionales que permitan:
MARCO TEÓRICO
1. Fundamentos de Robótica
- Definición de robot y brazo robótico
Robot
Es una máquina programable capaz de realizar una serie de tareas de
manera autónoma o semi-autónoma. Los robots pueden ser controlados
por un software, mediante programación, o a través de sistemas de
inteligencia artificial. Se utilizan en una amplia variedad de aplicaciones,
desde la manufactura y la exploración espacial hasta el servicio al
cliente y la medicina. Los robots pueden ser móviles (capaces de
desplazarse) o estáticos (fijos en un lugar).
Brazo Robótico
Es un tipo específico de robot diseñado para simular la acción de un
brazo humano. Se compone de varias articulaciones y segmentos que
permiten un rango de movimiento similar al de un brazo humano. Los
brazos robóticos se utilizan comúnmente en la industria para tareas
como ensamblaje, soldadura, pintura y manipulación de materiales.
Pueden ser controlados de manera programada o mediante técnicas de
5
control manual, y son esenciales en la automatización de procesos
industriales.
- Tipos de robots manipuladores
Los robots manipuladores son dispositivos diseñados para realizar tareas
específicas de manipulación y movimiento de objetos. Existen varios
tipos de robots manipuladores, cada uno adecuado para diferentes
aplicaciones y entornos. Aquí se presentan algunos de los tipos más
comunes:
Brazo Robótico Articulado
Estos robots tienen múltiples articulaciones, lo que les permite un rango
de movimiento similar al de un brazo humano. Son ideales para tareas
de ensamblaje, soldadura y manipulación de piezas.
Robots SCARA (Selective Compliance Assembly Robot Arm)
Diseñados para tareas de ensamblaje y manipulación en un plano
horizontal, los robots SCARA son rígidos en la dirección vertical, lo que
les permite realizar movimientos precisos en su eje horizontal
Robots Delta
Estos robots tienen una estructura de brazos en forma de triángulo que
se conecta a un marco de soporte. Son muy rápidos y precisos, lo que
los hace ideales para aplicaciones de pick and place (recoger y colocar)
en líneas de producción.
Robots Cartesianos
También conocidos como robots de coordenadas XYZ, se mueven en
líneas rectas a lo largo de los ejes X, Y y Z. Son simples y fáciles de
programar, lo que los hace adecuados para tareas repetitivas como el
ensamblaje y el manejo de materiales.
Robots de Cinta Transportadora
Estos robots están integrados en sistemas de cintas transportadoras y
son utilizados para mover productos de un punto a otro, facilitando la
automatización de procesos industriales.
Robots Colaborativos (Cobots)
6
Diseñados para trabajar junto a humanos, estos robots son seguros y
pueden realizar tareas de forma conjunta con operarios, mejorando la
eficiencia en el lugar de trabajo.
Robots Móviles
Aunque su principal función es el transporte, algunos robots móviles
están equipados con manipuladores que les permiten recoger y mover
objetos mientras se desplazan.
Robots de Manipulación Especializados
Estos robots están diseñados para tareas específicas, como robots
quirúrgicos que manipulan instrumentos médicos o robots de limpieza
que manejan herramientas de limpieza automatizadas.
2. Servomotores
- Principios de funcionamiento
Principios de Funcionamiento de Robots Manipuladores
Los robots manipuladores operan bajo una serie de principios
fundamentales que les permiten realizar tareas de manera eficiente y
precisa. A continuación, se describen los principales principios de
funcionamiento:
Actuación
Los robots manipuladores utilizan actuadores (motores eléctricos,
neumáticos o hidráulicos) para generar movimiento. Estos actuadores
controlan las articulaciones del robot, permitiendo que se mueva en
diferentes direcciones y posiciones.
Control
Controladores programados: Robots que siguen instrucciones
predefinidas.
Controladores en tiempo real: Para tareas que requieren respuestas
rápidas a cambios en el entorno.
Sensores
Los robots manipuladores suelen estar equipados con sensores que les
permiten percibir su entorno. Algunos tipos de sensores incluyen:
7
Sensores de posición: Para determinar la ubicación de las partes del
robot.
Sensores de fuerza: Para medir la fuerza aplicada durante la
manipulación de objetos.
Sensores visuales: Como cámaras que ayudan en la identificación y
localización de objetos.
Interfaz de Usuario
Los robots manipuladores a menudo tienen interfaces de usuario que
permiten a los operarios programar y controlar el robot. Estas interfaces
pueden ser gráficas, basadas en software, o físicas, como joysticks.
Programación
La programación puede ser de varios tipos:
Programación offline: Se realiza en un entorno simulado antes de
implementar en el robot.
Programación en línea: El robot se programa mientras está en
funcionamiento, ajustando su comportamiento en tiempo real.
Cinemática
La cinemática se refiere al estudio del movimiento de las partes del
robot. Incluye:
Cinemática directa: Determina la posición del extremo del
manipulador dado un conjunto de ángulos de las articulaciones.
Cinemática inversa: Determina los ángulos de las articulaciones
necesarios para alcanzar una posición específica.
Control de Movimiento
Los robots utilizan algoritmos de control para garantizar movimientos
suaves y precisos. Esto incluye el control de la velocidad, aceleración y
trayectoria del manipulador.
Inteligencia Artificial
Algunos robots manipuladores avanzados utilizan algoritmos de
inteligencia artificial para aprender y adaptarse a nuevas tareas,
mejorando su eficiencia y autonomía.
8
- Tipos de servomotores
Servomotores de corriente continua (DC) son los más comunes y
funcionan mediante un motor de CC que controla la posición y velocidad
de un eje, siendo ideales para aplicaciones donde se requiere un control
preciso.
Servomotores de corriente alterna (AC), que suelen ser más potentes y
eficientes, son utilizados en aplicaciones industriales donde se requieren
altos torques y velocidades.
Servomotores de paso o stepper, que dividen una rotación completa en
pasos discretos, permitiendo un control preciso de la posición, siendo
muy utilizados en impresoras 3D y máquinas CNC.
Servomotores sin escobillas (brushless) ofrecen un rendimiento superior
y una mayor durabilidad en comparación con los servomotores con
escobillas, ya que eliminan el desgaste de las escobillas, lo que los hace
ideales para aplicaciones que requieren un funcionamiento continuo.
Servomotores integrados combinan el motor y el controlador en un solo
dispositivo, simplificando la instalación y el control en sistemas
automatizados. Cada tipo de servomotor tiene sus propias
características y ventajas, lo que les permite ser adecuados para
diversas aplicaciones, desde la robótica hasta la automatización
industrial.
3. Sistemas de Control
- Programación con Arduino
Inclusión de Bibliotecas y Definición de Objetos
```cpp
#include <Servo.h>
// Definición de servos
Servo servo1; // Servo de la base
Servo servo2; // Servo del brazo Y
Servo servo3; // Servo del brazo Z
Servo servo4; // Servo de la pinza
9
```
- Se incluye la biblioteca `Servo.h` que proporciona funciones para
controlar servomotores
- Se crean cuatro objetos de tipo Servo, uno para cada articulación del
brazo robótico
Configuración de Pines
```cpp
// Definición de pines
const int pinServo1 = 9; // Pin PWM para servo de la base
const int pinServo2 = 10; // Pin PWM para servo del brazo Y
const int pinServo3 = 11; // Pin PWM para servo del brazo Z
const int pinServo4 = 6; // Pin PWM para servo de la pinza
// Definición de pines de los joysticks
const int joy1X = A0; // Joystick 1 eje X
const int joy1Y = A1; // Joystick 1 eje Y
const int joy2X = A2; // Joystick 2 eje X
const int joy2Y = A3; // Joystick 2 eje Y
```
- Se definen las constantes para los pines de conexión de cada
servomotor (deben ser pines PWM)
- Se definen los pines analógicos para leer los dos joysticks (cada
joystick tiene dos ejes)
Variables de Posición
```cpp
// Variables para almacenar la posición actual de los servos
10
int posServo1 = 90; // Inicializa en la posición media
int posServo2 = 90; // Inicializa en la posición media
int posServo3 = 90; // Inicializa en la posición media
int posServo4 = 90; // Inicializa en la posición media
```
- Se crean variables para almacenar la posición de cada servomotor
- Se inicializan en 90 grados (posición central)
Configuración Inicial (setup)
```cpp
void setup() {
// Inicializar los servos
servo1.attach(pinServo1);
servo2.attach(pinServo2);
servo3.attach(pinServo3);
servo4.attach(pinServo4);
// Establecer posición inicial
servo1.write(posServo1);
servo2.write(posServo2);
servo3.write(posServo3);
servo4.write(posServo4);
```
- La función `attach()` asocia cada objeto Servo con su pin
correspondiente
- Se mueven los servos a su posición inicial (90 grados)
Bucle Principal (loop)
```cpp
11
void loop() {
// Leer valores de los joysticks
int val1X = analogRead(joy1X);
int val1Y = analogRead(joy1Y);
int val2X = analogRead(joy2X);
int val2Y = analogRead(joy2Y);
```
- Se leen los valores analógicos de los joysticks
- `analogRead()` devuelve valores entre 0 y 1023
Control de Movimientos
```cpp
// Controlar servo 1 (base)
if (val1X > 900) {
posServo1 = constrain(posServo1 + 2, 0, 180); // Mueve hacia la
derecha
} else if (val1X < 300) {
posServo1 = constrain(posServo1 - 2, 0, 180); // Mueve hacia la
izquierda
```
- Se comprueba si el joystick está movido significativamente (valores >
900 o < 300)
- `constrain()` limita el valor entre 0 y 180 grados
- El incremento/decremento de 2 grados determina la velocidad del
movimiento
Explicación de los Rangos de Control:
- Joystick 1 eje X (val1X): Controla la rotación de la base
12
- Joystick 1 eje Y (val1Y): Controla el movimiento vertical del primer
brazo
- Joystick 2 eje Y (val2Y): Controla el movimiento del segundo brazo
-Joystick 2 eje X (val2X): Controla la apertura/cierre de la pinza
Restricciones de Movimiento
```cpp
// Controlar servo 2 (brazo Y)
if (val1Y > 900) {
posServo2 = constrain(posServo2 + 2, 20, 160); // Mueve hacia arriba
```
- Nótese que el servo2 está limitado entre 20° y 160° para evitar
colisiones
- Los demás servos tienen rango completo de 0° a 180°
Actualización de Posiciones
```cpp
// Actualizar la posición de los servos
servo1.write(posServo1);
servo2.write(posServo2);
servo3.write(posServo3);
servo4.write(posServo4);
// Pequeña pausa para suavizar el movimiento
delay(15);
```
- Se actualizan las posiciones de todos los servos
- El `delay(15)` proporciona un movimiento más suave y evita
sobrecarga del sistema
13
4. Materiales y Diseño Mecánico
Lista de materiales:
RESULTADOS
CONCLUSIONES
La fabricación de un brazo robótico con distintos rangos de movimiento
ha demostrado ser fundamental para explorar aplicaciones en
automatización y robótica, destacando la versatilidad que ofrece en
sectores como la manufactura y la medicina. La importancia de un
diseño adecuado se hace evidente, ya que influye directamente en la
maximización del rango de movimiento y la precisión del dispositivo, lo
que requiere una cuidadosa selección de materiales y configuraciones
de articulaciones. Además, la implementación de sistemas de control
precisos es esencial para lograr movimientos suaves y coordinados,
optimizando así la interacción con el entorno. Aunque la fabricación
conlleva costos significativos, los beneficios en términos de eficiencia y
reducción de errores justifican la inversión. Durante el proceso de
desarrollo, se presentan desafíos técnicos relacionados con la calibración
de motores y sensores, cuya resolución es crucial para garantizar la
funcionalidad del brazo robótico. Este proyecto también resalta el
potencial de la robótica para mejorar procesos industriales y crear
soluciones innovadoras, subrayando la necesidad de continuar la
14
investigación y el desarrollo en esta área para avanzar hacia tecnologías
más avanzadas y accesibles.
15
ANEXOS
16