You are on page 1of 52

1

UNIVERSIDAD POLITCNICA SALESIANA FACULTAD DE INGENIERIAS ESCUELA ELECTRNICA

Tema:
Diseo y Construccin de un medidor de velocidad y control de DE MOTOR utilizando el PC

Integrantes: Lisbeth Mena Gina Ojeda Johanna Salvador

INTRODUCCIN En este proyecto conoceremos como disear y construir el control de velocidad de un motor universal, el mismo que nos permitir mediante una perilla controlar la velocidad del motor y a la vez se mostrar en una interfaz grfica la forma de onda de la velocidad. La creacin del control de velocidad de un motor posee una gran variedad de aplicaciones como por ejemplo son muy utilizados en motores de mquinas de coser, licuadoras, mquinas de afeitar, locomotoras etc. Por supuesto, sus caractersticas son muy eficientes para algunos usos, sta es una de sus grandes ventajas ya que estos motores son muy necesarios en diversos campos industriales. Como estudiantes de la carrera de Ingeniera Electrnica, nos hemos propuesto el crear el control de velocidad del motor mediante un panel de control realizado en Labview y a su vez comunicarlo con un microcontrolador PIC 18F2550 mediante una interfaz USB.

CAPITULO 1 1. ANLISIS DE LA PROBLEMTICA A RESOLVER

1.1INTRODUCCIN AL CAPTULO

En presente captulo se detallarn los aspectos bsicos del proyecto. Se darn a conocer los antecedentes, problema a resolver, hiptesis, objetivos principal y secundario; justificacin, alcance, limitaciones y finalmente la solucin del problema.

1.2ANTECEDENTES La informacin indagada en bibliotecas de las diversas universidades y escuelas politcnicas a cerca de proyectos realizados sobre el medidor de velocidad de un motor universal mediante comunicacin usb, ser adjuntada oportunamente con sus respectivas fichas bibliogrficas en el Anexo 1.

1.3PROBLEMA A RESOLVER El problema planteado para este trabajo es bsicamente el diseo de un software en labview el mismo que nos permitir manejar el control de la velocidad de un motor universal mediante un sensor que detectar los pulsos del movimiento del motor, el microcontrolador que ser utilizado es el PIC 18f2550, la comunicacin entre labview y el PIC ser a travs del puerto usb. Al finalizar el proyecto se observar lo siguiente:

1. En el programa realizado en labview observaremos un diagrama de los


controles del motor universal, en el mismo se mostrar una perilla que se encargara de controlar los niveles de velocidad del motor desde una velocidad mnima hasta la mxima que puede alcanzar el motor.

2. Aparecer una grfica que muestre las diversas formas de onda


dependiendo del nivel de velocidad al que se encuentre el motor. 3. Dependiendo de la velocidad que escojamos el motor dar la forma respectiva de dicha velocidad. 4. Usted podr seleccionar en el diagrama de controles de labview la velocidad a la cual quiere que se encuentre el motor.

Cmo se visualizar el control de la velocidad del motor universal?

1.4 HIPTESIS

A continuacin se presenta la hiptesis que nos hemos planteado para dar una solucin a nuestro proyecto: Es posible medir la velocidad de un motor universal, mediante un

microcontrolador PIC 18f2550, el cual adquiera la seal del sensorque permita detectar los pulsos de la velocidad que emite el motor, en el cual el microcontrolador PIC se conecta al PC a travs del puerto USB.

1.5 OBJETIVOS

1.5.1

OBJETIVOS PRINCIPALES

1. Disear y construir un circuito que nos permita medir la velocidad de un


motor universal mediante un sensor el mismo que se encargar de detectar los pulsos de velocidad del motor.

2. Realizar la programacin de la interfaz grfica con el fin de mostrar la


velocidad del motor en una grafica de variacin mediante perillas, enviando los datos necesarios desde el PC al microcontrolador PIC por el puerto USB.

1.5.2 OBJETIVO SECUNDARIO

Utilizar los conocimientos adquiridos previamente acerca de los distintos lenguajes de programacin y comunicacin usb en: Java, .Net y bloques funcionales de Labview.

1.6 JUSTIFICACIN

La creacin de este circuito y su respectiva programacin es una excelente herramienta para el aprendizaje y el funcionamiento bsico de un tacmetro ya que mediante esto podemos darnos cuenta que tiene una serie de aplicaciones en el campo del control industrial. El diseo del tacmetro nos sirve como motivacin para poder conocer ms acerca de cada uno de los elementos que lo conforman y as aprender de mejor manera cual es su funcionamiento y como en manera conjunta se puede lograr controlar los diversos niveles de velocidad del motor.

1.7 ALCANCE Y LIMITACIONES A continuacin se detallarn los alcances y limitaciones del proyecto: Alcances: Se indicar en un panel frontal los controles e indicadores que nos permitan medir la velocidad del motor. Se mostrar en una interfaz grfica (Java) la forma de onda que se genera al variar el nivel de velocidad del motor. Enviar los datos necesarios para establecer la comunicacin usb entre el microcontrolador PIC 18F2550 y el PC.

Limitaciones: Las formas de onda de los niveles de velocidad del motor no sern precisas ya que no es posible detectar todos los pulsos que enva el sensor con exactitud. No ser posible desplegar toda la informacin enviada desde el PIC en un LCD. El motor universal est operando bajo condiciones de carga, ya que el motor sin carga tiende a acelerarse por sus mismas condiciones de funcionamiento.

