Você está na página 1de 55

UNIVERSIDAD PRIVADA DEL VALLE

FACULTAD DE INFORMTICA Y ELECTRNICA


INGENIERA ELECTRNICA Y DE SISTEMAS
CAMPUS TIQUIPAYA

TALLER ELECTRNICO IV

CONTROL DE ACCESOS CON UNA


CMARA DE VIGILANCIA
ESTUDIANTE: Misael Apaza Iriarte
DOCENTE: Ing. Jazmn Rocabado Q.

Gestin I/2013
Cochabamba Bolivia

CONTROL DE ACCESOS CON UNA CMARA DE VIGILANCIA


RESUMEN
El desarrollo e implementacin de un sistema de control de accesos con cmara de
vigilancia, ser fundamentalmente para poder ofrecer sistemas de seguridad domiciliaria, de
tal manera que la persona o las personas que quieran ingresar a un ambiente, puedan
ingresar con su cdigo respectivo, para que ninguna otra persona autorizada ingrese al
mismo. Este sistema implementa una cmara de vigilancia por el tema de guardar la
informacin y la foto de la persona que est ingresando, esto con el fin de generar histricos
y registros de las personas que ingresaron, todo esto en tiempo real.
INTRODUCCIN
Este proyecto se basar principalmente en el rea de la Electrnica y la parte de la
Informtica, ya que combinados estos nos darn la posibilidad de desarrollar sistemas
eficientes y seguros, que respondan con las expectativas y necesidades de las personas.
Este proyecto tiende a crecer mucho ms all de lo propuesto, debido al incremento de
componentes y sensores en nuestro medio. El sistema propone un control de accesos
seguro y confiable para las personas que puedan utilizarla, es un sistema amigable y no
complejo para su uso y manejo.
JUSTIFICACIN DEL PROYECTO
Este proyecto tiene la finalidad de poder ofrecer a las personas un sistema de seguridad
mediante el control de acceso con cmara de vigilancia, que sea capaz de poder registrar el
ingreso de personas en un ambiente o entidad, tratando de hacer un sistema mnimo pero
funcional que est al alcance econmico de las personas.
Todo esto se realizar para de poder implementar este circuito en sistemas de seguridad
domiciliaria; tambin puede ser usado para otros fines en otras reas acadmicas o de
estudio.
FUNDAMENTO TERICO
Qu es seguridad?
La seguridad est definida en el diccionario como el conjunto de medidas tomadas para
protegerse contra robos, ataques, crmenes y espionajes o sabotajes. La seguridad implica la
cualidad o estado de estar seguro, es decir, la evitacin de exposiciones a situaciones de
peligro y la actuacin para quedar a cubierto frente a contingencias adversas.
La seguridad, no solo requiere un sistema de proteccin apropiado, sino tambin considerar
el entorno externo e interno en el que el sistema opera.

Fig.I. Artefactos de Seguridad.

Fuente:(3)
En informtica y electrnica se habla de dos tipos de seguridades, la fsica (barreras fsicas
que impiden el paso al sistema de cualquier persona no acreditada. Se realiza a travs de
aplicaciones y procedimientos especficos que tienen el objeto de bloquear el acceso a
dichos individuos) y la lgica (las formas en las que se desempea este tipo de seguridad es
a travs de encriptacin de cdigos, de modo que no puedan ser ledos o traducidos por los
intrusos que pudieran sobre pasar las barreras fsicas, cdigos de autenticacin y antivirus o
pared de fuego, en el caso de usar un sistema operativo como Windows). A la hora de
elaborar un diseo electrnico, que funcionar con un sistema el cual controla todos los
eventos se requiere de estos tipos de seguridad [1].
Seguridad Domiciliaria.
La seguridad domiciliaria pretende la proteccin de nuestros domicilios y negocios y de todo
su contenido: nosotros y nuestras familias, objetos valiosos y bienes. Nuestros hogares y
negocios son los lugares donde desarrollamos la parte ms privada de nuestras vidas y
donde necesitamos sentir una mayor sensacin de seguridad y proteccin.
Desgraciadamente no existe ningn dispositivo que sea totalmente inviolable, pero cuanto
mayor sea el nmero de medidas disuasorias que tomemos (puertas, rejas, alarmas, etc.)
menor ser la probabilidad de sufrir un robo [2].

Alarmas Electrnicas
Fig.II. Alarmas Electrnicas

Fuente:(3)
Una alarma electrnica est dentro del grupo de alarmas ms utilizadas, precisamente
porque las mismas suelen ser bastante efectivas, por esta razn es que muchas personas
las instalan en sus casas, ya que se debe tener en cuenta que dichas alarmas representan
un excelente medio para la seguridad de las propiedades.
Una de las ventajas ms importantes que se debe destacar cuando se habla de la instalacin
de una alarma electrnica, es que la misma resulta ser muy prctica y conveniente, de
hecho, las alarmas electrnicas son aquellas que se activan mediante una clave de
seguridad que se introduce en un teclado digital generalmente colocado en una pared cerca
de la puerta de la entrada, de esta manera contamos con una misma clave para activar y
desactivarla.
Quizs uno de los inconvenientes que poseen dichas alarmas, tanto en las casas como en
los autos es, que definitivamente son muy sensibles y ante cualquier movimiento extrao se
disparan enseguida. Esto provoca que muchas veces se produzcan reiteradas falsas alarmas
y esto es algo que se debe intentar evitar en lo posible porque de lo contrario no slo se
volver molesta sino que al mismo tiempo se corre el riesgo de que nadie le haga caso.
No obstante y considerando que esto no es algo que se pueda preveer, lo que se puede
hacer es instalar un sistema cuyos sensores no sean tan sensibles como los que
generalmente se colocan a estos sistemas de alarmas y de hecho ya que se menciona, la
mayora de las fbricas que se dedican a desarrollar los sistemas de alarma electrnica,
actualmente las estn haciendo con sensores mucho ms precisos justamente para evitar
todo este tipo de problemas [3].

CONCLUSIONES
Se pudo desarrollar y construir un sistema de accesos con cmara de vigilancia, que ayuda
al registro de personas en la entrada de un ambiente, para tener mayor seguridad y
confiabilidad, y principalmente poder tener un registro e histrico de trabajo que est
plasmado en una base de datos.
REFERENCIAS BIBLIGRFICAS
[1] TORO, Vincent del (1988), Fundamentos de Ingeniera Elctrica (2da. Ed.).Editorial
Prentice Hall. Mxico.
[2] EUROSEGUR (2008). Sistemas Acorazados. Recuperado de
< http://www.eurosegur.com/f/25/-seguridad-domiciliaria>
[3] ANTIRROBO (2007) Recuperado de
<http://www.antirrobo.net/alarmas/alarmas-electronicas.html>

CONTROL DE ACCESOS CON CMARA DE VIGILANCIA


RESUMEN.
El desarrollo e implementacin de un sistema de control de accesos con cmara de
vigilancia, ser fundamentalmente para poder ofrecer sistemas de seguridad domiciliaria, de
tal manera que la persona o las personas que quieran ingresar a un ambiente, puedan
ingresar con su cdigo respectivo, para que ninguna otra persona autorizada ingrese al
mismo. Este sistema implementa una cmara de vigilancia por el tema de guardar la
informacin y la foto de la persona que est ingresando, esto con el fin de generar histricos
y registros de las personas que ingresaron, todo esto en tiempo real.

Misael Apaza I.
I.E.S.
msl_ies777@hotmail.com

