Beruflich Dokumente
Kultur Dokumente
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.
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.
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 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
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.
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.