1.8 SOLUCION DEL PROBLEMA

A continuacin se presenta la solucin del problema: Al finalizar nuestro proyecto obtendremos el siguiente diagrama que nos permitir controlar la velocidad del motor universal:

FiG. 1 Medidor de la velocidad de un motor mediante una pc

CAPTULO 2

2. Bitcora de diseo 2.1 Introduccin al captulo 2

En este captulo se muestra paso a paso el desarrollo semanal del proyecto, aqu se encuentran detallados las fechas en las cuales hemos venido desarrollando el control de velocidad del motor universal, adems se muestran diversas descripciones que se realizaron da a da durante el transcurso del desarrollo del mismo.

2.2 Desarrollo semanal del proyecto etapa por etapa.

LUNES 11 DE MAYO DEL 2009

En este da se dio a conocer acerca del tema del proyecto a desarrollar en el bimestre el cual consista en el manejo de la velocidad de un motor universal mediante un microcontrolador PIC 18f2550, adems se explic los diferentes parmetros que sern tomados en cuenta para la respectiva evaluacin del proyecto.

JUEVES 21 DE MAYO DEL 2009

Continuamos con la bsqueda de informacin acerca de las caractersticas que posee el microcontrolador PIC que vamos a utilizar para la realizacin de este proyecto. Encontramos que el PIC 18F2550 es un microcontrolador que posee pines que permiten que exista una conexin a la PC mediante el puerto usb. Tambin investigamos acerca de las diversas caractersticas que poseen los motores universales los cuales pueden ser alimentados con corriente alterna o con

corriente continua, adems conocimos que la velocidad cambia segn la carga y se suelen construir para velocidades de 3000 a 8000 RPM para poder controlar el nivel de la velocidad necesitamos variar la tensin de alimentacin, normalmente se hace con un reostato. Para la realizacin del proyecto requerimos de un sensor que permita detectar los distintos pulsos que enva el motor; para ello averiguamos acerca de los sensores que existen en el mercado los cuales nos permitan facilitar la medicin de la velocidad del motor.

Una vez recopilada la primera informacin nos dimos cuenta de las limitaciones y ventajas que estos elementos esenciales presentan proyecto. Averiguamos precios de estos elementos necesarios y cuales son los ms factibles y viables para poder proseguir con la construccin del proyecto. para el funcionamiento de

SBADO 23 DE MAYO DEL 2009

Este da decidimos buscar la manera de regular el voltaje del motor universal y saber la forma de onda que este emite y para ello realizamos una serie de pruebas basados en la construccin de un circuito en el cual se encontraba el motor universal, el sensor para determinar la velocidad del motor y el PIC previamente programado. Las formas de onda fueron medidas en el osciloscopio de los laboratorios de la universidad y al obtener la onda deseada tuvimos una mejor visin del proyecto para continuar con su desarrollo. Posteriormente requeramos medir la velocidad del motor para establecer los

parmetros de funcionamiento del mismo y para ello recurrimos a solicitar ayuda al Ingeniero Juan Buchelli el mismo que nos permitiera usar un tacmetro digital del laboratorio de mquinas elctricas II, el tacmetro nos dio una velocidad de 3585 rpm.

FIG 2. TACMETRO

10

VIERNES 12 DE JUNIO DEL 2009

En este da se realiz en los laboratorios de la universidad las prcticas correspondientes a PICs, una de las prcticas a desarrollar era el control de fase en la cual debamos regular la intensidad de un foco mediante un potencimetro, sta prctica fue de gran utilidad para la realizacin del proyecto ya que existe una gran similitud entre ellas. Por ejemplo para nuestro proyecto en lugar de controlar la intensidad de un foco, debemos controlar la velocidad del motor por ese motivo nos basamos en el circuito de esta prctica. Los elementos utilizados en el control de fase como son el MOC 3020, el optotriac 4N25 y el BT136 son necesarios para poder realizar el respectivo control para el motor, debemos investigar sus datasheets y comprobar que estos estn en perfecto estado. Acudimos diariamente a visitar la pginas Web en las cuales pudimos obtener mucha informacin acerca de posibles soluciones para resolver el control de la velocidad del motor, gracias a las pginas Web publicadas logramos obtener una mejor visin de las soluciones viables que se pueden dar para el proyecto. Adems solicitamos en el CECASIS los diferentes software que requeramos para la solucin del proyecto.

11

SBADO 13 DE JUNIO DEL 2009

Una vez obtenidos los software nos dedicamos a investigar de las caractersticas de la programacin en Labview pero sobre todo y lo mas importante como vamos a realizar la comunicacin usb; encontramos que debemos utilizar NI-VISA para conectar el dispositivo USB, la cual posee dos clases de recursos USB INSTR y USB RAW. Adems no explican en un documento que debemos seguir una serie de pasos para instalar el dispositivo USB; los principales son: Crear un archivo INF usando el Drive Development Wizar Instalar el archivo INF y el dispositivo Usb usando dicho archivo El elemento Test con el NI-VISA interactive control En este documento nos muestran mas detalladamente las instrucciones a seguir para lograr la comunicacin usb; lo cual lo vamos a adjuntar en los anexos para facilitar la comprensin de todos aquellos que en lo posterior necesiten esta informacin. Tomamos en cuenta todas las disposiciones y explicaciones y lo llevamos a la prctica; siempre y cuando hayamos anexado o incorporado las libreras necesarias con ello comprobamos que es posible realizar comunicar usando NIVISA con el dispositivo e intentamos realizar la programacin en lenguaje de labview que para este ejemplo es sencillo de realizar y de esta manera nos proporcionaba ideas para la realizacin de nuestro proyecto.

