Brazo robótico con iman

1. Introducción

Brazo robótico con imán para poder mover pequeños objetos de
metal. El brazo es controlado mediante una aplicación para smartphone.

2. Materiales y presupuesto

  • Materiales:
    • Kit brazo madera cortado a laser y 3 servos motores SG90. Coste: ~30€
    • Placa Arduino Uno Rev3 (Proporcionada por el profesor)
    • Breadboard. Coste: ~4€
    • Cables: Coste:  ~7€
    • Transmisor Bluetooth (HC-05). Coste: ~4€
    • Módulo electroimán KEYSTUDIO. Coste:  ~13€
    • Smartphone (App)
  • Presupuesto: ~58€

3. Montaje

A partir de la madera cortada a laser procedimos a montar el brazo por completo. Este brazo venía adaptado para poder utilizarse con una  pinza que con la ayuda de un servo se habría o cerraba.
Para nuestro proyecto tuvimos que tomar las piezas que se utilizaban en la pinza y adaptarlas para poder utilizar el electroimán.
Posteriormente a esta modificación, que podemos ver en las siguientes fotos, el imán quedaba en un ángulo adecuado para poder atrapar los objetos de metal.

4. Código

Una anotación para tener en cuenta antes de ver el código es que este posee algunas condiciones para que los ángulos de los servos no se “contradigan” unos con otras y así evitar que puedan romperse.
#include <Servo.h>
Servo movil;
Servo codo;
Servo hombro;
Servo base;
char a;
int baseN = 90;
int hombroN = 90;
int codoN = 145;
int iman = 7;
String readString;
void setup() {
  pinMode(13, OUTPUT);
  pinMode(iman, OUTPUT);
  codo.attach(9);
  hombro.attach(10);
  base.attach(11);
  Serial.begin(9600);
movil.write(90);
  /*codo.write(100);*/
  codo.write(codoN);
  hombro.write(hombroN);
  base.write(baseN);
  delay(10);
}
void loop() {
  if (Serial.available()) {
    a = Serial.read();
    switch (a) {
      case ‘0’:
        baseN = 90;
        hombroN = 90;
        codoN = 145;
        base.write(baseN);
        hombro.write(hombroN);
        codo.write(codoN);
        break;
      case ‘1’:
        if (baseN <= 180) {
          baseN += 3;
          base.write(baseN);
          delay(10);
        }
        break;
      case ‘2’:
        if (baseN >= 0) {
          baseN -= 3;
          base.write(baseN);
          delay(10);
        }
        break;
      case ‘3’:
        //hombro acercarse
        if (hombroN <= 170) {
          hombroN += 4;
          hombro.write(hombroN);
        }
        break;
      case ‘4’:
        //hombro alejarse
        if (hombroN >= 90) {
          hombroN -= 4;
          hombro.write(hombroN);
        }
        break;
      case ‘5’:
        if (codoN < 170) {
          codoN += 2;
          codo.write(codoN);
        }
        break;
      case ‘6’:
        //codo abajo
        if (codoN > 0) {
          if ((hombroN < 120)
&& (hombroN – 10) > (180 – codoN) || (hombroN – 50) > (180 –
codoN)) {
            codoN -= 2;
            codo.write(codoN);
          }
        }
        break;
      case ‘7’:
        //coge
        if (a == ‘7’) {
          digitalWrite(iman, HIGH);
        }
        break;
      case ‘8’:
        if (a == ‘8’) {
          digitalWrite(iman, LOW);
        }
break;
    }
  }
}

Código y diseño de aplicación (MitApp Inventor):

Por otra parte, hay que decir que con la aplicación únicamente mandamos a través de bluetooth los números 0, 1, 2, 3, 4, 5, 6, 7 y 8 que corresponden a las señales de “Posición de inicio”, “Rotación hacia la izquierda”, “Rotación hacia la derecha”, “Acerca”, “Alejar”, “Arriba”, “Abajo”, “Activar electroimán” y “Desactivar electroimán”. La aplicación consta de 9 botones: dos botones para activar o desactivar el electroimán, uno para restaurar el brazo a una posición inicial, uno para acercar, uno para alejar y dos para activar o desactivar el acelerómetro, donde se realizan las acciones de rotación y las de arriba y abajo. Los dos botones restantes se utilizan para conectar el smartphone al dispositivo bluetooth y para salir de la aplicación.


5. Problemas y posibles mejoras

Uno de los mayores problemas que tuvimos al realizar este proyecto fue debido a que al conectar el dispositivo bluetooth (HC-05) a la placa Arduino y mandarle señales con la aplicación del smartphone realizaba los movimientos que nosotros queríamos, pero de forma extraña y con rebotes.

Finalmente pudimos solucionarlo estos movimientos extraños y rebotes conectando los conectores TXD y RXD del dispositivo bluetooth (HC-05) a los pines 0 y 1 de la placa Arduino respectivamente ya que no servía en cualquier otro pin de entrada analógica.

Otro de los problemas más que tuvimos al realizar este proyecto fue la realización del código ya que nos era complicado conocer los ángulos exactos en los que los servomotores se “contrarrestaban” y podían romperse. Al final tuvimos que delimitar los ángulos de estos para evitar un desastre.
Para finalizar queríamos proponer posibles mejoras que podían aplicarse a nuestro proyecto
  • Mejora en la potencia de los servomotores para poder atrapar objetos de mayor peso.
  • Mejora en el código para una menor limitación de los ángulos del brazo.
  • Mejoras en la aplicación para realizar más movimientos con el acelerómetro y no tener que presionar botones.

También te podría gustar...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *