CONTROLADORA POR PUERTO PARALELO
USO Y PROGRAMACION

En la edición anterior describimos el funcionamiento y armado de la controladora TR Brain que se conecta al puerto paralelo de una computadora y que permite manejar diferentes dispositivos electrónicos y para programar aplicaciones de robótica. En esta nota, veremos cómo se usan los conectores de la controladores y cómo se programa empleando el software gratuito que puede bajar de nuestra web: www.webelectronica.com.ar, haciendo click en el ícono password e ingresando la clave "brain".

INTRODUCCION

En la figura 1 podemos apreciar el detalle de todos los conectores de la TR-Brain, descripta en la edición anterior. Si lo desea, puede bajar sin cargo de nuestra web: www.webelectronica.com.ar, con la clave brain, toda la información necesaria para el montaje de esta controladora (circuito, lista de materiales, diagrama de circuito impreso, modo de uso, programas, etc.).

CN1 - Entrada de alimentación lógica (VDD)
En este conector debe aplicarse una tensión continua de entre 9 y 15V. La controladora consume como máximo 140mA, pero debe tenerse en cuenta que toda carga que sea alimentada desde la salida VCC de CN4, estará agregando carga a la fuente de alimentación VDD, por lo que deberá tenerse en cuenta a la hora de seleccionar la fuente de alimentación adecuada. En cualquier caso, esta no debería superar 1A, ya que es la corriente máxima tolerada por el regulador de voltaje VR1.

CN2 - Entrada de alimentación de potencia (VHH)
En este conector debe aplicarse una tensión continua de entre 6 y 15V. Esta tensión es quien alimentará los motores que se conecten a las salidas MI (CN7) y MD (CN8) y a los dispositivos (motores, relés, etc.) conectados a las salidas HRxx (CN6). También se dispone de una salida VHH en el conector CN4, esta salida se puede usar en conjunto con las salidas HRxx o bien para alimentar un circuito externo. La carga total que deberá soportar la fuente de alimentación VHH está dada por la suma de los dispositivos conectados a MI , MD , HRxx y a VHH de CN4.

CN3 - Puerto de comunicación a PC
Este puerto permite conectarse a la PC mediante el cable de comunicación adecuado (que también se describió en la edición anterior de Saber Electrónica). Una vez conectado permite descargar los programas a la TRBrain mediante el software de programación ProgBrain del cual hablaremos más adelante.

CN4 - Salida alimentación periféricos
En este conector se encuentran disponible salidas para poder alimentar circuitos y dispositivos externos.

GND y VHH son salidas directas desde la entrada de CN2, VHH sólo estará presente cuando la controladora esté encendida (llave ON/OFF en ON).

VCC es la salida regulada a 5V de la entrada VDD de CN1. Esta salida se encuentra regulada mediante VR1, el cual soporta una carga máxima de 1A. Cable aclarar que VR1 también provee de alimentación a la lógica interna de la TR-Brain, por lo que se recomienda no alimentar cargas superiores a 800mA con esta salida.

CN5 - Puerto de Entrada/Salida TTL
En este puerto se encuentran presentes los pines RB0 a RB5 y RA4 del PIC16F84A que posee incluido en la TR-Brain.

La conexión entre el conector CN5 y el PIC es directa, lo que significa que CN5 es una extensión de las salidas RB0, RB1, RB2, RB3, RB4, RB5 y RA4 del PIC 16F84A.

Los pines de este puerto serán entradas o salidas de acuerdo a cómo se programen los mismos en el PIC.

RB0 a RB5 son entradas/salidas estándar TTL. Cuando están configuradas como entradas, éstas poseen la facilidad de habilitar vía software una resistencia PullUp interna.

RA4 se comporta como un Smith-Trigger al funcionar como entrada y como Colector Abierto (open colector) cuando se configura como salida. En este caso no existe la posibilidad de habilitar un PullUp interno, por lo cual se deberá tener en cuenta al utilizar la misma.

CN6 - Puerto de Salida de Alta Potencia (500mA)
Este puerto permite el uso de los pines RB0, RB1, RB2, RB3, RB4, RB5 y RA4 del PIC 16F84A para el manejo de cargas de mayor consumo. Para esto se vale del uso de un conjunto Darlington (ULN2003) para amplificar las mismas.

El DipSwitch de 8 llaves ubicado justo arriba del conector CN6 se utiliza para conectar o desconectar las salidas del PIC mencionadas anteriormente al conjunto Darlington.