12

JUEVES 18 DE JUNIO DEL 2009

En este da realizamos una profunda investigacin acerca de la programacin en Java la cual la obtuvimos de diversas fuentes y una de ellas fue de la pgina web creada para los estudiantes de electrnica la cual fue de gran utilidad. Por otra parte de las diferentes prcticas de PICs que hemos venido realizando se desarroll la comunicacin pasos: Primero llamar a los respectivos procedimientos del Usb, luego deshabilitar las interrupciones de nivel de prioridad para luego proceder a configurar todos los puertos como anlogos etc. Con los procedimientos realizados anteriormente se pudo lograr establecer una comunicacin usb la cual la aplicamos a nuestro proyecto. serial con usb en la cual seguimos los siguientes

13

VIERNES 26 DE JUNIO DEL 2009 Este da se nos fue asignado para recibir ayuda por parte del Ing. Rodrigo Tufio el mismo que nos imparti diferentes archivos de la comunicacin usb y la programacin en C#, el objetivo de esta clase fue orientarnos hacia nuestro proyecto. Para empezar con la clase tuvimos una previa revisin de los diferentes tipos de conectores usb y se nos explico las principales diferencias de estos, luego procedimos con la programacin en C# en el cual se desarrollo un programa que encenda y apagaba un led, para la realizacin de esta instruccin en C# se declararon diversos tipos de libreras las cuales desempeaban una especifica funcin para manejar las respectivas instrucciones del funcionamiento del led. Otra instruccin que desarrollaba el ejercicio propuesto era mostrar los valores de los voltajes del led y desplegar la respectiva grafica del voltaje versus el tiempo. Los resultados obtenidos con respecto al ejercicio propuesto fueron una excelente gua para el desarrollo del proyecto ya que lo aplicamos en el control de la velocidad del motor. Los archivos que fueron enviados por el ingeniero Tufio los adjuntaremos en los anexos.

14

LUNES 29 DE JUNIO DEL 2009

Continuamos con el diseo del circuito; principalmente en la etapa de control y proteccin; utilizamos un triac que permite el control de fase y observar el ngulo de disparo, con ello se puede contar los pulsos para observar y obtener el cruce por cero. Tambin vamos hacer uso del opto acoplador que nos ayuda al control de fase y proteccin porque nuestro motor va conectado a 110. Adems utilizamos un opto transistor el cual nos va a permitir detectar todos los pulsos que muestra el sensor infrarrojo dependiendo de la velocidad del motor. En la programacin del micro controlador vamos a utilizar las interrupciones INT0 que detecta los pulsos que vienen de la red, el INT1 que sirve como contador de la seal que enva el motor, as como tambin el TMR0 que genera la base del tiempo en un segundo realizamos una serie de pruebas para comprobar que lo que hemos diseado est bien y de esta manera continuar con la programacin del microcontrolador para luego pasar a la comunicacin de las interfaces.

15

CAPITULO 3

3. MARCO TERICO 3.1 INTRODUCCIN En este captulo se va a dar a conocer acerca de los diferentes elementos que nos servirn para la creacin del control de la velocidad del motor universal y la comunicacin USB.

16

3.1.1Motor, Motor Universal, Caractersticas del Microcontrolador PIC18F2550, Caractersticas del software LABVIEW 8.5, LABVIEW. Comunicacin usb entre el PIC y

MOTOR

Un motor es una mquina capaz de transformar la energa almacenada en combustibles, bateras u otras fuentes, en energa mecnica capaz de realizar un trabajo. En los automviles este efecto es una fuerza que produce el movimiento. TIPOS

MOTORES TRMICOS
Motores de combustin interna, son motores trmicos en los cuales se produce una combustin del fluido motor, transformando su energa qumica en energa trmica, a partir de la cual se obtiene energa mecnica.

MOTORES DE COMBUSTIN EXTERNA


Son motores trmicos en los cuales se produce una combustin en un fluido distinto al fluido motor. El fluido motor alcanza un estado trmico de mayor energa mediante la transmisin de energa a travs de una pared.

MOTORES ELCTRICOS
Cuando el trabajo se obtiene a partir de una corriente elctrica. En los aerogeneradores, las centrales hidroelctricas o los reactores nucleares tambin se transforma algn tipo de energa en otro. Sin embargo, la palabra motor se reserva para los casos en los cuales el resultado inmediato es energa mecnica. CARACTERSTICAS GENERALES

Rendimiento: es el cociente entre la potencia til que generan y la


potencia absorbida. Habitualmente se representa con la letra griega .

Velocidad de giro o velocidad nominal: es la velocidad angular del


cigueal, es decir, el nmero de radianes por segundo (rad/s) a las que gira. Se representa por la letra n.

17

