Nothing Special   »   [go: up one dir, main page]

Brazo Robotico

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 19

Brazo Robotico [Te muestro como]

Anuncios Google

Marketing en InternetGoogleAdWordsPromos.com - Empieza hoy en


AdWords con u$s50 de regalo. Crea tu cuenta hoy!

Que tal taringueros, esta ocacion les mostrare como me hice un brazo robotico, les dejo
la parte mecanica, fisica y electronica.
Materiales que utilice:
-Acrilico.
-Tornillos de varias medidas.
-4 servomotores(1 de 5kg,3 de 3kg).
-1 Motorreductor.
-2 engranes grandes.
-5 potenciometros de 10k.
-2 capacitores ceramicos de 33pF.
-1 cristal de 20Mz.
-1 pic16f884.
-2 circuitos integrados 74ls04.
-1 puente h l293d.
-2 resistencias de 10k.
-2 push botton.
El post lo voy a dividir en dos partes, la parte mecanica y la parte electronica, para que
sea mas comprencible.
Parte mecanica:
Primero voy a resaltar que las imagenes que deje son solo guia y es mi diseo pero
ustedes pueden hacerlo como quieran o se lo imaginen, lo primero que hay que hacer es
la base, sobre la base va a descansar el braso y lo va a mantener fijo a la superficie sobre
la que este, de mi parte tambien va a tener el servo que va a mover el brazo hacia la
izquierda y derecha(utiliza un servo de 3 kg), me quedo de esta manera:

Lo que sigue es el hombro del brazo, esta parte va unida con la base y utliza el servo de
5 kg ya que va a cargar todo el peso del brazo, es la siguiente:

Creo que hasta aqui aun no toma forma de brazo, lo que sigue es disear el codo(servo
de 3 kg), me quedo de la siguiente manera:

Ahora si ya tiene forma solo queda armar lo que seria la mano(servo de 3kg), para esto
utilizaremos los engranes y el moto reductor, estoy seguro que ustedes lo harian mejor:

Y listo ya esta la parte mecanica, dado que los servos traen cables muy cortos hay que
ponerles extenciones
algo como estas:

Y con esto termina la parte mecanica.


Parte electronica.
El brazo que disee se va a mover a voluntad del que lo utilice, explico, va a tener 4
potenciometros, uno por servo y totalmente independientes uno del otro, por ejemplo si
muevo el servo del codo hacia un lado el codo se mueve hacia un lado y viceversa y asi
lo cual hace que el braso no sea autonomo.

Aqui les dare el pcb, los diagrama de coneccion y el diagrama del pic.
Empiezo con los diagramas:
Diagrama del pic.

Diagrama de la tenaza del brazo:

Estos diagramas solo los hise y los pongo para que vean como se conectan tanto el pic
como el puente H que son las partes mas importantes de la electronica del brazo, el
diseo para el braso es la union de estos dos diagramas, no lo ise simulado pero si en
pcb.
Ahora bien dejo el pcb y una imagen en 3D de como deveria de quedar el circuito ya
armado y listo para su uso:
Este seria el diagrama de conexion:

Esta es la imagen de masomenso como deveria de quedarnos ya armado:

Este es el pcb listo para imprimirlo en un acetato y grabarlo sobre el cobre:

Esta tambien es para imprimir pero por la parte de arriba, solo es por si quieren que se
vea mejro el diseo:

Notaran que el pcb es para dos placas, eso es por que son dos placas una una contiene el
pic, las compuertas logicas y el puente H, otra contiene los controladores del brazo (los
potenciometros de los servos y dos push botton para abrir y cerrar la pinza), las dos
placas se conectan con cable esto lo ise para que el brazo este una distancia considerable
del control de mando y se conecta tal como esta, osea el primero de la placa de arriba
con el primero de la placa de abajo y asi sucecivamente.
Y por ultimo y mas importante, el programa para el pic, aclaro que lo ise en Pic C, solo
copean esto lo compilan les genera un archivo .hex lo graban en su pic y listo, por cierto
este programa me lo quieren copeear en la uni y lo ise en Pic-C por dos razones, una por
que haya no nos ensean a usar Pic-C y dos por que se programar ahi asi que el
programa que les paso trae un error que yo mismo se lo ise, para quiene saben
programar en Pic-C no sera dificil localizarlo y para los que no manden mensaje
personal y con gusto les corrijo el error esto lo hago para que vea quien quiere el
programa, y si detectas el problema no hay necesidad de que lo digas a todo mundo.
dijo:
#include <16f884>
#device ADC=10
#use delay (clock=20000000)
#include <lcd.c>
#use fast_io(a)

