17514780-control-de-un-motor-universal-mediante-usb.pdf

52
UNIVERSIDAD POLITÉCNICA SALESIANA FACULTAD DE INGENIERIAS ESCUELA ELECTRÓNICA Tema: Diseño y Construccn de un medidor de velocidad y control de DE MOTOR utilizando el PC Integrantes: Lisbeth Mena Gina Ojeda Johanna Salvador 1

Upload: naruto

Post on 07-Aug-2015

99 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

UNIVERSIDAD POLITÉCNICA SALESIANA

FACULTAD DE INGENIERIAS

ESCUELA ELECTRÓNICA

Tema:

Diseño y Construcción de un medidor de velocidad y

control de DE MOTOR utilizando el PC

Integrantes:

Lisbeth Mena

Gina Ojeda

Johanna Salvador

1

Page 2: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

INTRODUCCIÓN

En este proyecto conoceremos como diseñar 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 gráfica la forma de

onda de la velocidad. La creación del control de velocidad de un motor posee una

gran variedad de aplicaciones como por ejemplo son muy utilizados en motores de

máquinas de coser, licuadoras, máquinas de afeitar, locomotoras etc. Por

supuesto, sus características 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 Ingeniería Electrónica, 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. ANÁLISIS DE LA PROBLEMÁTICA A RESOLVER

1.1INTRODUCCIÓN AL CAPÍTULO

2

Page 3: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

En presente capítulo se detallarán los aspectos básicos del proyecto. Se darán

a conocer los antecedentes, problema a resolver, hipótesis, objetivos principal

y secundario; justificación, alcance, limitaciones y finalmente la solución del

problema.

1.2ANTECEDENTES

La información indagada en bibliotecas de las diversas universidades y

escuelas politécnicas a cerca de proyectos realizados sobre el medidor de

velocidad de un motor universal mediante comunicación usb, será adjuntada

oportunamente con sus respectivas fichas bibliográficas en el Anexo 1.

1.3PROBLEMA A RESOLVER

El problema planteado para este trabajo es básicamente el diseño 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 comunicación

entre labview y el PIC será a través 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 mínima hasta la máxima que puede alcanzar el motor.

2. Aparecerá una gráfica 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.

3

Page 4: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

¿Cómo se visualizará el control de la velocidad del motor universal?

1.4 HIPÓTESIS

A continuación se presenta la hipótesis que nos hemos planteado para dar una

solución a nuestro proyecto:

Es posible medir la velocidad de un motor universal, mediante un

microcontrolador PIC 18f2550, el cual adquiera la señal del sensorque permita

detectar los pulsos de la velocidad que emite el motor, en el cual el

microcontrolador PIC se conecta al PC a través del puerto USB.

1.5 OBJETIVOS

1.5.1 OBJETIVOS PRINCIPALES

1. Diseñar 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 programación de la interfaz gráfica con el fin de mostrar la

velocidad del motor en una grafica de variación 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 programación y comunicación usb en: Java, .Net y bloques

funcionales de Labview.

1.6 JUSTIFICACIÓN

4

Page 5: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

La creación de este circuito y su respectiva programación es una excelente

herramienta para el aprendizaje y el funcionamiento básico de un tacómetro ya

que mediante esto podemos darnos cuenta que tiene una serie de aplicaciones en

el campo del control industrial.

El diseño del tacómetro nos sirve como motivación para poder conocer más

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 continuación se detallarán 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 gráfica (Java) la forma de onda que se genera

al variar el nivel de velocidad del motor.

– Enviar los datos necesarios para establecer la comunicación usb entre el

microcontrolador PIC 18F2550 y el PC.

Limitaciones:

– Las formas de onda de los niveles de velocidad del motor no serán precisas

ya que no es posible detectar todos los pulsos que envía el sensor con

exactitud.

– No será posible desplegar toda la información 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

5

Page 6: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

A continuación se presenta la solución 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