ndice
CAPTULO I. INTRODUCCIN............................................................................................... 1
1. 1. ANTECEDENTES........................................................................................................ 1
1.2. PLANTEAMIENTO DEL PROBLEMA............................................................................... 1
1.3. ALCANCE TCNICO / CIENTFICO................................................................................. 1
1.4. JUSTIFICACIN........................................................................................................... 1
1.5. OBJETIVOS................................................................................................................. 2
1.5. 1. OBJETIVO GENERAL........................................................................................................2
1.5.2. OBJETIVOS ESPECFICOS................................................................................................2
CAPITULO II. MARCO TEORICO............................................................................................ 3
2.1. INTRODUCCIN A LOS CONCEPTOS BSICOS.............................................................3
2.1.1. ARDUINO............................................................................................................................. 3
2.1.2. ARDUINO MEGA 2560........................................................................................................ 3
CARACTERSTICAS..................................................................................................................... 3
ALIMENTACIN............................................................................................................................ 4
ENTRADAS Y SALIDAS................................................................................................................ 5
PROTECCIN CONTRA SOBRETENSIONES EN USB...............................................................6
COMUNICACIONES...................................................................................................................... 6
2.2. DRIVER DE MOTOR L298N........................................................................................... 6
2.3. ULTRASONIDO............................................................................................................ 7
2.3.1. PROBLEMAS CON EL ULTRASONIDO..............................................................................8
2.3.2. DATOS TCNICOS............................................................................................................10
2.4. LEDS INFRARROJOS................................................................................................. 11
2.4.1. FUNCIONAMIENTO........................................................................................................... 11
2.5. MOTORES DC........................................................................................................... 12
2.6. COMUNICACIN SERIAL RS-232................................................................................ 13
2.7. MOTORES PASO A PASO........................................................................................... 13
2.7.1. FUNCIONAMIENTO........................................................................................................... 14
CAPITULO III. INGENIERIA DEL PROYECTO.........................................................................16
3.1. DISEO DE HARDWARE............................................................................................ 16
3.1.1. DIAGRAMAS DE BLOQUE DEL SISTEMA.......................................................................16
3.1.2. FUENTE DE ALIMENTACIN...........................................................................................16
3.1.3. SISTEMA DE APERTURA Y CIERRE DE LA CERRADURA ELCTRICA.......................18
3.1.4. ESTRUCTURA DE LA CMARA Y WEB CAM.................................................................20
3.1.5. CONTROL INFRARROJOS...............................................................................................20
3.1.6. DIAGRAMA GENERAL DEL CIRCUITO DEL PROYECTO...............................................21
3.1.7. FOTOGRAFA DEL CIRCUITO DEL PROYECTO COMPLETO........................................22
3.2. DISEO DEL SOFTWARE........................................................................................... 23
3.2.1. DIAGRAMA DE FLUJO DEL SISTEMA.............................................................................23
3.2.2 FUNCIONAMIENTO DEL SISTEMA...................................................................................24

CAPITULO IV....................................................................................................................... 25
CONCLUSIONES.............................................................................................................. 25
RECOMENDACIONES...................................................................................................... 25
CAPITULO V. BIBLIOGRAFIA............................................................................................... 26
LIBROS........................................................................................................................... 26
WEBS............................................................................................................................. 26
CAPITULO VI. APENDICE.................................................................................................... 27
CDIGO DE ARDUINO..................................................................................................... 27
CDIGO DEL PROGRAMA EN VISUAL STUDIO C#............................................................31
ANEXOS............................................................................................................................. 42

CAPTULO

INTRODUCCIN

1
CAPTULO I. INTRODUCCIN.
1. 1. ANTECEDENTES.
En la actualidad existe gran preocupacin por obtener un sistema de seguridad, no slo para
las casas, sino tambin para el trabajo u otras actividades, esto debido a la falta de seguridad
existente dentro el pas. Por lo cual se ve necesaria la adquisicin de sistemas de seguridad,
pero en algunas ocasiones no est dentro del presupuesto de algunas familias o negocios.
Se propone un sistema mnimo de control de accesos mediante una cmara de vigilancia
que se encargar de la visualizacin del sujeto, se guardar la foto con la fecha y hora del
ingreso, esto con el fin de tener histricos de ingresos de las personas dentro un ambiente,
con la finalidad de contar con un sistema de seguridad eficiente.
1.2. PLANTEAMIENTO DEL PROBLEMA.
Ser posible realizar un sistema de seguridad que sea capaz de controlar y manejar el
acceso de las personas dentro un ambiente familiar o comercial, con el fin de resguardar la
seguridad e integridad de las mismas?
1.3. ALCANCE TCNICO / CIENTFICO.
Las pruebas se realizarn en placas de pruebas, pero el circuito final se presentar en placas
impresas. Adems se harn pequeos mdulos para poder alivianar y probar el mejor
rendimiento del circuito; se utilizar la cmara de la computadora para poder tomar las fotos
correspondientes. Se usar tambin un sensor ultrasnico para poder alertar al sistema de
que una persona se encuentra por ingresar, el cual permitir poder aumentar la eficiencia del
sistema.
1.4. JUSTIFICACIN
Este proyecto tiene la finalidad de poder ofrecer a las personas un sistema de seguridad
mediante el control de acceso con cmara de vigilancia, que sea capaz de poder registrar el
ingreso de personas en un ambiente o entidad, tratando de hacer un sistema mnimo pero
funcional que est al alcance econmico de las personas.

2
Todo esto se realizar para de poder implementar este circuito en sistemas de seguridad
domiciliaria; tambin puede ser usado para otros fines en otras reas acadmicas o de
estudio.
1.5. OBJETIVOS.
1.5. 1. OBJETIVO GENERAL.
-

Implementar un sistema que sea capaz de registrar el control de acceso a un


ambiente mediante una cmara de vigilancia para aumentar la confiabilidad de este.

1.5.2. OBJETIVOS ESPECFICOS.


-

Investigar sobre el manejo de cmaras mediante el lenguaje de programacin C#.

Disear un sistema que se encargue del control del acceso, movimiento de la cmara
y toma de la foto del usuario.

Aplicar la comunicacin serial entre el circuito y la PC.

Documentar toda la informacin desarrollada durante el transcurso de la investigacin.

CAPTULO

MARCO TERICO

3
CAPITULO II. MARCO TERICO.
2.1. INTRODUCCIN A LOS CONCEPTOS BSICOS
2.1.1. Arduino
Arduino es una plataforma de cmputo libre [open-source] basada en una tarjeta I/O
[entradas y salidas] programada en un ambiente con un lenguaje similar a C llamado
Processing/Wiring. Arduino puede ser utilizado para desarrollar objetos autnomos e
interactivos, capaz de comunicarse con software instalado en tu computadora como Flash,
Processing, MaxMSP, etc. Dada su rpida curva de aprendizaje y su bajo precio constituye
una herramienta ideal para estudiantes, maestros, diseadores y cualquier interesado en
electrnica y robtica. El software para su programacin es gratuito y puede ser descargado
para Mac OS X, Windows y Linux (5HZ-ELECTRNICA, 2012).
2.1.2. Arduino Mega 2560
El Arduino Mega es una tarjeta basada en el ATmega2560. Tiene 54 pines digitales de I/O
(14 de los cuales pueden ser usados como salidas PWM), 16 entradas analgicas, 4 UARTs
(puertos seriales en hardware), un cristal osciliador a 16MHz, conexin USB, jack para
conexin a la electricidad, un header ICSP y un botn de reset. Cuenta con todo lo
necesario para dar soporte a este microcontrolador; simplemente conctalo a una
computadora mediante un cable USB, un adaptador AC/DC o una batera y estar listo para
funcionar. El Mega es compatible con la mayora de shields diseados para el Arduino
Duemilanove o Diecimila (5HZ-ELECTRNICA, 2012).
Caractersticas

Microcontrolador ATmega2560.

Voltaje de entrada: 7 a 12V.

54 pines digitales I/O (14 salidas PWM).

16 entradas analgicas.

256k de memoria flash.

Velocidad de reloj 16MHz.

Figura.1. Arduino Mega 2560

Fuente:( 5HZ-ELECTRNICA, 2012).

Alimentacin
El Arduino Mega puede ser alimentado va la conexin USB o con una fuente de alimentacin
externa. El origen de la alimentacin se selecciona automticamente.
Las fuentes de alimentacin externas (no-USB) pueden ser tanto un transformador o una
batera. El transformador se puede conectar usando un conector macho de 2.1mm con
centro positivo en el conector hembra de la placa. Los cables de la batera pueden
conectarse a los pines Gnd y Vin en los conectores de alimentacin (POWER)
La placa puede trabajar con una alimentacin externa de entre 6 a 20 voltios. Si el voltaje
suministrado es inferior a 7V el pin de 5V puede proporcionar menos de 5 Voltios y la placa
puede volverse inestable, si se usan ms de 12V los reguladores de voltaje se pueden
sobrecalentar y daar la placa. El rango recomendado es de 7 a 12 voltios.
Los pines de alimentacin son los siguientes:

VIN. La entrada de voltaje a la placa Arduino cando se est usando una fuente externa
de alimentacin (en opuesto a los 5 voltios de la conexin USB). Se puede
proporcionar voltaje a travs de este pin, o, si se est alimentado a travs de la
conexin de 2.1mm, acceder a ella a travs de este pin.

