Professional Documents
Culture Documents
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