informe final arquitectura

32
INDICE Contenido INDICE ............................................................................................................. .................. 1 I. OBJETIVOS ................................................................................................................ 2 II. INTRODUCCION ........................................................................................................ 3 III. ESPECIFICACIONES TÉCNICAS DEL PROYECTO EN FORMA COMPLETA................. 4 ETAPAS DEL BRAZO ROBOT .......................................................................................... 5 Interfaz de usuario........................................................................................................ 5 Control de movimiento ................................................................................................ 6 INTERFAZ DE POTENCIA................................................................................................ 7 SELECCIÓN DE COMPONENT ES .................................................................................... 8 PIC 18F4550 .................................................................................................................. 9 MOTORES PASO A PASO (PAP) UNIPOLARES D E 12V ................................................. 10 Dimensiones físicas (mm) .......................................................................................... 11 IV. DIAGRAMA DE BLOQUE COMPLETO DEL SISTEMA HARDWARE Y SOFTWARE... 12 DIAGRAMA ESQUEMATICO ........................................................................................ 13 V. MORFOLOGIA DEL SISTEMA ................................................................................... 14 PLANOS .............................................................................................................. ......... 14 ESTRUCTURA MECÁNICA ................. ........................................................................... 15 MODO DE TRANSMISIÓN ........................................................................................... 15 INTERFACE USB ........................................................................................................... 16 ETAPA DE POTENCIA................................................................................................... 16 CNC IMPLEMENTADO ................................................................................................. 17 VI. SOFTWARE INSTALACION, CONFIGURACION , ALGORITMOS DE CONTROL, EJECUCION NORMAL MANUAL Y TAREAS ...................................................................... 18 IMPLEMENTACION DE INTERFAZ ELECTRONICA ........................................................ 18 PROGRAMA EN VISUAL BASIC .................................................................................... 19 PROGRAMA PIC 18F4550............................................................................................ 24 VII. TAREAS PREESTABLECIDAS .................................................................................. 29 VIII. APORTES Y APLICACIONES EN GENERAL .......................................................... 29 IX. CONCLUSIONES.................................................................................................... 30 X. BIBLIOGRAFIA: ........................................................................................................ 31

Upload: edgard-leonard-larico-infa

Post on 15-Oct-2015

18 views

Category:

Documents


0 download

