Brazo robot didáctico con 3 grados

Brazo robot didáctico con 3 grados © CC BY

Diseño de un brazo robótico con 3 grados de libertad controlado con un Arduino uno y manejado por Bluetooth desde una plataforma Android.

  • 437 views
  • 0 comments
  • 2 respects

Components and supplies

Apps and online services

About this project

Este proyecto consiste en la construcción de un brazo robótico de tres grados de libertad.

El objetivo es la realización de un proyecto didáctico que ayude a los alumnos a familiarizarse con varios entornos diferentes y a implementar diferente hardware y software, para llegar a una solución que funcione. Aunque no se persigue llegar a una máquina definitiva en el sentido de que tenga una funcionalidad completa, quedando así este proyecto abierto a futuras modificaciones o ampliaciones.

1º Grado de libertad, estará formado por una peana o base

solidaria a un engranaje dentado de módulo 1 acoplado a un tornillo sinfín que a su vez está movido por un motor de corriente contínua (bloque motor de cc con reductor). Girará en el plano XY.

2º Grado de libertad, articulación de hombro. Compuesta por barras fabricadas en una impresora 3D y acopladas a un servomotor.

3º Grado de libertad, articulación codo, movimiento facilitado por otro servomotor colocado entre la articulación hombro y codo.

Code

Brazo_Robot_Bluetooth.inoArduino
Es el programa hecho en IDE que se debe volcar a Arduino uno.
/* Inspirado en El Profe Garcia
  
 
 Conexion del Modulo Bluetooth HC-06 y el Arduino
 ARDUINO    Bluetooth HC-06 
 2 (RX)       TX
 3 (TX)       RX
 5V           VCC
 GND          GND
 
 
 

 */

#include <Servo.h>                // Incluye la libreria Servo                  
#include <SoftwareSerial.h> // Al incluir esta liobrera podemos usar el HC-06 con otros pines que no son el 0 y el 1

SoftwareSerial BT1(2,3); // Crea el objeto BT1. Pines 2 y 3 para RX, TX recordar que se cruzan
Servo servo1;   // Crea el objeto servo1 con las caracteristicas de Servo
Servo servo2;   // Crea el objeto servo2 con las caracteristicas de Servo
int izqA = 13;  
int derA = 12;  
int vel = 255;            // Velocidad de los motores (0-255)
int estado=9;         // inicia detenido

int tx = 2;            // define el pin 2 como tx del HC-06
int rx = 3;            // define el pin 3 como rx del HC-06
int duracion, distancia;  // para Calcular distacia
char dato='o';
int angServo1=90;
int angServo2=90;

void setup()  { 
  Serial.begin(9600);    // inicia el puerto serial para comunicacion con el Bluetooth
  Serial.println("Enter AT commands:");
  BT1.begin(9600);
  pinMode(derA, OUTPUT);
  pinMode(izqA, OUTPUT);
  
  servo1.attach(6,660,1400);    // Asocia el servo1 al pin 11, define el min y max del ancho del pulso  
  servo2.attach(9,660,1400);                              // eso depende del fabricante del servo
} 

void loop()  { 
  int t1=50;
  int t2=20;
  int angulo=1;
  //dato='h';

  if (BT1.available())
    {  
     dato = BT1.read();  //Lee cada carcter uno por uno y se almacena en una variable
     Serial.println(dato);  //Imprimimos en la consola el carcter recibido
    }
  if (dato=='h'){
     digitalWrite(derA, LOW);//As se para el motor de cc, o con cualquier dato!= de 'a' o 'b'     
     digitalWrite(izqA, LOW);   
    }        
  if (dato=='o'){     //Podramos decir que los servos van al punto Home de referencia
    servo1.write(90);
    servo2.write(90);
    delay(t2);
    }
  
  if(dato=='a'){              // 1 Articulacin Base o Peana, se mueve en un sentido es la flecha B_1Art_Izq de la app Brazorobotbluetooth.
    digitalWrite(derA, HIGH); // Se mueve el motor de cc gracias al LM289
    digitalWrite(izqA, LOW);       
    delay(t1);
    }
  if(dato=='b'){                 // 1 Articulacin Base o Peana, se mueve en el otro sentido es la flecha B_1Art_Dcha de la app Brazorobotbluetooth. 
    digitalWrite(derA, LOW);     // Se mueve el motor de cc gracias al LM289
    digitalWrite(izqA, HIGH);      
    delay(t1);
    }
  if(dato=='c'){
     angServo1=angServo1+angulo; 
     servo1.write(angServo1); // 2 Articulacin Hombro, el servo1 se mueve en un sentido, es la flecha B_2Art_Izq de la app Brazorobotbluetooth.
     delay(t2);          
     }
  if(dato=='d'){ 
    angServo1=angServo1-angulo; 
    servo1.write(angServo1); // 2 Articulacin Hombro, el servo1 se mueve en el otro sentido, es la flecha B_2Art_Dcha de la app Brazorobotbluetooth.
     delay(t2);          
     } 
if(dato=='e'){
     angServo2=angServo2+angulo; 
     servo2.write(angServo2); // 3 Articulacin Codo, el servo2 se mueve en un sentido, es la flecha B_3Art_Izq de la app Brazorobotbluetooth.
     delay(t2);          
      }
  if(dato=='f'){ 
    angServo2=angServo2-angulo; 
    servo2.write(angServo2); // 3 Articulacin Codo, el servo2 se mueve en el otro sentido, es la flecha B_3Art_Dcha de la app Brazorobotbluetooth.
     delay(t2);          
   }
  
}
Proyecto Arduino Robot
Es un repositorio en Github con todos los archivos generados en el proyecto.

Custom parts and enclosures

BrazoRobotBluetooth
Es el programa en app inventor
brazorobotbluetooth_(1)_MYsXHNmoWz.apk

Schematics

Esquema de conexión.
Realizado en Fritzing, el motor cc irá en un bloque reductor con salida de tornillo sin fin.
Brazo robot 3d bb jjohmsi0pn

Comments

Similar projects you might like

Smartphone Controlled Arduino 4WD Robot Car

Project in progress by Andriy Baranov

  • 86,368 views
  • 55 comments
  • 162 respects

Hand Gesture Controlled Robot

Project tutorial by Mayoogh Girish

  • 77,444 views
  • 81 comments
  • 88 respects

4-Wheel Robot Made With Arduino Controlled Using Dabble

Project tutorial by STEMpedia

  • 7,924 views
  • 8 comments
  • 26 respects

WiFi Robot

Project tutorial by Kartik

  • 4,122 views
  • 1 comment
  • 12 respects

Amazing 6WD Off-Road Robot | Arduino RC Robot

Project tutorial by Jithin Sanal

  • 8,836 views
  • 0 comments
  • 53 respects
Add projectSign up / Login