Sie sind auf Seite 1von 6

Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones

DESARROLLO DE UNA INTERFACE GRAFICA DE USUARIO GUI EN MATLAB CON COMUNICACIN USB

Ilber Adonayt Ruge Ruge; Freddy Alexander Crdenas; Ingrid Andrea Garzn Universidad de Cundinamarca Programa de Ingeniera Electrnica Grupo de Investigacin en Tecnologas de la Informacin y las Comunicaciones GITEINCO Colombia/Cundinamarca/Fusagasug ilberruge@yahoo.es; newcardenas@yahoo.es; andigari@hotmail.com Abstract. En esta prctica de laboratorio se realizo una comunicacin entre un prototipo de tarjeta de adquisicin basada en microcontrolador PIC y un PC a travs del puerto USB. Por medio de una interface grafica de usuario desarrollada mediante la herramienta GUIDE de Matlab, se visualiza el valor del voltaje sensado mediante el conversor ADC de un microcontrolador PIC18F2550.

Introduccin
Es de gran importancia la monitorizacin y control de dispositivos desde un controlador que permita adems la intervencin del usuario y no sean totalmente autnomos, esto dado que, las decisiones de un supervisor en su momento puedan quedar fuera de la planeacin del programa o las necesidades hayan cambiado. La adquisicin de datos en muchas ocasiones es realizada desde una tarjeta de adquisicin de seales, que permite en su momento traducir los datos obtenidos y aislar el sistema de control al de potencia, dado el cambio de tensiones que se pueden manejar en cada uno de los casos. El cambio de los estndares de puertos de comunicacin ha radicado en las exigencias de rapidez, bajo costo y simplicidad de conexiones, que son constantes en este medio. Se ha pasado del puerto paralelo cuya fortaleza era la rapidez, dado que enviaba un octeto en cada ciclo, pero 25 pines para su instalacin; en contraposicin, el puerto serie RS232, con 9 pines debe tener en cuenta un reloj de sincronizacin enviando los datos bit a bit. Aparece entonces el puerto USB que es un par trenzado que solo requiere cuatro pines, y utiliza la misma idea de la transmisin serial de bit a bit, pero simplifica en gran medida la conexin, volvindose uno de los puertos ms populares hoy en da.

1. Anlisis Del Componente Guide De Matlab [1]


GUIDE (Graphical User Interfaces Development Environment), se conoce como una aplicacin de desarrollo de interfaces graficas de usuario. Para iniciar la aplicacin de interfaz de usuario en Matlab se accede digitando guide en la ventana de comandos, ante lo cual emerge una pantalla que permite crear un formulario nuevo, ejemplos de clculos de unidades fsicas, graficas en ejes a travs de un men de programas, creacin de pantallas para capturar datos lgicos (Si o No), o abrir documentos ya realizados (ver Figura 1).

Figura 1. Creacin nueva de GUIDE en Matlab. En este caso se selecciona la creacin de un formulario nuevo (Blank GUI), ante lo cual aparece el formulario o area de trabajo segn como se observa en la Figura 2, donde se encuentran la barra de componentes al lado izquierdo, la barra de ttulo,
Congreso 2010, Pgina 1

barra de men, barra de herramientas y el rea de trabajo donde se puede insertar lo que se necesita para realizar la interfaz grafica.

Luego aparece el llamado de cada funcin o accin programada, por ejemplo en un botn de accin aparece el cdigo: function pushbutton1_Callback(hObject, eventdata, handles) Despus del cual, en la parte inferior, se escriben las acciones correspondientes de este objeto.

2. Comunicacin USB con el PC [2]


La conexin USB (Universal Serial Bus) es una interfaz de conexin de dispositivos perifricos a un PC o host similares. Una de sus posibles aplicaciones es la medicin y control de sistemas o como la necesitada por un dispositivo de propsito general que permita sensar o realizar una accin. USB es un bus punto a punto, con inicio en el host y destino en un dispositivo o Hub, los cuales segn este protocolo de comunicacin pueden llegar a ser mximo 127 dispositivos.

Figura 2. Formulario nuevo para la crea la interfaz grafica de Matlab (GUIDE) En el rea de trabajo se realiza la insercin de cada componente necesario en el proyecto, por ejemplo, para que aparezca un titulo se inserta un Label, y accediendo al men de herramientas en la opcin de inspector de objetos o con click contrario sobre el objeto, en este caso el Label, se accede a edicin del texto, el tipo de letra, la fuente, el color, etc. Para acceder al cdigo fuente del formulario en la barra de herramientas (ver Figura 3), se llega a cada uno de los bloques funcionales de la GUI, donde los principales son: a. Function varargout = untitled(varargin). Denota que es el cdigo fuente de un formulario, aqui se encuentra el titulo del formulario como variable, en este caso untlited. Function untitled_OpeningFcn(hObject, eventdata, handles, varargin). En esta lnea se inserta todas aquellas acciones que corren desde la apertura del formulario, por decirlo as la presentacin por defecto. Function varargout = untitled_OutputFcn(hObject, eventdata, handles). Opciones de cierre del formulario, generalmente, limpiar variables, ventana de comandos, etc.

