Portafolio de Actividades
Introduccion a Ing. Mecatrónica
Departamento de Ciencias e Ingenierías | Universidad Iberoamericana Puebla, México.
Controlar Brazo Robotico Mediante Joysticks
Jesús Santiago Muñoz
Zaul Sanchez Ventura

- Resumen -
Este proyecto presenta el desarrollo y control de un brazo robótico de cuatro grados de libertad mediante el uso de un microcontrolador Arduino y potenciómetros tipo joystick. La implementación se basa en la biblioteca Servo.h para gestionar el movimiento preciso de cada servomotor, permitiendo manipular de forma eficiente las distintas articulaciones del brazo. El código controla cuatro servomotores para emular movimientos de agarre, elevación, rotación y desplazamiento, replicando acciones básicas de un brazo humano. Los resultados obtenidos muestran un control intuitivo y preciso, ideal para aplicaciones educativas y demostrativas, con posibilidades de expansión a sistemas más avanzados de robótica y automatización.
- Introducción -
Un brazo robótico es un dispositivo mecánico compuesto por varios eslabones y articulaciones, diseñado para imitar los movimientos de un brazo humano. Estos brazos suelen contar con distintos grados de libertad, que les permiten moverse en diferentes direcciones para realizar tareas como manipulación de objetos, ensamblaje, y más. La precisión y flexibilidad de los brazos robóticos los convierten en herramientas importantes en industrias como la automotriz, la médica y la manufacturera. En este proyecto, se utiliza un Arduino para controlar un brazo robótico de cuatro grados de libertad (4 servomotores). Cada servomotor es controlado mediante potenciómetros tipo joystick que proporcionan las señales analógicas para ajustar los ángulos de los motores, logrando así manipular cada parte del brazo robótico.
- Materiales -
- Impresora 3D
- Protoboard
- 4 servomotores MG90S
- Un Potenciómetro para la garra
- Joysticks
-Cable usb (Arduino)
-Cables y jumpers macho macho y macho hembra
-Arduino
-Shield Arduino V5
-Tuercas y tornillos M3
- Desarrollo -
El código proporcionado utiliza la biblioteca Servo.h para gestionar los movimientos de cuatro servomotores conectados a un Arduino. Cada servomotor controla una sección del brazo robótico y recibe sus instrucciones a partir de la lectura de los valores de los joysticks.
Definición de Componentes:
Se definen cuatro objetos de tipo Servo (motor1, motor2, motor3 y motor4) que representan cada uno de los motores del brazo robótico.
Los pines analógicos A1, A2, A3 y A4 se configuran para leer las entradas de los potenciómetros, que representan los ejes X e Y de dos joysticks (controladores físicos).
Inicialización en setup():
Cada motor se asocia a un pin PWM del Arduino mediante el método attach(), que habilita el control de estos en los pines digitales 3, 6, 9 y 10.
Se activa la comunicación serial para monitorear valores de depuración.
Control de Movimientos en el loop():
El loop principal realiza lecturas analógicas de cada joystick para obtener valores entre 0 y 1023, que luego se restringen a ciertos rangos de seguridad mediante la función constrain.
Cada joystick tiene un eje X y un eje Y; el valor del joystick define el movimiento de los servos correspondientes:
Si el valor de un eje del joystick está en una posición central (aproximadamente entre 505 y 520), el servo mantiene su posición actual.
Si el valor del eje es menor a 505, el ángulo del servo disminuye en función de la distancia del valor leído al centro, permitiendo movimientos graduales.
Si el valor es mayor a 520, el ángulo del servo aumenta, permitiendo que el brazo robótico se mueva en la dirección opuesta.
El incremento o decremento en el ángulo depende de la variable salto, que se ajusta en función de la desviación del joystick respecto al centro. Esto proporciona mayor precisión en movimientos sutiles y rapidez en desplazamientos amplios.
Control de Velocidad y Precisión:
El uso de delay(20) al final de cada ciclo loop() permite controlar la velocidad de ejecución del bucle, reduciendo la velocidad de respuesta de los servos y permitiendo que el brazo se mueva suavemente.
Codigo Fuente
Descargar el codigo fuente: Codigo Fuente
Ejemplo:
Diseño
El diseño fue realizado en la aplicacion de SolidWorks y se realizo una investigacion a profundidad de como funcionan los joysticks para poder controlar el brazo mediantes

- Conclusiones -
El código presentado utiliza los servomotores controlados por potenciómetros de manera efectiva, permitiendo movimientos precisos y controlados en un brazo robótico de cuatro grados de libertad. Sin embargo, se podrían implementar algunas mejoras en la precisión del control, como el uso de filtros de software para estabilizar las lecturas de los potenciómetros y evitar fluctuaciones no deseadas. Este sistema es adecuado para aplicaciones de aprendizaje o demostración, pero se puede mejorar para aplicaciones industriales o profesionales, integrando controladores de motores con retroalimentación o sensores adicionales. En conjunto, este proyecto ilustra los principios básicos de la robótica y el control de actuadores, siendo una excelente introducción a la programación y control de brazos robóticos.