5V. La fuente de voltaje estabilizado usado para alimentar el microcontrolador y otros


componentes de la placa. Esta puede provenir de VIN a travs de un regulador

5
integrado en la placa, o proporcionada directamente por el USB u otra fuente
estabilizada de 5V.

3V3. Una fuente de voltaje a 3.3 voltios generada en el chip FTDI integrado en la
placa. La corriente mxima soportada 50mA.

GND. Pines de toma de tierra (ARDUINO, 2013).


Figura.2. Resumen caractersticas Arduino Mega.

Fuente:(ARDUINO, 2013).

Entradas y Salidas
Cada uno de los 54 pines digitales pueden utilizarse como entradas o como salidas usando
las funciones pinMode(), digitalWrite(), y digitalRead() . Las E/S operan a 5 voltios. Cada pin
puede proporcionar o recibir una intensidad maxima de 40mA y tiene una resistencia interna
(desconectada por defecto) de 20-50kOhms.
El Mega tiene 16 entradas analgicas, y cada una de ellas proporciona una resolucin de
10bits (1024 valores). Por defecto se mide de tierra a 5 voltios, aunque es posible cambiar la
cota superior de este rango usando el pin AREF y la funcin analogReference(). Adems
algunos pines tienen funciones especializadas:

I2C: 20 (SDA) y 21 (SCL). Soporte del protocolo de comunicaciones I2C (TWI) usando
la librera Wire.

Hay otros pines en la placa:

AREF.

Voltaje

de

referencia

para

las

entradas

analgicas.

Usado

por

analogReference().

Reset. Suministrar un valor LOW (0V) para reiniciar el microcontrolador. Tpicamente


usado para aadir un botn de reset a los shields que no dejan acceso a este botn
en la placa.

Proteccin contra sobretensiones en USB


El Arduino Mega tiene un multifusible reinicializable que protege la conexin USB de tu
ordenador de cortocircuitos y sobretensiones. A aparte que la mayora de ordenadores
proporcionan su propia proteccin interna, el fusible proporciona una capa extra de
proteccin. Si ms de 500mA son detectados en el puerto USB, el fusible automticamente
corta la conexin hasta que el cortocircuito o la sobretensin desaparezcan.
Comunicaciones
EL Arduino Mega facilita en varios aspectos la comunicacin con el ordenador, otro Arduino u
otros microcontroladores. El ATmega1280 proporciona cuatro puertos de comunicacin va
serie UART TTL (5V). Un chip FTDI FT232RL integrado en la placa canaliza esta
comunicacin serie a traes del USB y los drivers FTDI (incluidos en el software de Arduino)
proporcionan un puerto serie virtual en el ordenador. El software incluye un monitor de puerto
serie que permite enviar y recibir informacin textual de la placa Arduino. Los LEDS RX y TX
de la placa parpadearan cuando se detecte comunicacin transmitida travs del chip FTDI y
la conexin USB.
2.2. DRIVER DE MOTOR L298N
Figura.3. Driver de motor L298N.

Fuente:(STIRNER, 2011).

El driver soporta una alimentacin de voltaje Vs de +5 V hasta +35 V, pero voltajes


recomendables de +7V hasta 30V. Soporta una corriente pico de hasta 2A. Para la activacin
del driver se necesita un voltaje lgico de 5V a 7V con una corriente de funcionamiento que
se encuentre de 0-36mA. Se considera las siguientes seales de entrada para el
funcionamiento lgico:
Baja: 0.3V a 1.5V.
Alto: 2.3V hasta Vin.
Consumo mximo de energa: 20 W (cuando la temperatura T = 75 ).
Temperatura de almacenamiento: -25 ~ 130 .
Este mdulo tiene una fuente de alimentacin para uso externo incorporado 5v. Tensin Drive
es 7v-35v. NO voltaje de entrada al interfaz de la fuente 5 v - esto es slo SALIDA
(STIRNER, 2011).
2.3. ULTRASONIDO
Los ultrasonidos son antes que nada sonido, exactamente igual que los que omos
normalmente, salvo que tienen una frecuencia mayor que la mxima audible por el odo
humano. sta comienza desde unos 16 Hz y tiene un lmite superior de aproximadamente 20
KHz, mientras que nosotros vamos a utilizar sonido con una frecuencia de 40 KHz. A este
tipo de sonidos es a lo que llamamos Ultrasonidos.
El funcionamiento bsico de los ultrasonidos como medidores de distancia se muestra de
una manera muy clara en el siguiente esquema, donde se tiene un receptor que emite un
pulso de ultrasonido que rebota sobre un determinado objeto y la reflexin de ese pulso es
detectada por un receptor de ultrasonidos:
Figura.4. Deteccin de un ultrasonido.

Fuente:(PREZ, 2006).

8
La mayora de los sensores de ultrasonido de bajo coste se basan en la emisin de un pulso
de ultrasonido cuyo lbulo, o campo de accin, es de forma cnica. Midiendo el tiempo que
transcurre entre la emisin del sonido y la percepcin del eco se puede establecer la
distancia a la que se encuentra el obstculo que ha producido la reflexin de la onda sonora,
mediante la frmula:
d=1/2V*t
donde V es la velocidad del sonido en el aire y t es el tiempo transcurrido entre la emisin y
recepcin del pulso.
2.3.1. Problemas con el Ultrasonido
A pesar de que su funcionamiento parece muy sencillo, existen factores inherentes tanto a
los ultrasonidos como al mundo real, que influyen de una forma determinante en las medidas
realizadas. Por tanto, es necesario un conocimiento de las diversas fuentes de incertidumbre
que afectan a las medidas para poder tratarlas de forma adecuada, minimizando su efecto en
el conocimiento del entorno que se desea adquirir. Entre los diversos factores que alteran las
lecturas que se realizan con los sensores de ultrasonido cabe destacar:

El campo de actuacin del pulso que se emite desde un transductor de ultrasonido


tiene forma cnica. El eco que se recibe como respuesta a la reflexin del sonido
indica la presencia del objeto ms cercano que se encuentra dentro del cono acstico
y no especifica en ningn momento la localizacin angular del mismo. Aunque la
mxima probabilidad es que el objeto detectado est sobre el eje central del cono
acstico, la probabilidad de que el eco se haya producido por un objeto presente en la
periferia del eje central no es en absoluto despreciable y ha de ser tenida en cuenta y
tratada convenientemente.
Figura.5. Incertidumbre angular en la medida de un ultrasonido.

Fuente:(PREZ, 2006).

La cantidad de energa acstica reflejada por el obstculo depende en gran medida de


la estructura de su superficie. Para obtener una reflexin altamente difusa del
obstculo, el tamao de las irregularidades sobre la superficie reflectora debe ser
comparable a la longitud de onda de la onda de ultrasonido incidente.

En los sensores de ultrasonido de bajo coste se utiliza el mismo transductor como


emisor y receptor. Tras la emisin del ultrasonido se espera un determinado tiempo a
que las vibraciones en el sensor desaparezcan y est preparado para recibir el eco
producido por el obstculo. Esto implica que existe una distancia mnima d
(proporcional al tiempo de relajacin del transductor) a partir de la cual el sensor mide
con precisin. Por lo general, todos los objetos que se encuentren por debajo de esta
distancia, d, sern interpretados por el sistema como que estn a una distancia igual a
la distancia mnima.
Figura.6. Distancia de deteccin en la medida de un ultrasonido.

Fuente:(PREZ, 2006).

Los factores ambientales tienen una gran repercusin sobre las medidas: Las ondas
de ultrasonido se mueven por un medio material que es el aire. La densidad del aire
depende de la temperatura, influyendo este factor sobre la velocidad de propagacin
de la onda.

Un factor de error muy comn es el conocido como falsos ecos. Estos falsos ecos se
pueden producir por razones diferentes: Puede darse el caso en que la onda emitida
por el transductor se refleje varias veces en diversas superficies antes de que vuelva a
incidir en el transductor (si es que incide). Este fenmeno, conocido como reflexiones
mltiples, implica que la lectura del sensor evidencia la presencia de un obstculo a