CAPÍTULO 2

2. Bitácora de diseño

2.1 Introducción al capítulo 2

En este capítulo 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, además se muestran diversas

descripciones que se realizaron día a día durante el transcurso del desarrollo del

mismo.

2.2 Desarrollo semanal del proyecto etapa por etapa.

LUNES 11 DE MAYO DEL 2009

6

Page 7: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

En este día se dio a conocer acerca del tema del proyecto a desarrollar en el

bimestre el cual consistía en el manejo de la velocidad de un motor universal

mediante un microcontrolador PIC 18f2550, además se explicó los diferentes

parámetros que serán tomados en cuenta para la respectiva evaluación del

proyecto.

JUEVES 21 DE MAYO DEL 2009

Continuamos con la búsqueda de información acerca de las características que

posee el microcontrolador PIC que vamos a utilizar para la realización de este

proyecto. Encontramos que el PIC 18F2550 es un microcontrolador que posee

pines que permiten que exista una conexión a la PC mediante el puerto usb.

También investigamos acerca de las diversas características que poseen los

motores universales los cuales pueden ser alimentados con corriente alterna o con

7

Page 8: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

corriente continua, además conocimos que la velocidad cambia según la carga y

se suelen construir para velocidades de 3000 a 8000 RPM para poder controlar el

nivel de la velocidad necesitamos variar la tensión de alimentación, normalmente

se hace con un reostato.

Para la realización del proyecto requerimos de un sensor que permita detectar los

distintos pulsos que envía el motor; para ello averiguamos acerca de los sensores

que existen en el mercado los cuales nos permitan facilitar la medición de la

velocidad del motor.

Una vez recopilada la primera información nos dimos cuenta de las limitaciones y

ventajas que estos elementos esenciales presentan para el funcionamiento de

proyecto.

Averiguamos precios de estos elementos necesarios y cuales son los más factibles

y viables para poder proseguir con la construcción del proyecto.

8

Page 9: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

SÁBADO 23 DE MAYO DEL 2009

Este día 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 construcción 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 visión del proyecto

para continuar con su desarrollo.

Posteriormente requeríamos medir la velocidad del motor para establecer los

parámetros de funcionamiento del mismo y para ello recurrimos a solicitar ayuda

al Ingeniero Juan Buchelli el mismo que nos permitiera usar un tacómetro digital

del laboratorio de máquinas eléctricas II, el tacómetro nos dio una velocidad de

3585 rpm.

FIG 2. TACÓMETRO

9

Page 10: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

VIERNES 12 DE JUNIO DEL 2009

En este día se realizó en los laboratorios de la universidad las prácticas

correspondientes a PICs, una de las prácticas a desarrollar era el control de fase

en la cual debíamos regular la intensidad de un foco mediante un potenciómetro,

ésta práctica fue de gran utilidad para la realización 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 práctica.

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 estén en

perfecto estado.

Acudimos diariamente a visitar la páginas Web en las cuales pudimos obtener

mucha información acerca de posibles soluciones para resolver el control de la

velocidad del motor, gracias a las páginas Web publicadas logramos obtener una

mejor visión de las soluciones viables que se pueden dar para el proyecto.

Además solicitamos en el CECASIS los diferentes software que requeríamos para la

solución del proyecto.

10

Page 11: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

SÀBADO 13 DE JUNIO DEL 2009

Una vez obtenidos los software nos dedicamos a investigar de las características

de la programación en Labview pero sobre todo y lo mas importante como vamos

a realizar la comunicación usb; encontramos que debemos utilizar NI-VISA para

conectar el dispositivo USB, la cual posee dos clases de recursos USB INSTR y USB

RAW.

Además 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 comunicación usb; lo cual lo vamos a adjuntar en los anexos para

facilitar la comprensión de todos aquellos que en lo posterior necesiten esta

información.

Tomamos en cuenta todas las disposiciones y explicaciones y lo llevamos a la

