You are on page 1of 37

UNIVERSIDAD LAICA ELOY ALFARO

DE MANAB

FACULTAD DE INGENIERIA
ESCUELA DE INGENIERIA ELECTRICA

PROGRAMACION II
MANUAL DE VISUAL BASIC

PERTENECE:
Gutierrez Lino Jose Ivan

DOCENTE:
Ing. Washintong Garca, Mg

III SEMESTRE
MANUAL DE
COMUNICACIN
USB-HID CON
PROTON Y
VISUAL BASIC

Elaborado por: Jos Ivn Gutirrez
Lino












Ivan
[Escriba el nombre de la compaa]
[Seleccione la fecha]
TUTOR: Ing. Xavier Garcia.Mg
EIE - ULEAM
III SEMESTRE
PROGRAMACION II

ULEAM EIE










PRESENTACION




El presente documento se incluye a un manual de
procedimientos en los diferentes procesos aplicados en estos
programas Asimismo, describe las actividades permanentes
que desarrolla cada una de las principales acciones y
aplicaciones que contienen los programas de PROTON Y
VISUAL BASIC, tomando en cuenta que se utiliza la
comunicacin USB-HID para la respectiva elaboracin del
proyecto que se describe a continuacin.











ULEAM EIE




CONTENIDO





Introduccin


Tipos de comunicacin USB



Creando la plantilla en EASYHID



Programando el PIC



Proton PDS



Diseo de la interfaz en VISUAL BASIC




ULEAM EIE

INTRODUCCION

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


ULEAM EIE
Se necesita tener instalado de igual manera el software PROTON PDS,
EasyHID, Visual Basic y Proteus ISIS para lograr previamente la
simulacin necesaria, 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 pginas del manual.


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.




ULEAM EIE
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.



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


ULEAM EIE

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.



ULEAM EIE

Project Name: el Nombre del proyecto, con este nombre se reconocer y
guardara el proyecto, en sistema (ya sea cualquiera que tenga como
referente su computador).

Location: Elijes la ruta a guardar los archivos los cuales sern dos
subcarpetas de PROTON PDS y Visual Basic.

Microcontroller: Se elige 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.




ULEAM EIE
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.


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, pero antes de ello se dar una
breve introduccin sobre este software.



El PROTON PDS es un entorno de programacin basado
en un BASIC estructurado orientado a entrada y salida de
seales. La utilizacin de sencillas instrucciones de alto
nivel, permite programar los Microcontroladores para
controlar cualquier aplicacin llevada a cabo por un proceso. Las
instrucciones de PBASIC PROTON PDS permiten controlar las lneas de
(entrada /salida), realizar temporizaciones, realizar trasmisiones serie
asincrnica, utilizar el protocolo SPI, programar pantallas LCD, capturar
seales analgicas, emitir sonidos, etc. y todo ello en un sencillo entorno
de programacin que facilita la creacin de estructuras condicionales y
repetitivas con instrucciones como IF...THEN o FOR...NEXT y la creacin
de etiquetas de referencia.



ULEAM EIE
Algunas aplicaciones de los Microcontroladores
La nica limitante de los Microcontroladores es su imaginacin. La
facilidad de un puerto abierto de (entrada / salida), la capacidad de
evaluacin de seales para luego decidir una accin y poder controlar
dispositivos externos. Hacen que el microcontrolador sea el cerebro de
los equipos. Estos son algunos ejemplos de reas de aplicaciones:

Electrnica Industrial (Automatizaciones)
Comunicaciones e interfase con otros equipos (RS-232)
Interfase con otros Microcontroladores
Equipos de Mediciones
Equipos de Diagnsticos
Equipos de Adquisicin de Datos
Robtica (Servo mecanismos)
Proyectos musicales
Proyectos de Fsica
Proyectos donde se requiera automatizar procesos artsticos
Programacin de otros microcontroladores
Interfase con otros dispositivos de lgica TTL:

1. Teclado
2. Pantallas LCD
3. Protocolo de comunicacin: RS232, I2, SPI