Potencia: es el trabajo que el motor es capaz de realizar en la unidad de


tiempo a una determinada velocidad de giro. Se mide normalmente en caballos de vapor (CV), siendo 1 CV igual a 736 vatios.

Par motor: es el momento de rotacin que acta sobre el eje del motor y
determina su giro. Se mide en kilogrmetros (kgm) o newtons-metro (Nm), siendo 1 kgm igual a 9,8 Nm. Hay varios tipos de pares, vanse por ejemplo el par de arranque, el par de aceleracin y el par nominal. MOTOR UNIVERSAL

COMUNICACIN USB Universal Serial Bus naci como un estndar industrial de expansin para el PC, en especial nfasis para la telefona y productos de consumo. Es una interfaz para la transmisin serie de datos y distribucin de energa. Provee una mayor velocidad de transferencia comparado con el puerto Paralelo de 25-pin y el Serial DB-9. CARACTERISTICAS GENERALES Fcil uso a los usuarios Flexibilidad Ancho de banda iscrono Amplia gama de aplicaciones y cargas de trabajo Robustez Implementacin de bajo costo

VERSIONES USB 1.1 1.5 12 Mbps

18

USB 2.0 12 480 Mbps USB 3.0 480 Mbps 4.8 Gbps

ESPECIFICACIONES TCNICAS Arquitectura Bus punto a punto Host perifrico Mximo 127 disp. 4 cables

Elctrica

Par trenzado Z=90


Mecnica Dos conectores (A y B)

FIG.3 ESTRUCTURA DE LOS TIPOS DE CONECTORES

END POINT Frecuencia de acceso al bus requerida Ancho de banda requerido Nmero de endpoint Tratamiento de errores requerido Mximo tamao de paquete que el endpoint puede enviar o recibir

Tipo de transferencia para el endpoint


La orientacin en la que se transmiten los datos TIPOS DE TRANSFERENCIA De Control Asncronas

19

De Interrupcin Transferencia de Bultos (Bulk) PROTOCOLO

FIG.4 DIAGRAMA DE UN PROTOCOLO

LABVIEW INTRODUCCIN LABVIEW es una herramienta grfica para pruebas, control y diseo mediante la programacin. El lenguaje que usa se llama lenguaje G, donde la G simboliza que es lenguaje Grfico. Los programas desarrollados con LABVIEW se llaman Instrumentos Virtuales, o VIs, lo que da una idea de su uso en origen: el control de instrumentos. El lema de LABVIEW es: "La potencia est en el Software". Entre sus objetivos estn el reducir el tiempo de desarrollo de aplicaciones de todo tipo y el permitir la entrada a la informtica a programadores no expertos. APLICACIONES

Adquisicin de datos y anlisis matemtico


Comunicacin y control de instrumentos de cualquier fabricante

Automatizacin industrial y programacin de PACs (Controlador de


Automatizacin Programable) Diseo de controladores: simulacin, prototipaje rpido, hardware-en-elciclo (HIL) y validacin Diseo embebido de micros y chips Control y supervisin de procesos Visin artificial y control de movimiento Robtica Domtica CARACTERSTICAS Su principal caracterstica es la facilidad de uso, tambin es muy rpido hacer programas con LABVIEW Los programas en LABVIEW son llamados instrumentos virtuales (VIs) Para los amantes de lo complejo, con LabVIEW pueden crearse

20

programas de miles de VIs) para aplicaciones complejas, programas de automatizaciones de decenas de miles de puntos de entradas/salidas, proyectos para combinar nuevos VIs con VIs ya creados, etc. Incluso existen buenas prcticas de programacin para optimizar el rendimiento y la calidad de la programacin. El VIs estndard son VIs modulares y personalizables mediante cableado y funciones que son elementos fundamentales de operacin de LabView. INTERFACES DE COMUNICACIONES

Puerto serie Puerto paralelo GPIB PXI VXI TCP/IP, UDP, DataSocket Irda Bluetooth USB
INTERACCIN CON OTROS LENGUAJES Y APLICACIONES

DLL: libreras de funciones


.NET

ActiveX
Multisim

Matlab/Simulink
AutoCAD, SolidWorks, etc Herramientas grficas y textuales para el procesado digital de seales. Visualizacin y manejo de grficas con datos dinmicos. Adquisicin y tratamiento de imgenes. Control de movimiento (combinado incluso con todo lo anterior). Tiempo Real estrictamente hablando. Programacin de FPGAs para control o validacin. Sincronizacin entre dispositivos.

21

PROGRAMA EN LABVIEW Los programas no se escriben, sino que se dibujan, facilitando su comprensin. Al tener ya pre-diseados una gran cantidad de bloques, se le facilita al usuario la creacin del proyecto, se le permite invertir mucho menos tiempo y dedicarse un poco ms en la interfaz grfica y la interactuacin con el usuario final. Cada VI consta de dos partes diferenciadas:

PANEL FRONTAL: es la interfaz con el usuario, la utilizamos para interaccionar con el usuario cuando el programa se esta ejecutando. Los usuarios podrn observar los datos del programa actualizados en tiempo real. En esta interfaz se definen los controles (los usamos como entradas, pueden ser botones, marcadores etc..) e indicadores (los usamos como salidas, pueden ser graficas ....)