práctica; siempre y cuando hayamos anexado o incorporado las librerías

necesarias con ello comprobamos que es posible realizar comunicar usando NI-

VISA con el dispositivo e intentamos realizar la programación en lenguaje de

labview que para este ejemplo es sencillo de realizar y de esta manera nos

proporcionaba ideas para la realización de nuestro proyecto.

11

Page 12: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

JUEVES 18 DE JUNIO DEL 2009

En este día realizamos una profunda investigación acerca de la programación en

Java la cual la obtuvimos de diversas fuentes y una de ellas fue de la página web

creada para los estudiantes de electrónica la cual fue de gran utilidad.

Por otra parte de las diferentes prácticas de PICs que hemos venido realizando se

desarrolló la comunicación serial con usb en la cual seguimos los siguientes

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 análogos etc.

Con los procedimientos realizados anteriormente se pudo lograr establecer una

comunicación usb la cual la aplicamos a nuestro proyecto.

12

Page 13: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

VIERNES 26 DE JUNIO DEL 2009

Este día se nos fue asignado para recibir ayuda por parte del Ing. Rodrigo Tufiño

el mismo que nos impartió diferentes archivos de la comunicación usb y la

programación en C#, el objetivo de esta clase fue orientarnos hacia nuestro

proyecto.

Para empezar con la clase tuvimos una previa revisión de los diferentes tipos de

conectores usb y se nos explico las principales diferencias de estos, luego

procedimos con la programación en C# en el cual se desarrollo un programa que

encendía y apagaba un led, para la realización de esta instrucción en C# se

declararon diversos tipos de librerías las cuales desempeñaban una especifica

función para manejar las respectivas instrucciones del funcionamiento del led.

Otra instrucción 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

guía 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 Tufiño los adjuntaremos en los

anexos.

13

Page 14: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

LUNES 29 DE JUNIO DEL 2009

Continuamos con el diseño del circuito; principalmente en la etapa de control y

protección; 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.

También vamos hacer uso del opto acoplador que nos ayuda al control de fase y

protección porque nuestro motor va conectado a 110.

Además 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 programación 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

señal que envía el motor, así como también el TMR0 que genera la base del

tiempo en un segundo realizamos una serie de pruebas para comprobar que lo

que hemos diseñado está bien y de esta manera continuar con la programación

del microcontrolador para luego pasar a la comunicación de las interfaces.

14

Page 15: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

CAPITULO 3

3. MARCO TEÓRICO

3.1 INTRODUCCIÓN

En este capítulo se va a dar a conocer acerca de los diferentes elementos que nos

servirán para la creación del control de la velocidad del motor universal y la

comunicación USB.

15

Page 16: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

3.1.1Motor, Motor Universal, Características del Microcontrolador PIC18F2550,

Características del software LABVIEW 8.5, Comunicación usb entre el PIC y

LABVIEW.

MOTOR

Un motor es una máquina capaz de transformar la energía almacenada en

combustibles, baterías u otras fuentes, en energía mecánica capaz de realizar un

trabajo. En los automóviles este efecto es una fuerza que produce el movimiento.

TIPOS

MOTORES TÉRMICOS

Motores de combustión interna, son motores térmicos en los cuales se produce

una combustión del fluido motor, transformando su energía química en energía

térmica, a partir de la cual se obtiene energía mecánica.

MOTORES DE COMBUSTIÓN EXTERNA

Son motores térmicos en los cuales se produce una combustión en un fluido

distinto al fluido motor. El fluido motor alcanza un estado térmico de mayor

energía mediante la transmisión de energía a través de una pared.

MOTORES ELÉCTRICOS

Cuando el trabajo se obtiene a partir de una corriente eléctrica. En los

aerogeneradores, las centrales hidroeléctricas o los reactores nucleares también

se transforma algún tipo de energía en otro. Sin embargo, la palabra motor se

reserva para los casos en los cuales el resultado inmediato es energía mecánica.