ULEAM EIE
4. Sensores
5. Memorias
6. Real Time Clock (RTC)
7. A/D, D/A, Potencimetros Digitales

E/S de los Microcontroladores
La direccin de entrada y salida de un contacto dado est enteramente
bajo el control de su programa. Cuando un contacto es declarado como
una entrada de informacin, tiene muy poco efecto en los circuitos
conectados con l, con menos de 1 microamperio (uA) de consumo
interno.
Hay dos propsitos para poner un pin en modo de entrada de
informacin: (1) leer en modo pasivo el estado (1 o 0) de un circuito
externo, o (2) para desconectar las salidas que manejan el pin. Para que
el consumo de corriente sea l ms bajo posible, las entradas de
informacin deben siempre estar cerca de +5 voltios o cercano a la
tierra. Los pines no utilizados en sus proyectos no se deben dejar libres
en modo de entrada. Los pines no usados deben ser declarados como
salida aunque no estn conectados; esto es para evitar que las entradas
estn interpretando el ruido externo como seales lgicas.
Cuando un pin esta en modo de salida, internamente est conectado a la
tierra o +5 voltios a travs de un interruptor muy eficiente del circuito
CMOS. Si se carga ligeramente (< 1mA), el voltaje de la salida estar
dentro de algunos mili voltios cercanos de la fuente de alimentacin
(tierra para 0; +5V para 1). Cada pin puede manejar unos 25 mA. Pero
Cada puerto de 8 pines no debe exceder de los 50 mA con el regulador
externo; los pines de RB0 al RB7 conforman un Puerto B de 8 BITS del
PIC 16f877A como ejemplo.

ULEAM EIE
Una vez seleccionado el pic con el que se va a trabajar aparecer en la
seccin de Code Explorer la carpeta con sus caractersticas de operacin
obteniendo informacin cuando se abre la carpeta del pic seleccionado
esto es aplicable para todos.
Device 16F877A
Device 16F84A
Device 18F2550
Configuracin del oscilador: Para operar con un oscilador externo se
utiliza el comando XTAL=x, siendo x el rango de trabajo del oscilador
por ejemplo:

XTAL=4 ; Oscilador de 4 MHZ
XTAL=8 ; Oscilador de 8 MHZ


Definicin de salidas: Se utiliza el comando Symbol precedido del alias y
del pin del pic a utilizar por ejemplo:

Symbol LED=PORTD.0
Symbol SW1 = PORTB.4

Retardos: Esta funcin realiza retardos segn el nmero de ciclos de
instruccin especificado en los valores posibles van desde 1 a 255. Un
ciclo de instruccin es igual a cuatro periodos de reloj.

ULEAM EIE

DelayMS time

Esta funcin realiza retardos del valor especificado en time. Dicho valor
de tiempo es en milisegundos y el rango es 0-65535 sirve para obtener
retardos ms largos as como retardos variables.

Ejemplos:

DelayMS 500 ' Esperar 500ms
DelayMS 1000 ' Esperar 1segundo

DelayUS time

Esta funcin realiza retardos del valor especificado en time. Dicho valor
es en microsegundos y el rango va desde 0 a 65535.

Ejemplos:

DelayUS 500 ' Esperar 500Us
DelayUS 1000 ' Esperar 1ms

High: Sirve para colocar el pin a uno lgico es decir en ON, ejemplo:

ULEAM EIE

High LED
High PORTD.0

LOW: Sirve para colocar el pin a uno cero lgicos es decir en OFF,
Ejemplo:

Low LED
Low PORTD.0

GoTo: comando para crear un bucle cerrado y continuacin del
programa

Nuestro primer programa quedara as:

Titilar un led por el puerto D del pic 16f877A cada 500 msg

Device 16F877A
XTAL=4 ; Oscilador de 4 MHZ
Symbol LED=PORTD.0
INICIO:
High LED

ULEAM EIE
DelayMS 500
Low LED
DelayMS 500
GoTo INICIO

Bien vamos con el segundo proyecto en proton con el comando:

ALL_DIGITAL = True ' Coloca todo los pines como digitales

