Trabajo Final Arquitectura de Computadoras
Trabajo Final Arquitectura de Computadoras
Trabajo Final Arquitectura de Computadoras
CURSO:
Arquitectura de Computadoras
PROFESOR:
ESTUDIANTES:
1 Tabla de contenido
2 Introducción..............................................................................................................................3
3 Estado del Arte.........................................................................................................................3
4 Detalles del Proyecto................................................................................................................3
4.1 Objetivos............................................................................................................................3
4.2 Especificaciones de los componentes utilizados..............................................................3
4.3 Esquema de conexión.......................................................................................................7
4.4 Código de control de proyecto.......................................................................................10
4.5 URL de video de funcionamiento del proyecto.............................................................16
4.6 Conclusiones....................................................................................................................16
4.7 Referencias APA 7..........................................................................................................16
Se realizo una búsqueda de un proyecto que cubriera una necesidad doméstica y común a todas las
personas. Para ello se pensó en un problema cotidiano como el incendio dentro de una cocina o el
aumento de temperatura en un ambiente de un hogar, de esta forma el problema sería algo afín a
cualquier usuario.
4.1 Objetivos
Es una especie de tablero con orificios en el cual se puede insertar componentes electrónicos
y cables para armar circuitos.
32 leds
01 Resistencia
Sirve para limitar la corriente que circula por una rama de un circuito eléctrico.
1 pieza
2 micro Servomotores
Dispositivo eléctrico autónomo que gira partes de la maquina con alta eficiencia y con gran
precisión.
El eje de salida gira aproximadamente la mitad de un círculo, o 180 grados. Tiene topes
físicos colocados en el mecanismo de engranaje para evitar que se gire más allá de estos
límites para proteger el sensor de rotación.
1 sensor de Gas
Los sensores de gas son dispositivos que indican la presencia de algún gas específico, en
algunos casos pueden configurarse o, en caso de tener sensores más precisos, miden la
concentración de gas. Los sensores de gas son usados para prevenir la exposición a gases
combustibles y gases tóxicos.
Luego de especificar los componentes utilizados, es básico tener en cuenta el Arduino para realizar
las conexiones necesarias, por otro lado, se requiere el sensor de humo, el sensor de temperatura,
una pantalla LCD para la muestra de datos hacia el usuario, tres resistencias para limitar la corriente
dirigidas a la pantalla LCD y con el sensor de humo, para luego ser unidas de un tablero de pruebas
pequeña.
En la siguiente imagen mostramos la conexión correspondiente de los sensores hacia los puertos
correctos del Arduino.
(Figura de conexión de
Ahora, en una nueva tabla de pruebas pequeña, se realizará las conexiones de otros componentes
como dos micro servomotores, seis leds, una resistencia, un pieza y dos micro servomotores de tipo
posicional.
Por último, la conexión de todas las tablas de pruebas pequeñas hacia el Arduino para que pueda
comenzar a funcionar.
El código del proyecto está distribuido en cerca de 400 líneas de las cuales se dividen principalmente
en 4 grandes secciones importantes, estás son:
Importación de librerías
La funcionalidad del circuito depende directamente de 3 librerías esenciales cuando se trabaja con
LCD, servomotores y sensores, estos son:
Servo.h, librería que permite a la placa Arduino controlar una gran variedad de servo
motores. En nuestro caso tenemos 4 servo motores 2 para cada funcionalidad en específico.
Keypad.h, librería con el propósito de usar los teclados de estilo matricial con Arduino.
Con esta librería, se manipulará el teclado 4x4 agregado al circuito
La siguiente parte del código es en la que se definirá todas las variables necesarias para el
funcionamiento del sistema de alarma.
Toda esta sección se encuentra entre las líneas 17 y 100. Entre las variables que más nos importan
son las que hacen referencia al teclado, LCD, sensores, servomotores, alarma y leds.
En la línea 26 se define la variable teclado, que será una instancia de la clase Keypad. Para este
propósito se necesita definir un arreglo con las entradas que usaremos del teclado, los pines
horizontales, los pines verticales, cantidad de filas y columnas. En este caso, sólo necesitamos las
entradas numéricas.
En la línea 29 se define una referencia al LCD, los parámetros enviados al constructor son los
números de los pines a los cuales tenemos conectado en el circuito.
Entre otros, se define los pines que harán referencia a determinados componentes. Por ejemplo, en
la línea 67 y la línea 80 refieren al componente con roles de notificación auditiva y visual.
Esta función es llamada cuando el circuito inicia. Por eso que aquí se está definiendo el modo de los
pines, algunas definiciones de las librerías ya mencionadas, etc. Esta sección se ejecuta una sola
vez, cuando se enciende o se reinicia la placa Arduino.
Podemos ver que en la línea 93 y 94, aparecen dos componentes que hasta ahora no hemos
comentado, los servos motores. El método attach de los objetos Servo requiere como parámetros el
número del pin, pulso mínimo y máximo en correspondencia al ángulo inicial de los servos que
estamos manipulando.
Loop
Este método es la que permite repetir el cuerpo del código constantemente, de esa manera podremos
cambiar, interactuar, responder ante determinados eventos. Esta es la parte más extensa del
programa, se encuentra entre las líneas 102 y 397.
Alarmas
Esta parte del código está dedicado a las validaciones correspondidas para lanzar las respectivas
alarmas del circuito, tanto sonoras, visuales como motoras. Esta sección representa las líneas 122
hasta 172. Entre esas líneas se evalúa 3 casos: cuando la temperatura está por sobre los 45 y el gas
debajo de los 60, cuando el gas está por sobre los 60 y la temperatura debajo de los 45, y finalmente
cuando el gas y la temperatura exceden sus valores normales, es decir, 60 y 45 respectivamente.
Si por ejemplo consideramos la línea 155, en la que se evalúa cuando los valores exceden tanto para
el gas como para la temperatura, veremos que se activan las luces, se enciende la alarma,
cambiamos el ángulo de inclinación de los servos a 180 y 55 respectivamente. Todo esto se verá
reflejado en el LCD 16x2.
Finalmente, la parte del panel de control está comprendida por las líneas 202 y 397. Sólo se
accederá a esta sección del código al ingresar la clave correcta en el tablero (la cual fue definida en
la línea 34), de lo contrario se mostrará en el LCD el correspondido mensaje para las contraseñas
inválidas.
La lectura de la opción por parte del usuario final se realiza gracias al método getKey del objeto de
la clase Keypad definida en la línea 26.
En la parte del código de la opción 4 del panel de control se visualizará un bucle while que se
mantendrá ejecutando hasta la opción del panel de control cambie. La lectura de los datos por parte
de los sensores se hace gracias al método analogRead en la línea 312 y 316 que cumplirá su rol de
mantener leyendo los datos secuencialmente.
Finalmente, así es como está distribuido el código del proyecto. El código cumple con su rol, pero
si existe la posibilidad de mejorar su organización, establecer nuevos métodos que agrupen ciertas
funcionalidades y que faciliten la reutilización, sobre todo en varias partes de los bucles.
https://www.youtube.com/watch?v=1tfEPkUbXys&t
4.6 Conclusiones
Existen diverso software libre como es el Tinkercad, gracias a esta herramienta hemos podido
simular el funcionamiento de un Sistema de Alarma Contra Incendio.
Arduino es una plataforma de creación de electrónica de código abierto, la cual está basada en
hardware y software libre, flexible y fácil de utilizar para los creadores y desarrolladores.
Al usar Arduino, decidimos utilizar en nuestro proyecto la mayoría de elementos electrónicos que
vimos en cada clase
Nos pareció un buen proyecto, motivador y que nos sirvió de mucha experiencia, aumentando
nuestro grado de trabajo en equipo, usando conocimientos previamente adquiridos e investigación
de cosas que el equipo desconocía.
Jimbo, E. (15 de agosto de 2020). PROYECTO: "Sistema De Alarma Contra Incendio". Autodesk
TINKERCAD. https://www.tinkercad.com/things/kMp1OEH3TNa-proyecto-sistema-de-alarma-
contra-incendio