24
Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected] Sierra Arellanes Jacobo Instituto Tecnológico de Salina Cruz COMUNICACIÓN USB-HID CON PROTON Y VISUAL BASIC ENVIANDO DATOS

Manual Usb Hid

Embed Size (px)

Citation preview

Page 1: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

Sierra Arellanes Jacobo

Instituto Tecnológico de Salina Cruz

COMUNICACIÓN USB-HID CON PROTON Y VISUAL BASIC

ENVIANDO DATOS

Page 2: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

1. TIPOS DE COMUNICACIÓN USB

Hoy en día es muy difícil encontrar una computadora personal que cuente con

puerto de comunicación tipo serial (RS232) o paralelo (LPT), por lo tanto hay que

actualizar los medios de comunicación y en vista que todas las computadoras

cuentan con puertos USB 2.0, se hace una introducción a la comunicación USB,

teniendo como conocimientos previos programación de Microcontroladores PIC

(PROTON), hay tres maneras posibles de lograr dicho objetivo, las cuales son

USB-CDC, esta comunicación es la más 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 comunicación, es la más lenta de las tres maneras, el

modo BULK es la manera más veloz de realizar la comunicación de datos

masivos, el cual también usa un controlador que se instala en la computadora y

finalmente la comunicación en la cual se basa el presente manual, la

comunicación USB-HID, este tipo de interfaz inicia su comunicación de manera

automática, 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 mínimos:

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 simulación

necesaría, 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.

Page 3: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

2. CREANDO LA PLANTILLA EN EASYHID

Después de haber instalado el software requerido, se abre el plugin de EasyHID

que se encuentra en la siguiente dirección 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 próxima ventana se deja como esta.

Page 4: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

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

nuevamente se pulsa siguiente

Page 5: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

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

guardar y el software en el que se diseñará 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 conexión.

Location: Elijes la ruta a guardar los archivos los cuales serán dos subcarpetas de

PROTON PDS y Visual Basic.

Microcontroller: Se elije el PIC con el que se desea trabajar, si es necesario en la

aplicación se selecciona el uso de interrupciones.

Compiler: Se dezplega un menú de opciones de los software disponibles, para

esta aplicación visual BASIC.

Page 6: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

Al pulsar siguiente se ejecuta la generación de las plantillas y se busca la dirección

donde se guardaron las plantillas del diseño, en las cuales se encuentran dos

carpetas.

Page 7: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

3. PROGRAMANDO EL PIC

Una vez creada la aplicación de PROTON PDS se abre y se procede a realizar los

ajustes de acuerdo a nuestras necesidades, a continuación se detallan algunas

partes del código para encender 4 LED’s desde una aplicación realizada en visual

BASIC (6 en este caso, puede ser 5 y 2010).

En los comentarios se logra apreciar detalladamente que hace cada línea del

código para el microcontrolador

Page 8: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

Este es el lazo principal que realiza el programa, como ven es bastante sencillo

usando solo condiciones para cada caso de recepción de datos.

Page 9: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

Finalmente las sentencias que genera EasyHID para el manejo de los puertos, no

modifique nada, se compila el archivo y se genera automáticamente las

extensiones necesarias para el correcto funcionamiento del dispositivo

Page 10: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

Después de compilar genera los archivos que se usarán, el .HEX y el .Bas para

realizar modificaciones futuras.

Page 11: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

Page 12: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

4. DISEÑO DE LA INTERFAZ EN VISUAL BASIC

El EasyHID genera automáticamente varias extensiones, entre ellas la DLL

necesaria para poder comunicar el PIC que cabe recordar que cuando se genera

el código 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 pestañas

acostumbradas, por lo cual recomiendo crear un nuevo formulario, dando click

derecho y agregar formulario, copiar todo el código que por default esta se genero

y pegarlo en el nuevo formulario.

Page 13: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

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

gustan, modificar el modulo con el nombre a su elección, ahora teniendo todo listo

se empieza con la programación de la interfaz. Si hay poca familiaridad con estos

lenguajes se recomienda leer conceptos básicos de Visual BASIC.

Page 14: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

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

“image” y cuatro “shapes”, además de un botón 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 código que generado en la platilla se modificara de acuerdo a las necesidades

que se le quiera dar, para ello se expone a continuación el código 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 pulsación 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 parámetros establecidos los cuales están comentados en letras

verdes

Page 15: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

Para la programación de los botones correspondientes que activaran o

desactivaran cada LED según sea el caso.

Cada “image” tiene un código 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 envía 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 instrucción vBGreen=

Page 16: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

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 código dándole doble click en el formulario.

Page 17: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

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

líneas en el lugar adecuado.

Finalmente para el botón “salir” se agrego esta parte de código.

Page 18: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

Page 19: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

5. SIMULACIÓN 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 instalación 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 diseñar el circuito correspondiente.

Page 20: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

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

conecta una memoria USB de manera física y se abrirá la interfaz de USB virtual,

ahora si se empieza la simulación. La interfaz indica con “USB

DESCONECTADO”.

Page 21: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

Al iniciar la simulación cambia de estado el “shape” y al leyenda a “USB

CONECTADO”

Al presionar el botón correspondiente se activa de manera adecuada.

Page 22: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

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

forma física para hacer “HOLA MUNDO” con USB-HID y PIC 18F2550, si no se

cuenta con este PIC puede ser remplazado solo seleccionándolo desde el

EasyHID y listo, el código seguirá siendo el mismo.

Page 23: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

El archivo que contiene todo lo necesario para probar esta práctica fue hecho para

8 LED por eso tiene algunas líneas de códigos 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 página http://protonbasic.wordpress.com/

Page 24: Manual Usb Hid

Jacobo Sierra Arellanes protonbasic.wordpress.com [email protected]

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