Figura 4. Esquema de conexin del puerto USB. Fsicamente la transmisin se realiza por un par trenzado (D y D), y requiere dos pines ms para suministrar el voltaje necesario a la conexin o pequeos dispositivos perifricos. En este protocolo solo puede existir un nico host, que es el dispositivo maestro, que inicializa la comunicacin y el Hub, que es el dispositivo que contiene uno o ms conectores o conexiones a otros dispositivos USB. El protocolo de comunicacin se basa en el paso de testigo (token), donde el host proporciona el testigo al dispositivo seleccionado y este le devuelve el testigo como respuesta. Es bien sabido, que los microcontroladores han dado la pauta en la electrnica en cuanto a realizar el monitoreo y control de dispositivos, dado lo robusto del dispositivo y la cantidad de memoria que posee; sin embargo, el poder conectar un microcontrolador con un PC, es decir, con un microprocesador, trabajando en conjunto supera en gran medida las expectativas, adems de permitir al usuario tener un ambiente amigable para intervenir en el sistema. Microchip, es un reconocido productor de microcontroladores de bajo costo como el PIC16C745, PIC16C765, que son pocos flexibles y manejan bajas velocidades o PIC18F4550 que
2

b.

c.

Figura 3. Acceso al editor M-File de la GUI.

Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones


