informe final arquitectura

39
INDICE Contenido INDICE................................................... 1 I. OBJETIVOS............................................. 1 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 COMPONENTES................................8 PIC 18F4550.............................................9 MOTORES PASO A PASO (PAP) UNIPOLARES DE 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

Upload: edgard-leonard-larico-infa

Post on 19-Jan-2016

23 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: INFORME FINAL Arquitectura

INDICE

ContenidoINDICE..............................................................................................................................1

I. OBJETIVOS............................................................................................................... 1

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 COMPONENTES....................................................................................8

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

MOTORES PASO A PASO (PAP) UNIPOLARES DE 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

Page 2: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

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 Ubicación semicírculo de 150 mm de radio capaz de

realizar un mínimo de 3 secuencias de trabajo con un margen de error de 1mm.

Desarrollar una interfaz en la computadora para el manejo del Brazo puntero

Ubicación semicírculo de 150 mm de radio.

II. INTRODUCCION

2

Page 3: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

El diseño 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 señales de control necesarias para

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

información de los sensores acoplados al sistema; y por último una etapa de interfaz

de potencia, encargada de recibir las señales de control generadas por el

microcontrolador, llevándolas a los niveles de potencia adecuados para los actuadores.

III. ESPECIFICACIONES TÉCNICAS DEL PROYECTO EN FORMA COMPLETA.

3

Page 4: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

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

siendo estas la interfaz final de usuario, el control del movimiento, la interfaz de

potencia y el diseño mecánico.

La función 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 numéricos 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 gráficos fácilmente. Esto permite que el programa