10
una distancia proporcional al tiempo transcurrido en el viaje de la onda; es decir, una
distancia mucho mayor que a la que est en realidad el obstculo ms cercano, que
pudo producir la primera reflexin de la onda. Otra fuente ms comn de falsos ecos,
conocida como crosstalk, se produce cuando se emplea un cinturn de ultrasonidos
donde una serie de sensores estn trabajando al mismo tiempo. En este caso puede
ocurrir (y ocurre con una frecuencia relativamente alta) que un sensor emita un pulso y
sea recibido por otro sensor que estuviese esperando el eco del pulso que l haba
enviado con anterioridad (o viceversa).
Figura.7. El sensor a emite el pulso que recibe el sensor b.

Fuente:(PREZ, 2006).

Las ondas de ultrasonido obedecen a las leyes de reflexin de las ondas, por lo que
una onda de ultrasonido tiene el mismo ngulo de incidencia y reflexin respecto a la
normal a la superficie. Esto implica que si la orientacin relativa de la superficie
reflectora con respecto al eje del sensor de ultrasonido es mayor que un cierto umbral,
el sensor nunca reciba el pulso de sonido que emiti (PREZ, 2006).

2.3.2. Datos Tcnicos


1. Voltaje de trabajo: 5V (DC)
2. Consumo de corriente: < 2 mA.
3. Seal de salida: 5V de alto nivel, bajo nivel de 0V.
4. ngulo Sensor: no ms de 15 grados.
5. Distancia de Deteccin: 2cm-450cm.
6. Precisin: hasta 0,3 cm
7. Seal de disparo: 10us impulso TTL
8. Seal Eco: la seal de salida TTL PWL

11
2.4. LEDS INFRARROJOS
En el mundo de la electrnica, el led es uno de los ms importantes que ha habido y que
probablemente habr. Deberamos tener en cuenta que este tipo de elemento es, adems,
uno de los ms utilizados por la sociedad de estos das. Entre estos podemos encontrar
muchsimas funciones y elementos que fueron conformados a partir de la utilizacin de los
leds, pero tambin encontramos aquellos que hoy en da recin comienzan a ser conocidos
por la sociedad comn que son es el diodo led infrarrojo. En estos es factible ver una de las
cualidades que fueron incluidas en los mismos a partir de muchsimas investigaciones
realizadas hace poco tiempo.
Figura.8. Led Infrarrojo.

Fuente:(ILUMINACIONLED, 2013).

2.4.1. Funcionamiento
El diodo led infrarrojo debera estar presente en nuestras vidas, por ms que no estemos
interesados en la electrnica. Los mismos podemos encontrarlos en muchos sitios y para
reconocerlos solo tendramos que buscar luces tenues no tan reflejantes, dado que su
funcin no tiene nada que ver con el alumbran grandes sectores, sino darnos la posibilidad
de ver aquello que para nuestros ojos es imposible. Es decir, que el diodo led infrarrojo solo
alumbra los reflejos causados por las ondas magnticas que a simple vista es imposible de
percibir. Por esto mismo es que fueron tan famosos, dado que en las sociedades causaron
gran impacto al poder percibir con simpleza las ondas magnticas que son tan
sorprendentes.
Para que tener una idea bsica sobre lo que es un diodo led infrarrojo y lo que alumbran los
mismos, deberamos introducirnos en la fsica, de un modo en donde usted pueda
entenderlos. El magnetismo es una de las corrientes energticas ms importantes de la
fsica. Podemos ver con solo investigar un poco que grandes ramos de la fsica se han
interesado de tal modo que hasta el da de hoy siguen con las investigaciones al respecto.

12
El motivo por el cual este ramo de la ciencia est tan interesado en tales magnetismos es
porque el mundo entero depende de tal energa. Es decir, los polos norte y sur son los que
provocaran la fuente de magnetismos ms importantes del planeta, la cual es la que nos
protege de los peligros del universo. El diodo led infrarrojo estara ms ligado a un pequeo
sitio de provocacin de magnetismo, dado que muchos cientficos sostienen que el ser
humano crea los mismos constantemente de tal modo que se creara la sensacin de
materia, y por tales motivos es que nosotros no atravesaramos las paredes.
Entonces, vindolo desde este punto podemos deducir que el diodo led infrarrojo reflejara
tales ondas imperceptibles para nuestros ojos. Quiz usted ya haya estado en contacto con
uno de estos leds de luz infrarroja, dado que los mismos son utilizados la mayora de las
veces en sitios de entretenimiento para provocar que nuestras prendas tengan colores
extraos y provoquen luz en sitios oscuros. Este sera uno de los motivos y particularidades
del diodo led infrarrojo, que en lo siguiente le explicaremos ms a fondo. El mismo, al no
provocar luces fuertes no tiene efecto en sitios abiertos, por lo cual colocarlos en exteriores
no tendra sentido o por lo menos durante el da. Es por esto mismo que encontramos que
tales sitios aprovechan la oscuridad de sus habitaciones para que tal efecto se vea
absolutamente. Con esto ya estaramos listos para poder realizar la instalacin de los
mismos, a sabiendas de sus funciones y requisitos lumnicos (ILUMINACIONLED, 2013).
2.5. MOTORES DC
El motor de corriente continua es una mquina que convierte la energa elctrica continua en
mecnica, provocando un movimiento rotatorio. En la actualidad existen nuevas aplicaciones
con motores elctricos que no producen movimiento rotatorio, sino que con algunas
modificaciones, ejercen traccin sobre un riel. Estos motores se conocen como motores
lineales.
Esta mquina de corriente continua es una de las ms verstiles en la industria. Su fcil
control de posicin, par y velocidad la han convertido en una de las mejores opciones en
aplicaciones de control y automatizacin de procesos. Pero con la llegada de la electrnica
su uso ha disminuido en gran medida, pues los motores de corriente alterna, del tipo
asncrono, pueden ser controlados de igual forma a precios ms accesibles para el
consumidor medio de la industria. A pesar de esto los motores de corriente continua se
siguen utilizando en muchas aplicaciones de potencia (trenes y tranvas) o de precisin
(mquinas, micro motores, etc.).

13
Fig.9. Motores CC de varios tamaos

Fuente: (WIKIPEDIA, 2012)

2.6. COMUNICACIN SERIAL RS-232


La comunicacin serial consiste en el envo de un bit de informacin de manera secuencial,
esto es, un bit a la vez y a un ritmo acordado entre el emisor y el receptor.
La comunicacin serial en computadores ha seguido los estndares definidos en 1969 por el
RS-232 (Recommended Standard 232) que establece niveles de voltaje, velocidad de
transmisin de los datos, etc. Por ejemplo, este protocolo establece un nivel de -12v como un
uno lgico y un nivel de voltaje de +12v como un cero lgico (por su parte, los
microcontroladores emplean por lo general 5v como un uno lgico y 0v como un cero lgico).
Existen en la actualidad diferentes ejemplos de puertos que comunican informacin de
manera serial (un bit a la vez). El conocido como puerto serial ha sido gradualmente
reemplazado por el puerto USB (Universal Serial Bus) que permite mayor versatilidad en la
conexin de mltiples dispositivos. Aunque en naturaleza serial, no suele referenciarse de
esta manera ya que sigue sus propios estndares y no los establecidos por el RS-232
(TAMAYO, 2009).
2.7. MOTORES PASO A PASO
Un motor paso a paso, como todo motor, es en esencia un conversor electromecnico, que
transforma energa elctrica en mecnica.
Mientras que un motor convencional gira libremente al aplicarle una tensin, el motor paso a
paso gira un determinado ngulo de forma incremental (transforma impulsos elctricos en
movimientos de giro controlados), lo que le permite realizar desplazamientos angulares fijos
muy precisos (pueden variar desde 1,80 hasta unos 90).

14
Los motores, tanto de corriente continua como de corriente alterna, son muy efectivos en
muchas labores cotidianas desde la traccin de grandes trenes hasta el funcionamiento de
lavarropas. Pero debido a problemas tales como la, inercia mecnica o su dificultad para
controlar su velocidad, se desarrollaron otro tipo de motores cuya caracterstica principal es
la precisin de giro. Este tipo de motores son ideales cuando lo que queremos es
posicionamiento con un elevado grado de exactitud y/o una muy buena regulacin de la
velocidad.
Estn constituidos esencialmente por dos partes:

Estator: parte fija construida a base de cavidades en las que van depositadas las
bobinas.

Rotor: parte mvil construida mediante un imn permanente.