DIAGRAMA DE BLOQUES: es el programa propiamente dicho, donde se define su funcionalidad, aqu se colocan iconos que realizan una determinada funcin y se interconectan.

En el panel frontal, encontraremos todo tipos de controles o indicadores, donde cada uno de estos elementos tienen asignado en el diagrama de bloques una terminal, estos elementos sern las entradas y salidas que interactuarn con la terminal del VI. EJEMPLO Se muestra un Diagrama de Bloques de un programa en el que se genera un array de 100 elementos aleatorios, a continuacin se hace la FFT de este array y se muestra en una grfica:

FIG . 5 EJEMPLO DE LOS COMANDOS EN LABVIEW

ALTERNATIVAS LABVIEW se puede usar para crear muchos tipos de programas sin estar enfocado a un mbito en particular.

Su lter ego es LabWindows/CVI de National Instruments lo cual permite de usar las mismas funcionalidades pero con la programacin en lenguaje C y el acceso a las bibliotecas Win32 gracias al SDK de Windows.

22

Las mismas funcionalidades de instrumentacin, anlisis y controles grficos son tambin accesibles en Visual Basic, C++ o C# con Visual Studio gracias a Measurement Studio de National Instruments. As, se puede disfrutar de la programacin orientado a objetos y el framework .NET.

Las otras alternativas van desde lenguajes genricos como C o Visual Basic pero sin la ayuda de la bibliotecas de funcionalidades de National Instruments, a otras herramientas grficas como HP-VEE, ahora Agilent-VEE.

JAVA Java es un lenguaje de programacin orientado a objetos desarrollado por Sun Microsystems a principios de los anos 90. El lenguaje en si mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos mas simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulacion directa de punteros o memoria. Las aplicaciones Java estan tipicamente compiladas en un bytecode, aunque la compilacion en codigo maquina nativo tambien es posible. En el tiempo de ejecucion, el bytecode es normalmente interpretado o compilado a codigo nativo para la ejecucion, aunque la ejecucion directa por hardware del bytecode por un procesador Java tambien es posible. La implementacion original y de referencia del compilador, la maquina virtual y las librerias de clases de Java fueron desarrolladas por Sun Microsystems en 1995. Desde entonces, Sun ha controlado las especificaciones, el desarrollo y evolucion del lenguaje a traves del Java Community Process, si bien otros han desarrollado tambien implementaciones alternativas de estas tecnologias de Sun, algunas incluso bajo

23

licencias de software libre. Entre noviembre de 2006 y mayo de 2007, Sun Microsystems libero la mayor parte de sus tecnologias Java bajo la licencia GNU GPL, de acuerdo con las especificaciones del Java Community Process, de tal forma que practicamente todo el Java de Sun es ahora software libre (aunque la biblioteca de clases de Sun que se requiere para ejecutar los programas Java todavia no es software libre). Componentes Bibliotecas de Java, que son el resultado de compilar el codigo fuente desarrollado por quien implementa la JRE, y que ofrecen apoyo para el desarrollo en Java. Algunos ejemplos de estas librerias son: Las bibliotecas centrales, que incluyen: Una coleccion de bibliotecas para implementar estructuras de datos como listas, arrays, arboles y conjuntos. Bibliotecas para analisis de XML. Seguridad.

Bibliotecas de internacionalizacin y localizacin. Bibliotecas de integracin, que permiten la comunicacion con sistemas externos. Estas librerias incluyen: La API para acceso a bases de datos JDBC (Java DataBase Conectivity). La interfaz JNDI (Java Naming and Directory Interface) para servicios de directorio. RMI (Remote Method Invocation) y CORBA para el desarrollo de aplicaciones distribuidas. Bibliotecas para la interfaz de usuario, que incluyen:

24

El conjunto de herramientas nativas AWT (Abstract Windowing Toolkit), que ofrece componentes GUI (Graphical User Interface), mecanismos para usarlos y manejar sus eventos asociados. Las Bibliotecas de Swing, construidas sobre AWT pero ofrecen implementaciones no nativas de los componentes de AWT. APIs para la captura, procesamiento y reproduccion de audio. Una implementacion dependiente de la plataforma en que se ejecuta de la maquina virtual de Java (JVM), que es la encargada de la ejecucion del codigo de las librerias y las aplicaciones externas. Plugins o conectores que permiten ejecutar applets en los navegadores Web. Java Web Start, para la distribucion de aplicaciones Java a traves de Internet. Documentacion y licencia. 3 COMUNICACIN USB A TRAVS DE JAVA 3.1 JSR-80 API El proyecto JSR-80 fue creado por Dan Streetman a IBM en 1999. En 2001, el proyecto fue aceptado como candidato para llegar a ser un estandar extendido del lenguaje Java a traves de la Solicitud de Especificacion Java (JSR). El proyecto que ahora se llama JSR-80 y ha sido asignado oficialmente el paquete Java javax.usb. El proyecto esta bajo la licencia Common Public License y es desarrollado utilizando la Java Community Process. El objetivo de este proyecto es desarrollar

25

