You are on page 1of 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 ................................................................................................ 6
INTERFAZ 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




ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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 puntero
Ubicacin semicrculo de 150 mm de radio.















ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
3
II. INTRODUCCION

El 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.






















ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
4
III. ESPECIFICACIONES TCNICAS DEL PROYECTO EN FORMA
COMPLETA.

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



ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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 presentan
estos 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 manipulador
por 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



ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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 la
trayectoria 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 producir
el movimiento mecnico deseado.



ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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 muy
pequeos. 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.



ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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 de
torque. 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 COMPONENTES
El Proyecto Brazo puntero Ubicacin semicrculo, 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 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









ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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




ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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 denomina FLASH; 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 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 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.



ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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).



ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
12
IV. DIAGRAMA DE BLOQUE COMPLETO DEL SISTEMA
HARDWARE Y SOFTWARE









PC
MOSFET
MOSFET




ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
13
DIAGRAMA ESQUEMATICO






ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
14
V. MORFOLOGIA DEL SISTEMA
PLANOS






ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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 una
reduccin 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.




ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
16

INTERFACE USB




ETAPA DE POTENCIA








ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
17
CNC IMPLEMENTADO










ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
18
VI. SOFTWARE INSTALACION, CONFIGURACION, ALGORITMOS
DE 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, realizar
los 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 la
capacidad 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
EJE X EJE Y
EJE Z
TALADRO



ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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();



ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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.



ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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)



ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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\tcristian_jr_14@hotmail.com\n\tvaro_mx@hotmail.com\n\trus
bel_s@hotmail.com.\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 del
proyecto:",



ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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();
}

}
}















ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
24
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,NO
PBADEN,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 <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



ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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 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 funciones
void main()
{
//Declaramos los variables a usar
int8 recibe[8]; // Buffer de recepcin va 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




ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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 (nuevovalorx<x)
{
k++;
if (k>1){x--;k=0;}




ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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;
}
}




ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
28
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];

}
}
}
}





ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
29
VII. TAREAS PREESTABLECIDAS

Las 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 GENERAL

Aparte de aplicarse en las mquinas-herramienta para modelar metales, el CNC se usa
en la fabricacin de muchos otros productos de ebanistera, carpintera, etc. La
aplicacin 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.




ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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 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
mecnicos que no haban sido considerados al momento del diseo. Los
circuitos electrnicos y los programas implementados para el presente
proyecto funcionan correctamente.
El tem de Tareas Prestablecidas queda para ser desarrollado como una
aplicacin adicional.




ARQUITECTURA DE COMPUTADORAS 2013-A
Sensores y Actuadores: Prctica 1
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

You might also like