Este conjunto va montado sobre un eje soportado por dos cojinetes que le permiten girar
libremente.
2.7.1. Funcionamiento
Aun basado en el mismo fenmeno que los motores de corriente continua, el principio de
funcionamiento de los motores paso a paso es ms sencillo que cualquier otro tipo de motor
elctrico.
Los motores elctricos, en general, basan su funcionamiento en las fuerzas ejercidas por un
campo electromagntico y creadas al hacer circular una corriente elctrica a travs de una o
varias bobinas. Si dicha bobina, generalmente circular y denominada estator, se mantiene en
una posicin mecnica fija y en su interior, bajo la influencia del campo electromagntico, se
coloca otra bobina, llamada rotor, recorrida por una corriente y capaz de girar sobre su eje.
Al excitar el estator, se crearan los polos N-S, provocando la variacin del campo magntico
formado. La respuesta del rotor ser seguir el movimiento de dicho campo (tender a buscar
la posicin de equilibrio magntico), es decir, orientar sus polos NORTE-SUR hacia los
polos SUR-NORTE del estator, respectivamente. Cuando el rotor alcanza esta posicin de
equilibrio, el estator cambia la orientacin de sus polos y se tratar de buscar la nueva
posicin de equilibrio. Manteniendo dicha situacin de manera continuada, se conseguir
un movimiento giratorio y continuo del rotor, producindose de este modo el giro del eje del
motor, y a la vez la transformacin de una energa elctrica en otra mecnica en forma de
movimiento circular.

15
Al nmero de grados que gira el rotor, cuando se efecta un cambio de polaridad en las
bobinas del estator, se le denomina "ngulo de paso".
Los motores paso a paso, se controlan por el cambio de direccin del flujo de corriente a
travs de las bobinas que lo forman:
-

controlar el desplazamiento del rotor en funcin de las tensiones que se aplican a las
bobinas, con lo que podemos conseguir desplazamientos adelante y atrs.

controlar el nmero de pasos por vuelta.

controlar la velocidad del motor.

Segn la construccin de las bobinas del estator, dos tipos de MPAP:


Unipolares: se llaman as porque la corriente que circula por los diferentes bobinados
siempre circula en el mismo sentido. Tienen las bobinas con un arrollamiento nico.
Bipolares: la corriente que circula por los bobinados cambia de sentido en funcin de la
tensin que se aplica. por lo que un mismo bobinado puede tener en uno de sus extremos
distinta polaridad (bipolar). Tienen las bobinas compuestas por dos arrollamientos cada una.
Algunos motores tienen los bobinados de tal manera que en funcin de puentes pueden
convertirse en unipolares o bipolares.
Lo ms importante de un motor es saber el tipo de motor que es, la potencia, el nmero de
pasos, el par de fuerza, la tensin de alimentacin y poco ms si son motores sencillos.
Fig.10. Paso simple y doble con motores MPAP.

Fuente: (UPV, 2010)

CAPTULO

INGENIERA DEL
PROYECTO

16
CAPITULO III. INGENIERIA DEL PROYECTO.
A continuacin se detallar, todo lo desarrollado durante todo este semestre, desde la parte
del diseo del hardware y concluyendo con el software de control del mismo.
3.1. DISEO DE HARDWARE
3.1.1. DIAGRAMAS DE BLOQUE DEL SISTEMA
A continuacin, en la Figura 11, se puede observar a todos los bloques que conformarn el
sistema de control de accesos con cmara de vigilancia.
Fig.11. Diagrama de Bloque del Sistema
SERVIDOR

CLIENTE

ALARMA
RS232/BLUETOOH
TECLADO

LCD

SENSOR
ULTRASNICO
LEDS INFRARROJO

CONTROL DE
CMARA
MOTOR PASO/
SERVO MOTOR
DRIVER DE MOTOR

FUENTE/BATERIA
CERRADURA ELCTRICA
MOTO
R
DC

MOTO
R
DC

Fuente: ELABORACIN PROPIA

3.1.2. FUENTE DE ALIMENTACIN


Antes de disear la fuente principal, se tomar algunos parmetros de referencia para su
diseo:
-

Se necesitar una fuente de 5V. de alimentacin para el motor paso a paso que
reemplazar o simular a mi chapa elctrica y la sirena que ser como la alarma.

17
-

Para la corriente se tomar el peor caso del consumo de corriente tomando en cuenta
a la sirena y el motor:
Sirena

200mA

Motores DC

120mA

En total se consumir 0.320 A y previniendo el consumo de los motores DC, se disear


una fuente de 5V fijos de 0.800 A de corriente.
Clculos:
Tomando las siguientes consideraciones: Frecuencia 50 Hz(f), un voltaje de rizo(Vt) del 10
por ciento para ambos casos (5V) y utilizando la frmula para hallar el capacitor adecuado se
tiene, para 5V:

El valor del capacitor se sac como referencia del datasheet del 7805, obteniendo y
trabajando con un:
C=470F
Elaboracin:
En la Fig.12 se muestra el circuito armado con fuente de 5V.
Fig.12. Fuente de 5V
D2
BR1

U11N4001
7805

2
1
1

VI

VO

BRIDGE

C1

C2

470uF

100nF

R1

GND

TBLOCK-I2

J1

Fuente: ELABORACIN PROPIA

J2

220

C3

C4

100nF

470uF

D1
LED-RED

1
2
TBLOCK-I2

18
En la Fig.13. Se muestra el diseo Final para el quemado en Placa para la fuente de 5V.
Fig.13. Placa quemada para colocar componentes

5V.
Fuente: ELABORACIN PROPIA

En la Fig.14. la placa finalizada.


Fig.14. Placa concluida

Fuente: ELABORACIN PROPIA

3.1.3. SISTEMA DE APERTURA Y CIERRE DE LA CERRADURA ELCTRICA


Se simul la cerradura elctrica con dos pequeos motores DC, los cuales generarn
movimientos opuestos.

5
6
7
1

Fig.15. Diseo para la Cerradura Elctrica

RA3/AN3/VREF+
RB6/PGC
RA4/T0CKI/C1OUT
RB7/PGD
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
MCLR/Vpp/THV
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT

27
28
11
12
13
14
15
16
17
18

19

PIC16F876A

R5
U1(EN1)

16

28

2
7
1
9
10
15

IN1
IN2
EN1

VSS

8
VS OUT1
OUT2

U1
3
6

D3

D5

1N4001

1N4001

D4
EN2
IN3
IN4

GND

OUT3
GND OUT4

11
14

1N4001

D6
1N4001

L293D

D7

D9

1N4001

1N4001

D8
1N4001

D10
1N4001

Fuente: Elaboracin propia

Se realiz este diseo con el fin de usar el puente H (L293D), como amplificador de corriente
y adems para poder controlar los movimientos de los 2 motores DC.
Para esto se utiliz dos motores DC, de lectores de CD/DVD en desuso, para poder simular
lo que es la cerradura elctrica tal como se ve en la Fig.16.
Fig.16. Cerradura Elctrica hecha manualmente

Fuente: Elaboracin propia

20
3.1.4. ESTRUCTURA DE LA CMARA Y WEB CAM
El diseo de esta cmara se realiz en base a una estructura de aluminio, cuya base y altura
son de 5cm. con un espesor de 1.5cm, en cul se encuentran los motores paso a paso
incrustados en el mismo los cuales responden al funcionamiento del sistema, los cuales
estn conectados mediante el driver de motor L298N, el cul dota a los motores la secuencia
de pasos para realizar su movimiento respectivo.
Sobre esta estructura se encuentra una webcam, el cual es de la empresa Genius, siendo el
modelo respectivo iSlim 320.
Fig.17. Cmara de control

Fuente: ELABORACIN PROPIA

3.1.5. CONTROL INFRARROJOS


A

Para poder controlar los infrarrojos que se incorporaron en la cmara se realiz un circuito
para poder controlar el encendido y apagado de estos mediante un relay el cual nos permite
un control eficiente de este, el diseo se bas en el siguiente esquema.
Fig.18. Esquema relay.
R4
220

RL1
D2

G5CLE-14-DC12

1N4007

R5

Q1
2N2222

470

Fuente: ELABORACIN PROPIA

D3
LED-GREEN

21
3.1.6. DIAGRAMA GENERAL DEL CIRCUITO DEL PROYECTO
LCD1

LCD

LM016L

LS1(2)

CONTROL DE ACCESOS CON CMARA DE VIGILANCIA


ARDUINO MEGA

GND

R2X
100

Pulso Trigger

220
220

Triger

P12

Eco

Pulso eco

11
12
13
14
15
16
17
18

A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15

MOTOR 1

PIC16F876A