TRANSCRIPT

  • 5/25/2018 INFORME FINAL Arquitectura

    1/31

    INDICE

    Contenido

    INDICE ............................................................................................................................... 1

    I. OBJETIVOS ................................................................................................................ 2

    II. INTRODUCCION ........................................................................................................ 3

    III. ESPECIFICACIONES TCNICAS DEL PROYECTO EN FORMA COMPLETA. ................ 4

    ETAPAS DEL BRAZO ROBOT .......................................................................................... 5

    Interfaz de usuario ........................................................................................................ 5

    Control de movimiento ................................................................................................ 6INTERFAZ DE POTENCIA ................................................................................................ 7

    SELECCIN DE COMPONENTES .................................................................................... 8

    PIC 18F4550 .................................................................................................................. 9

    MOTORES PASO A PASO (PAP) UNIPOLARES DE 12V ................................................. 10

    Dimensiones fsicas (mm).......................................................................................... 11

    IV. DIAGRAMA DE BLOQUE COMPLETO DEL SISTEMA HARDWARE Y SOFTWARE ... 12

    DIAGRAMA ESQUEMATICO ........................................................................................ 13

    V. MORFOLOGIA DEL SISTEMA ................................................................................... 14

    PLANOS ....................................................................................................................... 14

    ESTRUCTURA MECNICA ............................................................................................ 15

    MODO DE TRANSMISIN ........................................................................................... 15

    INTERFACE USB ........................................................................................................... 16

    ETAPA DE POTENCIA ................................................................................................... 16

    CNC IMPLEMENTADO ................................................................................................. 17

    VI. SOFTWARE INSTALACION, CONFIGURACION, ALGORITMOS DE CONTROL,EJECUCION NORMAL MANUAL Y TAREAS ...................................................................... 18

    IMPLEMENTACION DE INTERFAZ ELECTRONICA ........................................................ 18

    PROGRAMA EN VISUAL BASIC .................................................................................... 19

    PROGRAMA PIC 18F4550............................................................................................ 24

    VII. TAREAS PREESTABLECIDAS .................................................................................. 29

    VIII. APORTES Y APLICACIONES EN GENERAL .......................................................... 29

    IX. CONCLUSIONES .................................................................................................... 30

    X. BIBLIOGRAFIA: ........................................................................................................ 31

  • 5/25/2018 INFORME FINAL Arquitectura

    2/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    2

    I. OBJETIVOS Conocer las interfaces de entrada y salida de la Pc y la manera de interactuar

    con otros dispositivos (USB). Desarrollar aplicaciones con el PIC 18F4550, usando entradas y salidas Desarrollar el algoritmo para el control de 2 motores unipolares Construir un Brazo puntero Ubicacin semicrculo de 150 mm de radio capaz de

    realizar un mnimo de 3 secuencias de trabajo con un margen de error de 1mm.

    Desarrollar una interfaz en la computadora para el manejo del Brazo punteroUbicacin semicrculo de 150 mm de radio.

  • 5/25/2018 INFORME FINAL Arquitectura

    3/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    3

    II. INTRODUCCIONEl diseo del sistema de control para el brazo robot de dos grados de libertad se

    dividi en tres partes: una etapa de interfaz de usuario, encargada de interactuar con

    el usuario mediante un computador personal y comunicarse con la etapa del

    controlador; la cual, se encarga de recibir del computador personal los valores de

    trayectoria ingresados por el usuario y generar las seales de control necesarias para

    accionar los actuadores encargados de realizar el movimiento, as como de recibir

    informacin de los sensores acoplados al sistema; y por ltimo una etapa de interfaz

    de potencia, encargada de recibir las seales de control generadas por el

    microcontrolador, llevndolas a los niveles de potencia adecuados para los actuadores.

  • 5/25/2018 INFORME FINAL Arquitectura

    4/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    4

    III. ESPECIFICACIONES TCNICAS DEL PROYECTO EN FORMACOMPLETA.

    El desarrollo del brazo robot manipulador comprende diferentes reas de trabajo,

    siendo estas la interfaz final de usuario, el control del movimiento, la interfaz depotencia y el diseo mecnico.

    La funcin principal de la interfaz de usuario es de recibir los datos de entrada por

    parte del operario, en este caso equivalen a los movimientos del brazo robot, y

    transmitirlos como datos numricos hacia el sistema de control del brazo robot. Para

    desarrollar el programa se utilizar el lenguaje Visual C shart, debido a que tiene la

    capacidad de programar entornos grficos fcilmente. Esto permite que el programa

    sea capaz de realizar una gran cantidad de clculos matemticos (como por ejemplo el

    clculo de las posiciones del brazo robot) y operaciones en tiempo real.

    El control de movimiento es de suma importancia, puesto que se puede obtener un

    control del manipulador acorde a nuestros requerimientos para as cumplir con el

    objetivo, que es la realizacin de trazos sobre un plano tamao A3.

    El diseo de la interfaz de potencia har el enlace entre el control digital y los

    actuadores. La eleccin de los actuadores se hace en base a los requerimientos de

    precisin y de fuerza, incluyendo tambin mecanismos de proteccin para los

    dispositivos.

    Los motores a pasos constituyen una eleccin apta para el trabajo de manipuladores

    debido a la precisin de sus movimientos y a la simplicidad de la interfaz de control.

    Aunque presentan la desventaja de un menor torque comparado con otros motores de

    corriente continua. Por este motivo se seleccionaron motores de ambos tipos para

    esta aplicacin: en un eje se utiliza un motor a pasos, donde la precisin y el torque lo

    permiten; y en el otro eje se utiliza un motor de corriente continua, en donde el

    requerimiento de torque es mayor.

    La etapa de adaptacin de seales de control implica el manejo de voltajes y corrientes

    elevadas para ambos motores. Esto se puede lograr utilizando transistores de potencia

    tipo Darlington para el motor a pasos, debido a su flexibilidad de rango de trabajo con

    estos parmetros y a la simplicidad en el diseo de su circuito de control, adems se

    encuentran disponibles en el mercado local a bajo costo. Adems se utilizan

  • 5/25/2018 INFORME FINAL Arquitectura

    5/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    5

    transistores MOSFET para el diseo del circuito excitador del motor de corriente

    continua, debido a la facilidad de manejo de estos dispositivos en la configuracin

    utilizada y al mayor rango de trabajo en comparacin con otros tipos de transistores.

    Sin embargo se deben tener en cuenta las caractersticas no deseadas que presentanestos dispositivos para poder evitar su malfuncionamiento y los lmites de trabajo de

    cada uno.

    ETAPAS DEL BRAZO ROBOT

    Ya que la implementacin del presente proyecto presenta una alta complejidad, se ha

    decidido dividir del desarrollo del robot manipulador en tres etapas principales:

    Interfaz de usuario, control de movimiento e interfaz de potencia. La interaccin entre

    dichas partes se aprecia en la figura 1.

    Interfaz de usuario

    La interfaz de usuario consiste en una aplicacin, programada por medio del lenguaje

    Visual C shart para que el usuario sea capaz de introducir a la computadora los

    movimientos que desea que el robot manipulador realice.

    Con la finalidad de que la programacin del robot manipulador sea lo ms simple

    posible, se desarrollar una interfaz grfica que interacte de forma amigable con el

    usuario. Esta le mostrar al usuario el estado de las variables del robot manipuladorpor medio de una simulacin y permitir el ingreso de datos de forma fcil y directa.

    Adicionalmente, si el usuario desea saber los valores numricos de las variables de

    estado, puede acceder a estos datos por medio de una ventana que se activar cuando

    el usuario lo desee.

    El objetivo del robot manipulador solo ser el trazar lneas rectas entre dos puntos

    dentro de un rea de trabajo. Una vez que se tienen el punto inicial y el punto final del

    movimiento deseado, se determinan los puntos intermedios entre el inicial y final, los

  • 5/25/2018 INFORME FINAL Arquitectura

    6/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    6

    cuales son almacenados en el programa. Una vez obtenidos estos puntos, por medio

    de clculos geomtricos se obtienen los ngulos relativos deseados en las uniones en

    cada punto respectivamente.

    Estos ngulos se distribuyen en el tiempo para formar una funcin discreta de latrayectoria deseada.

    Una vez que se tiene la funcin discreta, el programa halla la funcin continua de las

    variables que definen el movimiento del brazo robot. Adicionalmente, el usuario debe

    ser capaz de visualizar las grficas de las funciones. Para enviar los datos al programa

    del controlador, se utilizar el puerto USB.

    Adems, el programa realizar una simulacin grfica del movimiento del robot. En

    esta simulacin se observarn dos vistas del robot, la lateral y la horizontal. De esta

    forma el usuario podr visualizar el movimiento del robot manipulador en la

    computadora antes de que se ejecute la accin. Una ventaja de Visual, es que tiene

    una serie de instrucciones que permiten realizar grficos simples en la ventana de la

    aplicacin por medio de lneas de cdigo. De esta forma, utilizando las variables de

    estado de robot (posiciones de las uniones) se puede realizar una simulacin del robot.

    Esta grfica se actualiza cada vez que una variable cambia, dndole la ilusin de

    movimiento. Tambin en la simulacin se visualizarn los puntos en donde el efector

    final est en contacto con el rea de trabajo.

    Control de movimiento

    Como se mencion anteriormente, la etapa de control de movimiento ser la

    encargada de controlar el movimiento de cada motor para as lograr el movimiento

    deseado del sistema y del efector final. Para ello esta etapa recibir los datos

    calculados por la interfaz de usuario en la computadora que le indicar las trayectorias

    a seguir. Empleando estos datos como referencia, el sistema de control deber calcular

    la cantidad de movimiento requerida para cada motor y luego traducir esto a

    secuencias coordinadas que sern enviadas a la etapa de potencia.

    Las secuencias generadas por el controlador sern enviadas a la tarjeta de potencia,

    que se encargar de elevar los niveles de voltaje y corriente y de convertir estos

    niveles lgicos a los voltajes y corrientes requeridos por los motores para as producirel movimiento mecnico deseado.

  • 5/25/2018 INFORME FINAL Arquitectura

    7/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    7

    Para realizar todas estas funciones se propone el uso de un microcontrolador, y puesto

    que la velocidad no es un factor fundamental en este proyecto, se pueden reducir

    costos al emplear un microcontrolador que tenga adems un convertidor analgico

    digital incorporado, ya que no es necesario que los tiempos de conversin sean muypequeos. El microcontrolador debe adems contar con las suficientes salidas para

    lograr el control de los motores y la posibilidad de comunicarse con una computadora

    personal para la recepcin de los datos generados por el programa de usuario.

    INTERFAZ DE POTENCIA

    La interfaz de potencia consiste en una serie de dispositivos que en su funcionamiento

    conjunto sern capaces de controlar los actuadores finales, en este caso los motores

    de cada eje del brazo robot manipulador. Para ello tendr comunicacin directa con la

    etapa del controlador, la cual ser su fuente de seales. stas seales, al ser incapaces

    de brindar energa suficiente a los motores, sern adaptadas a seales de mayor

    energa que s puedan alimentarlos.

    Previamente a la etapa de seleccin de dispositivos a usar y al diseo mismo de la

    interfaz, se deben elegir los motores adecuados al trabajo en el brazo manipulador. De

    acuerdo a la exigencia de cada eje en cuanto a torque, cada motor requerir mayor o

    menor dimensin. Esto influir drsticamente en el diseo, en especial en la etapa de

    seleccin de dispositivos, por lo tanto se debe realizar de manera correcta la eleccin

    para evitar sobredimensionar los motores.

    Tambin es objetivo de la interfaz proteger todos los dispositivos de la misma y

    tambin de la etapa del controlador. Al manejar la interfaz potencias ms elevadas que

    el resto del sistema existe el riesgo que estas afecten y daen componentes de las

    otras etapas, por tanto el aislamiento es requisito indispensable. Tambin debe

    implementarse protecciones para los mismos dispositivos de la interfaz, teniendo en

    cuenta que se trabajar con motores.

    Otro objetivo importante es la comunicacin de los sensores de posicin con la etapa

    de controlador, ya que stos estarn ubicados en los motores, es conveniente que la

    misma interfaz de potencia sea la encargada de transmitir la seal de los mismos al

    controlador.

  • 5/25/2018 INFORME FINAL Arquitectura

    8/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    8

    Se propone el uso de motores a pasos para el trabajo en el eje vertical, dado su fcil

    control y su precisin en movimiento angular, ya que pueden mantener una posicin

    angular deseada. Para el movimiento del en el eje horizontal se propone el uso de un

    motor de corriente continua de imn permanente, debido al mayor requerimiento detorque. Para su control se propone un diseo en base a transistores MOSFET, pues son

    de fcil activacin y permiten, en determinada configuracin, el manejo de corriente

    en ambos sentidos y son capaces de soportar potencias bastante elevadas, suficientes

    para la aplicacin actual.

    SELECCIN DE COMPONENTESEl Proyecto Brazo puntero Ubicacin semicrculo, tiene:

    o 2 ejes para el posicionamiento de un taladro (puntero) que mediante unacoordenada preestablecida por computadora, posiciona este taladro y perfora

    en los lugares indicados, con una precisin de 1 mm, se puede perforar en

    cualquier coordenada que se le indique.

    o El sistema en cuanto a hardware se compone de los siguientes elementos: PIC18F4550 (1) MOSFET IRF540N (8) MOTORES PASO A PASO (2) Se utilizan para darle la precisin y

    llegar a la coordenada indicada.

    Tensin de 5-24 VDC Corriente de 1.6 A Torque 400mN/m Peso de 500, 450, 250 gramos respectivamente

  • 5/25/2018 INFORME FINAL Arquitectura

    9/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    9

    PIC 18F4550

    Los PIC son una familia de microcontroladores tipo RISC fabricados por Microchip

    Technology Inc. y derivados del PIC1650

    Caractersticas:

    CARACTERSTICAS PIC18F4550

    Frecuencia de Operacin Hasta 48MHz

    Memoria de Programa (bytes) 32.768

    Memoria RAM de Datos (bytes) 2.048

    Memoria EEPROM Datos (bytes) 256

    Interrupciones 20

    Lneas de E/S 35

    Temporizadores 4

    Mdulos de Comparacin/Captura/PWM (CCP) 1

    Mdulos de Comparacin/Captura/PWM mejorado

    (ECCP)1

    Canales de Comunicacin Serie MSSP.EUSAR

    Canal USB 1

    Puerto Paralelo de Transmisin de Datos (SPP) 1

    Canales de Conversin A/D de 10 bits 13 Canales

    Comparadores analgicos 2

    Juego de instrucciones 75 (83 ext.)

    Encapsulados

    PDIP40 pines QFN

    40 pines TQFP 40

    pines

  • 5/25/2018 INFORME FINAL Arquitectura

    10/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    10

    Diagrama de pines PIC18F4550

    Algunas de estas caractersticas se muestran a continuacin:

    Soporta modo de comunicacin serial, posee dos pines para ello. Amplia memoria para datos y programa. Memoria reprogramable:La memoria en este PIC es la que se denominaFLASH;este

    tipo de memoria se puede borrar electrnicamente (esto corresponde a la "F" en el

    modelo).

    Set de instrucciones reducidas (tipo RISC), pero con las instrucciones necesarias parafacilitar su manejo.

    MOTORES PASO A PASO (PAP) UNIPOLARES DE 12V

    Estemotor PAP unipolar cuenta con un conector de cinco terminales, cuatro de los cuales

    corresponden a las bobinas y el quinto se utiliza para la conexin de la fuente de

    alimentacin de 12V. Incorpora un mecanismo reductor de velocidad (esto incrementa

    enormemente su fuerza), lo que hace necesario ejecutar una cantidad bastante grande de

    pasos para obtener un movimiento apreciable del eje externo (ver ejemplo de

    programacin). Es un motor de bajo costo y puede ser utilizado en mltiples proyectos

    tanto bsicos como avanzados.

    http://www.monografias.com/trabajos16/memorias/memorias.shtmlhttp://www.monografias.com/trabajos6/mafla/mafla.shtmlhttp://www.programarpicenc.com/libro/cap12-l293d-l293b-motores-cc-dc.htmlhttp://www.programarpicenc.com/libro/cap12-l293d-l293b-motores-cc-dc.htmlhttp://www.monografias.com/trabajos6/mafla/mafla.shtmlhttp://www.monografias.com/trabajos16/memorias/memorias.shtml
  • 5/25/2018 INFORME FINAL Arquitectura

    11/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    11

    Dimensiones fsicas (mm)

    Nota:d=dimetro

    Realizar un control de giro de un motor PAP unipolar de 12V por medio de un PIC16F628A

    y un driver L293D, de tal forma que el motor ejecute una secuencia repetitiva de

    movimientos en sentido horario y en sentido antihorario. El encendido y apagado del

    motor se controla por medio de un interruptor conectado al PIC en el pin RB7, de tal

    forma que cuando el nivel de entrada es 0 (interruptor cerrado) el motor est apagado, y

    cuando el nivel sea 1 (interruptor abierto) el motor se encienda (en el ejemplo, el motor

    efecta 645 pasos en sentido horario y 650 en sentido contrario).

  • 5/25/2018 INFORME FINAL Arquitectura

    12/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    12

    IV. DIAGRAMA DE BLOQUE COMPLETO DEL SISTEMAHARDWARE Y SOFTWARE

    PC

    MOSFETMOSFET

  • 5/25/2018 INFORME FINAL Arquitectura

    13/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    13

    DIAGRAMA ESQUEMATICO

  • 5/25/2018 INFORME FINAL Arquitectura

    14/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    14

    V. MORFOLOGIA DEL SISTEMAPLANOS

  • 5/25/2018 INFORME FINAL Arquitectura

    15/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    15

    ESTRUCTURA MECNICA

    Estructura del CNC se hizo uso de MDF de 9mm.

    Varillas de aluminio debido a que son metales resistentes y a la vez nos permiten dar

    un mejor acabado a nuestro proyecto.

    DISEO DE LOS COMPONENTES

    BASE:La base tiene longitudes de 50cm x 40cm x 5cm, esta tiene una forma de prisma

    rectangular, en la que se apoya la estructura, mediante 8 pernos, y un eje hecho de un

    tornillo sin fin controlado por un motor PAP, con dos varillas para darle estabilidad,

    que permite dar movimiento a esta estructura. Esta base tiene la funcin de acoger a

    la placa que ser taladrada y a su vez dar movilidad al

    MODO DE TRANSMISIN

    Con engranajes o con polea y correas dentadas es muy fcil de conseguir unareduccin que nos sea favorable a la hora de conseguir una mayor resolucin en la

    herramienta.

    Los engranajes se recomiendan para transmisiones que no requieran de velocidad,

    debido a que desperdiciamos mucha fuerza y el efecto inercial de los mismos nos

    dificulta para realizar rpidos movimientos

    Con este tipo de transmisin podemos elegir reducciones que nos ayuden a conseguir

    alta resolucin en el posicionamiento de la herramienta, para lo que debemos tener en

    cuenta el paso del tornillo. Nos queda como vemos sobre la polea del tornillo un

    mando manual para posicionar la herramienta en caso de fresados muy finos como en

    PCBs y perforados, adems ahorramos espacio en la colocacin del motor.

    Las correas dentadas (sincrnicas) y las poleas para las mismas son muy fcil de

    conseguir, y al menos las poleas de fabricar. No son muy costosas y en el pas hay

    varios fabricantes.

  • 5/25/2018 INFORME FINAL Arquitectura

    16/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    16

    INTERFACE USB

    ETAPA DE POTENCIA

  • 5/25/2018 INFORME FINAL Arquitectura

    17/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    17

    CNC IMPLEMENTADO

  • 5/25/2018 INFORME FINAL Arquitectura

    18/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    18

    VI. SOFTWARE INSTALACION, CONFIGURACION, ALGORITMOSDE CONTROL, EJECUCION NORMAL MANUAL Y TAREAS

    IMPLEMENTACION DE INTERFAZ ELECTRONICA

    Diseo de una interfaz grfica de usuario para la generacin de trayectorias. Para esta

    etapa se utiliz el programa Visual Studio 2008 de Microsoft; especficamente se

    realiz la programacin en el lenguaje Visual C Sharp. El programa desarrollado debi

    realizar las siguientes funciones: obtener los datos ingresados por el usuario, realizarlos clculos matemticos de las trayectorias, enviar los datos de la trayectoria al

    sistema de control de movimiento, mostrar la informacin por medio de grficas y

    finalmente mostrar una simulacin grfica del movimiento.

    Se decidi utilizar el lenguaje Visual C Sharp por la siguiente razn:

    Visual C sharp es uno de los lenguajes ms rpidos en la actualidad con lacapacidad de trabajar con entornos visuales. La velocidad del programa es un

    parmetro importante en el presente trabajo debido a que el clculo de las

    trayectorias requiere de un gran nmero de clculos matemticos, el programa

    tarda un tiempo considerable en ejecutarse. Adems, la simulacin grfica

    tambin requiere de una alta velocidad de procesamiento, ya que se desea que

    los movimientos se realicen en un tiempo determinado. Por tales motivos,

    mientras ms rpido sea el lenguaje de programacin utilizado mejores sern

    los resultados. El programa desarrollado est compuesto por varios distintos

  • 5/25/2018 INFORME FINAL Arquitectura

    19/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    19

    bloques que se encargan de ciertas tareas especficas. A continuacin se

    presentara el programa usado para dicho proyecto:

    PROGRAMA EN VISUAL BASIC

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Diagnostics;

    using System.Windows.Forms;

    using System.Runtime.InteropServices;

    using MecaniqueUK;

    namespace WindowsFormsApplication1

    {

    public partial class USB_FORM : Form

    {

    /***************************************************/

    // Variables definidas por el usuario.

    UInt32 controlador;

    /***************************************************/

    public USB_FORM()

    {

    InitializeComponent();

    MENSAJE_TOOL.SetToolTip(this.HABILITADOR,

    "Botn que habilita la salida de las coordenadas (X;Y)");

    MENSAJE_TOOL.SetToolTip(this.CONECTAR_DISPOSITIVO,

    "Botn que nos permite enlazar el dispositivo al

    controlador.");

    MENSAJE_TOOL.SetToolTip(this.MENSAJES_USB,

    "En esta ventana van apareciendo los diferentes sucesos

    ocurridos en la aplicacin.");

    MENSAJE_TOOL.SetToolTip(this.SALIR,"Botn para salir del programa");

    }

    private void FormMain_Load_1(object sender, EventArgs e)

    {

    timer1.Enabled = true;

    deshabilita_controles();

    }

    private void FormMain_FormClosed(object sender,

    FormClosedEventArgs e){

    EasyHID.Disconnect();

  • 5/25/2018 INFORME FINAL Arquitectura

    20/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    20

    }

    private void Dispositivo_Conectado(UInt32 handle)

    {

    if (EasyHID.GetVendorID(handle) == EasyHID.VENDOR_ID &&

    EasyHID.GetProductID(handle) == EasyHID.PRODUCT_ID)

    {

    // Si el handler ha encontrado un dispositivo

    conectado...

    EasyHID.SetReadNotify(handle, true); // Activa el

    sistema de notificaciones.

    controlador = handle;

    MENSAJES_USB.Items.Add ("Dispositivo USB,

    conectado.");

    }

    }

    private void Dispositivo_desconectado(UInt32 handle)

    {

    if (EasyHID.GetVendorID(handle) == EasyHID.VENDOR_ID &&

    EasyHID.GetProductID(handle) == EasyHID.PRODUCT_ID)

    {

    MENSAJES_USB.Items.Add("Dispositivo USB,

    desconectado.");

    CONECTAR_DISPOSITIVO.BackColor = Color.Red;

    CONECTAR_DISPOSITIVO.ForeColor = Color.White;

    CONECTAR_DISPOSITIVO.Text = "CONECTAR DISPOSITIVO";deshabilita_controles();

    EasyHID.Disconnect();

    }

    }

    private void Lee_datos(UInt32 In_handle)

    {

    byte[] BufferINP = new byte[EasyHID.BUFFER_IN_SIZE]; //

    Declaramos el buffer de entrada.

    if ((EasyHID.Read(In_handle, out BufferINP)) == true) //

    Si hay datos, los procesamos...

    {

    // Segn se haya presionado un pulsador, indicar el

    evento de forma grfica.

    }

    }

    protected override void WndProc(ref Message message)

    {

    // Interceptamos los mensajes de windows.

  • 5/25/2018 INFORME FINAL Arquitectura

    21/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    21

    if (message.Msg == EasyHID.WM_HID_EVENT) // Si ha ocurrido

    algn evento...

    {

    switch (message.WParam.ToInt32()) // Intercepta el

    mensaje y opera segn el valor recibido....

    {

    case EasyHID.NOTIFY_PLUGGED:

    Dispositivo_Conectado((UInt32)message.LParam.ToInt32()); // Se ha

    conectado un dispositivo.

    break;

    case EasyHID.NOTIFY_UNPLUGGED:

    Dispositivo_desconectado((UInt32)message.LParam.ToInt32()); // Se ha

    desconectado un dispositivo.

    break;

    case EasyHID.NOTIFY_READ:

    Lee_datos((UInt32)message.LParam.ToInt32());// Hay datos en el buffer de entrada.

    break;

    }

    }

    base.WndProc(ref message);

    }

    private void CONECTAR_DISPOSITIVO_Click(object sender,

    EventArgs e){

    EasyHID.Connect(Handle);

    habilita_controles();

    CONECTAR_DISPOSITIVO.Text = "DISPOSITIVO CONECTADO";

    CONECTAR_DISPOSITIVO.BackColor = Color.GreenYellow;

    CONECTAR_DISPOSITIVO.ForeColor = Color.Black;

    }

    private void HABILITADOR_Click(object sender, EventArgs e)

    {

    byte[] BufferOUT = new byte[EasyHID.BUFFER_OUT_SIZE];

    BufferOUT[0] = 0; // Report ID

    BufferOUT[2] = Convert.ToByte(COORDENADA_X.Text);

    BufferOUT[3] = Convert.ToByte(COORDENADA_Y.Text);

    EasyHID.Write(controlador, BufferOUT); // Enva los datos.

    MENSAJES_USB.Items.Add("Enviando coordenadas (X;Y)");

    }

    private void timer1_Tick(object sender, EventArgs e)

  • 5/25/2018 INFORME FINAL Arquitectura

    22/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    22

    {

    statusStrip1.Items[0].Text =

    DateTime.Now.ToLongTimeString();

    }

    private void salirToolStripMenuItem_Click(object sender,

    EventArgs e)

    {

    EasyHID.Disconnect();

    this.Close();

    }

    private void manualDeUsuarioToolStripMenuItem_Click(object

    sender, EventArgs e)

    {

    try

    {

    // Tratamos de abrir el manual de control de

    dispositivos USB.

    Process.Start("Control de dispositivos por USB.pdf");}

    catch(Win32Exception)

    {

    // En caso de no poder, mostramos un mensaje.

    MessageBox.Show("No se encuentra el archivo \"Control

    de dispositivos por USB.pdf\". \n" +

    "asegurate que el nombre es correcto

    y/o se \n" +

    "encuentra en la misma ubicacin que

    la aplicacin.\n","Aviso:" ,

    MessageBoxButtons.OK,MessageBoxIcon.Warning);

    }

    }

    private void acercaDeHIDDemoToolStripMenuItem_Click(object

    sender, EventArgs e)

    {

    MessageBox.Show("USB visual C# HID \n\n" +

    "Autor:\n\tCristian Canaza\n\tMax

    Santos\n\tRusbel Sulca.\n" +

    "Contacto:\n\[email protected]\n\[email protected]\n\trus

    [email protected].\n" +

    "Licencia: FREEWARE. \n", "Acerca de USB

    visual C# HID Demo:",

    MessageBoxButtons.OK,

    MessageBoxIcon.Information);

    }

    private void contactoToolStripMenuItem_Click(object sender,

    EventArgs e)

    {

    MessageBox.Show("www.felizaonuevo.com", "Web delproyecto:",

  • 5/25/2018 INFORME FINAL Arquitectura

    23/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    23

    MessageBoxButtons.OK, MessageBoxIcon.Information);

    }

    private void habilita_controles() {

    // Habilita salidas digitales.

    HABILITADOR.Enabled = true;

    // Habilita casilla de mensajes USB.

    MENSAJES_USB.Enabled = true;

    }

    private void deshabilita_controles() {

    // deshabilita salidas digitales.

    HABILITADOR.Enabled = false;

    // deshabilita casilla de mensajes USB.

    MENSAJES_USB.Enabled = false;

    }

    private void SALIR_Click(object sender, EventArgs e)

    {

    Application.Exit();

    }

    }

    }

  • 5/25/2018 INFORME FINAL Arquitectura

    24/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    24

    PROGRAMA PIC 18F4550

    //Declaramos las librerias para el PIC, caracteristicas y reloj

    #include

    #fuses

    NOMCLR,HSPLL,NOWDT,PROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,NOPBADEN,NOBROWNOUT

    #use delay(clock=48000000) //48MHz

    //Definimos lass direcciones de los puertos para el PIC

    #byte PORTA = 0xF80

    #byte PORTB = 0xF81

    #byte PORTC = 0xF82

    //Definimos los pines para los leds indicadores de conexion

    #define LED_GREEN PIN_C6 // Led USB_OK...( Dispositivo conectado

    al host ).

    #define LED_RED PIN_C7 // Led USB_ERROR... ( Dispositivo no

    detectado ).

    //////////////////////////////////////////////////////////////////////

    ///////

    //

    // CCS Library dynamic defines. For dynamic configuration of the CCS

    Library

    // for your application several defines need to be made. See the

    comments

    // at usb.h for more information

    //

    /////////////////////////////////////////////////////////////////////////////

    #DEFINE USB_HID_DEVICE TRUE // Vamos a utilizar el protocolo HID.

    #define USB_EP1_TX_ENABLE USB_ENABLE_INTERRUPT

    #define USB_EP1_TX_SIZE 8 // Definicin del tamao del buffer de

    salida.

    #define USB_EP1_RX_ENABLE USB_ENABLE_INTERRUPT

    #define USB_EP1_RX_SIZE 8 // Definicin del tamao del buffer de

    entrada.

    //////////////////////////////////////////////////////////////////////

    ///////

    //Incluimos las librerias de trabajo para el comunicaoion HID con el

    PIC y la PC

    #include

    #include

    #include

    //Usamos las I/O rapidas

    #use fast_io(A)

    #use fast_io(B)

    #use fast_io(C)

    //Definimos los nombres de los bits a usar del puerto B

    #bit pap0 = PORTB.0

  • 5/25/2018 INFORME FINAL Arquitectura

    25/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    25

    #bit pap1 = PORTB.1

    #bit pap2 = PORTB.2

    #bit pap3 = PORTB.3

    #bit pap4 = PORTB.4

    #bit pap5 = PORTB.5

    #bit pap6 = PORTB.6

    #bit pap7 = PORTB.7

    //Definimos las funciones para encender el LED

    #define LED_ON output_high // Funcin para encender el LED.

    #define LED_OFF output_low // Funcin para apagar el LED.

    //Definimos las funciones de los LEDs al momento de la conexion USB

    void USB_debug()

    {

    LED_ON(LED_RED); // Enciende el led error y apaga el

    led USB_OK.

    LED_OFF(LED_GREEN);

    usb_wait_for_enumeration(); // Espera a ser enumerado por elhost.

    LED_ON(LED_GREEN); // Enciende el led USB_OK y apaga

    el led USB_ERROR.

    LED_OFF(LED_RED);

    }

    //Cuerpo principal de las funciones

    void main()

    {

    //Declaramos los variables a usar

    int8 recibe[8]; // Buffer de recepcin va usbint8 envia[8]; // Habilitar en caso de necesitar

    int pasoa;

    int pasob;

    int pasoc;

    int pasod;

    int timex;

    int timey;

    int x=0;

    int y=0;

    int j=0;

    int k=0;

    int l=0;

    int m=0;

    int nuevovalorx=0;

    int nuevovalory=0;

    //Declaramos como salidas los puertos

    set_tris_a(0x00);

    set_tris_b(0x00);

    set_tris_c(0x00);

    //Valor inicial a los puertos

    PORTA=0x00;

    PORTB=0x00;

    port_b_pullups(FALSE); //pull ups desactivado

  • 5/25/2018 INFORME FINAL Arquitectura

    26/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    26

    //Programacion en la comunicacion USB

    usb_init(); //inicializamos el USB

    usb_task(); //habilita perifrico usb

    e interrupciones

    USB_debug(); //verificamos si la

    conexion fue enumerada

    while (TRUE) //bucle infinito

    {

    if(usb_enumerated()) //si el PicUSB est

    configurado

    {

    if (nuevovalorx==x || nuevovalory==y) //establecemos el

    tiempo entre pasos

    {timex=1000;timey=1000;}

    else

    {timex=100;timey=100;}

    if (nuevovalorx>x) //Ubicamos la coordenada X

    {

    j++;

    if (j>1){x++;j=0;} //Numero de pasos al que

    equivale un milimetro

    switch(pasoa)

    {

    case 0:

    pap0=1;pap1=0;pap2=0;pap3=0;delay_ms(timex);pasoa=1;pasob=3;

    break;

    case 1:

    pap0=0;pap1=1;pap2=0;pap3=0;delay_ms(timex);pasoa=2;pasob=2;

    break;

    case 2:

    pap0=0;pap1=0;pap2=1;pap3=0;delay_ms(timex);pasoa=3;pasob=1;

    break;

    case 3:

    pap0=0;pap1=0;pap2=0;pap3=1;delay_ms(timex);pasoa=0;pasob=0;

    break;

    }

    }

    else

    {

    if (nuevovalorx1){x--;k=0;}

  • 5/25/2018 INFORME FINAL Arquitectura

    27/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    27

    switch(pasob)

    {

    case 0:

    pap0=0;pap1=0;pap2=0;pap3=1;delay_ms(timex);pasob=1;pasoa=3;

    break;

    case 1:

    pap0=0;pap1=0;pap2=1;pap3=0;delay_ms(timex);pasob=2;pasoa=2;

    break;

    case 2:

    pap0=0;pap1=1;pap2=0;pap3=0;delay_ms(timex);pasob=3;pasoa=1;

    break;

    case 3:

    pap0=1;pap1=0;pap2=0;pap3=0;delay_ms(timex);pasob=0;pasoa=0;

    break;}

    }

    else

    {pap0=0;pap1=0;pap2=0;pap3=0;}

    } //endelse

    if (nuevovalory>y) //Ubicamos la coordenada

    Y

    {

    l++;if (l>10){y++;l=0;} //Numero de pasos al

    que equivale un milimetro

    switch(pasoc)

    {

    case 0:

    pap4=1;pap5=0;pap6=0;pap7=0;delay_ms(timey);pasoc=1;pasod=3;

    break;

    case 1:

    pap4=0;pap5=1;pap6=0;pap7=0;delay_ms(timey);pasoc=2;pasod=2;

    break;

    case 2:

    pap4=0;pap5=0;pap6=1;pap7=0;delay_ms(timey);pasoc=3;pasod=1;

    break;

    case 3:

    pap4=0;pap5=0;pap6=0;pap7=1;delay_ms(timey);pasoc=0;pasod=0;

    break;

    }

    }

  • 5/25/2018 INFORME FINAL Arquitectura

    28/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    28

    else

    {

    if (nuevovalory10){y--;m=0;}

    switch(pasod)

    {

    case 0:

    pap4=0;pap5=0;pap6=0;pap7=1;delay_ms(timey);pasod=1;pasoc=3;

    break;

    case 1:

    pap4=0;pap5=0;pap6=1;pap7=0;delay_ms(timey);pasod=2;pasoc=2;

    break;

    case 2:

    pap4=0;pap5=1;pap6=0;pap7=0;delay_ms(timey);pasod=3;pasoc=1;

    break;

    case 3:

    pap4=1;pap5=0;pap6=0;pap7=0;delay_ms(timey);pasod=0;pasoc=0;

    break;

    }

    }

    else

    {pap4=0;pap5=0;pap6=0;pap7=0;}

    } //endelse

    if (usb_kbhit(1)) //Preguntamos si el endpoint

    EP1 contiene datos enviados por el host

    {

    usb_get_packet(1, recibe, 8); // Recibimos los 2 bytes de

    ambas coordenadas (x,y)

    nuevovalorx= recibe[1];

    nuevovalory= recibe[2];

    }

    }

    }

    }

  • 5/25/2018 INFORME FINAL Arquitectura

    29/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    29

    VII. TAREAS PREESTABLECIDASLas tareas preestablecidas pueden ser algn dibujo o alguna forma que pueda hacerse

    con el taladro, ya sea taladrar los vrtices de un semicirciculo, o de algn polgono

    regular (con esto se puede poner a prueba la precisin del sistema), o tambin hacer

    que el taladro vaya punto por punto en progresin aritmtica o geomtrica, son

    muchas las formas.

    VIII. APORTES Y APLICACIONES EN GENERALAparte de aplicarse en lasmquinas-herramienta para modelar metales, el CNC se usa

    en la fabricacin de muchos otros productos de ebanistera, carpintera, etc. Laaplicacin de sistemas de CNC en las mquinas-herramienta han hecho aumentar

    enormemente la produccin, al tiempo que ha hecho posible efectuar operaciones de

    conformado que era difcil de hacer con mquinas convencionales, por ejemplo la

    realizacin de superficies esfricas manteniendo un elevado grado de precisin

    dimensional. Finalmente, el uso de CNC incide favorablemente en los costos de

    produccin al propiciar la baja de costes de fabricacin de muchas mquinas,

    manteniendo o mejorando su calidad.

    http://es.wikipedia.org/wiki/M%C3%A1quina_herramientahttp://es.wikipedia.org/wiki/M%C3%A1quina_herramienta
  • 5/25/2018 INFORME FINAL Arquitectura

    30/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    30

    IX. CONCLUSIONES El sistema de control empleado, a pesar de ser sencillo, es efectivo para

    esta aplicacin y cumple con los requerimientos del caso. Esto ha sido

    demostrado con las pruebas realizadas.

    Se logr configurar y enviar datos a travs de un microcontrolador deMicrochip el 18F4550 el cual tiene un puerto USB.

    A partir de los resultados obtenidos se puede decir que elfuncionamiento del sistema presenta errores debido a factores

    mecnicos que no haban sido considerados al momento del diseo. Los

    circuitos electrnicos y los programas implementados para el presenteproyecto funcionan correctamente.

    El tem de Tareas Prestablecidas queda para ser desarrollado como unaaplicacin adicional.

  • 5/25/2018 INFORME FINAL Arquitectura

    31/31

    ARQUITECTURA DE COMPUTADORAS 2013-A

    31

    X. BIBLIOGRAFIA: http://www.iearobotics.com http://www.x-robotics.com http://www.directindustry.es/cat/automatismos-regulacionrobotica/robots-scara-

    A-617.html

    http://www.globu.net/pp/PP/pp.htm http://robotsperu.org/ http://msdn.microsoft.com/es-es/visualc/default.aspx

    http://www.x-robotics.com/http://www.x-robotics.com/http://www.globu.net/pp/PP/pp.htmhttp://www.globu.net/pp/PP/pp.htmhttp://www.globu.net/pp/PP/pp.htmhttp://www.x-robotics.com/