Está en la página 1de 24

COMUNICACIN USB-HID CON

PROTON Y VISUAL BASIC


ENVIANDO DATOS
Sierra Arellanes Jacobo
Instituto Tecnolgico de Salina Cruz

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

1. TIPOS DE COMUNICACIN USB


Hoy en da es muy difcil encontrar una computadora personal que cuente con
puerto de comunicacin tipo serial (RS232) o paralelo (LPT), por lo tanto hay que
actualizar los medios de comunicacin y en vista que todas las computadoras
cuentan con puertos USB 2.0, se hace una introduccin a la comunicacin USB,
teniendo como conocimientos previos programacin de Microcontroladores PIC
(PROTON), hay tres maneras posibles de lograr dicho objetivo, las cuales son
USB-CDC, esta comunicacin es la ms sencilla pues emula un puerto serial
virtual el cual se concreta en el uso de un driver el cual debe ser instalado
cuando se desea realizar la comunicacin, es la ms lenta de las tres maneras, el
modo BULK es la manera ms veloz de realizar la comunicacin de datos
masivos, el cual tambin usa un controlador que se instala en la computadora y
finalmente la comunicacin en la cual se basa el presente manual, la
comunicacin USB-HID, este tipo de interfaz inicia su comunicacin de manera
automtica, este protocolo lo realizan las memorias USB, los ratones y los
teclados, entre otros que se instalan sin necesidad de driver especifico, para lograr
el objetivo se necesitan, como componentes mnimos:
PIC 18F2550, 18F4550, 18F2455 o 18F4455
Puerto USB 2.0
Oscilador de 48 MHz (20 MHz en este ejemplo)
Resistencias (una de 4.7 k y cuatro de 220 )
4 LED
Se necesita tener instalado de igual manera el software PROTON PDS,
EasyHID, Visual Basic y Proteus ISIS para lograr previamente la simulacin
necesara, cabe mencionar que primero se debe de instalar el plugin de Proteus
para poder simular el puerto USB, este proceso se detallar en las siguientes
paginas del manual.

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

2. CREANDO LA PLANTILLA EN EASYHID


Despus de haber instalado el software requerido, se abre el plugin de EasyHID
que

se

encuentra

en

la

siguiente

direccin

C:\Program

Files\ProtonIDE\Plugin\EasyHID al hacerlo se mostrar la ventana de la siguiente


figura.

Se rellenan los datos de Company Name y Product Name con los nombres del
proyecto deseado y siguiente, la prxima ventana se deja como esta.

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

Se pulsa siguiente y de igual manera no se modifican los valores establecidos y


nuevamente se pulsa siguiente

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

En la siguiente ventana que se abre se elige el Microcontrolador a usar, la ruta a


guardar y el software en el que se disear la interfaz.

Project Name: el Nombre del proyecto, con este nombre se reconocer y


guardara el proyecto, en sistema XP saldr un globo que diga, controlador TU
PROYECTO conectado correctamente, en seven de 32 solo se escuchar el
timbre de conexin.
Location: Elijes la ruta a guardar los archivos los cuales sern dos subcarpetas de
PROTON PDS y Visual Basic.
Microcontroller: Se elije el PIC con el que se desea trabajar, si es necesario en la
aplicacin se selecciona el uso de interrupciones.
Compiler: Se dezplega un men de opciones de los software disponibles, para
esta aplicacin visual BASIC.

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

Al pulsar siguiente se ejecuta la generacin de las plantillas y se busca la direccin


donde se guardaron las plantillas del diseo, en las cuales se encuentran dos
carpetas.

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

3. PROGRAMANDO EL PIC
Una vez creada la aplicacin de PROTON PDS se abre y se procede a realizar los
ajustes de acuerdo a nuestras necesidades, a continuacin se detallan algunas
partes del cdigo para encender 4 LEDs desde una aplicacin realizada en visual
BASIC (6 en este caso, puede ser 5 y 2010).

En los comentarios se logra apreciar detalladamente que hace cada lnea del
cdigo para el microcontrolador

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

Este es el lazo principal que realiza el programa, como ven es bastante sencillo
usando solo condiciones para cada caso de recepcin de datos.

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

Finalmente las sentencias que genera EasyHID para el manejo de los puertos, no
modifique nada, se compila el archivo y se genera automticamente las
extensiones necesarias para el correcto funcionamiento del dispositivo

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

Despus de compilar genera los archivos que se usarn, el .HEX y el .Bas para
realizar modificaciones futuras.

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

4. DISEO DE LA INTERFAZ EN VISUAL BASIC