Tambin de utilizan los condicionales de pbp IF , THEN , ELSE , ENDIF

IF ...THEN
IF Comp { AND/OR Comp ... } THEN Label
IF Comp { AND/OR Comp ... } THEN
Declaracin
ELSE
Declaracin
ENDIF

Efecta una ms comparaciones .Cada trmino Comp puede relacionar
una variable con una constante otra variable e incluye uno de los
operadores listados anteriormente.

ULEAM EIE

IF ... THEN evala la comparacin en trminos de CIERTO o FALSO .Si lo
considera cierto , se ejecuta la operacin posterior al THEN . Si lo
considera falso , no se ejecuta la operacin posterior al THEN .Las
comparaciones que dan 0 se consideran falso .Cualquier otro valor es
cierto .Asegurese de usar parntesis para especificar el orden en que se
deben realizar las operaciones .De otra manera , la prioridad de los
operadores lo determina y el resultado puede no ser el esperado .

IF..THEN puede operar de dos maneras. De una forma, el THEN en un
IF..THEN es esencialmente un
GOTO. Si la condicin es cierta, el programa ir hacia la etiqueta que
sigue al THEN. Si la condicin es falsa, el programa va a continuar hacia
la prxima lnea despus del IF..THEN. Otra declaracin no puede ser
puesta despus del THEN; sino que debe ser una etiqueta.

If LED = 1 Then alarma

si el LED esta a uno logico(1), salta a la etiqueta alarma

En la segunda forma, IF..THEN puede ejecutar condicionalmente un
grupo de declaraciones que sigan al THEN. Las declaraciones deben
estar seguidas por un ELSE o un ENDIF para completar la estructura.

If LED_1 = 0 Then ' Chequea estado del Led
LED_1 = 1 'Invierte estado del Led

ULEAM EIE
Else
LED_1 = 0
EndIf

si el valor de LED no es cero logico entonces establecer y terminar el
concicional .

Operaciones lgicas bsicas

Existen 3 operaciones lgicas llamadas: AND, OR y NOT.

1. AND esta funcin es verdadera cuando todas sus entradas son
verdaderas. Y es falso cuando cualquiera de sus entradas son falsas. Se
interpreta como la multiplicacin binaria.
2. OR esta funcin es falsa cuando todas sus entradas son falsas. Y es
verdadera cuando cualquiera de sus entradas sea verdadera. Se
interpreta como la suma binaria.
3. NOT es la negacin del resultado si es verdadero lo convierte en falso.
Si es falso lo convierte en verdadero.

Estas son las 3 operaciones fundamentales en la lgica binaria, a partir
de estas funciones se derivan otras ms que son las combinaciones de
las 3 funciones bsicas.


ULEAM EIE
Formato de conversin numrica del PROTON PLUS DNS

