Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ivanloes@hotmail.com
Descripcin hardware.
En este apartado realizaremos una breve descripcin hardware
atendiendo, no a los elementos finales en su implementacin, sino a los
utilizados para diseo y simulacin mediante computador. En este sentido, para
la descripcin previa del proyecto se prescindi de hacer uso de elementos
como rels, foco de luz alimentado de la red elctrica, fotoclula o motor real.
En su lugar, para representar estos elementos se hizo uso de LEDs (para
simulacin de alarma, motor y foco del recinto) y pulsadores (para simulacin
de pulso enviado por la fotoclula y como elemento mecnico de deteccin de
apertura de ventana, aparte de servir de interfaz de usuario a fin de solicitar
acceso al recinto).
Aparte de los elementos comentados y los propios de conexionado e interfaz,
alimentacin, potencimetro para la regulacin del tiempo de apertura de la
puerta, teclado telefnico como interfaz de usuario, placa de circuito impreso o
resistencias clsicas, de pull-up y pull-down entre otros, pasaremos a comentar
a continuacin los bloques hardware ms relevantes que conforman el sistema.
MICROCONTROLADOR PIC18F4520
Se seleccion este dispositivo como corazn del sistema debido a sus
prestaciones, las cuales superan con creces los requerimientos establecidos.
Por la topologa software dada como solucin resultaba imprescindible esta
eleccin respecto de, por ejemplo, un microcontrolador de gama media de la
serie PICF16XX, puesto que cualquier modelo de esta ltima, slo permite una
interrupcin externa (fueron necesarias dos: para el control de la alarma por
apertura de ventana y para gestin de acceso al recinto).
En cuanto a la memoria interna de programa se refiere, podran haber servido
algunos de los modelos de la serie PIC16FXX. Estos tienen un contador de
programa de 13 bits, lo que les permite direccionar hasta 8192 palabras de
memoria de programa de 14 bits. No obstante, algunos de ellos, como el
PIC16F84, slo implementan 1024 palabras de memoria de programa de 14
bits, lo que, debido a lo comprobado durante la compilacin del cdigo, los
hace absolutamente insuficientes. Sin embargo, el PIC utilizado presenta una
memoria de programa de 16384 palabras de 8 bits cada una, lo que permite
cubrir con creces las necesidades de almacenamiento requeridas, dando un
amplio desahogo al sistema.
LCD LM016L
Pantalla LCD que forma parte de la interfaz de usuario.
RELOJ-CALENDARIO PCF8583
Dispositivo configurable que nos permite registrar la fecha y hora de los
accesos al recinto. Hace uso de la interfaz serie I2C.
Descripcin software.
El control lgico del sistema ha sido programado en lenguaje C y
compilado mediante el software PIC C Compiler. Est basado en un diseo
modular, de modo que, segn su aplicacin, las funciones se agrupan en
distintos ficheros de cdigo C, los cuales son finalmente agrupados en un nico
archivo, el cual desencadena y gestiona el funcionamiento lgico final del
sistema.
En total, el proyecto se compone de 10 ficheros. A continuacin pasamos a
describir brevemente cada uno de ellos.
1wire.C
Se definen funciones bsicas para comunicacin con un solo sensor
1-wire. Por defecto se define para el PIN A5 del microcontrolador, al cual se
conecta el sensor de temperatura a fin de tomar la lectura de la misma.
Acceso.C
Cdigo para la gestin de acceso al recinto. Contiene las siguientes
funciones:
void entryAndExit() Esta funcin gestiona la apertura de la puerta (motor) y
encendido de la luz interior del recinto. Tambin ofrece solucin en el caso de
deteccin de paso de un objeto durante la operacin de cierre de la puerta. A
esta funcin se accede siempre que se d una clave de acceso vlida desde la
interfaz de usuario (a excepcin de con la clave especial para la lectura
secuencial de la memoria EEPROM externa).
void checkPass() Dada una clave introducida mediante la interfaz de
usuario, este mtodo se encarga de la verificacin de la misma. En el caso de
que se encuentre en la memoria EEPROM interna inherente al
microcontrolador, se llamar a la funcin de gestin de apertura o cierre
entryAndExit() y se proceder al grabado en memoria de los datos de acceso,
llamando al mtodo writeData() (contenido en el archivo Memoria.C). Todo ello
en el caso de que la clave introducida sea de acceso, puesto que en el caso de
introducir el password correspondiente a la lectura secuencial de la memoria
EEPROM externa, se proceder a la llamada del mtodo readData() (tambin
contenido en el fichero Memoria.C).
Si la clave introducida no es vlida, simplemente se especifica a travs del LCD
y no se hace nada.
void access() Se encarga de leer una clave de acceso a travs de teclado
para entrar o salir del recinto. Tras la confirmacin de la clave introducida, esta
funcin llamar a checkPass(), mtodo que ser el encargado de verificar los
datos introducidos. A la funcin access() se accede mediante interrupcin
externa tras hacer uso del pulsador especfico.
5
Alarma.C
Cdigo para la gestin de la alarma del recinto, tanto por temperatura
como por apertura de ventana. Contiene las siguientes funciones:
void windowAlarm() Controla la alarma por apertura de ventana. Mediante
interrupcin externa procedente de un pulsador que simula dicha apertura, se
pasa a la ejecucin de la funcin en cuestin, donde se activa el LED de
alarma y se muestra un aviso por LCD que bloquean el sistema hasta que se
d solucin al problema.
void fireAlarm() Controla la alarma por exceso de temperatura. De nuevo,
esta funcin activa el LED de alarma y muestra un aviso por LCD que bloquean
el sistema hasta que se d solucin al problema. La propia funcin comprueba
la temperatura y es llamada peridicamente tras el desbordamiento del
temporizador del watchdog, el cual saca al microcontrolador del modo de bajo
consumo. Esta llamada se gestiona desde el fichero principal, el que aglutina
todos los mdulos programados.
ds1820.C
Driver bsico del sensor de temperatura. Realiza una secuencia
completa de inicializacin, conversin de temperatura y lectura del sensor de
temperatura con alimentacin externa.
Inicializa.C
Contiene funciones de inicializacin del sistema: bienvenida, registro de
passwords en la memoria EEPROM interna del microcontrolador y de ajuste,
display y lectura de fecha y hora. Las funciones en cuestin son las siguientes:
void welcome() Funcin de bienvenida. Se encarga de displayar en el LCD
un mensaje de bienvenida al sistema, llevando a cabo la inicializacin del
propio LCD.
void writePass() Realiza el grabado de las claves de acceso en la memoria
EEPROM interna. Esto debe venir hecho de fbrica, pero para el caso presente
realizaremos esta escritura al inicio de la simulacin.
void displayDate() Muestra por el LCD en un instante dado la fecha y horas
actuales.
date_time_t returnDate() Devuelve la fecha y la hora.
void adjustDate() Esta funcin se encarga de permitirle al usuario el ajuste
inicial de la fecha y la hora. Los datos son ledos desde teclado. La funcin
tambin llama a displayDate(), permitindonos comprobar el ajuste realizado
para confirmacin.
6
LCDeasy.C
Funciones para la gestin del display LCD de la EasyPIC3 con el
compilador de CCS.
Memoria.C
Fichero para la gestin del uso de la memoria EEPROM externa del
microcontrolador. Contiene las siguientes funciones:
void WriteData() Su utilidad es el registro de informacin acerca de los
accesos al recinto.
void readData() Funcin para la lectura secuencial de la memoria
EEPROM, permitindonos, mediante una clave especial, acceder al registro de
accesos al recinto.
PCF8583.C
Funciones para el RTC I2C: PCF8583. Incluye funciones de conversin
BCD-binario y de lectura/escritura a travs de I2C.
Proyecto.C
Cdigo que aglutina todos los mdulos programados y que desencadena
y gestiona el funcionamiento del sistema. Incluye parmetros y definiciones
bsicas de funcionamiento (interrupciones, definicin I2C, optimizacin de
funciones de I/O). Slo se define la siguiente funcin:
void main() Graba los passwords en la memoria interna, da un mensaje de
bienvenida, solicita el ajuste de la fecha/hora por parte del usuario, habilita
interrupciones, pone en funcionamiento el watchdog as como el modo de bajo
consumo y finalmente habilita el acceso al recinto mediante interrupcin y
posibilita la comprobacin de la temperatura tras el desbordamiento del
temporizador asociado al watchdog, el cual saca al PIC del modo de bajo
consumo.
Teclado.C
Este fichero contiene una funcin denominada int leerTeclado(), la cual
permite controlar la lectura del teclado.
Funcionalidad.
En este apartado describiremos a nivel usuario las funcionalidades del
sistema.
Tras ser arrancado, se muestra el siguiente mensaje de bienvenida:
Se puede apreciar cmo los efectos han surtido efecto en el mdulo del
PCF8583, como se recoge en la siguiente captura:
Sin embargo, con la alarma por apertura de ventana ocurre algo ligeramente
distinto, puesto que esta acta por interrupcin, as que en el instante en el que
el sistema sea inicialmente configurado y no se est atendiendo ninguna otra
(por ejemplo, la asociada al acceso al recinto), la alarma por apertura de
ventana saltar, encendindose el mismo LED de alarma, pero mostrndose un
mensaje distinto por la pantalla LCD. Si, anteriormente, para simulacin
podamos alterar el valor de la temperatura sin ms que clickar sobre las
flechas del mdulo DS18S20, ahora deberemos actuar el pulsador numerado
10
con la cifra 2, tal y como se mostr en el esquema hardware incluido al final del
apartado Descripcin hardware.
11
13
14
Presupuesto.
A continuacin se incluye una tabla con una lista de componentes
necesarios, su precio, cantidad usada y sitio de compra. Se despreciaron de la
contribucin al presupuesto elementos como la placa del sistema o
herramientas para su implementacin. Tampoco se tienen en cuenta los
posibles gastos de envo asociados al hecho de tener que realizar ciertos
pedidos a tiendas fuera del entorno.
Elemento
Microcontrolador
Memoria
EEPROM
Sensor de
Temperatura
Reloj-Calendario
Pantalla LCD
Teclado
Telefnico
Resistencia
Rel
Potencimetro
Foco de Luz
Motor
Alarma
Interruptor/
Pulsador
Fotoclula
TOTAL
Marca y
Modelo
Microchip
PIC18F4520
ISSI 24C32A
Precio
Unidad
10.81
Sitio de
Compra
Farnell ES
Cantidad
x1
Precio
Total
10.81
0.47
Farnell UK
x1
0.47
Dallas DS18S20
5.07
Farnell UK
x1
5.07
NXP PCF8583
Hitachi LM016L*
EAO ECO12150
3.03
221.62
5.18
Farnell UK
Icelect
Farnell UK
x1
x1
x1
3.03
221.62
5.18
Pull-Up/Down y
clsicas
0.07
(Todo
modelo)
3.76 Reed
7.84 Cls.
1.31
28.40
41.91
32.61
0.67
Farnell UK
x11
0.77
Farnell ES
x3
19.44
Farnell ES
Farnell ES
Farnell ES
Farnell ES
Farnell ES
x1
x1
x1
x1
x2
1.31
28.40
41.91
32.61
1.34
16.38
Farnell ES
x1
16.38
388.34
Reed (1) y
clsicos (2)
Ajustable 1k
SLB 150W
AIRPAX
110V 3W
B3FS-1002
EMPC
*Nota: El modelo aparece como descatalogado o fue imposible localizarlo en otras tiendas de
componentes electrnicos, por lo que tuve que solicitar un presupuesto a Icelect, compaa que se dedica
a distribuir dispositivos de difcil localizacin o que, directamente, dejaron de fabricarse.
15
Planificacin.
Debido a que el proyecto no es demasiado complejo, resultara
contraproducente el dividir el trabajo en muchas etapas y entre un nmero,
para el caso, relativamente alto de personas.
Una primera etapa debera de consistir en dar una visin global del problema y
ofertar una primera solucin base. Una vez hecho esto, parte del equipo habra
de encargarse del diseo hardware, siendo este co-diseado simultneamente
con un equipo encargado de la parte software a fin de permitir la existencia de
feedback en tiempo real que permita la mayor agilidad posible en la realizacin
del proyecto.
Finalmente se procede a simular el diseo y posteriormente, una vez
satisfechas todas las fases, a emular un prototipo a fin de realizar correcciones
o mejoras o generar el sistema final.
16