El EasyHID genera automticamente varias extensiones, entre ellas la DLL
necesaria para poder comunicar el PIC que cabe recordar que cuando se genera
el cdigo pide los datos, los cuales son nicos (en este caso se utiliza el gratuito
que da por default EasyHID), en la figura siguiente se aprecian los archivos
generados.

Cuando se genera el archivo produce un formulario que no tiene las pestaas


acostumbradas, por lo cual recomiendo crear un nuevo formulario, dando click
derecho y agregar formulario, copiar todo el cdigo que por default esta se genero
y pegarlo en el nuevo formulario.

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

Para evitar errores se le pondr el mismo nombre que el formulario anterior o si


gustan, modificar el modulo con el nombre a su eleccin, ahora teniendo todo listo
se empieza con la programacin de la interfaz. Si hay poca familiaridad con estos
lenguajes se recomienda leer conceptos bsicos de Visual BASIC.

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

Como se apreci en la figura anterior la interfaz que se realizo es en base a 4


image y cuatro shapes, adems de un botn y un shape extra el cual indicara
el estado del puerto, para este caso se le dio un color obscuro y cambiara de color
cuando sea activado.

El cdigo que generado en la platilla se modificara de acuerdo a las necesidades


que se le quiera dar, para ello se expone a continuacin el cdigo de ejemplo.
Donde D1-D4 son los LED que se desean activar, los cuales son de tipo
booleano (0-1) para que cambien de estado de acuerdo a la pulsacin que se le
d, teniendo en cuenta que desde el inicio se debe de establecer su valor para
iniciar encendido o apagado el valor de las variables D1-D4, teniendo cuidado de
no modificar los parmetros establecidos los cuales estn comentados en letras
verdes

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

Para la programacin de los botones correspondientes que activaran o


desactivaran cada LED segn sea el caso.

Cada image tiene un cdigo correspondiente al valor del led, el funcionamiento


es bastante sencillo, si DX es falso entonces le da un valor a la variable LED,
depende de cada LED ser el dato enviado, invierte el valor actual de DX para que
cambie de estado y sea un control ON/OFF, cambia de color el shapeX
correspondiente y realiza una sentencia de caso contrario, ahora enva un dato
diferente y nuevamente cambia el estado de imageX y de color a shapeX para
darle un aspecto de activado o desactivado, se utilizo la instruccin vBGreen=

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

verde y la QBColor(8)= gris en tonos RGB para dar un aspecto mas agradable,
finalmente se guarda en Bufferout(x) el valor de LED y se envia

Para tener los valores iniciales ya sean en falso o verdadero de las variables a
usar es necesario usar el siguiente cdigo dndole doble click en el formulario.

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

Para dar el aspecto de un LED en la pantalla que diga conectado o desconectado


solo se implement el shape de color obscuro y se agregaron las siguientes
lneas en el lugar adecuado.

Finalmente para el botn salir se agrego esta parte de cdigo.

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

5. SIMULACIN EN PROTEUS ISIS


Antes de empezar a simular el circuito hay que abrir el puerto USB virtual de ISI,
para ello se va a inicio, todos los programas y busque la carpeta de instalacin de
Proteus, se busca el puerto virtual y se ejecuta

Una vez realizado este procedimiento se siguen los pasos que pide el instalador y
se empieza a disear el circuito correspondiente.

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

Se le carga el archivo .HEX generado y se simula, se escuchara como si se


conecta una memoria USB de manera fsica y se abrir la interfaz de USB virtual,
ahora

si

se

empieza

la

simulacin.

La

interfaz

indica

con

USB

DESCONECTADO.

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

Al iniciar la simulacin cambia de estado el shape y al leyenda a USB


CONECTADO

Al presionar el botn correspondiente se activa de manera adecuada.

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

Al activar todos se observa que funciona bien y es el momento de armarlo de


forma fsica para hacer HOLA MUNDO con USB-HID y PIC 18F2550, si no se
cuenta con este PIC puede ser remplazado solo seleccionndolo desde el
EasyHID y listo, el cdigo seguir siendo el mismo.

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

El archivo que contiene todo lo necesario para probar esta prctica fue hecho para
8 LED por eso tiene algunas lneas de cdigos de mas, as que hay que modificar
algunos datos y ya, est probado que todo funciona, para dudas y aclaraciones
consultar en correo o en la pgina http://protonbasic.wordpress.com/

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

Links de descarga de archivos, videos y programas para usar.


http://www.unrobotica.com/herramientas.htm
http://www.4shared.com/rar/QgkNmlQH/Manual_USB-HID.html
http://www.youtube.com/watch?v=HsZTeYEsnvU&feature=related

Jacobo Sierra Arellanes

protonbasic.wordpress.com

genius100405@hotmail.com

También podría gustarte