1
4

R6

1
15

100k

R7

IN1
IN2
IN3
IN4
ENA
ENB

VCC

VS

SENSA
SENSB

OUT1

OUT2

13

OUT3

14

OUT4

TX
RX
TX1
RX1
TX2
RX2
TX3
RX3

GND
8

100k

U4

+88.8

5
7
10
12
6
11

2
3

P13
P12
P11
P10
P9
P8
P7
P6
P5
P4
P3

L298

D0
D1
D2
D3
D4
D5
D6
D7

(SS)D53
(SCK) D52
(MOSI)D51
(MISO)D50

RS
1
E
2
D4
3
D5
4
D6
Alarma
D7

D49
D48
D47
D46
D45
D44
D43
D42
D41
D40
D39
D38
D37
D36
D35
D34
D33
D32
D31
D30
D29
D28
D27
D26
D25
D24
D23
D22

f1
f2

Clear

f3

TECLADO

2ND
I

HELP

ENTER

f4
IN2
c1
IN1
c2
c3
c4
5
7
6

VCC

RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
MCLR/Vpp/THV
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT

POWER

21
22
23
24
25
26
27
28

1
2
3
4
A
B
C
D
S

1k

2
3
4
5
6
7

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

1
2
3
4
5
6
7
8
9

RV1

OSC1/CLKIN
OSC2/CLKOUT

VCC

VCC1
GND1
AREF

8
A

U3

VCC1
GND1

470

f1
f2
f3
f4
c1
c2
c3
c4

RESET
ULTRASONIDO

9
10

SPEAKER

R10
Alarma

ARDUINO MEGA

R1X
15k

7
8
9
10
D4 11
D5 12
D6 13
D7 14

RS
RW
E
RS
4
5
6
E

1
2
3

VSS
VDD
VEE

LS1

SDA
SCL

U1(VS)
CERRADURA ELCTRICA

CCT001
16
IN1
IN2

R4
MOTOR 2

6
7
8

100k

R9

100k

1
15

IN1
IN2
IN3
IN4
ENA
ENB

VCC

VS

SENSA
SENSB

U5
OUT1
OUT2
OUT3
OUT4

RL1
D2

2
3
13
14

G5CLE-14-DC12

R5

D3
LED-GREEN

1N4007

Q1
2N2222

470

GND
8

9
10
15

220

+88.8

R8

55
7
10
12
6
11

L298
RELAY INFRARROJOS

2
7
1

IN1
IN2
EN1
EN2
IN3
IN4

VSS

GND

8
VS OUT1
OUT2

OUT3
GND OUT4

U1
3
6

11
14
L293D

Q1

TIP31

22
3.1.7. FOTOGRAFA DEL CIRCUITO DEL PROYECTO COMPLETO

23

3.2. DISEO DEL SOFTWARE


3.2.1. DIAGRAMA DE FLUJO DEL SISTEMA
INICIO
LECTURA DISTANCIA

DISTANCIA
<=30

SI

INGRESE CODIGO
NO
CONT+
+

SI
CODIGO==
TRUE

CLAVE
ERRADA

NO

SI

INICIO CMARA
CONT
==3
ACTIVACI
N ALARMA

SI

NO

NO

NO

MOVIMIENT
O
CMARA==
TRUE
ENCENDER
INFRARROJO=
=TRUE

RESET==T
RUE
REGISTRO
REALIZADO
BIENVENIDO

SI

SI

SI

24
3.2.2 FUNCIONAMIENTO DEL SISTEMA
Como se pudo apreciar en el anterior punto, el diagrama de flujo del sistema es un resumen
del funcionamiento del circuito electrnico, a continuacin se explicar a detalle los pasos del
sistema:
-

Cuando se inicia el sistema se ve un mensaje de distancia, mostrndonos la lectura


del sensor ultrasnico para poder detectar la presencia de la persona, si esta est a
una distancia menor o igual a 30 cm, el sistema le pide al usuario que ingrese una
contrasea.

La contrasea es enviada va comunicacin serial al programa servidor, que es el que


se encargar de controlar si es un cdigo correcto para poder empezar con la
aceptacin del sistema, sino caso contrario mandar mensajes de error. En caso de ser
positivo la contrasea se activa automticamente la cmara para poder realizar el
registro correspondiente con tickeo de fecha y hora, adems de la fotografa de la
persona que ser almacenado en una base de datos. Pero en caso de ser negativo el
sistema tolerar tres fallas caso contrario sonar una alarma.

El servidor contar con el programa de manejo de la cmara para poder sacar la foto
correspondiente al usuario que ingresa, adems tendr la posibilidad de reiniciar el
sistema desde all. Adems este tendr una activacin manual desde el sistema de los
leds infrarrojos de la cmara de vigilancia.

El sistema realizar esta operacin en continuo funcionamiento mientras el sistema


este energizado.

CAPTULO

CONCLUSIONES Y
RECOMENDACIONES

25
CAPITULO IV. CONCLUSIONES Y RECOMENDACIONES
CONCLUSIONES

Se pudo desarrollar y construir un sistema de accesos con cmara de vigilancia, que


ayuda al registro de personas en la entrada de un ambiente, para tener mayor
seguridad y confiabilidad, y principalmente poder tener un registro e histrico de

trabajo que est plasmado en una base de datos.


Se realiz la codificacin del programa del servidor en el lenguaje C#, el cul con la
ayuda de libreras se pudo tener control sobre la cmara que se utiliz para este
proyecto, ya que estas vienen patentadas con su propio software, y lo que hay que

hacer es adecuar este software dentro el programa que se quiere desarrollar.


Se aplic la comunicacin serial, para poder realizar el registro correspondiente del
acceso del usuario, adems de la comprobacin del mismo, adems ayudo en el

control de la cmara y reinicio del sistema.


Se document toda la informacin adquirida en toda la investigacin y realizacin del
proyecto, tomando en cuenta la hoja de datos de cada componente utilizado y la
informacin adquirida.

RECOMENDACIONES.

Se debe tener mucho cuidado al momento del diseo y de la implementacin de


cualquier tipo de circuito, especialmente tomando en cuenta el factor de ruido que
puede afectar al sistema y llegar a daar o quemar componentes fundamentales del

circuito.
Se debe tomar muy en cuenta el cuidado al momento de la programacin y control del
programa que se cargar al Arduino, ya que ste es el que controlar todo el
funcionamiento del sistema. Adems de tener un buen control por parte del servidor y
el sistema informtico, siendo estos fundamentales para el funcionamiento de todo el
sistema.

CAPTULO

BIBLIOGRAFA

26
CAPITULO V. BIBLIOGRAFIA.
LIBROS.
-

PEREZ, Diego (2006). Ultrasonidos. Universidad de Quindo. Colombia.

WEBs
-

5HZ-ELECTRNICA. (2012). Arduino Mega 2560 R3. Recuperado de http://www.5hzelectronica.com/arduino_uno_mega.aspx.

ARDUINO (2013). Arduino Mega. Recuperado de


http://arduino.cc/es/Main/ArduinoBoardMega

ILUMINACIONLED (20133). Diodo Led Infrarrojo. Recuperado de


www.iluminacionled.ws/diodos/diodo-led-infrarojo.html

STIRNER (2011). LiPeMo 3.0 Control de motores L298N Dual H Bridge DC stepper
Motor Driver. Recuperado de http://proyectoarduino.blogspot.com/2011/11/lipemo-30control-de-motores-l298n-dual.html

TAMAYO

(2009).

Comunicacin

Serial.

Recuperado

de

http://galaxi0.wordpress.com/el-puerto-serial/
-

UPV (2010). Universidad Tcnica de Valencia-Publicaciones. Recuperado de serverdie.alc.upv.es/.../lsed/.../MotoresPasoaPaso/Motorespasoapaso.pdf

CAPTULO

APNDICE

27
CAPITULO VI. APENDICE.
CDIGO DE ARDUINO
#include <Keypad.h>
#include <LiquidCrystal.h>
#include <NewPing.h>
#include <Stepper.h>
//Ultrasonido y motor
#define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN
11 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum
sensor distance is rated at 400-500cm.
const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution for
your motor
//Para el teclado
const byte ROWS = 4; //4 filas
const byte COLS = 4; //4 columnas
//definimos los valores para el teclado
char hexaKeys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}};
byte rowPins[ROWS] = {22,24,26,28}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {30,32,34,36}; //connect to the column pinouts of the keypad
//inicializando componentes
LiquidCrystal lcd(52,50,48,46,44,42);//Inicializando los pines del LCD
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); //para
el teclado
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Para iniciar el ultrasonido.
Stepper
Stepper
Stepper
Stepper