En la tabla 1 se puede apreciar la función de cada llave del DipSwitch. De esta forma, si por ejemplo quisiéramos utilizar RB0 y RB1 para manejar dos relés, las llaves 1 y 2 del DipSwitc deberían ponerse en posición ON, y las restantes en posición OFF. Cabe aclarar que la llave 8 no tiene función alguna y debe dejarse en OFF.

Es IMPORTANTE tener en cuenta que las salidas HRxx del conector CN6 son el reflejo amplificado de las salidas Rxx del conector CN5 (cuando la llave correspondiente del DipSwitch está en ON). Así mismo, no sería lógico ni recomendable que en el ejemplo anterior, se intentase usar a RB0 como una entrada si la llave 1 está en ON.

En la figura 2 se puede apreciar un ejemplo de conexión de distintos dispositivos al conector CN6.

CN7 y CN8 - Salidas a Motor Izquierdo y Derecho (MI y MD)
En CN7 y CN8 se pueden conectar motores de corriente continua (Motor DC). Estos motores son controlados mediante los H-Bridge BA6286 (IC4 - IC5 ), los cuales permiten el manejo de motores de 3V a 15V con un consumo máximo de 1A.

El arranque, parada y dirección de giro de los motores MI y MD son controlados directamente por el PIC 16F84A mediante RA0, RA1, RA2 y RA3.

En la tabla 2 se puede ver el método de control de ambos motores, en la misma se aprecia que RA0 y RA1 controlan el motor derecho (MD), mientras que RA2 y RA3 controlan el motor izquierdo (MI).

La velocidad de giro de los motores puede ser regulada independientemente mediante RV1 y RV2.

RV1 regula la velocidad del motor Izquierdo MI, mientras que RV2 regula la velocidad del motor derecho MD. En la figura 3 podemos ver la forma correcta de conectar un motor DC a los conectores CN7 y CN8.

CN9 - Entrada de sensores ópticos:
En esta entrada se conecta el sensor óptico reflectivo doble provisto con la TR-Brain. Este sensor es especialmente útil para diseñar robots para seguimiento de líneas.

La tabla 3 muestra cómo leer el estado de los sensores.

Botón de Reset
En la figura 1 se puede ver la ubicación correspondiente al botón de reset dentro de la TR-Brain. El botón de reset se utiliza para los casos en los que se desea reinicializar la TRBrain.

Esto puede ser debido a un error en el curso normal del programa o bien simplemente porque el proyecto así lo requiere. Al presionar y liberar el botón de reset, la TR-Brain se comporta como si hubiese sido apagada y vuelta a encender.

 
COMO PROGRAMAR LA CONTROLADORA
Para programar la controladora que estamos describiendo, es preciso contar con archivos expresados en lenguaje hexadecimal, tal como estamos acostumbrados al trabajar con microcontroladores PIC (si Ud. desea conocer cómo se trabaja con los microcontroladores PIC, puede bajar archivos sin cargo de nuestra web con la clave aiwa15).