adems tiene la gran posibilidad de manejar velocidades de transmisin bajas y altas, por lo cual suministra en su pagina web el archivo mchpcdc.inf para hacer compatible los PIC`s con el puerto USB; este archivo es el fichero estndar para crear un driver virtual o CDC, de envo y recepcin en el PC a 64 bytes de datos por milisegundo (8 bits por byte), realizado en lenguaje C.

2.2 Simulacin de la Tarjeta de Adquisicin de Datos por USB basado en Microcontrolador


Se utilizara el software de simulacin Proteus 7.4 para validar el funcionamiento del hardware que mide y transmite la variable fsica por medio de USB. En la Figura 7 se muestra que la seal de voltaje es sensada a travs del canal 0 RA0 y la frecuencia utilizada para el funcionamiento del PIC es de 12MHz.

Figura 5. Interface grafica en MATLAB usando comunicacin USB.

2.1 Diseo de una Tarjeta de Adquisicin de Datos por USB [3]


Teniendo en cuenta el diagrama de bloques de la figura 6, se puede interpretar que es un proceso de lectura de informacin externa sobre una variable fsica que se transmite a un medio de visualizacin a travs de un medio de comunicacin, en este caso, USB. Para lo cual se necesita el tratamiento de dicha informacin desde su recoleccin hasta su visualizacin, la primera fase corresponde a la informacin sensada, tratada y transmitida por el PIC; la segunda fase corresponde a la recepcin y tratamiento de la informacin en el host, en este caso en Matlab.

Figura7. Diagrama de conexiones de la tarjeta de adquisicin de datos basado en PIC18F2550.

2.3 Desarrollo de la Interfaz Grafica de Usuario en MATLAB [1], [4]


La interface grafica inicia con una presentacin, segn se muestra en la Figura 8.

Figura 8. Formulario de presentacin del proyecto Figura 6. Diagrama de bloques del sistema implementado Para iniciar la GUI principal se presiona el botn de IR AL PROGRAMA, cuyo cdigo fuente se presenta a continuacin: function inicio_OpeningFcn(hObject, eventdata, handles, varargin) imagen1 = imread('imagen.jpg'); %Leer imagen
Congreso 2010, Pgina 3

axes(handles.imagen1); axis off; imshow(imagen1); %Presenta la imagen escudo = imread('unicundi.jpg'); %Leer imagen axes(handles.escudo); axis off; imshow(escudo); %Presenta la imagen handles.output = hObject;

vid_pid_norm = libpointer('int8Ptr',[uint8('vid_04d8&pid_000b') 0]); out_pipe = libpointer('int8Ptr',[uint8('\MCHP_EP1') 0]); in_pipe = libpointer('int8Ptr',[uint8('\MCHP_EP1') 0]); %calllib('libreria','MPUSBGetDLLVersion');

guidata(hObject, handles); function seguir_Callback(hObject, eventdata, handles) clear all; close all; clc; voltaje; %cierra las variables, limpia la ventana y llama al formulario voltaje Como resultado de la anterior accin, aparece el formulario denominado VOLTAJE. [conectado] = calllib('libreria','MPUSBGetDeviceCount',vid_pid_no rm) if conectado == 1 % Es importante seguir sta secuencia para comunicarse con el PIC: % 1. Abrir tuneles, 2. Enviar/Recibir dato. 3 Cerrar tuneles. [my_out_pipe] = calllib('libreria', 'MPUSBOpen',uint8 (0), vid_pid_norm, out_pipe, uint8(0), uint8 (0)); % Se abre el tunel de envio [my_in_pipe] = calllib('libreria', 'MPUSBOpen',uint8 (0), vid_pid_norm, in_pipe, uint8 (1), uint8 (0)); % Se abre el tunel de recepcin while (data_out (1) <= 254) % En caso de tener problemas de transmisin y recepcin incremente % Receive_delay_ms y SendDelay_ms (son los ltimos parmetros de % MPUSBWrite y MPUSBRead) hasta obtener mejores resultados calllib('libreria', 'MPUSBWrite',my_out_pipe, data_out, uint8(64), uint8(64), uint8(10)); % Se envia el dato al PIC [aa,bb,data_in,dd] = calllib('libreria', 'MPUSBRead',my_in_pipe, data_in, uint8(64), uint8(64), uint8(10)); % Se recibe el dato que envia el PIC data_out (1) = data_out (1)+ 1; % Se incrementa el primer dato del vector que se envia voltaje=double(data_in(2)); dato=single2double(informacion); guidata(hObject,handles); %guarda dato handles.dato=100.*handles.dato; %se parametriza la entrada del dato de 1 a 100%

Figura 9. Formulario voltaje para adquisicin de la informacin. El botn TOMAR DATO permite capturar la lectura del voltaje mediante comunicacin USB y visualizarlo en su respectivo Label. El cdigo fuente de esta funcin es: function crear_Callback(hObject, eventdata, handles) % hObject handle to crear (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) loadlibrary mpusbapi _mpusbapi.h alias libreria data_in = eye(1,64,'uint8'); % Se declara el vector de datos de entrada (el que se recibe del PIC) data_out = eye(1,64,'uint8'); % Se declara el vector de datos de salida (el que se envia al PIC) % TODOS LOS DATOS SE DECLARAN COMO UNIT8, de lo contrario no hay comunicacion

Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones


salida=5*(dato/100); %se busca que se encuentre el valor del voltaje entrante set(handles.text3,'String',salida); %se cambia a formato string muestra el valor de entrada pause (0.1); % En caso de que se desee ver la operacin ms lenta end calllib('libreria', 'MPUSBClose', my_in_pipe); % Se cierra el tunel de recepcin calllib('libreria', 'MPUSBClose', my_out_pipe); % Se cierra el tunel de envio Figura 11. PCB de Tarjeta de Adquisicion. end unloadlibrary libreria % Importante descargar la librera de memoria, de lo contrario genera errores

2.4 Implementacin del PCB de la Tarjeta de Adquisicin


Para la conexin USB del PIC al PC se utilizo la configuracin tpica que se ve en la Figura 10; ac se destaca la conexin del voltaje positivo, la tierra, el terminal D+ y D- del USB respectivamente.

Figura 12. Diagrama de circuito y montaje de conexin USB

3 Conclusiones
La compatibilidad universal de USB elimina los riesgos en las ofertas de una gama de productos, posibilitando a los fabricantes ( OEMs; Original Equipment Manufacturers ) la creacin de combinaciones innovadoras de PC, perifricos y software que cubran las necesidades de determinados segmentos de mercado . La norma USB simplifica los procesos de validacin y los test de compatibilidad de diferentes combinaciones de hardware y software, de forma que los OEM puedan desarrollar con anticipacin determinados segmentos de mercado y responder con ms agilidad a los mercados emergentes. Hoy en da los puertos serie y paralelo de los computadores personales se han ido reemplazando con puertos USB que son mucho ms flexibles y veloces. Las velocidades de transferencia logradas con dispositivos USB y los bajos costos llevan a pensar en su viabilidad en los sistemas de tiempo real

Figura 10. Configuracin de conexin USB Para el diseo del PCB del circuito utilizamos el software PCB WIZARD de Proteus 7.4. La Figura 11 y 12 muestran el diagrama de impresin del PCB y distribucin de elementos en el mismo.

Congreso 2010, Pgina 5

Referencias
[1] BARRAGAN GUERRERO, Diego Orlando. Manual de interfaz grafica de usuario en Matlab. Ecuador: Universidad Tcnica Particular de Loja., Escuela de Electrnica y Telecomunicaciones. 2007.

[4] POOL BALAM, Gabriel Jess. Transferencia y procesamiento de datos a alta velocidad, mediante el uso de Matlab, el puerto USB 2.0 y PIC 18F2455. Guatemala: Universidad Modelo., Escuela de Ingeniera, Maestra en Mecatrnica. 2009. .

[2] AXELSON, Janet L. USB complete, everything you need to develop custom USB peripherals. Tercera edicin. Estados Unidos: Lakeview Research. 2005. [3] GARCIA BREIJO, Eduardo. Compilador C CCS y simulador PROTEUS para Microcontroladores PIC . Mxico: Alfaomega, Marcombo ediciones tcnicas. 2008.

Copyright 2010. Ilber Adonayt Ruge Ruge, Fredy Alexander Crdenas, Ingrid Andrea Garzn: El autor delega a la Organizacin del Segundo Congreso Virtual de Microcontroladores la licencia para reproducir este documento para los fines del Congreso ya sea que este artculo se publique en el sitio web del congreso, en un CD o en un documento impreso de las ponencias del Segundo Congreso Virtual de Microcontroladores.

Das könnte Ihnen auch gefallen