una interfaz USB para la plataforma Java que permitira el acceso pleno al sistema USB para cualquier aplicacion Java o componentes middleware. El JSR-80 API ofrece pleno apoyo a la transferencia de los cuatro tipos que se definen por la especificacion USB. Actualmente, la implementacion de la API para Linux trabaja en las mas recientes distribuciones de GNU / Linux con soporte kernel 2.4, tales como Red Hat 7.2 y 9.0. El proyecto JSR-80 incluye tres paquetes: javax-usb (API javax.usb), javax-usb-ri (la parte comun del sistema operativo independiente de la implementacion de referencia), y javaxusb-ri-linux (la implementacion implementacio de referencia comun a la pila USB de Linux USB). Las tres partes son necesarias para lograr un completo funcionamiento de API java.usb en la plataforma Linux. de referencia para la plataforma Linux, que conecta la

Aunque la dependencia del sistema operativo de la implementacion de la JSR-80 API varia de un sistema operativo a otro, el programador de Java debe entender solo el paquete javax.usb para iniciar el desarrollo de aplicaciones. En el siguiente recuadro se enumeran las interfaces y clases en javax.usb con la que un programador Java debe estar familiarizado:

26

Tabla 1. Interfaz y Descripcion de los USB El procedimiento normal para acceder a un dispositivo USB con el JSR-80 API es el siguiente: 1. Arrancar obteniendo el apropiado UsbServices de la UsbHostManager. 2. Acceda a la raz a travs del centro UsbServices. El concentrador raz est considerado como una UsbHub en la solicitud. 3. Obtenga una lista de los UsbDevices que estn conectados a la raz central. Recorra a travs de todos los centros de nivel inferior para encontrar el apropiado UsbDevice. 4. Interactuar con el UsbDevice directamente con un mensaje de control (UsbControlIrp), o reclamar una UsbInterface de la apropiada UsbConfiguration del UsbDevice y realizar I / O con el UsbEndpoint disponible en la UsbInterface. 5. Si un UsbEndpoint se utiliza para realizar I / O, abra la UsbPipe asociada a el. Puede presentarse ya sea sincronica o asincronicamente tanto las fases de

27

upstream data (desde el dispositivo USB alcomputador central) y downstream data (desde el ordenador host para el dispositivo USB) a travs de la UsbPipe. 6. Cerrar la UsbPipe y libere la apropiada UsbInterface cuando la aplicacion ya no necesita tener acceso al UsbDevice.

28

4.2 Desarrollo de la etapa 1 4.2.1 ALIMENTACIN La alimentacin se obtiene de la comunicacin USB la misma que entrga 5V y GND(Tierra). A continuacin se muestra los clculos que se realizaron para alimentacin:

29

Nota: Para mantener la misma relacin y bajar la potencia puede ser Potencimetro=10k y una resistencia de 150k; sin embargo la corriente baja de 0,968mA y habr que revisar el datasheet del 4N25 para ver si conmuta ese valor de corriente.

4.3 Desarrollo de la etapa 2 4.3.1 MICROCONTROLADOR El PIC se encarga de generar los pulsos clock y datos que son enviados a la pantalla. En nuestro proyecto utilizamos el microcontrolador PIC16F877A porque este posee 5 puertos de entrada-salida de los cuales 33 pines estn destinados a sta funcin Otras ventajas de la utilizacin del PIC16F877A es que los microcontroladores que produce Microchip cubren una amplio rango de dispositivos cuyas caractersticas pueden variar como sigue: - Empaquetado (desde 8 patitas hasta 68 patitas) - Tecnologa de la memoria includa (EPROM, ROM, Flash) - Voltajes de operacin (desde 2.5 v. Hasta 6v) - Frecuencia de operacin (Hasta 20 Mhz) 4.4 Desarrollo de la etapa 3 4.4.1 ETAPA DE POTENCIA Para probar solo la etapa de potencia, antes de conectar 5Vcc a los terminales que van al opto (OUT PIC al positivo y REF PIC al negativo). El motor se debe prender cuando se energiza y detenerse cuando se desenergiza.

30

Se debe tener mucho cuidado con el TRANSISTOR DE CONMUTACIN para evitar que se recaliente, es necesario toparle con cuidado la carcasa y si se est recalentando poner un disipador de calor, aunque la corriente con la que se esta trabajando debe ser baja. Cuando se toque la carcasa del transistor tener cuidado y tocarla solo cuando esta energizado el opto; ya que el voltaje entre colector y emisor es solamente de 2V, y por el contrario cuando no est energizado existe aproximadamente unos 155V DC entre colector y emisor y la carcasa del transistor por lo general es colector. Si se ocupa el divisor de voltaje para el opto, primero debemos calibrar con el potencimetro hasta obtener los 5V DC y luego conectar y una vez que que se encuentre conectado y funcionamiento se volver a calibrar el potencimetro. Es necesario colocar un fusible en la lnea de alimentacin DC para evitar algn inconveniente.

Realizar las conexiones correctamente ya que si hay algn tipo de error se puede daar el circuito.

FU1
1A

C1 J1
2 1 CONN-SIL2

D1
1N4007

BR1

100n

GBPC800

R1
1k

U1
1 6 5 2 4 OPTOCOUPLER-NPN

Q1
BU806

V1
1V

R2
1k

R3
5k6

FIG.6 Diagrama de la etapa de potencia 4.5 DESARROLLO DE LA ETAPA 4 4.5.1 5V DC AISLADOS Esta alimentacin est aislada de la alimentacin del USB y est arada con un transformador, es la encargada de alimentar el transistor interno del opto transistor.