El archivo Hexadecimal (.hex) a grabar debe ser formato Intel INHX8M. Este es el formato estándar generado por la herramienta de desarrollo MPLAB que puede descargarse gratis en el site de Microchip (http://www.microchip.com)

Con el desarrollo de la controladora TR-Brain (vea la edición anterior de Saber Electrónica) hablamos del software de programación ProgBrain, el cual le permitirá descargar sus programas hacia el PIC de la controladora (sin quitarlo de ella).

El programa puede bajarlo sin cargo, con la clave dada al comienzo de esta nota.

En la figura 4 se puede observar la pantalla correspondiente al ProgBrain. ProgBrain le permitirá Programar, Verificar y Borrar todos los programas que usted diseñe dentro de la memoria flash del PIC16F84A, que es parte de la controladora.

Para usar este programa, copie el archivo prograbrain.zip en el disco rígido de su PC, descomprímalo y luego ejecútelo.

Programar
ProgBrain verifica antes y después de grabar cada dirección. De esta forma se evita grabar el mismo dato ya grabado, prolongando la vida útil de la Flash Memory. Y luego realiza la verificación posterior al grabado para asegurarse que el dato ha sido grabado adecuadamente.

Verificar
Como se dijo en el punto anterior, ProgBrain realiza una verificación al grabar cada dirección, por lo tanto no es necesario ejecutar este procedimiento luego de cada programación. Esta función es más bien útil cuando no se está seguro de cuál es el programa que ha sido o tiene cargado actualmente en el PIC.

Borrar
Esta función es solamente necesaria cuando el PIC ha sido programado con código de protección (CP). En estos casos la única forma de regrabar el micro es efectuando un borrado general. Esta función borra la memoria de programa y la de datos.

Configurar
Esta opción le permite configurar las opciones de trabajo del PIC, esta configuración es grabada en el PIC al momento de la programación.

Las opciones posibles en el PIC-16F84A son:

  • Tipo de oscilador: esta opción está fija en XT (cristal) y no es posible modificarla, debido a que la TR-Brain ha sido diseñada utilizando como oscilador un cristal de 4MHz.
  • Power Up Timer: esta opción permite generar un pequeño retraso cuando el PIC sale del estado de reset. Es aconsejable poner esta opción en ON para permitir estabilizar las tensiones antes que el programa empiece a correr.
    Watchdog Timer: Esta opción permite activar el Watchdog Timer. Especialmente útil para implementar sistemas de autoreset.
  • Code Protect: Esta opción permite activar los bits de protección para evitar el copiado del programa. Una vez que se han activado, el programa grabado no puede ser leído y el PIC sólo podrá ser regrabado si antes se ha efectuado un borrado total. Esta opción no es muy útil en la TR-Brain y es recomendable dejarla en OFF. ProgBrain está preparado para leer la configuración directamente desde el archivo Hexadecimal (.hex), cuando ésta ha sido incluida en el código fuente. Como estándar PicBrain está seteado para tomar la configuración desde el archivo. Es posible de seleccionar esta opción para permitir establecer la configuración manualmente.

Pasar a Modo RUN
Este comando pondrá a la controladora TR-Brain en modo RUN, lo que hará que el programa cargado en la TR-Brain comience a ejecutarse.

Esta funcionalidad es muy útil cuando se desea verificar el programa sin tener que desconectar la controladora del cable de comunicación. Obviamente esta funcionalidad carece de sentido cuando la controladora está instalada en un robot que debe desplazarse.

Antes de utilizar esta opción asegúrese que la llave RUN/PROG esté en modo RUN. Recuerde apagar la controladora cada vez que cambie de posición la llave RUN/PROG.

Programando Paso por Paso
A continuación se detalla paso a paso cómo descargar el programa al PIC 16F84A de la TR-Brain:

  1. Seleccionar el puerto LPT a usar mediante el menú desplegable correspondiente. Si por algún motivo no se pudiese detectar el Hardware de la controladora TR-Brain, aparecerá un mensaje en rojo indicando el error y se bloquearán todos los controles hasta tanto no se resuelva el problema.
  2. Ingresar el archivo Hexadecimal (.hex) que contiene el programa a descargar. Puede usarse el botón BUSCAR para encontrar el archivo a grabar o bien escribirlo directamente en la ventana.
  3. Pulsar el botón CONFIGURAR para establecer la configuración deseada para el PIC (Watchdog, Power Up Timer, etc). Todas las configuraciones están por defecto, seteadas para detectar estos parámetros directamente desde el archivo hexadecimal (.hex), para que esto funcione se debieron haber colocado previamente en el código fuente, a fin de que el compilador genere el código necesario en el archivo hexadecimal. En ese caso este punto puede ser salteado y pasar directamente al punto siguiente.

    La opción para seleccionar el tipo de oscilador se encuentra deshabilitada debido a que la TR-Brain utiliza un oscilador a cristal de 4MHz. Por lo tanto cualquier otra opción daría como resultado un mal funcionamiento.
  4. Pulsar el botón PROGRAMAR para iniciar la descarga hacia la controladora. Aparecerá una ventana pidiendo confirmación de los parámetros que se usarán en la programación y, una vez aceptado, si todo ha funcionado correctamente, aparecerá una ventana indicando la finalización del proceso.

    Durante la programación, los LED's verdes correspondientes a RUN, Optico-I y Optico-D se encenderán (algunos parpadeos son normales). La función de estos LED's durante la programación es la siguiente:

RUN = Indica VPP en alto (13,5V)
Optico-D = Indica señal DATA OK
Optico-I = Indica señal CLOCK OK

Creemos que con esta información ya está en condiciones de realizar diferentes proyectos con la controladora descripta. En esta misma edición damos como ejemplo, la predisposición (programación) de esta controladora para el manejo de motores de corriente continua, le recomendamos que realice este proyecto. En próximas ediciones brindaremos otros proyectos con el uso de esta controladora.

 
De la redacción de Saber Electrónica
Sobre proyecto de www.todorobot.com.ar
FIGURA 1
 
FIGURA 2
 
FIGURA 3
 
FIGURA 4
 
TABLA 1
 
TABLA 2 - 3
 
 
 
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
PROMOCIONES
 
 
PROMOCIONES