Sistema de Control de Dispositivos Sobre TCP/IP e Infrarrojo (página 3)
Enviado por Diego G. de Le�n Cenoz
4 Infrarrojo
4.1 Características
¿Qué es el infrarrojo?
La radiación infrarroja o radiación térmica es un tipo de radiación electromagnética de mayor longitud de onda que la luz visible, pero menor que la de las microondas.
Consecuentemente, tiene menor frecuencia que la luz visible y mayor que las microondas.
El infrarrojo es una radiación de energía con una frecuencia por debajo de la sensibilidad de nuestros ojos, de modo que no podemos verla. Aunque nosotros no podemos ver frecuencias de sonido, sabemos que existen ya que podemos escucharlas.
A pesar de que no podemos ver y oír el infrarrojo, podemos sentirlo a través de sensores de temperatura de la piel.
Luz Infrarroja Visible Luz Ultravioleta
El infrarrojo en electrónica.
El infrarrojo es muy utilizado en electrónica ya que es fácil de generar y no sufre interferencias electromagnéticas, por ello es que se utiliza en comunicación y control.
Pero no es perfecto, algunas otras emisiones de luz pueden contener también infrarrojo ( un ejemplo claro es el sol) y por ello pueden interferir en la comunicación. Hay muchas cosas que pueden generar infrarrojo, como todo lo que emita calo ( por ejemplo, el cuerpo, lámparas, hornos, el motor de un auto, rocas, etc)
Para obtener una buena comunicación usando infrarrojo y evitar la interferencia de señales no deseadas, es necesario el uso de un código que le pueda decir al receptor cual es el dato real transmitido, y cual es el generado por el ambiente que lo rodea. Como una analogía viendo en la noche el cielo, tu puedes ver cientos de estrellas, pero puedes distinguir a lo lejos si hay un avión con una luz intermitente. Esa luz intermitente es el código que nos alerta.
Similar al avión en el cielo de la noche, en la habitación donde el equipo de música esta colocado puede tener cientos de fuentes de infrarrojo, nuestro cuerpo, las lámparas, inclusive la taza caliente de té.
Una forma de evitar todas esas fuentes es generando un código. Los controles remotos utilizan el infrarrojo pulsante en una cierta frecuencia. Los módulos receptores de infrarrojo de un equipo de audio o TV, sintonizan en esta frecuencia e ignoran todas las demás señales infrarrojas que son recibidas.
La mejor frecuencia para esta función esta entre 30 y 60khz, las mas usada esta alrededor de los 36khz. Esto funciona exactamente como un sintonizador de radio, en una estación especifica.
Tu taza de té caliente genera infrarrojo pero no a 36khz, es una emisión infrarroja plana, por eso es ignorada por el receptor infrarrojo del equipo de audio.
Por todo esto el control remoto utiliza los 36khz ( o aproximados) para transmitir la información. La luz infrarroja emitida por los diodos IR, está pulsando a 36000 veces por segundo cuando se transmite un nivel lógico "1" y silencio para un "0". El generar 36khz de una señal infrarroja pulsante es muy fácil, más difícil es recibir e identificar esa frecuencia.
Esta es la razón por la cual algunas compañías producen los receptores infrarrojos conteniendo los filtros, circuitos decodificadores y modificador de salida que envía una onda cuadrada, significando la existencia o no de una señal entrante de 36khz infrarroja pulsante; esto significa que esas pequeñas unidades que hay en plaza tienen un pin de salida que se pone en alto (+5v), cuando hay una señal pulsante de 36khz, y en bajo (0v) cuando no hay señal en esta radiación.
Una onda cuadrada de aproximadamente 27 microsegundos inyectada en la base de un transistor puede conducir un led infrarrojo para transmitir esta onda de luz pulsante.
Si se puede prender y apagar a esa frecuencia en el transmisor, la salida del receptor va a indicar cuando el transistor esta prendido o apagado.
Esos emuladores infrarrojos tienen inversión lógica en su salida, cuando el burst de infrarrojo es captado, este conduce la salida a un nivel bajo (nivel lógico "1". Para evitar que el control remoto de Philips cambie de canales en un Panasonic, ellos usan diferente codificación en el infrarrojo aunque todos ellos usan básicamente la misma frecuencia de transmisión, de 36 a 50 Khz.
Por ello todos usan una combinación diferente de Bits, o difieren en como codifican los datos transmitidos, para evitar la interferencia. Han sido creados algunos estándares, de forma ilustrativa vamos a mostrar uno usado por Philips, el estándar el RC5 que utiliza longitud de bit fija ( código Manchester)
Cada vez que tu presionas el botón en el control remoto Philips, envía un tren de 14 bits, 1.728 MS por bit, todo el tren se repite cada 136ms si mantienes el botón presionado. Cada bit es dividido en dos mitades. La mitad de izquierda y de derecha tiene niveles opuestos, si el bit que es transmitido es "1", a su lado izquierdo es cero, mientras el lado derecho es uno. Si el bit transmitido es "0", su el lado izquierdo es uno mientras que el derecho es cero.
Esto significa que la segunda mitad del bit tiene el mismo valor que el bit que es transmitido, como se puede ver en el lado derecho del bit como "on", sombreado en azul, significa que el bit transmitido =1.
Si queremos medir el nivel lógico correcto directamente de la salida del receptor, se deberá medir la primera mitad del bit.
La interpretación correcta es que cambia de nivel exactamente a la mitad del tiempo del bit. A la salida de un receptor de infrarrojo un bit "0" cambia de nivel bajo a alto, mientras que el bit "1" cambia de nivel alto a bajo.
Hay una mínima cantidad de pulsos entrantes de 27 microsegundos en el demodulador el cual debe interpretar si esta a la frecuencia correcta y luego enviar su salida. La cantidad de pulsos utilizados en un control remoto Philips son 32 pulsos por cada mitad del bit, 64 pulsos por bit. Así que, un bit "0" al ser transmitido, significa 32 pulsos cuadrados de 27 micro segundos cada uno, luego 32 de 27 microsegundos de silencio.
Pasaremos a decodificar la recepción de una señal en la salida del demodulador. Se puede observar la dirección del cambio a la mitad del bit, si desciende significa bit "0", si asciende significa bit "1". Pero es fácil muestrear el medio de la primera mitad del bit, así directamente nos muestra cual es el estado del bit, como lo veremos mas a delante. El control remoto Philips envía 14 bits en secuencia como se puede ver a la derecha. Podemos ver los 14 bits del sistema RC-5. El bit en rojo es nivel "on", mientras que el azul es "off".
Los primeros dos bits, #1 y #2, se llaman calibración ACG.
Ellos son niveles "on" y su propósito es calibrar el control de ganancia automático del receptor de infrarrojo.
En los controles remotos Philips, el bit #3 es el bit "check", siempre que presionamos un botón del control, inclusive presionando repetidamente el mismo botón, este bit cambia de estado. Esta facilidad es interesante. Supongamos que se presiona el numero 1 en el control ( intentando seleccionar la pista 1 en el equipo) y presionándolo por dos segundos, luego con la otra mano bloqueamos la señal infrarroja. El equipo recibirá dos trenes de pulso, generados por tu mano interrumpiendo en dos un largo tren. Otro sistema podría interpretar la transmisión de dos botones 1 seleccionando la pista 11, pero no pasa en los sistemas Philips. Este bit cambia de estado cada vez que se presiona un botón, así que si se bloquea la señal con la mano no cambia ese bit, así que el equipo entenderá que continua el mismo botón presionado. Para seleccionar la pista 11 debemos realmente presionar dos veces el 1 repetidamente. Los siguientes 5 bits, #4 a #8, son usados para el "sistema de dirección", o para identificar que clase de dispositivos podría haber ejecutado el bit "comando". El bit #8 es el bit menos significante..
Mostramos un ejemplo de las formas de onda en la salida del Receptor (14bits)
Los pulsos son:
-Rojos son los pulsos de AGC ( Control Automático de Ganancia)
-Azules son los Check Bit
-Blanco son las direcciones
-Verdes son los comandos
Codificación empleada por Sony (RECS80):
Sony emplea una modulación por anchura de pulso. Considerando un tiempo mínimo T de 600 microsegundos, cada bit de información esta codificado mediante un nivel bajo y un nivel alto: Un "1"esta codificado con un nivel bajo y alto de duración T respectivamente, y un "0" esta codificado con un nivel bajo de duración T y un nivel alto de duración 2T. Mientras la señal esta a nivel alto, se esta transmitiendo la portadora de 36khz y por tanto la radiación infrarroja.
La trama de bits generada al pulsar una tecla en el mando tiene el siguiente formato: Primero se transmite una cabecera, que consiste en el llamado bit START con una duración a nivel alto de 3 T (1800 microsegundos); seguidamente se transmiten 12 bits ( comenzando por el LSB) de los cuales los 7 primeros corresponden al código de COMANDO o funcion de la tecla pulsada, y los 5 restantes a la dirección del dispositivo.
En la figura anterior el comando es 16h y la dirección es 02h. Si se mantiene pulsada la tecla, la trama se repite periódicamente cada 25ms.
La detección de la señal utilizando un modulo detector de infrarrojos genérico o un fotodiodo con una resistencia pull-up conectada a +Vcc, hace que la señal se invierta y por tanto permanezca en reposo a nivel alto cuando no existe emisión IR.
Para nuestro emisor utilizaremos un código similar al RECS80 y esta dado por el circuito integrado MC145026, el código enviado es recibido por un modulo receptor de infrarrojos y decodificador por el circuito integrado decodificador MC145027, ambos son de Motorola.
5 Sistema WEB en el proyecto
5.1 World Wide Web
A continuación daremos un pequeño resumen sobre como funciona el sistema web.
El sistema WWW (World Wide Web) fue creado en los años 80 con el propósito de compartir información a través de la internet. Consiste en una arquitectura Cliente–Servidor, en la que el servidor es quien almacena la información que los usuarios pueden consultar a través del software cliente (Navegador Web). Inicialmente la información consistía solo en páginas de texto enriquecido e imágenes, escritas en lenguaje HTML (HiperText Markup Language).
Este lenguaje, además de texto enriquecido (tamaños de letra, colores, tablas, etc), tambien nos permite definir links o enlaces. Estos consisten en una porción de texto que tiene la característica de enviarnos a otra página (otra dirección web), mediante un click sobre éste. El servidor aloja estas páginas como archivos dentro de su unidad de almacenamiento. Cuando el usuario desea visitar un sitio web, le indica la dirección web, o URL, al navegador. Mediante esta dirección, el cliente sabe a qué servidor conectarse, y qué archivos descargar de éste, para mostrar la página.
5.2 CGI-BIN
La web funcionó por años como un medio para compartir información escrita, hasta que surgió la idea del comercio via internet. A partir de este momento surgieron cosas como consultar listas de precios, stock, enviar números de tarjeta via web, consultar estado de cuenta bancaria, etc.
Si todo esto tuviera que hacerse mediante el sistema web recien descrito, tendría que haber una persona modificando al instante los archivos que el servidor sirve a sus clientes; una tarea nada práctica y muy estresante. Así fue que surgió un sistema en el que el servidor no trabaja solo con archivos de texto estáticos, sino que también puede interactuar con programas que corren en el servidor. Estos programas pueden consultar bases de datos, hacer cálculos, etc.
De este modo surge el sistema de CGI-BIN (Common Gateway Interface).
5.3 El proyecto y el WWW
Dado que un servidor web puede interactuar con otros programas que corren en esa computadora, es posible escribir un programa capaz de acceder al puerto paralelo de ésta, y comunicarse via web con un cliente para mostrar su estado o recibir instrucciones.
Para el proyecto fue utilizada como servidor, una computadora con sistema operativo linux, donde se instaló un software servidor web (thttpd), y se programó una aplicación que interactúa con éste, nuestro CGI-BIN.
Éste consiste en un programa escrito en lenguaje C, que accede al puerto paralelo, y un sistema de scripts en lenguaje BASH, que genera una interfaz web.
El servidor buscara un servidor DHCP el cual le asignara una ip para ser integrante de la red la cual estara conectado.
Seguidamente mostramos la rutina de programación que implementamos para la programación del web remoto, el lenguaje utilizado fue C para Linux. Esta rutina leera el puerto y escrbira sobre el mismo de acuerdo a la orden del usuario en el servidor.
Rutina 1
———————————————————————————–
#define PUERTO 0x378
#include <stdio.h>
#include <sys/io.h>
#include <string.h>
main (int argc, char **argv) {
char salida;
char val;
int i;
if ((ioperm(PUERTO, 1, 1)) == -1) return 1;
switch (argc) {
case 1:
/* llamado sin argumentos */
/* imprime el status del puerto */
val = inb(PUERTO);
for (i = 0; i < 8; i++) {
if (val & ( 128 >> i)) printf("1 ");
else printf("0 ");
}
printf("n");
return 0;
case 3:
/* Recibe 2 argumentos… estos deben ser un numero
de 0 a 7, indicando el bit que se activara o
desactivara, y la accion (on, off) */
salida = inb(PUERTO);
val = 1 << atoi(argv[1]);
if (!strcmp ("on", argv[2])) {
salida = salida | val;
printf("%in", salida);
}
else {
salida = salida & (~val);
printf ("%in", salida);
}
outb(salida, PUERTO);
return 0;
default:
fprintf(stderr, "Mal uso de los argumentosn");
return 1;
}
/* nunca llega aca, pero lo implementamos igual */
return 0;
}
Rutina 2
———————————————————————————–
#!/bin/sh
# Esta funcion cumple la tarea de imprimir el header
# necesario por los CGI BIN
function cgi_header () {
echo "Content type: text/html"
echo
}
# Esta funcion crea la interfaz que muestra el estado del puerto
# y proporciona los links para manejarlo
function iface_puerto () {
echo "<table border=0 cellpadding=3 cellspacing=1>"
# Doy una etiqueta a las columnas
echo -e "<tr>"
echo -e "<td bgcolor="#c0c0c0"> # </td>"
echo -e "<td bgcolor="#c0c0c0"> Estado </td>"
echo -e "<td bgcolor="#c0c0c0"> Acciones </td>"
echo "</tr>"
PN=7
# pport devuelve por defecto el estado de cada bit del puerto
# paralelo, separados por espacios.
for M in $(/home/helinet/pport); do
echo -e " <tr>"
echo -e " <td bgcolor="Blue">$PN</td>"
if [ $M = "0" ]; then
echo -e "<td bgcolor="Red" align="Center">$M</td>"
echo -e "<td><a href="cgi-prueba.cgi?on=$PN">Encender</a></td>"
else
echo -e "<td bgcolor="Green" align="Center">$M</td>"
echo -e "<td><a href="cgi-prueba.cgi?off=$PN">Apagar</a></td>"
fi
echo "</tr>"
# Resto desde 7 hasta 0 por cada bucle, para saber cual bit
# manejar.
PN=$(expr $PN – 1)
done
echo "</table>"
}
## Comienza programa principal
# Separador de argumentos de un CGI BIN
IFS=&
# Interpreto los argumentos y llamo a las funciones
# apropiadas
for ARG in $QUERY_STRING; do
case $ARG in
on*)
# Esta funcion envia un uno binario al bit del
puerto
PORT=$(echo $ARG | cut -d'=' -f 2)
/home/helinet/pport $PORT on 2>&1 >/dev/null
;;
off*)
# Esta funcion envia un cero al bit del puerto
PORT=$(echo $ARG | cut -d'=' -f 2)
/home/helinet/pport $PORT off 2>&1 >/dev/null
;;
esac
done
cgi_header
echo "<html>"
echo "<title>Control remoto WEB</title>"
echo "<body bgcolor="#e0e0e0">"
echo "<center>"
echo "<h1>Control Remoto Web</h1>"
echo "<table border=0 width=450 cellpadding=5>"
echo "<tr><td colspan=2>"
echo "<hr>"
echo "</td></tr><tr><td>"
iface_puerto
echo "</td><td valign="Top">"
echo "<p align="Justify">"
echo "Haga click en los links al lado de cada puerto. La columna "Dispositivo" indica el estado de cada uno de los 4 puertos disponibles."
echo "</p>"
echo "</td></tr><tr><td colspan=2>"
echo "<hr>"
echo "<font face="Helvetica" size=1>"
echo " Proyecto Final CIT,2006"
echo "</font>"
echo "</td></tr></table>"
echo "</center>"
Descripción del Emisor
6.1 Funcionamiento
Nosotros pensamos o creemos darle mas importancia al puerto paralelo, ya que según lo que hemos consultado podemos manejar dispositivos que son diferentes a un computador, como por ejemplo el manejo de un emisor de infrarrojos.
En la salida de nuestro puerto vamos a tener voltajes tipo TTL con señales no balanceadas, por lo que estamos propensos a recibir ruido y por ende provocar errores.
En esta interfaz son utilizados cables gemelos de 12 hilos que se utilizan para conectar unidades de almacenamiento, por ejemplo, discos duros, lectoras de cd, etc.
También podríamos haber elegido la manera de conectar el emisor directo al puerto paralelo externo, pero por un tema de espacios y con la idea de reducir tamaño elegimos implementarlo en el interior del gabinete.
En este diseño tomamos en cuenta, que al ser una computadora que se armo con piezas que teníamos al alcance, tuvimos la precaución de proteger nuestro diseño de las tensiones parásitas, que entran dentro de los 5v TTL aproximadamente.
Podremos medir incluso hasta 3,6V que aún puede ser considerado como un 1 También otra razón por la cual elegimos no usar cables largos es porque se podría encontrar un voltaje menor y nuestro circuito lógico al cual estamos controlando lo interpretaría de forma errónea. Si se llega a medir un voltaje inferior de 3,6V, será necesario verificar nuestro puerto si está activado o presenta un error.
Por esto es recomendable conectar un cable corto y añadir un circuito buffer ( como por ejemplo el 74LS244, ya que solo aporta corriente y estabiliza voltajes.
Es necesario tener en cuenta que esta interfaz, como los demás componentes de la computadora son muy delicados, se debe tener mucho cuidado al conectar cualquier cosa. Nuestro emisor será alimentado a partir de la tensión de fuente del PC, o sea, 5V.
Esta interfaz utiliza recursos del sistema que en muchos equipos están estandarizados, así que de forma predeterminada el puerto LPT1 utiliza la interrupción IRQ7.
Cuando la CPU (Unidad Central de Proceso) detecta una petición de interrupción (IRQ) detiene (interrumpe) su estado actual para procesar la interrupción específica del dispositivo que ha generado dicha interrupción. Del puerto paralelo utilizaremos los bits
D0, D1, D2, D3, y el Pin 1 (Strobe). La comunicación con el emisor será unidireccional, o sea, hacia el buffer los BIT serán transmitidos unidireccionalmente. Mostramos en la siguiente figura un esquema de las conexiones entre el puerto paralelo, buffer y codificador.
Interfaz Puerto Paralelo, Buffer y Codificador
A continuación describiremos el codificador, que por decirlo de alguna manera, será el principal componente en esta etapa.
6.2 Codificador
Integrado MC145026
Este integrado es un decodificador diseñado por motorola. Este transmite simultáneamente datos trinarios definidos por el estado de los pines de entrada A1-A5 y A6/D6-A9/D9. Estos pins pueden estar en cualquiera de sus tres estados, osea, bajo, alto o abierto, permitiendo 19683 códigos posibles. La secuencia de transmisión es iniciada por un nivel bajo en el pin de entrada del TE ( Transmisión Enable). Este pin nosotros lo conectamos a una de las salidas del buffer que es donde esta el valor del BIT 1 (STROBE) del puerto paralelo, este bin, como ya lo habíamos dicho antes, pasa a bajo cuando el puerto paralelo esta transmitiendo. Seria parecido a una bandera que pasa a estado , "0".
Debido a que ninguna aplicación del MC145026 debería ser diseñada para confiar en la primera palabra de datos, no se envía ninguna señal durante 3 periodos de datos. Cada digito trinario transmitido es codificado en pulsos. Un "0" lógico (bajo) es codificado como dos pulsos cortos consecutivos, un "1" lógico (alto) como dos pulsos largos consecutivos, y uno abierto (alta impedancia) como pulso largo seguido de uno corto. El estado de la entrada se determina usando un dispositivo de salida débil para intentar forzar cada entrada a alto y luego a bajo.
Si solo se obtiene un estado bajo, se asume que la entrada esta conectada a VDD. Si solo se obtiene un estado bajo, se asume que la entrada esta conectada a VSS. Si ambos, alto y bajo pueden ser forzados como entrada, se asume un estado abierto y es considerado, es codificado como tal.
La entrada TE tiene un dispositivo pull-up así que un simple swich puede ser usado para forzar al entrada a bajo.
Mientras TE esta en alto y finaliza la transmisión de la 2da palabra, el codificador es deshabilitado por completo, el oscilador es inhibido, y la corriente de drenaje es reducida a corriente de reposo. Cuando TE es llevado a bajo, se inicia el oscilador y la secuencia de transmisión empieza.
Luego, las entradas son seleccionadas secuencialmente y se hacen determinaciones, como los estados lógicos de entrada.
Esta información se transmite serialmente vía el pin 15 o sea el DATA OUT. La figura que sigue a continuación nos da más claridad a lo explicado anteriormente.
Diagramas de Tiempo
Datos binarios
Los pines del Integrado son las siguientes.
A1-A5, A6/D6-A9/D9 (Dirección, dirección / entrada de datos) son los pines 1-7,9 y 10. Las entradas dirección/datos se codifican y los datos son enviados vía serial a través del pin DATA OUT.
RS,CTC,RTC (pines 11,12 y 13)
Estos pines son parte de la sección del oscilador del codificador. Si una fuente de señal externa es usada en vez de un oscilador externo, podría ser conectado a la entrada RS, y los pines RTC y CTC pueden dejarse abiertos.
TE ( Transmisión Enable)
Esta entrada de habilitación de transmisión se activa en bajo, inicia la transmisión cuando se fuerza a estado bajo. Un dispositivo interno pull-up mantiene esta entrada normalmente en alto. La corriente de pull-up se especifica en la tabla de características eléctricas.
DATA OUT, pin 15, (salida de datos)
Esta es la salida del codificador que presenta serialmente las palabras de datos codificados.
VSS (Alimentación negativa) pin 8.
VDD (Alimentación positiva) pin 16
6.3 El Transmisor Infrarrojo
En la emisión de señal infrarroja tendremos la dirección binaria que es ingresada en el codificador de forma paralela. Estos datos binarios seran los que nos envia el buffer de recepción de datos que se encuentra conectado al Puerto paralelo.
La dirección binaria sera enviada serialmente por el pin de salida de datos del codificador, o sea, el pin 15.
Para enviar los datos seriales del codificador implementamos un oscilador Schmitt trigger, el cual a traves de un potenciometro que implementamos podemos variar la frecuencia de trabajo.
Este cambia su estado de salida cuando la tensión en su entrada sobrepasa un determinado nivel; la salida no vuelve a cambiar cuando la entrada baja de ese voltaje, sino que el nivel de tensión para el cambio es otro distinto, más bajo que el primero. A este efecto se conoce como ciclo de histéresis. Ésta es la principal diferencia con un comparador normal, que es un simple amplificador operacional sin realimentación, y que su salida depende únicamente de la entrada mayor.
El trigger Schmitt usa la histéresis para prevenir el ruido que podría solaparse a la señal original y que causaría falsos cambios de estado si los niveles de referencia y entrada son parecidos.
Para su implementación se suele utilizar un amplificador operacional realimentado positivamente
Por ejemplo, si el trigger inicialmente está activado, la salida estará en estado alto a una tensión Vout = +Vs, y las dos resistencias formarán un divisor de tensión entre la salida y la entrada. La tensión entre las dos resistencias (entrada +) será V+, que es comparada con la tensión en la entrada −, que supondremos 0V (en este caso, al no haber realimentación negativa en el operacional, la tensión entre las dos entradas no tiene porque ser igual). Para producir una transición a la salida, V+ debe descender y llegar, al menos, a 0V. En este caso la tensión de entrada es . Llegado este punto la tensión a la salida cambia a Vout=−Vs. Por un razonamiento equivalente podemos llegar a la condición para pasar de −Vs a +Vs:
Con esto se hace que el circuito cree una banda centrada en cero, con niveles de disparo ±(R1/R2)VS. La señal de entrada debe salir de esa banda para conseguir cambiar la tensión de salida.
Si R1 es cero o R2 es infinito (un circuito abierto), la banda tendrá una anchura de cero y el circuito funcionará como un comparador normal.
El símbolo para un trigger Schmitt es un triángulo que tiene en su interior el símbolo de la histéresis
La señal del codificador y del oscilador son ingresadas en un compuerta NAND de conmutación rapida con ciclo de histeresis, o sea, con Smith Trigger.
Esta señal sale de la compuerta nand y se envia a traves de la base del transistor de alta tensión, el MPSA92, que se encargara de hacer oscilar la señal sobre el led emisor.
- 6.4 Esquemas Eléctricos e Impresos
Vista real de Diseño
Placa de Impreso
Ubicación de Componentes
7 Descripción del Receptor
7.1 Módulo Receptor de Infrarrojo
Nuestro modulo consistirá de un receptor de infrarrojos del tipo Sony SBX 1620-12.
Este modulo receptor tiene un rango de recepción que esta comprendido entre 30 a 56 Khz. Nosotros al utilizar en el emisor un oscilador variable que lo podemos variar entre 35 y 40 Khz., con este receptor vamos a poder satisfacer nuestras necesidades.
Este consiste de un foto diodo con circuito integrado y también tiene la ventaja que es compatible con TTL y CMOS. Se caracteriza por tener una recepción a larga distancia y elevada sensibilidad.
En el siguiente diagrama en bloques, mostramos la descripción del mismo.
Este posee un control automático de ganancia, un control automático de umbral, un pasa banda, y un demodulador.
Los dos primeros, el control automático de ganancia y el control automático de umbral, cumplen la función de controlar dinámicamente los puntos de trabajo de la señal y también los niveles de umbral para descartar las interferencias que pueden provenir del ambiente que lo rodea. Por ejemplo, luces, radiación solar, etc.
Este modulo receptor ya trae incluido una estructura que lo aísla de las interferencias o frecuencias externas (cápsula metálica). Como conclusión podemos decir que la función de este modulo es darnos una señal de salida pura y filtrada de ruidos.
El ángulo de recepción que soporta es de +50, – 50 grados
En la siguiente figura mostramos esquemáticamente el modulo receptor y sus pines de conexión.
Estos son tres: Dato (Out) ,VCC (+5), y Tierra (GND)
7.2 El decodificador
Como decodificador utilizaremos el integrado de Motorola, MC145027. Este es un decodificador que recibe los datos transmitidos por el codificador MC145026.
Estos datos como habíamos dicho anteriormente, son transmitidos serialmente y consisten en dos palabras idénticas, estas son examinadas BIT a BIT durante la recepción.
Los primeros dígitos trinarios se asume que son la dirección. Si la dirección recibida coincide con la local, los siguientes 4 bits de datos son almacenados inmediatamente , pero no son transferidos al latch de datos de la salida. Al ser recibida la segunda palabra codificada, la dirección debe coincidir nuevamente, si coinciden, los nuevos BIT de datos, son chequeados contra los datos previamente almacenados. Si los dos tramos de datos ( 4 bits cada uno) coinciden, los datos los reemplaza. Al mismo tiempo el pin de salida VT es llevado a alto y permanece así hasta que reciba un error o no se reciba señal de entrada por cuatro periodos de datos.
Aunque la información de la dirección puede estar codificada en trinario, la información de datos debe ser tanto un "1" o un "0". Una línea de datos trinarios (abierto) es codificada como un "1" lógico.
Descripción de los Pines.
A1-A5 ( Entradas de Dirección), son los pines del 1 al 5.
Estas son las entradas de dirección locales. Los estados de estos pines deben coincidir con los de las respectivas entradas del codificador para que el pin VT vaya a alto. La dirección local puede ser codificada tanto con datos trinarios como binarios.
D6-D9 (Salidas de datos), son los pines 15,14,13,12.
Estas salidas presentan la información binaria que esta en las entradas A6/D6 al A9/D9 del codificador. Solo son reconocidos datos binarios, un dato trinario "abierto" del codificador es decodificado como estado alto , o se a un "1" lógico.
Data In ( Entrada de datos), es el pin 9. Este pin es la entrada de datos del decodificador. El voltaje de datos esta en niveles lógicos Cmos.
R1, C1, son los pines 6 y 7.
Estos pines aceptan una resistencia y un capacitor utilizados para determinar si ha sido recibido un pulso corto o uno largo. La constante de tiempo R1xC1 =3.95RTCCTC.
R2/C2, es el pin 10.
Este Pin acepta una resistencia y un capacitor, que son usados para detectar tanto el fin de luna palabra recibida como el fin de una transmisión. La constante de tiempo R2xC2 puede ser 33.5 periodos reloj del codificador ( 4 periodos de datos) R2C2= 77RTCCTC. Esta constante de tiempo es utilizada para determinar si el pin DATA IN se mantuvo en bajo por cuatro periodos de datos ( fin de la transmisión). Un comparador interno separado, vigila el voltaje equivalente a 2 periodos de datos (0.4 R2C2) para detectar el tiempo muerto entre las palabras recibidas durante una transmisión.
VT (Salida validadora de transmisión) es el pin 11.
Esta salida validadora de transmisión se pone en alto después de la segunda palabra de una secuencia de codificación, cuando las siguientes condiciones son cumplidas:
A) la dirección de ambas palabras coinciden con la dirección local del decodificador.
B) los bits de datos recibidos de ambas palabras coinciden.
VT se mantiene en alto hasta que reciba una diferencia o no hay señal de entrada por 4 periodos de datos.
VSS ( Alimentación negativa) , es el pin 8
VDD ( Alimentación positiva), es el pin 16
Aclaración:
Antes de conectar el transmisor de infrarrojo y el receptor, es interesante verificar si el codificador esta oscilando a la misma frecuencia que el decodificador. Para eso para eso, configuramos las entradas del codificador igual al del decodificador.
En el decodificador tenemos un pin que es el VT, que significa transmisión valida de datos ( Valid Transmisión). En este pin podemos conectar un led con una resistencia de 470 ohmios, y luego conectar la salida del codificador a la entrada del decodificador, o sea, con un cable directo.
Seguidamente pasamos a bajo el pin TE que es el pin 14 del codificador y ahí vemos si en el decodificador VT se enciende. Si es así, significa que ambos integrados están oscilando a la misma frecuencia. De lo contrario tendremos que chequear ambos osciladores.
En la hoja de datos de estos integrados podemos elegir que frecuencia vamos a usar, y de acuerdo a la que elegimos, serán los valores de las capacitancias y resistores que usaremos para el oscilador.
A continuación mostramos de forma grafica como conectar ambos integrados para calibrarlos.
También mostramos la tabla de las frecuencias que podemos elegir. Cabe destacar que en nuestro caso elegimos una frecuencia de 1.71 Khz.
Esquema eléctrico para calibrar los integrados
f osc (Khz.) | RTC | CTC' | Rs | R1 | C1 | R2 | C2 |
362 | 10 k | 120 pF | 20 k | 10 k | 470 pF | 100 k | 910 pF |
181 | 10 k | 240 pF | 20 k | 10 k | 910 pF | 100 k | 1800 pF |
88.7 | 10 k | 490 pF | 20 k | 10 k | 2000 pF | 100 k | 3900 pF |
42.6 | 10 k | 1020 pF | 20 k | 10 k | 3900 pF | 100 k | 7500 pF |
21.5 | 10 k | 2020 pF | 20 k | 10 k | 8200 pF | 100 k | 0.015 F |
8.53 | 10 k | 5100 pF | 20 k | 10 k | 0.02 F | 200 k | 0.02 F |
1.71 | 50 k | 5100 pF | 100 k | 50 k | 0.02 F | 200 k | 0.1 F |
1.71 | 50 k | 5100 pF | 100 k | 50 k | 0.02 F | 200 k | 0.1 F |
Opciones para elegir la frecuencia y diseño de osciladores.
Conexiones y cálculos para el diseño
7.3 Control de Relays
Para comandar el sistema de Relays utilizamos un integrado el ULN2803 que internamente posee una serie de transistores que se encuentran bajo la configuración par Darlington, y cuya característica principal es la de manejar altas corrientes y tensiones.
Este integrado es un circuito de interfase que activa una serie de Relays
a partir de las señales que se generan en el decodificador que implementamos, el MC145027. Este ultimo va a indicar que driver
activar para posteriormente a través del ULN2803 activar el relay que corresponda.
Por lo tanto, es a través de los Relays que se tiene el control de la activación de los elementos de potencia que se están controlando, los Relays, tienen la capacidad de manejar corrientes constantes de aproximadamente 50ma
con voltajes que pueden ser también
altos, corrientes alternas o continuas.
Elegimos los Relays como elementos de control porque de manera universal pueden controlar cualquier tipo de dispositivo.
O sea, que se puede conectar a los bornes de salida de este modulo cualquier elemento de potencia ya sea de corriente alterna como de corriente continua, mismos que pueden ser dispositivos resistivos como lo de una lámpara incandescente, o elementos magnéticos como los motores, etc.
Pines de conexión
Diagrama eléctrico de cada Driver ( Entrada/ Salida)
De la siguiente manera implementaremos nuestro sistema de drivers sobre los Relays.
A continuación presentamos algunos ejemplos de conexión que se podrían implementar a la salida del modulo receptor
Ejemplo 1: Conexión con fuente de corriente alterna y motor
Ejemplo 2: Conexión con fuente de corriente continua y lámpara.
Cabe destacar que dependiendo de la exigencia de cada usuario sobre este dispositivo, serán las conexiones a diseñar en los bornes de conexión, o sea que podemos adecuarlo a nuestra medida y conectar una infinidad de dispositivos que queramos controlar.
7.4 Esquemas Eléctricos e Impresos
Vista real del Diseño
Ubicación de Componentes
Placa de Impreso
8.0 Conclusiones
Mediante este proyecto pudimos hacer interactuar la electrónica con la informática.
Aplicando conocimientos adquiridos durante la carrera, otros adquiridos durante la investigación y búsqueda de información, pudimos concretar nuestra meta para desarrollar el mismo.
Pudimos comprender muchos detalles sobre el funcionamiento de las diferentes etapas que se implementaron, programación, codificación, comunicación infrarroja, decodificación, control de potencia, etc. A pesar de que tuvimos muchas fallas y equivocaciones, estas fueron muy útiles para mejorar y entender a que se debieron.
Como lo hemos dicho anteriormente en la primer parte de este informe, este diseño se realizo con fines de "mezclar" por decirlo de alguna manera, dos campos que siempre fueron de gran interés para nosotros, ellos son, la Electrónica-informática.
9 Lista de Componentes
9.1 Control de Emisor de Infrarrojo
Resistores
R1 = 51k
R2 = 10k
R3 = 100k
R4 = 100k
R5 = 4.7k
R6 = 100k
R7 = 100k
R8 = 100k
Integrados
IC1 = 74LS244
IC2 = MC145026
IC3 = TLD62
IC4 = SN74HC00
Capacitores
C1 = 5.6nf
C3 = 0.1nf
Transistores
Q1 = MPSA92 PNP
Diodos Leds
D1 = Led emisor de infrarrojo
Fuente de alimentación
VCC = 5v. Este modulo emisor será alimentado a partir de la fuente del servidor.
9.2 Módulo Receptor
Receptor de Infrarrojos = Sony SBX 1620-12
Resistencias
R1 = 680 ohm
R2 = 470 ohm
R3 = 51k
R4 = 100k
R5 = 200k
R6 = 100k
R10 = 470 ohm
R11 = 470 ohm
R12 = 470 ohm
R13 = 470 ohm
Capacitores
C1 = 20nf
C2 = 100nf
C3 = 100nf
C4 = 2200 m f , 25v (Filtrado)
C5 = 1000 m f , 25v (Filtrado)
Transistores
Q1 = KSP 42037 NPN
Diodos Led
D1 = Led Piloto de recepción de datos del decodificador
D2 = " " " encendido de la fuente de alimentación
D3 = Led Piloto de Relay 1
D4 = Led Piloto de Relay 2
D5 = Led Piloto de Relay 3
D6 = Led Piloto de Relay 4
Integrados
IC1 = Decodificador MC145027
IC2 = ULN2803
Borneras y Relays
CN1 = Bornera 1 RL1 = Relay 1
CN2 = Bornera 2 RL2 = Relay 2
CN3 = Bornera 3 RL3 = Relay 3
CN4 = Bornera 4 RL4 = Relay 4
Fuente de Alimentación
Regulador de Tensión = 7805
BR1 = Puente rectificador de onda completa
F1 = Fusible de Protección
V1 = Tensión de alimentación externa, 220v, 50HZ
Diagrama eléctrico del Modulo Emisor Infrarrojo
Diagrama Eléctrico del Receptor Infrarrojo y Control
10 Bibliografía
- Sistemas de Comunicaciones electrónicas, 2º Edición, Wayne Tomasi
- Electrónica Digital, Tocci
- Electrónica y Aplicaciones, Grob
- Programación C (Linux), 1º Edición, Stolarsky
- CGI-BIN Programmer, John Brown
- Protocolos de Comunicaciones, José Miguel Alonso.
Referencias
- Web Electrónicos
- La casa de RT-Linux http://www.rtlinux.org/
- Linux Programming Server http://www.roaringpenguin.org
- Información sobre el puerto paralelo http://www.lvr.com/
- Especificaciones técnicas del receptor de infrarrojos http://ns14.sharp.co.jp/ecg/unit/is1u60/is1u60-fea.html
- Página con todos los enlaces a los desarrollos LIRC http://www-wjp.cs.uni-sb.de/~columbus/lirc/
- Universidad de Alcalá, España http://www.alcala.com.es
- Proyecto diseñado y realizado por Diego G. de León Cenoz –
- Ingeniero Tecnológico en Electrónica
- Instituto Tecnológico Superior, U.T.U, Arias-Balparda, Montevideo Uruguay
Diego G. de León Cenoz
Página anterior | Volver al principio del trabajo | Página siguiente |