CARACTERÍSTICAS 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

cigueñal, es decir, el número de radianes por segundo (rad/s) a las que gira.

Se representa por la letra n.

16

Page 17: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

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 rotación que actúa sobre el eje del motor y

determina su giro. Se mide en kilográmetros (kgm) o newtons-metro (Nm),

siendo 1 kgm igual a 9,8 Nm. Hay varios tipos de pares, véanse por ejemplo

el par de arranque, el par de aceleración y el par nominal.

MOTOR UNIVERSAL

COMUNICACIÓN USB

Universal Serial Bus nació como un estándar industrial de expansión para el PC, en

especial énfasis para la telefonía y productos de consumo. Es una interfaz para la

transmisión serie de datos y distribución de energía. Provee una mayor velocidad

de transferencia comparado con el puerto Paralelo de 25-pin y el Serial DB-9.

CARACTERISTICAS GENERALES

Fácil uso a los usuarios

Flexibilidad

Ancho de banda isócrono

Amplia gama de aplicaciones y cargas de trabajo

Robustez

Implementación de bajo costo

VERSIONES

USB 1.1

1.5 – 12 Mbps

17

Page 18: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

USB 2.0

12 – 480 Mbps

USB 3.0

480 Mbps – 4.8 Gbps

ESPECIFICACIONES TÉCNICAS

Arquitectura

Bus punto a punto

Host – periférico

Máximo 127 disp.

Eléctrica

4 cables

Par trenzado Z=90 Ω

Mecánica

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

Número de endpoint

Tratamiento de errores requerido

Máximo tamaño de paquete que el endpoint puede enviar o recibir

Tipo de transferencia para el endpoint

La orientación en la que se transmiten los datos

TIPOS DE TRANSFERENCIA

De Control

Asíncronas

18

Page 19: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

De Interrupción

Transferencia de Bultos (Bulk)

PROTOCOLO

FIG.4 DIAGRAMA DE UN PROTOCOLO

LABVIEW

INTRODUCCIÓN

LABVIEW es una herramienta gráfica para pruebas, control y diseño mediante la

programación. El lenguaje que usa se llama lenguaje G, donde la G simboliza que

es lenguaje Gráfico.

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 están el reducir

el tiempo de desarrollo de aplicaciones de todo tipo y el permitir la entrada a la

informática a programadores no expertos.

APLICACIONES

Adquisición de datos y análisis matemático

Comunicación y control de instrumentos de cualquier fabricante

Automatización industrial y programación de PACs (Controlador de

Automatización Programable)

Diseño de controladores: simulación, prototipaje rápido, hardware-en-el-

ciclo (HIL) y validación

Diseño embebido de micros y chips

Control y supervisión de procesos

Visión artificial y control de movimiento

Robótica

Domótica

CARACTERÍSTICAS

Su principal característica es la facilidad de uso, también es muy rápido hacer

programas con LABVIEW Los programas en LABVIEW son llamados instrumentos

virtuales (VIs) Para los amantes de lo complejo, con LabVIEW pueden crearse

19

Page 20: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

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

prácticas de programación para optimizar el rendimiento y la calidad de la

programación. El VIs estándard son VIs modulares y personalizables mediante

cableado y funciones que son elementos fundamentales de operación de LabView.

INTERFACES DE COMUNICACIONES

Puerto serie

Puerto paralelo

GPIB

PXI

VXI

TCP/IP , UDP, DataSocket

Irda

Bluetooth

USB

INTERACCIÓN CON OTROS LENGUAJES Y APLICACIONES

DLL : librerías de funciones

.NET

ActiveX

Multisim

Matlab /Simulink

AutoCAD, SolidWorks, etc

Herramientas gráficas y textuales para el procesado digital de

señales.

Visualización y manejo de gráficas con datos dinámicos.

Adquisición y tratamiento de imágenes.

Control de movimiento (combinado incluso con todo lo anterior).