myStepper(stepsPerRevolution,23,25,27,29);//motor2 abajo
myStepper2(stepsPerRevolution,29,27,25,23);//motor2 arriba
myStepper3(stepsPerRevolution,31,33,35,37);//motor1
myStepper4(stepsPerRevolution,37,35,33,31);//motor1

//Variables
int contador_alarma=1; //contador de la alarma
char dato;//Dato recibido por serial
int alarma=53;//Salida de la alarma en el pin 31
String clave="";//Almacenamos aqui la clave
int cont;//Contador para el ingreso de clave
int espera;//contador de espera
void(* resetFunc) (void) = 0;//RESETEA
void setup(){
//Modo de salida de la alarma
pinMode(alarma, OUTPUT);
Serial.begin(9600);
//Inicia LCD
lcd.begin(16,2);
lcd.clear();
//Borra el LCD
lcd.setCursor(0,0);
//Pone la alarma en bajo
digitalWrite(alarma, LOW);

28
//Para los motores
pinMode(A0, OUTPUT);
pinMode(A1, OUTPUT);
digitalWrite(A0, LOW);
digitalWrite(A1, LOW);
pinMode(A2, OUTPUT);
pinMode(A3, OUTPUT);
digitalWrite(A2, LOW);
digitalWrite(A3, LOW);
//chapa
pinMode(49,OUTPUT);
pinMode(51,OUTPUT);
digitalWrite(49, HIGH);
digitalWrite(51, HIGH);
//luces infrarrojas
pinMode(A4, OUTPUT);
digitalWrite(A4, LOW);
}
void loop(){
while(true)
{
lcd.clear();
delay(50);
// Wait 50ms between pings (about 20 pings/sec). 29ms should be the
shortest delay between pings.
unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS).
lcd.print("Distancia: ");//Serial.print("Ping: ");
lcd.print(uS / US_ROUNDTRIP_CM); // Convert ping time to distance in cm and print result (0 =
outside set distance range)
lcd.print("cm");
delay(2000);
lcd.clear();
if(uS / US_ROUNDTRIP_CM<=30)
{
break;
}
//Para resetear
dato=Serial.read();
delay(100);
if(dato=='r')
{
resetFunc();
}
}
while(true)
{
lcd.clear();
lcd.print("Ingrese clave");
delay(1000);
lcd.setCursor(0,2);
while(cont<=3)
{
//Para resetear
dato=Serial.read();
delay(100);
if(dato=='r')

29
{
resetFunc();
}
//Leyendo el teclado
char customKey = customKeypad.getKey();
if (customKey != NO_KEY)
{
Serial.print(customKey);
lcd.print(customKey);
delay(500);
clave=clave+customKey;
cont++;
}
delay(50);
espera++;
if(espera==150)
{
espera=0;
resetFunc();
}
}
while(true)
{
//Contador de la alarma activa
dato=Serial.read();
delay(100);
//En caso de ser la clave incorrecta
if(dato == 'n')
{
lcd.clear();
//Borra el LCD
lcd.setCursor(0,0);
lcd.print("Clave Errada");
delay(5000);
contador_alarma++;
//Caso en que se haya equivocado 3 veces
if(contador_alarma==4)
{
digitalWrite(alarma, HIGH);
delay(5000);
digitalWrite(alarma, LOW);
delay(100);
cont=0;
}
cont=0;
break;
}
if(dato=='y')
{
lcd.clear();
//Borra el LCD
lcd.setCursor(0,0);
lcd.print("Bienvenido");
delay(3000);
digitalWrite(A4, LOW);
digitalWrite(49, LOW);
delay(8000);
digitalWrite(49, HIGH);
digitalWrite(51, LOW);
delay(8000);

30
digitalWrite(51, HIGH);
lcd.clear();
cont=0;
break;
}
//Para mover los motores de la camara
if(dato == 'd')
{
digitalWrite(A0, HIGH);
digitalWrite(A1, HIGH);
for(int i=0;i<9;i++)
{
myStepper.step(1);
delay(500);
}
digitalWrite(A0, LOW);
digitalWrite(A1, LOW);
}
if(dato == 'a')
{
digitalWrite(A0, HIGH);
digitalWrite(A1, HIGH);
for(int i=0;i<9;i++)
{
myStepper2.step(1);
delay(500);
}
digitalWrite(A0, LOW);
digitalWrite(A1, LOW);
}
if(dato == 's')
{
digitalWrite(A2, HIGH);
digitalWrite(A3, HIGH);
for(int i=0;i<5;i++)
{
myStepper3.step(1);
delay(500);
}
digitalWrite(A2, LOW);
digitalWrite(A3, LOW);
}
if(dato == 'w')
{
digitalWrite(A2, HIGH);
digitalWrite(A3, HIGH);
for(int i=0;i<5;i++)
{
myStepper4.step(1);
delay(500);
}
digitalWrite(A2, LOW);
digitalWrite(A3, LOW);
}
if(dato=='z')
{
digitalWrite(A4, HIGH);
}

31
if(dato=='x')
{
digitalWrite(A4, LOW);
}
if(dato=='r')
{
resetFunc();
}

}
break;}
}

CDIGO DEL PROGRAMA EN VISUAL STUDIO C#


A continuacin la vista de la interfaz grfica utilizada, primero para el logeo del sistema:

Cdigo:
using
using
using
using
using
using
using
using

System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Windows.Forms;

namespace TallerIV
{
public partial class FormLogin : Form
{
int x,contador=0;
public FormLogin()
{
InitializeComponent();
timer1.Enabled = false;
lblIntento.Text = "INTENTO :0";
}

32
private void btnAceptar_Click(object sender, EventArgs e)
{
Verifica();
}
public void Verifica()
{
String consulta;
consulta = "Select * from Usuarios where nombre= '" + txtUser.Text + "' and contrasenia= '" +
txtPassword.Text + "'";
Consultas con = new Consultas();
con.Consulta(consulta);
/**/
if (txtUser.Text == "")
errorProvider.SetError(txtUser, "Debe ingresar un usuario");
if (txtPassword.Text == "")
errorProvider.SetError(txtPassword, "Debe ingresar un password");
if (txtUser.Text != "" && txtPassword.Text != "" && contador != 3)
{
errorProvider.Clear();
if (con.Tabla.Rows.Count == 0)
{
MessageBox.Show("No existe usuario");
contador++;
lblIntento.Text = "INTENTO : " + contador;
txtUser.Clear();
txtPassword.Clear();
txtUser.Focus();
}
else
{
timer1.Enabled = true;
}
if (contador == 3)
{
txtPassword.Clear();
txtUser.Clear();
System.Threading.Thread.Sleep(4000);
Application.Exit();
}
}
}
private void btnCancelar_Click(object sender, EventArgs e)
{
txtUser.Clear();
txtPassword.Clear();
txtUser.Focus();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (pgb_Inicio.Value != pgb_Inicio.Maximum)
{
label1.Text = "Cargando...";
pgb_Inicio.Value = pgb_Inicio.Value + 1;
x = pgb_Inicio.Value;
}
else
{
timer1.Enabled = false;
label1.Text = "Finalizado";

33
x = 0;
label1.Text = "BIENVENIDO";
FormPrincipal ventana = new FormPrincipal();
ventana.Show(this);
ventana.WindowState = FormWindowState.Maximized;
this.Hide();
}

private void FormLogin_Load(object sender, EventArgs e)


{
string ruta = Application.StartupPath;
pictureBox1.ImageLocation = ruta + "//guardia.gif";
}
private void txtPassword_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
Verifica();
}
}
}

Ahora el programa principal de registros y comunicacin con el Arduino:

using
using
using
using
using
using
using
using
using
using
using

System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Windows.Forms;
AForge.Video;
AForge.Video.DirectShow;
System.IO;

