Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Reporte Proyecto PDF
Reporte Proyecto PDF
Proyecto Final
Cerradura electromagnética
Índice de tablas
Tabla 1.Caracteristicas de los microcontroladores ......................................................................................... 7
Tabla 2 Descripción de bus de datos............................................................................................................ 13
Tabla 3 Descripción de comandos ............................................................................................................... 14
Tabla 4 Costos ............................................................................................................................................ 33
I. INTRODUCCIÓN
El concepto de seguridad domiciliaria, de oficina o de un edificio en general toma un papel
muy importante dentro de nuestra sociedad, hoy en día es necesario proteger las
pertenencias de cada individuo y/o brindarles cierta protección. En el mercado existen
diferentes tipos de artículos y artefactos que aseguran brindar defensa ante cualquier atraco
o agresión, como lo son las alarmas, cámaras de seguridad, sensores etc.
Dentro de la Universidad Autónoma de Querétaro, se propone desarrollar un sistema de
seguridad de puertas que controle el acceso y la salida de los alumnos y docentes de un
edificio, un sistema donde se lleve el control y se registren los movimientos dentro del
inmueble.
Este proyecto se propone ser colocado en el edificio de mecatrónica de la Facultad de
Ingeniería, donde se encuentran piezas de importancia para la universidad.
La aparición de la electrónica y la materia de Programación avanzada nos han permitido un
rápido progreso en lo que se refiere al concepto de seguridad y desarrollo de estos sistemas,
ya que nos proporciona una variedad de posibilidades de trabajo en este tipo de procesos,
eliminando y transformando de esta forma nuevos conceptos que nos brindarán la
optimización del mismo.
Microcontroladores:
Un Microcontrolador es Circuito integrado o chip que incluye en su interior las tres
unidades funcionales de un ordenador: CPU, Memoria y Unidades de E/S, es decir, se trata
de un computador completo en un solo circuito integrado. Aunque sus prestaciones son
limitadas, además de dicha integración, su característica principal es su alto nivel de
especialización. Aunque los hay del tamaño de una moneda, lo normal es que sean incluso
más pequeños, ya que, lógicamente, forman parte del dispositivo que controlan.
Un microcontrolador típico posee en su interior un generador de reloj integrado, una
pequeña cantidad de memoria RAM y ROM/EPROM/EEPROM. Para hacerlos funcionar
todo lo que se necesita son unos pocos programas de control, alimentación (típicamente
3.3V o 5V) y un cristal de sincronización.
Los microcontroladores disponen generalmente también de una gran variedad de
dispositivos de entrada/salida, como convertidores de analógico a digital, temporizadores,
UARTs y buses de interfaz serie especializados, como I2C y CAN.
Los microcontroladores más utilizados son los:
AVR
ARM
MSP430
PIC
o Microcontroladores PIC
Como se puede ver en la tabla de la página anterior, salvo “los monstruos de 16 bits” PIC
24FXXX y PIC 24HXXX – todos los microcontroladores tienen la arquitectura Harvard de
8 bits y pertenecen a una de las tres grandes grupos. Por eso, dependiendo del tamaño de
palabra de programa existen la primera, la segunda y la tercera categoría de
microcontroladores, es decir microcontroladores de 12, 14 o 16 bits. Puesto que disponen
del núcleo similar de 8 bits, todos utilizan el mismo juego de instrucciones y el “esqueleto”
básico de hardware conectado a más o menos unidades periféricas.
Familia PIC18CXXX/18FXXX:
Encapsulados de 18 a 80 pines.
Memoria de Programa de 16 bits.
Juego de 77 instrucciones (multiplicación).
Pic18F4550
El PIC18F4550 es uno de los más populares microcontroladores cuando de
conectividad USB se trata, solo basta googlear un poco para ver cuantos proyectos a través
del puerto USB utilizan este microcontrolador, además es un buen paso para dejar a la
familia PIC16F, y pasar al siguiente nivel porque no solo incluye conectividad USB, sino
que además tiene más memoria RAM EEPROM, y FLASH que el común de la
familia PIC16F. Ideal para pequeñas potencias (nanovatio) y aplicaciones de conectividad
que benefician de la disponibilidad de los tres puertos seriales: FS-USB (12 Mbit /
s), I²C ™ y SPI ™ (hasta 10 Mbit / s). Su gran capacidad de memoria RAM para
almacenamiento temporal y su memoria FLASH de programa mejoradas hacen que sea
ideal para el control integrado y aplicaciones de monitoreo que requieren conexión
periódica con un ordenador personal a través de USB para la carga / descarga de datos y / o
actualizaciones de firmware.
Ilustración 4 PIC18F4550
Principales Características
Puerto USB V2.0 que puede trabajar en modo low speed (1.5 Mb/s) y Full speed
(12 Mb/s).
RAM 1-Kbyte accesible por USB.
Reloj externo hasta de 48 MHz.
Oscilador interno de 31 KHz – 8 MHz configurable por software.
Pines con salida de alta corriente de hasta 25 mA.
4 timers de los cuales: hasta 2 pueden ser utilizados como módulos de
captura/comparación/PWM.
Puerto USART con soporte para comunicaciones MSSP, SPI e I²C.
Hasta 13 canales ADC de 10 bits.
Memoria FLASH con 100,000 ciclos de lecturas escritura típicos.
Memoria EEPROM con 1, 000,000 ciclos de lectura escritura típicos y retención
de datos de hasta 40 años.
Programación con código de protección.
Programación ICSP vía dos pines.
LCD son las siglas en inglés de Liquid Crystal Dysplay, pantalla de cristal líquido en español,
un tipo de dispositivo que se utiliza para la visualización de diferentes tipos de contenidos o
información de manera gráfica, mediante el uso de diferentes caracteres, símbolos o dibujos.
La segunda parte de este término, 16x2, se refiere a que la pantalla cuenta con dos filas, cada
una con la capacidad para mostrar hasta dieciséis caracteres, símbolos o figuras, según su
programación.
Entonces, el término LCD 16x2 se refiere a un pequeño dispositivo con pantalla de cristal
líquido que cuenta con dos filas, de dieciséis caracteres cada una, que se utiliza para mostrar
información, por lo general alfanumérica. Las capacidades de estos dispositivos son altas,
pues se puede mostrar todo tipo de información sin importar qué tipo de símbolos o caracteres
sean, el idioma o el lenguaje, pues el sistema puede mostrar cualquier carácter alfanumérico,
símbolos y algunas figuras, el número de píxeles que tiene cada símbolo o carácter varía
dependiendo del modelo del dispositivo y cada artefacto está controlado por un
microcontrolador que está programado para dirigir el funcionamiento y la imagen mostrada
en la pantalla.
Entre las ventajas que se tienen al utilizar este tipo de artefactos están el mínimo consumo de
energía o corriente eléctrica, la programación es sumamente sencilla y es por lo general
cargada por el fabricante, dependiendo del uso y tipo de equipo que se trate.
Estos módulos de pantalla de cristal líquido tienen usos muy variados y en diferentes campos
como la informática, las telecomunicaciones, la telefonía, la industria automotriz, la relojería,
la robótica, la línea blanca, entre muchas otras, ideales sobre todo para dispositivos que
requieren de una visualización pequeña o incluso mediana.
Las pantallas de cristal líquido suelen disponer de una matriz de 5x8 puntos que se utiliza
para representar los diferentes caracteres. Comúnmente, el total de caracteres que se pueden
representar en dispositivo es de 256, de los cuales los primeros 240 son los símbolos
alfanuméricos comunes (letras mayúsculas y minúsculas, signos de puntuación, algunos
caracteres especiales, comunes y números) y el resto son caracteres que pueden ser
introducidos o definidos por el usuario.
Los dispositivos LCD 16x2 deben contar con un controlador, el más común que se utiliza en
la industria es el chipset HD44780, sobre todo por su flexibilidad, soporte y compatibilidad
con prácticamente cualquier plataforma. Existen, sin embargo, otros controladores bastante
efectivos, la mayoría desarrollados a partir del controlador HD44780.
Estos dispositivo con pantallas de cristal líquido se han vuelto muy populares en los últimos
años, esto es debido a la gran variedad que existe y la enorme versatilidad en su uso, su gran
capacidad para mostrar mensajes de texto, ya sea fijos o en movimiento, valores numéricos
y una mayor cantidad de símbolos especiales, en comparación con modelos anteriores.
Este tipo de dispositivos, además, tienen un precio bastante accesible, a diferencia de otros
equipos, su gran potencia en imagen con un bajo consumo de recursos y energía es otra gran
ventaja.
En cuestiones de programación y recursos informáticos, estos dispositivos solo requieren de
6 pines del microcontrolador para su conexión, la programación en diferentes lenguajes de
alto nivel es muy sencilla, incluso para inexpertos, los caracteres con los que se programe
el display deben estar en código ASCII. Dependiendo del microcontrolador que se utilice,
los dispositivos LCD 16x2 pueden conectarse a través de un bus de datos de 4 u 8 bits,
dependiendo del número de pines a disposición y son compatibles con diversas plataformas
como Arduino, PIC, MSP430, AVR, entre otras.
Debido a la retroiluminación con la que cuentan estos dispositivos, es posible lograr un alto
grado de contraste de colores y por lo tanto tener gran claridad en el mensaje mostrado, la
pantalla es sumamente delgada, en consecuencia su tamaño es pequeño y su vida útil es
bastante más extensa que muchos otros displays.
Quizás la única desventaja de este tipo de pantallas es que no se tiene una diversificación
muy fina o exacta de los colores, por lo que en ambientes con una iluminación poco favorable
no es posible visualizar de la mejor manera los mensajes mostrados en la pantalla. Para estos
casos los displays de siete segmentos siguen siendo la mejor opción.
¿Cómo se conecta?
En la siguiente imagen de Proteus se puede observar la estructura de sus pines.
Lo podemos dividir en los Pines de alimentación, pines de control y los pines del bus de
datos bidireccional. Por lo general podemos encontrar además en su estructura los pines de
Ánodo y cátodo de led.
a) Pines de alimentación:
Vss: Gnd
Vdd: +5 voltios
Vee: corresponde al pin de contraste, lo regularemos con un potenciómetro de 10K
b) Pines de control:
El Bus de datos bidireccional comprende desde los pines D0 a D7. Para realizar la
comunicación con el LCD podemos hacerlo utilizando los 8 bits del bus de datos (D0 a D7)
o empleando los 4 bits más significativos del bus de datos (D4 a D7)
Tabla 2 Descripción de bus de datos
Para poder visualizar los caracteres o símbolos en el LCD es necesario que en el programa
de código fuente a emplear, incluyamos la librería.
En este caso empleamos la librería "lcd.c".
La librería viene configurada de esta manera
Vamos a configurar para poder usar el PIN que nosotros deseamos, en este caso para usar el
puerto D del PIC.
e)Funciones a usar:
lcd_init(): Inicializa el lcd
lcd_gotoxy(x,y): Establece la posición de escritura en el lcd.
lcd_putc(char s): nos muestra un dato en la siguiente posición del lcd.
\f se limpia el lcd
\n el cursor se posiciona al inicio de la segunda línea
\b el cursor retrocede una posición
lcd_getc(x,y): lee el carácter de la posición (x,y)
printf(lcd_putc, cadena, variable)
El teclado matricial 4x4 está constituido por una matriz de pulsadores dispuestos en filas
(A,B,C,D) y columnas (1,2,3,4), con la intención de reducir el número de pines necesarios
para su conexión. Las 16 teclas necesitan sólo 8 pines del microcontrolador, en lugar de los
16 pines que se requerirían para la conexión de 16 teclas independientes. Para poder leer
que tecla ha sido pulsada se debe de utilizar una técnica de barrido y no solo leer un pin de
microcontrolador.
V. METODOLOGIA
Para este proyecto de programación avanzada la metodología fue la siguiente.
Una vez que se eligió el proyecto en el cual íbamos a trabajar a inicios del semestre, se hizo
una investigación acerca de los métodos que podíamos utilizar para realización del proyecto.
El que nos pareció más viable fue el de la chapa magnética, el cual consiste en un imán que
se activa o se desactiva cuando le sumistas energía. Ya que hemos trabajado prácticas que se
basan en él envió de señales a través de los puertos, se nos hizo la opción más viable.
Una vez que se tengan todos los componentes que utilizaremos, procederemos ha hacer el
diseño de nuestra placa donde soldaremos todos los componentes, se utilizara un relevador,
ya que la chapa magnética requiere de 12 V, mucho más de lo que un pic puede soportar.
Ya teniendo la placa diseñada con todos los componentes soldados, y funcionando cada uno
de ellos continuaremos con la parte de programación, primeramente, realizaremos una base
de datos en la plataforma de access donde registraremos a las personas que podrán entrar al
laboratorio de mecatrónica con su expediente, datos personales y una clave para poder
ingresar.
Una vez que tengamos la base de datos se realizara una interfaz en visual c, donde se
mostraran las personas que han entrado al laboratorio, así como la hora en que lo hicieron.
La base de datos estará conectada con la interfaz de visual, que a su vez estará comunicado
con el microcontrolador, que mandara la señal para que se abra la puerta, en caso de que la
clave que ha ingresado el usuario sea la correcta, de lo contrario la puerta no se abrirá.
Esta es una metodología a grandes rasgos, pero en general es lo que se quiere lograr como
parte del proyecto, un sistema de seguridad totalmente funcional.
VI. RESULTADOS
A. RESULTADOS OBTENIDOS
La cerradura electromagnética cumplió con las funciones planteadas a inicios del semestre,
en donde especificábamos las características del mismo, que fueron utilizar un teclado
matricial 4x4, un solenoide, la creación de una base de datos que dijera quien y a qué hora
se tenía acceso a cierto lugar, además de contar con un módulo bluetooth para conectarse de
manera inalámbrica a la computadora para enviar los datos. Tuvimos unas pequeñas
complicaciones ya que nos dimos cuenta de que el solenoide estaba muy cerca del relé y
esto hacia que no se desactivara el imán, además de que nuestros programas sufrieron de
muchas trabas a la hora de utilizarlos.
B. CONCLUSION
Jesús Iram:
En la realización de este proyecto, aplicamos todos los conocimientos que hemos adquirido
a lo largo del semestre, y tuvimos que investigar más cosas ya que algunas cosas no las
habíamos visto en clase ni en el laboratorio por lo que se nos hizo un poco difícil la
realización del proyecto. Pero ya que estuvimos investigando y aprendiendo cosas nuevas,
cada uno a su manera se pudo realizar el proyecto.
La parte que más nos costó trabajo fue la de la parte de la programación de la interfaz de
visual estudio ya que teníamos que conectar otras dos plataformas en conjunto con esta para
que el proyecto funcionara, esas dos plataformas fueron la de acces donde realizamos la
base de datos, y el pic compiler donde programamos el microcontrolador, para que mandara
los datos a visual studio y este a su vez tomara datos de acces.
Para mi esa fue la parte complicada ya que yo me encargue más de la parte de
programación, y si tuvo su grado de complejidad.
Con la realización de este proyecto tuvimos la oportunidad de aprender más sobre la
electrónica y la programación ya que juntamos todo ese conocimiento y creamos algo que
puede ser de utilidad para el laboratorio de mecatrónica, si se implementa de manera
correcta.
Carmen:
En el desarrollo de este proyecto, tuvimos que meternos a investigar sobre el desarrollo de
un sistema de control de acceso, que debo decir existen cientos pero muy raramente tenían
integrado una base de datos, así que lo pesado fue el desarrollo de esta; el cómo fusionar C#
y Access para lograr lo que deseábamos. Mi trabajo se centró en el desarrollo de un
programa que utilizara la memoria EEPROM del microcontrolador para guardar claves,
pero como el acceso iba a ser a muchas personas, era necesario optimizar demasiado esa
memoria, por lo cual optamos por la idea que quedo al final, y aunque básicamente mis
esfuerzos no sirvieron, pude aprender varias cosas acerca de cómo funciona esta memoria.
También me encargue de aprender a programar la pantalla LCD, fue un poco complicado
pero al final también me sirvió para realizar un ejercicio de practica y fue muy interesante
aprender esos comandos y funciones de la pantalla. La parte del trabajo si fue un poco mal
distribuida, ya que mis compañeros y yo pasamos por diferentes situaciones que requerían
de tiempo igualmente y al final el que hizo más fue Jesús al tener más tempo libre, pero los
tres estuvimos al pendiente de que hacia cada uno y así no quedar en blanco en cualquiera
de las cosas, pero hacer este proyecto fue de las mejores cosas ya que aplique todo lo que
aprendimos en el semestre y reforcé lo que aprendí en programación I.
Diana:
Durante el desarrollo de esta práctica hemos definido un sistema de seguridad como el
conjunto de elementos e instalaciones necesarias para proporcionarnos a las personas,
bienes materiales o inmuebles protección frente a agresiones tales como robo o atraco.
Para llevar a cabo este sistema, fue necesario poner a prueba todos los conocimientos
adquiridos en clase; así como en el desarrollo de las prácticas, en este proyecto nos
encontramos con diversos problemas a los que nos tuvimos que enfrentar para buscar la
mejor solución.
Considero que hoy en día es importante brindar y apoyar a nuestra universidad en el área de
seguridad, con este proyecto buscamos aportar un sistema de seguridad en puertas viable y
de bajo costo que la facultad pueda costear y de esta manera lograr un mejoramiento de la
misma.
VII. REFERENCIAS
http://aprendiendoelectronicafacil.blogspot.com/2015/04/pic-c-compiler-manejo-de-lcd-
16x2.html
https://www.nextiafenix.com/producto/pic18f4550/
https://unasguiasmas.com/tag/pic18f4550/
https://www.geekfactory.mx/tutoriales/tutoriales-pic/teclado-matricial-con-pic/
http://programarpicenc.com/articulos/teclado-matricial-4x4-con-los-microcontroladores-pic/
https://www.geekfactory.mx/tutoriales/tutoriales-pic/pantalla-lcd-16x2-con-pic-libreria/
VIII. ANEXOS
a) ANEXO A. CODIGO (DE TODOS LOS COMPONENTES)
#include <18F4550.h>
#FUSES NOWDT
#FUSES NOPROTECT
#FUSES NOLVP
#use delay(internal=4000000)
#include <lcd.c>
#include <KBD4x4_1.c>
int i;
char k;
char c;
char dato[4];
#int_rda
void rcv_data()
c= getc();
if(c=='c')
lcd_putc("\fcorrecto");
output_low(pin_a0);
delay_ms(15000);
output_high(pin_a0);
c='x';
if(c=='i')
lcd_putc("\fincorrecto");
delay_ms(1000);
c='x';
void main()
output_high(pin_a0);
enable_interrupts(INT_RDA);
enable_interrupts(global);
//printf("hola");
i=0;
lcd_init();
kbd_init(); //
port_b_pullups(TRUE);
lcd_putc("\fIniciando");
delay_ms(1000);
while(1){
//lcd_putc("\f");
lcd_gotoxy(0,1);
lcd_putc("INGRESE SU CLAVE ");
int renglon=0;
while(i<4){
if(k!=0){
if(i==0)
lcd_putc("\f");
dato[i]=k;
//printf("%c",dato[i]);
i++;
lcd_gotoxy(i,1);
printf(lcd_putc,"*");
//printf(lcd_putc,"\fSali ");
if(i!=0)
// printf(lcd_putc,"\fSali ");
printf("%c%c%c%c",dato[0],dato[1],dato[2],dato[3]);
}
i=0;
//delay_ms(1000);
End Sub
Public Sub llena_campos()
Me.lblnombre.DataBindings.Clear()
Me.lblexpediente.DataBindings.Clear()
Me.lblcarrera.DataBindings.Clear()
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
lblfecha.Text = Date.Now
End Sub
End Sub
Next
If cbopuerto.Items.Count > 0 Then
cbopuerto.SelectedIndex = 0
MsgBox("Carga completa")
Else
MsgBox("No se encontraron puertos")
End If
End Sub
End If
End Sub
End Sub
'Label2.Text = "Validando"
lblnombre.Text = "k"
abre()
llena_campos()
If (lblnombre.Text = "k") Then
serialpic.Write("i")
Else
serialpic.Write("c")
registrar()
End If
Label2.Text = ""
'clave = txtdatos.Lines(0)
End Sub
End Sub
End Sub
Private Sub Label2_Click(sender As Object, e As EventArgs) Handles Label2.Click
End Sub
End Sub
End Sub
End Sub
End Sub
https://drive.google.com/open?id=1Uo1hcCcbQ-S5ZpYXq2ZCeZO8aft9EbwN
e) ANEXO ESQUEMATICOS ELECTRONICOS