31

4.5.2 ALIMENTACION 110V DC El voltaje de la red es rectificado para obtener una alimentacin en DC para el circuito de potencia para el motor universal para de esta manera para tener facilidad de controlar al motor.

4.6 DIAGRAMA DE FLUJO

32

INICIO

DECLARACIN DE VARIABLES

CDIGO DE LA INTERFAZ USB

CDIGO DE LA INTERRUPCIN DEL TIMER EXTERNO

CONTROL DE LOS PULSOS DEL MOTOR

NO FIN SENSOR=ON

SI

CUENTA LOS PULSOS POR CADA REVOLUCIN CENSADA

GUARDA EN LA VARIABLE N

NO REV<0

SI PIC: CALCULA LA VELOCIDAD V=N*398,33

ERROR EN EL SISTEMA GUARDA V COMO VARIABLE STRING FIN

ENVIA DATO PIC- PC Y RECIBE DATO PIC-PC

ENVIA LA SEAL AL MICRO 18F2550

33

PIN C2=1ON

EL MOTOR PERMANECE APAGADO

ENCIENDE MOTOR

MUESTRA GRAFICA

LEER SENSOR INFRARROJO

FIN

34

CAPTULO 5 5. ANLISIS DE COSTOS INTRODUCCION En este captulo se realizar el anlisis de los costos que se requieren para la creacin del medidor de velocidad de un motor universal, mostramos a continuacin el costo total del proyecto el mismo que puede ser tomado como referencia para quienes deseen realizar el control de la velocidad de un motor. 5.1 ANLISIS GENERAL DE COSTOS ELEMENTOS ELECTRNICOS MOTOR UNIVERSAL INVESTIGACIN $12.00 El total del proyecto est en un costo aproximado de $64.00 Estos son los costos que tuvimos que realizar para poder desarrollar la comunicacin USB- PIC y la aplicacin que en este caso es el Medidor de Velocidad. CAPTULO 6 6. Pruebas realizadas con respecto a normas de diseo Para el diseo del medidor de velocidad de un motor universal desde una PCse realiz un proceso minucioso en el cual realizamos ciertos cambios a lo largo de su proceso, como por ejemplo realizamos diversos circuitos para poder realizar la comunicacin y el control entre la PC y el motor universal. Se realizaron ciertos cambios en la programacin con el nico fin de acoplar de una mejor manera el proyecto. CONCLUSIONES Y RECOMENDACIONES 7.1 CONCLUSIONES Logramos establecer la comunicacin del puerto USB con el PIC 18F2550 utilizando las libreras necesarias para la debida programacin. Hemos podido disear y construir un circuito para el control de la velocidad del motor universal en la que se estableci la comunicacin USB. Mediante un panel de control el Labview pudimos manejar los diferentes niveles de velocidad del motor. $36.55 $15.00

35

A travs de la prctica realizada se logro desarrollar un software que sea capaz de comunicarse con circuitos elctricos y aplicaciones realizadas en el laboratorio.

7.2 RECOMENDACIONES Sugerimos que los proyectos enviados no sean de costos muy elevados ya que en ciertas ocasiones estos costos no se encuentran a nuestro alcance y posibilidades. Sugerimos que el proyecto sea detallado minuciosamente para evitar confusiones al momento de presentar el mismo.

Proponemos que para la realizacin de este proyecto tener una previa capacitacin a cerca de programacin en los tres lenguajes, debido a que no poseemos los conocimientos necesarios y es indispensable.

En el momento de realizar las placas para los circuitos tenemos que tener en cuenta el ancho de la pista debido a la corriente. Realizar un control permanente de la frecuencia enva al motor ya que puede daar su bobinado.

BIBLIOGRAFA DE PGINAS WEB. Malvino, Paul. Principios de Electrnica. McGraw-Hill. 5. Edicin Mxico1998. Savant, J.C. Diseo Electrnico. Adisson Wesley 2. Edicin Mxico 1992. Boylestad, Robert.: Electrnica: Teora de Circuitos. Prentice-Hall. 2. Edicin Mxico 1997. Rashid, Muhammad H.: Electrnica de Potencia, circuitos dispositivos y aplicaciones. Prentice-Hall.Hispanoamerica. 1995.

BIBLIOGRAFA DE LIBROS CARLOS NOVILLO M, Sistemas Digitales, Quito-Ecuador, 2000. CARLOS REYES A, Microcontroladores PIC 16F62X-16F8XX-16F87X, Segunda Edicin, Editorial RISPERGRAF, Quito-Ecuador, 2006.

36

DIAGRAMA DEL CIRCUITO.

37

ANTECEDENTES: Tesis de Robotica e Inteligencia Artificial de la UPS CODIGO: T629.892E776 TITULO: Diseo e implementacin de una tarjeta de adquisicin de datos mediante un puerto usb con driver en torno visual. DIRECTOR: ING. Carlos Pillajo AO:2006 DATOS DEL MOTOR UNIVERSAL: 2 polos, 50.8A, Modulo YOK SEWING , 70W DE ENTRADA , 100V-122V HOJAS DE DATOS DEL PIC18F2550

38

HOJA DE DATOS DEL 4N25

39

40

PANEL DE CONTROL EN LABVIEW