sea capaz de realizar una gran cantidad de cálculos matemáticos (como por ejemplo el

cálculo 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 realización de trazos sobre un plano tamaño A3.

El diseño de la interfaz de potencia hará el enlace entre el control digital y los

actuadores. La elección de los actuadores se hace en base a los requerimientos de

precisión y de fuerza, incluyendo también mecanismos de protección para los

dispositivos.

Los motores a pasos constituyen una elección apta para el trabajo de manipuladores

debido a la precisión 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 aplicación: en un eje se utiliza un motor a pasos, donde la precisión 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 adaptación de señales 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 parámetros y a la simplicidad en el diseño de su circuito de control, además se

encuentran disponibles en el mercado local a bajo costo. Además se utilizan

transistores MOSFET para el diseño del circuito excitador del motor de corriente

continua, debido a la facilidad de manejo de estos dispositivos en la configuración

4

Page 5: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

utilizada y al mayor rango de trabajo en comparación con otros tipos de transistores.

Sin embargo se deben tener en cuenta las características no deseadas que presentan

estos dispositivos para poder evitar su malfuncionamiento y los límites de trabajo de

cada uno.

ETAPAS DEL BRAZO ROBOT

Ya que la implementación 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 interacción entre

dichas partes se aprecia en la figura 1.

Interfaz de usuario

La interfaz de usuario consiste en una aplicación, 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 programación del robot manipulador sea lo más simple

posible, se desarrollará una interfaz gráfica que interactúe de forma amigable con el

usuario. Esta le mostrará al usuario el estado de las variables del robot manipulador

por medio de una simulación y permitirá el ingreso de datos de forma fácil y directa.

Adicionalmente, si el usuario desea saber los valores numéricos 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 líneas 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

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

de cálculos geométricos se obtienen los ángulos relativos deseados en las uniones en

cada punto respectivamente.

5

Page 6: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

Estos ángulos se distribuyen en el tiempo para formar una función discreta de la

trayectoria deseada.

Una vez que se tiene la función discreta, el programa halla la función continua de las

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

ser capaz de visualizar las gráficas de las funciones. Para enviar los datos al programa

del controlador, se utilizará el puerto USB.

Además, el programa realizará una simulación gráfica del movimiento del robot. En

esta simulación se observarán 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 acción. Una ventaja de Visual, es que tiene

una serie de instrucciones que permiten realizar gráficos simples en la ventana de la

aplicación por medio de líneas de código. De esta forma, utilizando las variables de

estado de robot (posiciones de las uniones) se puede realizar una simulación del robot.

Esta gráfica se actualiza cada vez que una variable cambia, dándole la ilusión de

movimiento. También en la simulación se visualizarán 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 serán enviadas a la etapa de potencia.

Las secuencias generadas por el controlador serán enviadas a la tarjeta de potencia,

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

niveles lógicos a los voltajes y corrientes requeridos por los motores para así producir

el movimiento mecánico deseado.

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 además un convertidor analógico

6

Page 7: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

digital incorporado, ya que no es necesario que los tiempos de conversión sean muy

pequeños. El microcontrolador debe además contar con las suficientes salidas para

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

personal para la recepción 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 serán capaces de controlar los actuadores finales, en este caso los motores

de cada eje del brazo robot manipulador. Para ello tendrá comunicación directa con la

etapa del controlador, la cual será su fuente de señales. Éstas señales, al ser incapaces

de brindar energía suficiente a los motores, serán adaptadas a señales de mayor

energía que sí puedan alimentarlos.

Previamente a la etapa de selección de dispositivos a usar y al diseño 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 dimensión. Esto influirá drásticamente en el diseño, en especial en la etapa de

selección de dispositivos, por lo tanto se debe realizar de manera correcta la elección

para evitar sobredimensionar los motores.

También es objetivo de la interfaz proteger todos los dispositivos de la misma y

también de la etapa del controlador. Al manejar la interfaz potencias más elevadas que

el resto del sistema existe el riesgo que estas afecten y dañen componentes de las

otras etapas, por tanto el aislamiento es requisito indispensable. También debe

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

cuenta que se trabajará con motores.

Otro objetivo importante es la comunicación de los sensores de posición con la etapa

de controlador, ya que éstos estarán ubicados en los motores, es conveniente que la

misma interfaz de potencia sea la encargada de transmitir la señal de los mismos al

controlador.

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

control y su precisión en movimiento angular, ya que pueden mantener una posición

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

motor de corriente continua de imán permanente, debido al mayor requerimiento de

7

Page 8: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

torque. Para su control se propone un diseño en base a transistores MOSFET, pues son

de fácil activación y permiten, en determinada configuración, el manejo de corriente

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

para la aplicación actual.

SELECCIÓN DE COMPONENTES

El Proyecto Brazo puntero Ubicación semicírculo, tiene:

o 2 ejes para el posicionamiento de un taladro (puntero) que mediante una

coordenada preestablecida por computadora, posiciona este taladro y perfora

en los lugares indicados, con una precisión 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 precisión y

llegar a la coordenada indicada.

Tensión de 5-24 VDC

Corriente de 1.6 A

Torque 400mN/m

Peso de 500, 450, 250 gramos respectivamente

PIC 18F4550

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

Technology Inc. y derivados del PIC1650

8

Page 9: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

Características:

CARACTERÍSTICAS PIC18F4550

Frecuencia de Operación Hasta 48MHz

Memoria de Programa (bytes) 32.768

Memoria RAM de Datos (bytes) 2.048

Memoria EEPROM Datos (bytes) 256

Interrupciones 20

Líneas de E/S 35

Temporizadores 4

Módulos de Comparación/Captura/PWM (CCP) 1

Módulos de Comparación/Captura/PWM mejorado

(ECCP)1

Canales de Comunicación Serie MSSP.EUSAR

Canal USB 1

Puerto Paralelo de Transmisión de Datos (SPP) 1

Canales de Conversión A/D de 10 bits 13 Canales

Comparadores analógicos 2

Juego de instrucciones 75 (83 ext.)

EncapsuladosPDIP40 pines QFN 40

pines TQFP 40 pines

9

Page 10: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

Diagrama de pines PIC18F4550

Algunas de estas características se muestran a continuación:

Soporta modo de comunicación serial, posee dos pines para ello.

Amplia memoria para datos y programa.

Memoria reprogramable: La memoria en este PIC es la que se denomina FLASH; este

tipo de memoria se puede borrar electrónicamente (esto corresponde a la "F" en el

modelo).

Set de instrucciones reducidas (tipo RISC), pero con las instrucciones necesarias para

facilitar su manejo.

MOTORES PASO A PASO (PAP) UNIPOLARES DE 12V

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

corresponden a las bobinas y el quinto se utiliza para la conexión de la fuente de

alimentación 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

programación). Es un motor de bajo costo y puede ser utilizado en múltiples proyectos