#use fast_io(c)
#define pinServo0 PIN_C0
#define pinServo1 PIN_C1
#define pinServo2 PIN_C2
#define pinServo3 PIN_C3
#define pinServo4 PIN_C4
#define pinServo5 PIN_C5
#define pinServo6 PIN_C6
#define pinServo7 PIN_C7
int16 ticksTotalServo =2000; //tickAltoMaximo = 11500 tickAltoMinimo = 3500
int16 ticksAltoServo[8];
int8 servoAMover=0;
int1 subir=1, enableServo[8]={1,1,1,1,1,0,0,0};
#int_timer1
void intTimer(void)
{
if(subir==1)
{
if(servoAMover == 0 && enableServo[0] == 1) output_high(pinServo0);
if(servoAMover == 1 && enableServo[1] == 1) output_high(pinServo1);
if(servoAMover == 2 && enableServo[2] == 1) output_high(pinServo2);
if(servoAMover == 3 && enableServo[3] == 1) output_high(pinServo3);
if(servoAMover == 4 && enableServo[4] == 1) output_high(pinServo4);
if(servoAMover == 5 && enableServo[5] == 1) output_high(pinServo5);
if(servoAMover == 6 && enableServo[6] == 1) output_high(pinServo6);
if(servoAMover == 7 && enableServo[7] == 1) output_high(pinServo7);
set_timer1(65535 - ticksAltoServo[servoAMover]);
subir = 0;
}
else if(subir==0)
{
if(servoAMover == 0 && enableServo[0] == 1) output_low(pinServo0);
if(servoAMover == 1 && enableServo[1] == 1) output_low(pinServo1);
if(servoAMover == 2 && enableServo[2] == 1) output_low(pinServo2);
if(servoAMover == 3 && enableServo[3] == 1) output_low(pinServo3);
if(servoAMover == 4 && enableServo[4] == 1) output_low(pinServo4);
if(servoAMover == 5 && enableServo[5] == 1) output_low(pinServo5);
if(servoAMover == 6 && enableServo[6] == 1) output_low(pinServo6);
if(servoAMover == 7 && enableServo[7] == 1) output_low(pinServo7);
set_timer1(65535 - ticksTotalServo + ticksAltoServo[servoAMover]);
servoamover++;
if (servoAMover > 7) servoAMover = 0 ;
subir = 1;
}
}
void main()

{
int8 i;
set_tris_c(0x00);
set_tris_a(0xFF);
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(ALL_ANALOG);
disable_interrupts(global);
setup_counters(RTCC_INTERNAL,RTCC_DIV_2);
setup_timer_1(T1_INTERNAL | T1_DIV_BY_1);
setup_timer_2(T2_DISABLED,0,1);
port_b_pullups(FALSE);
enable_interrupts(int_timer1);
enable_interrupts(global);
set_timer1(60000);
while(1)
{
for(i=0;i<8;i++) //leyendo los valores de los LDR
{
if(enableServo==1)
set_adc_channel(i);
delay_ms(10);
ticksAltoServo = 400 + (read_adc()*1.7) ;
}
}
}

Y listo eso seria todo de mi tutorial para hacerte un brazo robotico, jeje les aconsejo que
si lo hacen o siguen el tutorial no quieran hacer una braso de 2 metros de largo por que
los servos no van a aguantar y no se va a mover en lo particular lo ise muy largo y no
aguantaron los servo y se rompiron antes de poder presentar algo firme pero se corrige
haciendo el diseo mas ligero la parte electronica funciona 100%, otra cosa no traten de
hecharlo a andar en proteus ya que no funciona o por lo menos a mi no me funciono,
dejo un par de fotos de mi brazo completamente armado:

Y eso seria todo, espero que les sea de gran utilidad y apoyo para ustedes cualquier cosa
comenten o manden mp con gusto les ayudare, hasta pronto.

Fuentes de Informacin
El contenido del post es de mi autora, y/o, es un recopilacin de distintas fuentes.
http://www.brazorobotico85337.blogspot.com/

También podría gustarte