Brazo Robotico

Proyecto realizado por: Manuel Ricardo Forero

I. INTRODUCCIÓN
En el presente trabajo se muestra la implementación de un brazo robot con 5 grados de libertad y como elemento terminal una pinza para sujetar objetos.
Todas las articulaciones se controlan de forma digital.

II. OBJETIVOS

El objetivo de este proyecto consiste en el diseño y puesta en marcha de un brazo robótico creado a partir de piezas impresas a través de corte láser al acrílico. En torno a este objetivo principal, se proponen los siguientes subjetivos:
• Dotar a los diferentes módulos del brazo robótico de los actuadores necesarios para su movimiento.
• Controlar por ordenador las diferentes posiciones que el robot es capaz de alcanzar. Se implementará una solución para coger un objeto y posicionarlo en otro lugar. Además, se propone un programa de control que utilice teclas de acceso rápido del teclado como indicadores del movimiento (por ejemplo, la tecla ? indicará a un módulo a realizar un movimiento ascendente).
• Diseñar la estructura de manera que se le puedan añadir fácilmente mejoras como pueden ser otros módulos que permitan más movimientos debido al mayor número de grados de libertad.
• Realimentación de la posición y utilización de la misma para el movimiento del robot.

III. MEDIOS EMPLEADOS

Para poder llevar a cabo este proyecto, ha sido necesario contar con los siguientes materiales y medios:
• Ordenador con sistema operativo Windows 7.
• Software catia V5R21.
• Servomotores.
• Micro controlador AtMega 16 A.
• Programador usbasp V2.0 para la programación del micro controlador.
• Pantalla LCD 16x2
• Teclado matricial
• Fuente de alimentación (5V para la alimentación de los servomotores y el micro controlador)
• Cortadora de acrílico a laser

La implementación del Brazo robótico se realizó a partir de placas de acrílico Diseñadas en software catia V5R21 y mandado a cortar a laser (se pagó por este servicio). Posteriormente se procedió a realizar el ensamblado del brazo robótico con sus respectivos servomotores

El control del brazo se realizó con un teclado matricial con el cual el micro controlador reconociera a que servomotor enviar la señal de P.W.M. y que a su vez este lo desplegara por una pantalla LDC y dijera el sentido de rotación del servomotor
IV. Servomotor
La referencia de los servomotores usados en el proyecto fue TowerPro mg995 los cuales tienen las siguientes especificaciones
• Peso: 55 g
• Dimensiones: 40.7 x 19.7 x 42.9 mm aprox.
• Torque: 8.5 kgf•cm (4.8 V ), 10 kgf•cm (6 V)
• Velocidad de operación: 0.2 s/60º (4.8 V), 0.16 s/60º (6 V)
• Voltaje de operación: 4.8 V a 7.2 V

V. CÓDIGO DE PROGRAMACIÓN

#include <avr/io.h>
#include <util/delay.h>
#include "F:/LCD_1.h"
#define F_CPU 12000000UL  
//Funcion espera
void Wait()
{
    uint8_t i;
    for(i=0;i<10;i++)
    {
        _delay_loop_2(0);

    }

}
//Funcion servo
int main(void)
{

    TCCR1A|=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM11);             
    TCCR1B|=(1<<WGM13)|(1<<WGM12)|(1<<CS11);    
    DDRC =0xFF;
    ICR1=4999;    

    DDRD|=(1<<PD4)|(1<<PD5);// puertos D4 D5 como salidas PWM    
    MCUCSR=0b10000000 // desabilitia  jtag
    MCUCSR=0b10000000

    while(1)
    {

        OCR1A=1000;    
        Wait(2000);

        OCR1A=1500;    
        Wait(2000);

    }

}
//Funcion lcd
int Press(void)
{
    DDRD &=(0<<PD0)&(0<<PD1)&(0<<PD2)&(0<<PD3);//Define lo puertos D0 D1 D2 D3 como entradas 

    while(1) //infinite loop
    {
        if(PIND & (1<<PD0) == 1) //si el boton es pulsado 
        {
            lcd_init(LCD_DISP_ON);
            lcd_clrscr();
            while(1)               //  ciclo infinito
            {
               lcd_gotoxy(1,0);
               lcd_puts("Movimiento");
               _delay_ms(500);
               lcd_gotoxy(1,0);
               lcd_puts("Eslabon No1");
               _delay_ms(500);       

            }

        }
        if(PIND & (1<<PD1) == 1) //si el boton es pulsado 
        {
            lcd_init(LCD_DISP_ON);
            lcd_clrscr();
            while(1)               //  ciclo infinito
            {
                lcd_gotoxy(1,0);
                lcd_puts("Movimiento");
                _delay_ms(100);
                lcd_gotoxy(1,0);
                lcd_puts("Eslabon No2");
                _delay_ms(100);

            }

        }
        if(PIND & (1<<PD2) == 1) //si el boton es pulsado 
        {
            lcd_init(LCD_DISP_ON);
            lcd_clrscr();
            while(1)               //  ciclo infinito
            {
                lcd_gotoxy(1,0);
                lcd_puts("Movimiento");
                _delay_ms(100);
                lcd_gotoxy(1,0);
                lcd_puts("Eslabon No3");
                _delay_ms(100);

            }

        }
        if(PIND & (1<<PD3) == 1) //si el boton es pulsado 
        {
            lcd_init(LCD_DISP_ON);
            lcd_clrscr();
            while(1)               // ciclo infinito
            {
                lcd_gotoxy(1,0);
                lcd_puts("Movimiento");
                _delay_ms(100);
                lcd_gotoxy(1,0);
                lcd_puts("Pinza =<");
                _delay_ms(100);

            }

        }
    }
}

Render

guestaccess.aspx?guestaccesstoken=RkIRThIl3RrvPg2DGAhQW%2bJ8MLujFhA5Vi%2fuvtbvuTM%3d&docid=0721937e9a1824416921ae9c045fca891

Diseño Parcial

guestaccess.aspx?guestaccesstoken=ubEwa2hMoNo%2f35GXM6zNu8PCMEhTZ2J3LLMelXUPu64%3d&docid=07287d4def58141e2a1b1b6742d65db23 guestaccess.aspx?guestaccesstoken=Sl%2bAbHvFSqK0OGSkH1uTRWerhWhwiX0mJX7H50byuH4%3d&docid=005cf9212c845430786613710c8555a9f guestaccess.aspx?guestaccesstoken=7j4BlkzudITsQy5GCZlNjK%2f3RlxNBMxpIvo6qH0LUic%3d&docid=0179fd20e38904508a264e06591ecdd61
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License