Control Brazo Robótico de 4 Servomotores con Computadora

Control Brazo Robótico de 4 Servomotores con Computadora

El Brazo Robótico de 4 Servomotores es un manipulador que contiene 4 servomotores sg90 o 4 servomotores mg90s, de tamaño educativo y de Código Abierto, manipulable con cualquier placa que maneje servomotores básicos.

En la siguiente guía encontrarás todos los pasos necesarios para controlar tu Brazo Robótico de 4 Servomotores utilizando una computadora, el Arduino IDE y el monitor serial. Enviaremos varias letras del teclado a través del monitor serial, de modo que cada letra moverá un motor hacia la derecha o la izquierda, permitiéndonos controlar todo el brazo con el teclado.

Antes de empezar con esta guía, asegúrate de desconectar el pin conector del servomotor de la Garra. Si la Garra está conectada y cerrada, el servomotor podría forzarse y quemarse.

Para evitar problemas, primero calibra la Garra:

  • Cuando la Garra está completamente abierta, debería estar a 0 grados.
  • Cuando la Garra está completamente cerrada, debería estar entre 40 y 50 grados.

Si la Garra está cerrada a más de 50 grados, estará aplicando demasiada fuerza, lo que podría forzar el servomotor y dañarlo si se mantiene en ese estado por mucho tiempo. Así que ajusta cuidadosamente para proteger tu equipo.

Si deseas saber el Angulo del servomotor, te recomendamos seguir la siguiente guía:

Como Probar Servomotores con Arduino

Materiales Necesarios:

  1. En esta parte del código, incluimos la librería Servo.h, que nos permite controlar servomotores con Arduino. Luego, declaramos cuatro objetos de tipo Servo para controlar las diferentes partes del Brazo Robótico 4 Servomotores: la rotación, el hombro, el codo y la garra.
    También inicializamos las variables de ángulo para cada uno de estos componentes. Estas variables nos ayudarán a mover los servomotores a la posición deseada.
#include <Servo.h>

Servo rotacion;
Servo Hombro;
....

int angulorotacion = 90;
int angulohombro = 90;
...

2. En la función setup(), que se ejecuta una sola vez al iniciar el programa, asignamos los pines de Arduino a cada servomotor utilizando el método attach(). Esto conecta físicamente los servomotores a los pines digitales 2, 4, 7 y 8 de la placa Arduino. Además, iniciamos la comunicación serial a 9600 baudios con Serial.begin(9600). Esta comunicación nos permitirá enviar y recibir datos entre el Arduino y la computadora, utilizando el monitor serial del Arduino IDE.

void setup(){
  rotacion.attach(2);
  Hombro.attach(4);
  ...

  Serial.begin(9600);
}

3.

La función loop() se ejecuta repetidamente mientras el Arduino esté encendido. Primero, verificamos si hay datos disponibles en el buffer serial con Serial.available(). Si hay datos, leemos un byte de datos con Serial.read() y lo almacenamos en la variable comando.

Dependiendo del comando recibido (‘a’, ‘s’, ‘e’, ‘d’, ‘r’, ‘f’, ‘z’ o ‘x’), ajustamos el ángulo correspondiente de cada servomotor, incrementándolo o disminuyéndolo en 3 grados. Luego, usamos la función constrain() para asegurarnos de que los ángulos estén dentro de los límites permitidos.

Finalmente, movemos los servomotores a los ángulos calculados utilizando el método write(), y mostramos los ángulos actuales en el monitor serial con Serial.print() y Serial.println(). Un pequeño retraso de 100 milisegundos con delay(100) garantiza que el bucle no se ejecute demasiado rápido, permitiendo una respuesta más suave.

void loop(){
  unsigned char comando = 0;
  if (Serial.available()) {
    comando = Serial.read();
    
    if (comando == 'a') angulorotacion += 3;
    else if (comando == 's') angulorotacion -= 3;
    else if (comando == 'e') angulohombro += 3;
    else if (comando == 'd') angulohombro -= 3;
    ...

    angulorotacion = constrain(angulorotacion, 0, 180);
    angulohombro = constrain(angulohombro, 20, 180);
    ....
  }

  rotacion.write(angulorotacion);  
  Hombro.write(angulohombro);
  ....

  Serial.print("Angulo Rotacion:"); Serial.println(angulorotacion);
  Serial.print("Angulo Hombro:"); Serial.println(angulohombro);
  ...

  delay(100);
}

A continuación encontraras el código completo en lenguaje Arduino, si tienes adquirido un kit completo (en el cual se incluye este código) por favor contáctanos para poder cargarte a tu cuenta de Roboticadecolombia.Com la descarga.

Deberás seguir el siguiente esquema electrónico para tu manipulador robótico. Si compraste un kit completo, verifica que los pines de conexión del Arduino a tus servomotores estén correctos:

  • Rotación: Conecta el servomotor de rotación al pin 2 del Arduino.
  • Hombro: Conecta el servomotor del hombro al pin 4 del Arduino.
  • Codo: Conecta el servomotor del codo al pin 7 del Arduino.
  • Garra: Conecta el servomotor de la garra al pin 8 del Arduino.

Asegúrate de revisar estas conexiones antes de empezar para garantizar que todo funcione correctamente.

A continuación, explicaremos cómo controlar tu nuevo brazo robótico utilizando el monitor serial de Arduino. Para este paso, asegúrate de que tu computadora y tu Arduino UNO estén conectados mediante un cable de datos.

Paso 1: Selección de la Placa y el Puerto en Arduino IDE

En el apartado “Herramientas” del Arduino IDE, selecciona la opción “Placa” y escoge “Arduino/Genuino Uno”. Luego, en la opción “Puerto”, elige el puerto COM al que está conectado tu módulo bluetooth al PC. Generalmente, este será el segundo puerto COM de conexión bluetooth, diferente del puerto COM que usaste para conectar tu Arduino UNO por puerto serial y cargar los códigos en los pasos anteriores.

Paso 2: Iniciar el Monitor Serial

Inicia el Monitor Serial que está incorporado en tu IDE de Arduino. Esto te permitirá enviar comandos a tu brazo robótico y ver las respuestas en tiempo real.

Paso 3: Enviar Comandos en el Monitor Serial

En el Monitor Serial de tu IDE de Arduino, podrás enviar comandos a tu Brazo Robótico y visualizar en qué grado se encuentran los servomotores. Los comandos son:

  • a = + Rotación
  • s = – Rotación
  • e = + Hombro
  • d = – Hombro
  • r = + Codo
  • f = – Codo
  • z = + Garra
  • x = – Garra

Estos comandos te permitirán controlar cada parte del brazo robótico desde tu teclado.

Ahora ya sabes cómo controlar tu Brazo Robótico 4 Servomotores utilizando el Monitor Serial del Arduino IDE. Con los comandos enviados desde tu teclado, puedes mover cada parte del brazo robótico de manera precisa y eficiente. Este conocimiento te permitirá experimentar y desarrollar proyectos más complejos en el futuro. Recuerda siempre calibrar y revisar las conexiones antes de usar el brazo para evitar daños en los servomotores. ¡Disfruta explorando y creando con tu nuevo brazo robótico!