El editor PROTON PLUS DNS utiliza smbolos para identificar los
distintos sistemas numricos. Los nmeros hexadecimales se
representan con el signo de moneda ($), los nmeros binarios con el
smbolo de porcentaje (%), los caracteres ASCII encerrados entre
comillas (") y los nmeros decimales de forma directa. Vea el siguiente
ejemplo:

75 Decimal
%01001 Binario
$65 Hexadecimal
"A ASCII "

Las 3 instrucciones siguientes contienen el mismo significado:

PORTB = 14
PORTB = $E
PORTB = %1110

Manejo de lcd con proton plus ide

Device = 16F877

ULEAM EIE
XTAL = 4
LCD_DTPIN = PORTD.4
LCD_RSPIN = PORTD.2
LCD_ENPIN = PORTD.3
LCD_INTERFACE = 4
LCD_LINES = 2
LCD_TYPE = 0
ALL_DIGITAL = True

DelayMS 150
Cls

Main:

Print At 1,1, "TUTO PROTON PLUS"

While 1=1
Wend





ULEAM EIE
CONFIGURACION OSCILADOR EXTERNO EN PIC BASIC DEL PIC 16F88

El primer paso es elegir en PIC SIMULATOR IDE, desde el men
"Opciones" -> "Select Microcontroller", el microcontrolador PIC16F88.
Luego, debemos configurar los bits correspondientes. Lo destacable por
ahora de esta configuracin es que estamos dejando la memoria (FLASH
y EEPROM) sin proteccin, que el pin RESET se va a comportar como I/O
y que usaremos como oscilador el oscilador interno INTRC. En el caso
que nos atae utilizaremos el oscilador interno de este PIC ya que es
muy completo y estable. Cuando digo completo es porque nos permite
trabajar a varias frecuencias distintas entre ellas a 4Mhz y 8Mhz. Y lo
mismo que para el WDT, hay que terminar de configurarlo desde
nuestro cdigo fuente.

REGISTRO PARA CONFIGURAR OSCILADOR INTERNO DEL PIC 16f88

Para configurar la frecuencia de trabajo del Oscilador Interno del PIC
16f88 solo hay que cambiar los bits 4, 5 y 6 del registro OSCCON. Se
deben cambiar los bits que corresponden por el valor al que se quiera
hacer trabajar al oscilador interno, por cierto se pueden poner en hex. O
en binario (%01000110). Adems se tienen que configurar los bits en
Options- Configure Bits del PIC simulador ide., y poner que se va a
trabajar con el oscilador interno: OSCILLATOR SELECTION: INTOSC. En
documento anexo PDF esta la explicacin de los Bits del registro
OSCCON.

Un ejemplo de un programa de parpadeo de un led, configurando el
oscilador interno.

ULEAM EIE

AllDigital
OSCCON = %%01100110 'Se configura reloj interno a 4Mhz
TRISB = 0

inicio:

PORTB.0 = 1
WaitMs 500
PORTB.0 = 0
WaitMs 500

Goto inicio










ULEAM EIE
PROGRAMACION DEL PIC 18F2550 PARA SU RESPECTIVO
FUNCIONAMIENTO EN VISUAL BASIC



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




ULEAM EIE





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


ULEAM EIE


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.


ULEAM EIE


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








ULEAM EIE



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.


ULEAM EIE


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 gener y pegarlo en el nuevo formulario.



ULEAM EIE


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.




ULEAM EIE


Como se apreci en la figura anterior la interfaz que se realizo es en
base a 4 button y cuatro Ovalshapes, adems de dos button y un
textbox extra el cual indicara el estado del puerto.

ULEAM EIE


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 B1-B4 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 B1-B4



ULEAM EIE

Para la programacin de los botones correspondientes que activaran o
desactivaran cada LED segn sea el caso.



Cada button 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 OvalshapeX para darle un aspecto de
activado o desactivado, se utilizo la instruccin Color.GreenYellow

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.




ULEAM EIE







ULEAM EIE







ULEAM EIE





6

ULEAM EIE










ULEAM EIE
BIBLIOGRAFIA CITADA O CONSULTADA

http://sabus.usal.es/pdf/manual_ref.pdf
http://www.forosdeelectronica.com/f24/tutorial-manejo-
proton-ide-27932/
Jacobo Sierra Arellanes protonbasic.wordpress.com
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
Instituto Tecnolgico de Salina Cruz
http://www.ucontrol.com.ar/forosmf/programacion-en-
basic/comunicacion-usb-clase-cdc-con-proton-y-visual-basic-
2010/
http://www.conductitlan.net/psicologia_organizacional/eje
mplo_manual_procedimientos.pdf

ULEAM EIE
http://es.scribd.com/doc/185728450/40/Botone-de-
comando-Command-Button
http://www.slideshare.net/yolyrojas/ejercicios-visual-
basic-7299885
http://www.solodrivers.com/manuales/programacion_visu
albasic18
http://www.slideshare.net/lcahuich/command-button-vb-
presentation
http://www.recursosvisualbasic.com.ar/htm/tutoriales/con
trol_commandbutton.htm
www. proteus . com /
www.microchip.com/ pic /
www. pic eventos.com
http://www.develotech.net/Archive/Circuits/Docs/microch
ip%20refs/EasyHID%20USB%20Code%20Generator.htm
Swordfish PIC BASIC
Crownhill PROTON Development Suite

You might also like