Download - INFORME FINAL Arquitectura
-
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/