Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Proyecto Final Estructuras Computacionales
Proyecto Final Estructuras Computacionales
OBJETIVO
En el presente trabajo se muestra la solución a un problema de la vida real, a manera de
fortalecer el manejo práctico y el análisis crítico del estudiante ante tareas de la vida
cotidiana implementadas con el manejo de microcontroladores, en este caso
específicamente en el entorno del STM32L476, además de permitir al estudiante anexar
una parte libre del desarrollo del proyecto como sello personal.
En este caso incluí una comunicación serial UART, con visualizador Hércules y que se
cumpla una tarea específica mostrando el estado en el que se encuentra.
1. PROBLEMA:
VEHICULAR PEATONAL
Rojo PA5 Rojo PB6
Ámbar PA6 Verde PC7
Verde PA7 Botón PC13
2. IMPLEMENTACIÓN:
Máquina de estados:
Para habilitar las interrupciones externas debemos habilitar el reloj APB2 desde
RCC, Seleccionar el boton (GPIO) para EXTIx usando EXTICRx3, posteriormente
elegir un disparador usando RTSR o FTSR, Enmascarar el seleccionado EXTIs desde
IMR, es muy importante establecer niveles de prioridad NVIC's IPR, y por último
habilitar la interrupción EXTIx NVIC usando ISER.
7. Esta sección del código se encarga de hacer la transmisión de los datos por la
uart2, el dato RV_VP, con el tamaño del dato y con una velocidad que en este
caso la puse 10, muy importante añadir esto para cada que se necesite
mostrar en pantalla el dato, y colocando Abort transmit para que el dato no
se transmita de manera infinita, sino solo una vez.
8. Se realiza la configuración de relojes y de pines y los parámetros que
configuran la UART como la velocidad de transmisión, las banderas, etc. (se
define por defecto en la HAL).
9. El Timer aumenta en 1 al contador cada segundo. Está es la base de tiempo,
lo ideal es usar una misma base de tiempo para todas las máquinas de estado
a implementar. (Se reinicia el timer y limpia las banderas)
10. Ahora, en este punto se va a implementar la lógica que la máquina de
estados que vamos a llevar a cabo para que el sistema funcione de manera
correcta, considerando las condiciones iniciales del problema y también los
tiempos acordados, por tanto, debe haber cuatro estados, que son los que se
muestran a continuación.
11. Aquí se implementa el desarrollo lógico de la interrupción (Botón peatonal) y
se indica a que estado debe ir cuando se realice una interrupción, es decir,
volver al estado inicial del semáforo.
Referencias.
STM32l476rg datasheet.
https://www.st.com/resource/en/datasheet/stm32l476rg.pdf
Interrupciones externas.
http://www.sc.ehu.es/sbweb/webcentro/automatica/web_avr/archivos/Manual_AT90S85
15/Arquitectura/interrup_externas&tiempo_respu.htm
STM32L476RG
https://www.st.com/en/microcontrollers-microprocessors/stm32l476rg.html
Comunicación serial USART
https://hetpro-store.com/TUTORIALES/comunicacion-serial/
STM32 Cortex®-M4 MCUs and MPUs programming manual
https://drive.google.com/drive/u/0/folders/1R92w1P75IPFFnMioZUJyab1L7e9AL3Hz