Tiempo Real estrictamente hablando.

Programación de FPGAs para control o validación.

Sincronización entre dispositivos.

20

Page 21: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

PROGRAMA EN LABVIEW

Los programas no se escriben, sino que se dibujan, facilitando su comprensión. Al

tener ya pre-diseñados una gran cantidad de bloques, se le facilita al usuario la

creación del proyecto, se le permite invertir mucho menos tiempo y dedicarse un

poco más en la interfaz gráfica y la interactuación 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 podrán 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 función 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 serán las entradas y salidas que interactuarán 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 continuación se hace la FFT de este array y se

muestra en una gráfica:

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 programación en lenguaje C y

el acceso a las bibliotecas Win32 gracias al SDK de Windows.

21

Page 22: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

• Las mismas funcionalidades de instrumentación, análisis y controles

gráficos son también accesibles en Visual Basic, C++ o C# con Visual

Studio gracias a Measurement Studio de National Instruments. Así, se

puede disfrutar de la programación orientado a objetos y el framework

.NET.

• Las otras alternativas van desde lenguajes genéricos como C o Visual Basic

pero sin la ayuda de la bibliotecas de funcionalidades de National

Instruments, a otras herramientas gráficas como HP-VEE, ahora Agilent-VEE.

JAVA

Java es un lenguaje de programación 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

22

Page 23: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

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 internacionalización y localización.

Bibliotecas de integración, 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:

23

Page 24: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

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 COMUNICACIÓN USB A TRAVÉS 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

24

Page 25: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

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