tanto básicos como avanzados.

10

Page 11: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

Dimensiones físicas (mm)

Nota: d=diámetro

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

efectúa 645 pasos en sentido horario y 650 en sentido contrario).

11

Page 12: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

IV. DIAGRAMA DE BLOQUE COMPLETO DEL SISTEMA HARDWARE Y SOFTWARE

PC

MOSFETMOSFET

12

Page 13: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

DIAGRAMA ESQUEMATICO

13

Page 14: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

V. MORFOLOGIA DEL SISTEMA

PLANOS

14

Page 15: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

ESTRUCTURA MECÁNICA

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.

DISEÑO 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 función de acoger a

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

MODO DE TRANSMISIÓN

Con engranajes o con polea y correas dentadas es muy fácil de conseguir una

reducción que nos sea favorable a la hora de conseguir una mayor resolución 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 rápidos movimientos

Con este tipo de transmisión podemos elegir reducciones que nos ayuden a conseguir

alta resolución 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, además ahorramos espacio en la colocación del motor.

Las correas dentadas (sincrónicas) y las poleas para las mismas son muy fácil de

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

varios fabricantes.

15

Page 16: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

INTERFACE USB

ETAPA DE POTENCIA

16

Page 17: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

CNC IMPLEMENTADO

17

Page 18: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

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

IMPLEMENTACION DE INTERFAZ ELECTRONICA

Diseño de una interfaz gráfica de usuario para la generación de trayectorias. Para esta

etapa se utilizó el programa Visual Studio 2008 de Microsoft; específicamente se

realizó la programación en el lenguaje Visual C Sharp. El programa desarrollado debió

realizar las siguientes funciones: obtener los datos ingresados por el usuario, realizar

los cálculos matemáticos de las trayectorias, enviar los datos de la trayectoria al

sistema de control de movimiento, mostrar la información por medio de gráficas y

finalmente mostrar una simulación gráfica del movimiento.

Se decidió utilizar el lenguaje Visual C Sharp por la siguiente razón:

Visual C sharp es uno de los lenguajes más rápidos en la actualidad con la

capacidad de trabajar con entornos visuales. La velocidad del programa es un

parámetro importante en el presente trabajo debido a que el cálculo de las

trayectorias requiere de un gran número de cálculos matemáticos, el programa

tarda un tiempo considerable en ejecutarse. Además, la simulación gráfica

también requiere de una alta velocidad de procesamiento, ya que se desea que

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

mientras más rápido sea el lenguaje de programación utilizado mejores serán

los resultados. El programa desarrollado está compuesto por varios distintos

18

Page 19: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