DESARROLLO DEL POGRAMA EN LABVIEW

CDIGO UTILIZADO EN LA PROGRAMACIN(MICROBASIC)

41

program Interfaz_usb

include "USBdsc"

dim k, i, ch, x as byte valor as string[8]

userWR_buffer as byte[64] userRD_buffer as byte[64]

'**************************************************************************** ** ' Main Interrupt Routine '**************************************************************************** ** sub procedure interrupt '** this is a way to call a procedure from interrupt HID_InterruptProc end sub '**************************************************************************** ** sub procedure init_velosidad1

x=0 PORTC = $FF Pwm_Init(5000) Pwm_Start ' Initialize PORTC ' Initialize PWM module, freq = 5kHz. ' Start PWM

42

for x=0 to 100 Delay_us(500)

Pwm_Change_Duty(30) next x pwm_stop

end sub sub procedure init_velosidad2

x=0 PORTC = $FF Pwm_Init(5000) Pwm_Start ' Initialize PORTC ' Initialize PWM module, freq = 5kHz. ' Start PWM

for x=0 to 100 Delay_us(500)

Pwm_Change_Duty(60) next x pwm_stop

end sub sub procedure init_velosidad3

x=0 PORTC = $FF Pwm_Init(5000) ' Initialize PORTC ' Initialize PWM module, freq = 5kHz.

43

Pwm_Start

' Start PWM

for x=0 to 100 Delay_us(500)

Pwm_Change_Duty(90) next x pwm_stop

end sub sub procedure init_velosidad4

x=0 PORTC = $FF Pwm_Init(5000) Pwm_Start ' Initialize PORTC ' Initialize PWM module, freq = 5kHz. ' Start PWM

for x=0 to 100 Delay_us(500)

Pwm_Change_Duty(120) next x pwm_stop

end sub sub procedure init_velosidad5

x=0

44

PORTC = $FF Pwm_Init(5000) Pwm_Start

' Initialize PORTC ' Initialize PWM module, freq = 5kHz. ' Start PWM

for x=0 to 100 Delay_us(500)

Pwm_Change_Duty(150) next x pwm_stop

end sub sub procedure init_velosidad6

x=0 PORTC = $FF Pwm_Init(5000) Pwm_Start ' Initialize PORTC ' Initialize PWM module, freq = 5kHz. ' Start PWM

for x=0 to 100 Delay_us(500)

Pwm_Change_Duty(180) next x pwm_stop

end sub sub procedure init_velosidad7

45

x=0 PORTC = $FF Pwm_Init(5000) Pwm_Start ' Initialize PORTC ' Initialize PWM module, freq = 5kHz. ' Start PWM

for x=0 to 100 Delay_us(500)

Pwm_Change_Duty(210) next x pwm_stop

end sub sub procedure init_velosidad8

x=0 PORTC = $FF Pwm_Init(5000) Pwm_Start ' Initialize PORTC ' Initialize PWM module, freq = 5kHz. ' Start PWM

for x=0 to 100 Delay_us(500)

Pwm_Change_Duty(240) next x pwm_stop

46

end sub sub procedure init_velosidad9

x=0 PORTC = $FF Pwm_Init(5000) Pwm_Start ' Initialize PORTC ' Initialize PWM module, freq = 5kHz. ' Start PWM

for x=0 to 100 Delay_us(500)

Pwm_Change_Duty(255) next x pwm_stop

end sub sub procedure init_apagar PORTC = $FF Pwm_Init(5000) Pwm_Start pwm_stop end sub ' Initialize PORTC ' Initialize PWM module, freq = 5kHz.

'**************************************************************************** ** ' Initialization Routine '**************************************************************************** ** sub procedure Init_Main

47

'-------------------------------------' Disable interrupts '-------------------------------------INTCON = 0 INTCON2 = 0xF5 INTCON3 = 0xC0 RCON.IPEN = 0 PIE1 = 0 PIE2 = 0 PIR1 = 0 PIR2 = 0 ' Disable Priority Levels on interrupts ' Disable GIE, PEIE, TMR0IE,INT0IE,RBIE

ADCON1 = ADCON1 or 0x0F digital '-------------------------------------' Ports Configuration '-------------------------------------TRISA = 0 TRISB = $FF TRISC = $FF 'TRISD = 0 'TRISE = 0x07

' Configure all ports with analog function as

LATA = 0 LATB = 0 LATC = 0 'LATD = 0 'LATE = 0 end sub

48

'**************************************************************************** ** ' Main Program Routine '**************************************************************************** **

main: Init_Main()

HID_Enable(@userRD_buffer, @userWR_buffer) Delay_mS(1000) Delay_mS(1000)

while true k = HID_Read() i=0 while i < k ch = userRD_buffer[0] userWR_buffer[0] = ch bytetostr(ch,valor) HID_Write(@valor, 1) inc(i)

select case ch

49

case "0" init_apagar()

case "1" init_velosidad1()

case "2" init_velosidad2() case "3" init_velosidad3() case "4" init_velosidad4()

case "5" init_velosidad5()

case "6" init_velosidad6() case "7" init_velosidad7() case "8" init_velosidad8()

case "9" init_velosidad9()

end select

50

wend wend HID_Disable() end.

FOTOS

51

52

You might also like