34
namespace TallerIV
{
public partial class FormPrincipal : Form
{
String consulta; string datoCadena; String ruta; int cont = 0;
String fecha; String hora;
public FormPrincipal()
{
InitializeComponent();
BuscarDispositivos();
ruta = Application.StartupPath;
pictureBox1.ImageLocation = ruta + "//arduino.jpg";
timer1.Enabled = true;
}
private bool ExistenDispositivos = false;
private FilterInfoCollection DispositivosDeVideo;
private VideoCaptureDevice FuenteDeVideo = null;
Consultas con = new Consultas();
private void FormPrincipal_Load(object sender, EventArgs e)
{
consulta = "Select * from Empleados";
con.Consulta(consulta);
dgvEmpleados.DataSource=con.Tabla;
dispositivos.Hide();
iniciar.Hide();
consulta = "Select * from Asistencia";
con.Consulta(consulta);
dataGridViewAsistencia.DataSource = con.Tabla;
}

this.Conectar();

private void FormPrincipal_FormClosing(object sender, FormClosingEventArgs e)


{
if (iniciar.Text == "Detener")
TerminarFuenteDeVideo();
Application.Exit();
serialPort1.Close();
}
private void iniciar_Click(object sender, EventArgs e)
{
consulta = "Select * from Empleados where Codigo='"+datoCadena+"'";
Consultas con = new Consultas();
con.Consulta(consulta);
if (con.Tabla.Rows.Count == 0)
{
MessageBox.Show("El usuario no existe", "Alerta", MessageBoxButtons.OK,
MessageBoxIcon.Error);
serialPort1.Write("n");
txtCodigo.Clear();
datoCadena = "";
}
else
{
if (iniciar.Text == "Iniciar")

35
{

if (ExistenDispositivos)
{
capturawebcam.Image = null;
//FuenteDeVideo = new
VideoCaptureDevice(DispositivosDeVideo[dispositivos.SelectedIndex].MonikerString);
FuenteDeVideo = new VideoCaptureDevice(DispositivosDeVideo[1].MonikerString);
FuenteDeVideo.NewFrame += new NewFrameEventHandler(video_NuevoFrame);
FuenteDeVideo.Start();
iniciar.Text = "Detener";
dispositivos.Enabled = false;
capturar.Enabled = true;
}
}
else
{
if (FuenteDeVideo.IsRunning)
{
TerminarFuenteDeVideo();
iniciar.Text = "Iniciar";
dispositivos.Enabled = true;
capturar.Enabled = false;
}
}
}
}
private void capturar_Click(object sender, EventArgs e)
{
Rectangle formaRecorte = new Rectangle(0, 0, 400, 400);
Bitmap imagenOrigen = (Bitmap)webcam.Image;
Bitmap imagen = imagenOrigen.Clone(formaRecorte, imagenOrigen.PixelFormat);
//capturawebcam.Image = webcam.Image;
capturawebcam.Image = imagen;
/*Asistencia*/
if (datoCadena != "")
{
marcaIngreso(datoCadena);
datoCadena = "";
serialPort1.Write("y");
datoCadena = "";
txtCodigo.Clear();
//Vuelve iniciar camara
TerminarFuenteDeVideo();
iniciar.Text = "Iniciar";
dispositivos.Enabled = true;
capturar.Enabled = false;
webcam.Image = null;
//Llena la asistencia
consulta = "Select * from Asistencia";
con.Consulta(consulta);
dataGridViewAsistencia.DataSource = con.Tabla;
}
}
/*Algunos Mtodos*/
public String Leer_Direccion(String Cadena)
{
return (Cadena.Replace("\\", "?"));
}

36
public String Cargar_Direccion(String Cadena)
{
return (Cadena.Replace("?", "\\"));
}
public void Conectar()
{
try
{
//serialPort1.PortName = cboCom.Text;
//serialPort1.BaudRate = Convert.ToInt32(cboBaudRate.Text);
serialPort1.PortName =label7.Text;
serialPort1.BaudRate = Convert.ToInt32(label8.Text);
serialPort1.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK,
MessageBoxIcon.Error);
serialPort1.Close();
}
}
private void btnIzquierda_Click(object sender, EventArgs e)
{
serialPort1.Write("a");
}
private void btnDerecha_Click(object sender, EventArgs e)
{
serialPort1.Write("d");
}
private void btnArriba_Click(object sender, EventArgs e)
{
serialPort1.Write("w");
}
private void btnAbajo_Click(object sender, EventArgs e)
{
serialPort1.Write("s");
}
private void serialPort1_DataReceived(object sender,
System.IO.Ports.SerialDataReceivedEventArgs e)
{
int dato;
dato = serialPort1.ReadChar();
datoCadena += Convert.ToString(Convert.ToChar(dato));
if (datoCadena.Length == 4)
{
CheckForIllegalCrossThreadCalls = false;
txtCodigo.Text = datoCadena;
iniciar_Click(sender, e);
}
}
public void marcaIngreso(string _Codigo)
{
string ID = "no";
string Nom = "";
string Cargo = "";

37
for (int i = 0; i < dgvEmpleados.RowCount-1; i++)
{
if (_Codigo == dgvEmpleados[5, i].Value.ToString())
{
ID = dgvEmpleados[5, i].Value.ToString();
Nom = dgvEmpleados[1, i].Value.ToString();
Cargo = dgvEmpleados[4, i].Value.ToString();
}
}
if (ID != "no")
{
try
{
fecha = DateTime.Now.ToString("dd/MM/yyyy");
hora = DateTime.Now.ToString("hh:mm:ss");
ruta = "D:\\TallerIV\\TallerIV\\TallerIV\\bin\\Debug\\FotosEmpleados\\" + Nom + "_" + ID +
"_" + hora.Replace(":", "_") +".jpg";
capturawebcam.Image.Save(ruta, System.Drawing.Imaging.ImageFormat.Jpeg);
//cont++;
consulta = "Insert into asistencia (Nombre,Cargo,Codigo,Fecha,Hora,Direccion) VALUES ('"
+ Nom + "','" + Cargo + "','" + ID + "','" + fecha + "','" + hora + "','" + Leer_Direccion(ruta) + "')";
Consultas con = new Consultas();
con.Consulta(consulta);
serialPort1.Write("H");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
else
{
serialPort1.Write("L");
}
}
#region TallerIV
public void CargarDispositivos()
{
for (int i = 0; i < DispositivosDeVideo.Count; i++)
dispositivos.Items.Add(DispositivosDeVideo[i].Name.ToString());
dispositivos.Text = dispositivos.Items[0].ToString();
}
public void BuscarDispositivos()
{
DispositivosDeVideo = new FilterInfoCollection(FilterCategory.VideoInputDevice);
if (DispositivosDeVideo.Count == 0)
ExistenDispositivos = false;
else
{
ExistenDispositivos = true;
CargarDispositivos();
iniciar.Enabled = true;
}
}
public void TerminarFuenteDeVideo()
{
if (!(FuenteDeVideo == null))

38

if (FuenteDeVideo.IsRunning)
{
FuenteDeVideo.SignalToStop();
FuenteDeVideo = null;
}

private void video_NuevoFrame(object sender, NewFrameEventArgs eventArgs)


{
Bitmap Imagen = (Bitmap)eventArgs.Frame.Clone();
webcam.Image = Imagen;
}
#endregion
private void salirToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit(); serialPort1.Close();
}
private void usuarioToolStripMenuItem_Click(object sender, EventArgs e)
{
Usuarios users = new Usuarios();
users.Show();
}
private void btnLuces_Click(object sender, EventArgs e)
{
if (btnLuces.Text == "Luces")
{
serialPort1.Write("z");
btnLuces.Text = "Apagar";
}
else {
if (btnLuces.Text == "Apagar")
{
serialPort1.Write("x");
btnLuces.Text = "Luces";
}
}
}
public void actualizarToolStripMenuItem_Click(object sender, EventArgs e)
{
consulta = "Select * from Empleados";
Consultas con = new Consultas();
con.Consulta(consulta);
dgvEmpleados.DataSource = con.Tabla;
}
private void acercaDeToolStripMenuItem_Click(object sender, EventArgs e)
{
FormAbout acerca = new FormAbout();
acerca.Show();
}
private void buscarToolStripMenuItem_Click(object sender, EventArgs e)
{
FormBuscar buscar = new FormBuscar();
buscar.Show();
}

39
private void timer1_Tick(object sender, EventArgs e)
{
fecha = DateTime.Now.ToString("dd/MM/yyyy");
hora = DateTime.Now.ToString("hh:mm:ss");
label6.Text = hora;
label4.Text = fecha;
}

}
}

private void btnResetea_Click(object sender, EventArgs e)


{
serialPort1.Write("r");
datoCadena = "";
txtCodigo.Clear();
}

ANEXOS

42
ANEXOS