bloques que se encargan de ciertas tareas específicas. A continuación 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, "Botón que habilita la salida de las coordenadas (X;Y)"); MENSAJE_TOOL.SetToolTip(this.CONECTAR_DISPOSITIVO, "Botón 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 aplicación."); MENSAJE_TOOL.SetToolTip(this.SALIR, "Botón 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) {

19

Page 20: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

EasyHID.Disconnect(); }

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... { // Según se haya presionado un pulsador, indicará el evento de forma gráfica. } }

protected override void WndProc(ref Message message) { // Interceptamos los mensajes de windows.

20

Page 21: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

if (message.Msg == EasyHID.WM_HID_EVENT) // Si ha ocurrido algún evento... { switch (message.WParam.ToInt32()) // Intercepta el mensaje y opera según 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); // Envía los datos. MENSAJES_USB.Items.Add("Enviando coordenadas (X;Y)");

}

21

Page 22: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

private void timer1_Tick(object sender, EventArgs e) { 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 ubicación que la aplicación.\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\[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.felizañonuevo.com", "Web del proyecto:",

22

Page 23: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

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(); }

}}

23

Page 24: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

PROGRAMA PIC 18F4550

//Declaramos las librerias para el PIC, caracteristicas y reloj#include <18F4550.h>#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 // Definición del tamaño del buffer de salida.#define USB_EP1_RX_ENABLE USB_ENABLE_INTERRUPT #define USB_EP1_RX_SIZE 8 // Definición del tamaño del buffer de entrada.

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

//Incluimos las librerias de trabajo para el comunicaoion HID con el PIC y la PC #include <pic18_usb.h>#include <USB_easyHID_descriptores.h>#include <usb.c>//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

24

Page 25: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

#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 // Función para encender el LED.#define LED_OFF output_low // Función para apagar el LED.

//Definimos las funciones de los LEDs al momento de la conexion USBvoid 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 el host. LED_ON(LED_GREEN); // Enciende el led USB_OK y apaga el led USB_ERROR. LED_OFF(LED_RED); }

//Cuerpo principal de las funcionesvoid main(){ //Declaramos los variables a usar int8 recibe[8]; // Buffer de recepción vía usb int8 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

25

Page 26: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

//Programacion en la comunicacion USB usb_init(); //inicializamos el USB usb_task(); //habilita periférico 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 (nuevovalorx<x) { k++; if (k>1){x--;k=0;}

26

Page 27: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

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; } }

27

Page 28: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

else { if (nuevovalory<y) { m++; if (m>10){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]; } } }}

28

Page 29: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

VII. TAREAS PREESTABLECIDAS

Las tareas preestablecidas pueden ser algún dibujo o alguna forma que pueda hacerse

con el taladro, ya sea taladrar los vértices de un semicirciculo, o de algún polígono

regular (con esto se puede poner a prueba la precisión del sistema), o también hacer

que el taladro vaya punto por punto en progresión aritmética o geométrica, son

muchas las formas.

VIII. APORTES Y APLICACIONES EN GENERAL

Aparte de aplicarse en las máquinas-herramienta para modelar metales, el CNC se usa

en la fabricación de muchos otros productos de ebanistería, carpintería, etc. La

aplicación de sistemas de CNC en las máquinas-herramienta han hecho aumentar

enormemente la producción, al tiempo que ha hecho posible efectuar operaciones de

conformado que era difícil de hacer con máquinas convencionales, por ejemplo la

realización de superficies esféricas manteniendo un elevado grado de precisión

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

producción al propiciar la baja de costes de fabricación de muchas máquinas,

manteniendo o mejorando su calidad.

29

Page 30: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

IX. CONCLUSIONES

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

esta aplicación y cumple con los requerimientos del caso. Esto ha sido

demostrado con las pruebas realizadas.

Se logró configurar y enviar datos a través de un microcontrolador de

Microchip el 18F4550 el cual tiene un puerto USB.

A partir de los resultados obtenidos se puede decir que el

funcionamiento del sistema presenta errores debido a factores

mecánicos que no habían sido considerados al momento del diseño. Los

circuitos electrónicos y los programas implementados para el presente

proyecto funcionan correctamente.

El ítem de Tareas Prestablecidas queda para ser desarrollado como una

aplicación adicional.

30

Page 31: INFORME FINAL Arquitectura

ARQUITECTURA DE COMPUTADORAS 2013-ASensores y Actuadores: Práctica 1

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

31