usb-ri-linux (la

implementacion de referencia para la plataforma Linux, que conecta la

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.

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:

25

Page 26: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

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 raíz a través del centro UsbServices. El concentrador raíz está

considerado como una

UsbHub en la solicitud.

3. Obtenga una lista de los UsbDevices que están conectados a la raíz central.

Recorra a través 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

26

Page 27: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

upstream data (desde el dispositivo USB alcomputador central) y downstream

data (desde el ordenador host para el dispositivo USB) a través de la UsbPipe.

6. Cerrar la UsbPipe y libere la apropiada UsbInterface cuando la aplicacion ya no

necesita tener acceso al UsbDevice.

27

Page 28: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

4.2 Desarrollo de la etapa 1

4.2.1 ALIMENTACIÓN

La alimentación se obtiene de la comunicación USB la misma que entrga 5V y

GND(Tierra). A continuación se muestra los cálculos que se realizaron para

alimentación:

28

Page 29: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

Nota: Para mantener la misma relación y bajar la potencia puede ser

Potenciómetro=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 están destinados a

ésta función

Otras ventajas de la utilización del PIC16F877A es que los microcontroladores que

produce Microchip cubren una amplio rango de dispositivos cuyas características

pueden variar como sigue:

- Empaquetado (desde 8 patitas hasta 68 patitas)

- Tecnología de la memoria incluída (EPROM, ROM, Flash)

- Voltajes de operación (desde 2.5 v. Hasta 6v)

- Frecuencia de operación (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.

29

Page 30: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

Se debe tener mucho cuidado con el TRANSISTOR DE CONMUTACIÓN 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

potenciómetro hasta obtener los 5V DC y luego conectar y una vez que que se

encuentre conectado y funcionamiento se volverá a calibrar el potenciómetro.

Es necesario colocar un fusible en la línea de alimentación DC para evitar algún

inconveniente.

Realizar las conexiones correctamente ya que si hay algún tipo de error se puede dañar el

circuito.

BR1

GBPC800

FU1

1A

C1100n

D11N4007

6

5

4

1

2

U1

OPTOCOUPLER-NPN

R1

1k

R2

1k

R35k6

V11V

Q1BU806

12

J1

CONN-SIL2

FIG.6 Diagrama de la etapa de potencia

4.5 DESARROLLO DE LA ETAPA 4

4.5.1 5V DC AISLADOS

Esta alimentación está aislada de la alimentación del USB y está arada con un

transformador, es la encargada de alimentar el transistor interno del opto

transistor.

30

Page 31: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

4.5.2 ALIMENTACION 110V DC

El voltaje de la red es rectificado para obtener una alimentación 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

31

Page 32: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

INICIO

DECLARACIÓN DE VARIABLES

CÓDIGO DE LA INTERFAZ USB

CÓDIGO DE LA INTERRUPCIÓN DEL TIMER

EXTERNO

CONTROL DE LOSPULSOS DEL MOTOR

SENSOR=ON

2

FIN

CUENTA LOS PULSOS PORCADA REVOLUCIÓN CENSADA

GUARDA EN LA VARIABLE

N

REV<0

ERROR EN ELSISTEMA

FIN

PIC: CALCULA LA VELOCIDADV=N*398,33

GUARDA V COMO VARIABLE STRING

ENVIA DATO PIC- PCY RECIBE DATO PIC-PC

ENVIA LA SEÑAL ALMICRO 18F2550

1

SINO

SINO

32

Page 33: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

1

PIN C2=1ON

EL MOTOR PERMANECE

APAGADO

ENCIENDE MOTOR

MUESTRA GRAFICA

LEER SENSOR INFRARROJO

FIN

33

Page 34: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

CAPÍTULO 5

5. ANÁLISIS DE COSTOS

INTRODUCCION

En este capítulo se realizará el análisis de los costos que se requieren para la

creación del medidor de velocidad de un motor universal, mostramos a

continuación 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 ANÁLISIS GENERAL DE COSTOS

ELEMENTOS ELECTRÓNICOS $36.55

MOTOR UNIVERSAL $15.00

INVESTIGACIÓN $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

comunicación USB- PIC y la aplicación que en este caso es el Medidor de

Velocidad.

CAPÍTULO 6

6. Pruebas realizadas con respecto a normas de diseño

Para el diseño 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

comunicación y el control entre la PC y el motor universal.

Se realizaron ciertos cambios en la programación con el único fin de acoplar de

una mejor manera el proyecto.

CONCLUSIONES Y RECOMENDACIONES

7.1 CONCLUSIONES

• Logramos establecer la comunicación del puerto USB con el PIC 18F2550

utilizando las librerías necesarias para la debida programación.

• Hemos podido diseñar y construir un circuito para el control de la velocidad

del motor universal en la que se estableció la comunicación USB.

• Mediante un panel de control el Labview pudimos manejar los diferentes

niveles de velocidad del motor.

34

Page 35: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

• A través de la práctica realizada se logro desarrollar un software que sea

capaz de comunicarse con circuitos eléctricos 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 realización de este proyecto tener una previa

capacitación a cerca de programación 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 envía al motor ya que

puede dañar su bobinado.

BIBLIOGRAFÍA DE PÁGINAS WEB.

Malvino, Paul. “Principios de ElectrónicaÓ. McGraw-Hill. 5ª. Edición México1998.

· Savant, J.C. Diseño ElectrónicoÓ. Adisson Wesley 2ª. Edición México 1992.

· Boylestad, Robert.: “Electrónica: Teoría de CircuitosÓ. Prentice-Hall. 2ª. Edición

México 1997.

· Rashid, Muhammad H.: “Electrónica de Potencia, circuitos dispositivos y

aplicacionesÓ. Prentice-Hall.Hispanoamerica. 1995.

BIBLIOGRAFÍA DE LIBROS

CARLOS NOVILLO M, “Sistemas DigitalesÓ, Quito-Ecuador, 2000.

CARLOS REYES A, “Microcontroladores PIC 16F62X-16F8XX-16F87XÓ, Segunda

Edición, Editorial RISPERGRAF, Quito-Ecuador, 2006.

35

Page 36: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

DIAGRAMA DEL CIRCUITO.

36

Page 37: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

ANTECEDENTES:

Tesis de Robotica e Inteligencia Artificial de la UPS

CODIGO: T629.892E776

TITULO: Diseño e implementación de una tarjeta de adquisición de datos

mediante un puerto usb con driver en torno visual.

DIRECTOR: ING. Carlos Pillajo

AÑO:2006

DATOS DEL MOTOR UNIVERSAL:

2 polos, 50.8A, Modulo YOK SEWING , 70W DE ENTRADA , 100V-122V

HOJAS DE DATOS DEL PIC18F2550

37

Page 38: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

HOJA DE DATOS DEL 4N25

38

Page 39: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

39

Page 40: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

PANEL DE CONTROL EN LABVIEW

DESARROLLO DEL POGRAMA EN LABVIEW

CÓDIGO UTILIZADO EN LA PROGRAMACIÓN(MICROBASIC)

40

Page 41: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

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 ' Initialize PORTC

Pwm_Init(5000) ' Initialize PWM module, freq = 5kHz.

Pwm_Start ' Start PWM

41

Page 42: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

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 ' Initialize PORTC

Pwm_Init(5000) ' Initialize PWM module, freq = 5kHz.

Pwm_Start ' 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 ' Initialize PORTC

Pwm_Init(5000) ' Initialize PWM module, freq = 5kHz.

42

Page 43: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

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 ' Initialize PORTC

Pwm_Init(5000) ' Initialize PWM module, freq = 5kHz.

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

43

Page 44: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

PORTC = $FF ' Initialize PORTC

Pwm_Init(5000) ' Initialize PWM module, freq = 5kHz.

Pwm_Start ' 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 ' Initialize PORTC

Pwm_Init(5000) ' Initialize PWM module, freq = 5kHz.

Pwm_Start ' Start PWM

for x=0 to 100

Delay_us(500)

Pwm_Change_Duty(180)

next x

pwm_stop

end sub

sub procedure init_velosidad7

44

Page 45: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

x = 0

PORTC = $FF ' Initialize PORTC

Pwm_Init(5000) ' Initialize PWM module, freq = 5kHz.

Pwm_Start ' 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 ' Initialize PORTC

Pwm_Init(5000) ' Initialize PWM module, freq = 5kHz.

Pwm_Start ' Start PWM

for x=0 to 100

Delay_us(500)

Pwm_Change_Duty(240)

next x

pwm_stop

45

Page 46: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

end sub

sub procedure init_velosidad9

x = 0

PORTC = $FF ' Initialize PORTC

Pwm_Init(5000) ' Initialize PWM module, freq = 5kHz.

Pwm_Start ' 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 ' Initialize PORTC

Pwm_Init(5000) ' Initialize PWM module, freq = 5kHz.

Pwm_Start

pwm_stop

end sub

'******************************************************************************

' Initialization Routine

'******************************************************************************

sub procedure Init_Main

46

Page 47: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

'--------------------------------------

' Disable interrupts

'--------------------------------------

INTCON = 0 ' Disable GIE, PEIE, TMR0IE,INT0IE,RBIE

INTCON2 = 0xF5

INTCON3 = 0xC0

RCON.IPEN = 0 ' Disable Priority Levels on interrupts

PIE1 = 0

PIE2 = 0

PIR1 = 0

PIR2 = 0

ADCON1 = ADCON1 or 0x0F ' Configure all ports with analog function as digital

'--------------------------------------

' Ports Configuration

'--------------------------------------

TRISA = 0

TRISB = $FF

TRISC = $FF

'TRISD = 0

'TRISE = 0x07

LATA = 0LATB = 0LATC = 0'LATD = 0

'LATE = 0

end sub

47

Page 48: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

'******************************************************************************

' 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

48

Page 49: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

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

49

Page 50: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

wend

wend

HID_Disable()

end.

FOTOS

50

Page 51: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

51

Page 52: 17514780-Control-de-un-motor-universal-mediante-usb.pdf

52