TPF Sintejec Taller Embebidos
TPF Sintejec Taller Embebidos
T RABAJO F INAL
P RODUCTO M ÍNIMO V IABLE :
S ISTEMA DE M ONITOREO
Índice
1. Resumen 2
2. Objetivo 2
4. Medición de Parámetros 11
5. Análisis de Consumo 11
7. Índice de figuras 13
9. Bibliografı́a 14
o Página 1 de 14 o
Circuitos electrónicos (86.06)
Circuitos microelectrónicos (TB068)
Curso 1 - 1.º Cuatrimestre 2025
Trabajo de laboratorio 1
Fecha: 12 de agosto de 2025
1. Resumen
El presente proyecto fue desarrollado en el marco de la asignatura Taller de Sistemas Embebidos de la carrera de
Ingenierı́a Electrónica, aplicando conocimientos teóricos y prácticos adquiridos durante la formación intermedia.
Se trata de un sistema de monitoreo para un vehı́culo aéreo no tripulado (dron), diseñado para visualizar infor-
mación relevante como la temperatura, inclinación y altura. Estos datos se obtienen mediante un sensor inercial y se
presentan a través de un menú interactivo, que además permite configurar distintos modos de operación y consumo
energético.
2. Objetivo
Para garantizar la viabilidad del proyecto se propuso como objetivo cumplir con las siguientes caracterı́sticas:
El sistema debe visualizar en tiempo real los parámetros que caracterizan el movimiento del dron cuando se lo
solicite mediante el menú interactivo. Se debe poder intercambiar modos de operación desde el menú interactivo.
Garantizar criterios de calidad en el desarrollo del software: eficiencia en el uso de recursos, escalabilidad para
futuras mejoras o ampliaciones del sistema, y facilidad de interpretación del código para asegurar su mantenimiento y
reutilización.
Visualización en tiempo real de los parámetros del sistema simulando el comportamiento de un dron.
NORMAL: muestra los valores de inclinación y ajusta el brillo de los LEDs en tiempo real.
o Página 2 de 14 o
Circuitos electrónicos (86.06)
Circuitos microelectrónicos (TB068)
Curso 1 - 1.º Cuatrimestre 2025
Trabajo de laboratorio 1
Fecha: 12 de agosto de 2025
Microcontrolador STM32F103RBT6
Pulsadores
3.3.1. Hardware
La placa base cuenta con el microcontrolador incorporado en una placa de desarrollo con diferentes puertos
accesibles para el desarrollo junto con un display lcd para visualizar el menú y los datos obtenidos, por ultimo la placa
cuenta con diferentes pulsadores para controlar el sistema en modo usuario.
o Página 3 de 14 o
Circuitos electrónicos (86.06)
Circuitos microelectrónicos (TB068)
Curso 1 - 1.º Cuatrimestre 2025
Trabajo de laboratorio 1
Fecha: 12 de agosto de 2025
Pulsadores
Resistor variable
La segunda placa, correspondiente a la representación del dron, cuenta con cuatro leds indicadores conectados
mediante resistores para controlar la corriente suministrada.
Sensor MPU6050
Leds indicadores
Conector socket
Resistores
o Página 4 de 14 o
Circuitos electrónicos (86.06)
Circuitos microelectrónicos (TB068)
Curso 1 - 1.º Cuatrimestre 2025
Trabajo de laboratorio 1
Fecha: 12 de agosto de 2025
A continuación se detallan las principales conexiones eléctricas establecidas entre la placa de desarrollo y los
módulos del sistema, basándose en el estándar Morpho Connector de la placa NUCLEO-F103RB de STMicroelectronics,
empleado para la integración de módulos periféricos y componentes externos tales como sensores, indicadores y
elementos de control.
La placa representativa del dron contiene los LEDs indicadores conectados mediante resistores de 2k2 Ω y el módulo
MPU6050, que agrupa los distintos sensores utilizados.
Figura 4: Conexiónes del display y de los pulsadores mediante el estandar Morpho connector.
La conexión del display se da con un resistor variable para el ajuste del brillo y resistores de 1 kΩ para el control de
corriente.
o Página 5 de 14 o
Circuitos electrónicos (86.06)
Circuitos microelectrónicos (TB068)
Curso 1 - 1.º Cuatrimestre 2025
Trabajo de laboratorio 1
Fecha: 12 de agosto de 2025
3.3.3. Software
El desarrollo del software se realizó utilizando el entorno de desarrollo provisto por STMicroelectronics (STM32CubeIDE).
Se adoptó una arquitectura de programación Bare Metal (sin sistema operativo), implementada en lenguaje C, con un
enfoque basado en eventos. El sistema fue diseñado a partir de tareas no bloqueantes, estructuradas en módulos que
responden a estı́mulos especı́ficos del entorno.
La lógica del programa sigue el paradigma de escrutar / procesar / actuar, promoviendo una estructura modular y
de fácil mantenimiento.
Lenguaje: C
El sistema está diseñado bajo un esquema orientado a eventos y tareas. En la fase inicial, se crean e inicializan tres
tareas principales: Sensores, Menú y PWM.
Posteriormente, en el ciclo principal de ejecución, se actualizan periódicamente estas tareas mediante estructuras
iterativas (for), que permiten procesar cada tarea y sus eventos asociados de manera secuencial y organizada. Este
enfoque facilita el manejo eficiente y sincronizado de múltiples procesos concurrentes dentro del sistema embebido.
o Página 6 de 14 o
Circuitos electrónicos (86.06)
Circuitos microelectrónicos (TB068)
Curso 1 - 1.º Cuatrimestre 2025
Trabajo de laboratorio 1
Fecha: 12 de agosto de 2025
Inicio
Desactivar interrupciones
No
¿tick cnt ¿THRESHOLD? Fin
Sı́
Activar interrupciones
Desactivar interrupciones
Sı́
¿tick cnt ¿THRESHOLD? tick cnt–, continuar
No
Activar interrupciones
No
Repetir bucle ¿Fin de sensores?
Sı́
o Página 7 de 14 o
Circuitos electrónicos (86.06)
Circuitos microelectrónicos (TB068)
Curso 1 - 1.º Cuatrimestre 2025
Trabajo de laboratorio 1
Fecha: 12 de agosto de 2025
El menú utiliza una cola circular para gestionar eventos del tipo task menu ev t con una capacidad máxima de
MAX EVENTS.
Inicialización: La función init queue event task menu() resetea los ı́ndices head y tail a 0, el contador count
a 0, y establece todos los elementos de la cola a EVENT UNDEFINED, indicando que está vacı́a.
Inserción de eventos: La función put event task menu(event) añade un evento en la posición head de la cola,
incrementa head (con wrap-around) y actualiza el contador count. No verifica si la cola está llena.
Extracción de eventos: La función get event task menu() extrae el evento en la posición tail, lo elimina
(marcándolo como EVENT UNDEFINED), incrementa tail (con wrap-around) y decrementa el contador count. No
verifica si la cola está vacı́a.
Consulta de eventos: La función any event task menu() retorna true si existen eventos pendientes (cuando
head y tail son diferentes).
Mediante la herramienta itemis CREATE se modelo el comportamiento del menú mediante la representación de
los estados, según el estado actual y una entrada determinada, la máquina realiza transiciones de estado y produce
resultados.
o Página 8 de 14 o
Circuitos electrónicos (86.06)
Circuitos microelectrónicos (TB068)
Curso 1 - 1.º Cuatrimestre 2025
Trabajo de laboratorio 1
Fecha: 12 de agosto de 2025
o Página 9 de 14 o
Circuitos electrónicos (86.06)
Circuitos microelectrónicos (TB068)
Curso 1 - 1.º Cuatrimestre 2025
Trabajo de laboratorio 1
Fecha: 12 de agosto de 2025
Acelerómetro (3 ejes): mide la aceleración lineal en los ejes X, Y y Z. Permite detectar movimientos lineales y
estimar la inclinación del dispositivo con respecto al eje vertical.
Giroscopio (3 ejes): mide la velocidad angular (rotacional) en los ejes X, Y y Z. Es fundamental para determinar
los cambios de orientación del dron, comúnmente expresados como pitch, roll y yaw.
Sensor de temperatura interno (opcional): aunque no es altamente preciso, puede utilizarse para compensacio-
nes térmicas del sistema.
Los datos generados por el MPU6050 son accesibles a través de registros de 16 bits (2 bytes) cada uno, comenzando
en la dirección 0x3B. Una lectura completa abarca 14 bytes e incluye:
Estos datos son valores crudos (raw) en formato complementado a dos, y deben ser escalados de acuerdo a la
configuración de sensibilidad del sensor.
La conversión de los valores crudos a unidades fı́sicas (m/s2 o °/s) se realiza mediante un factor de escala que
depende del rango de medición configurado:
Acelerómetro: por ejemplo, para un rango de ±2g, el factor de escala es 16,384 LSB/g.
Con los datos del acelerómetro, es posible calcular la inclinación del dron utilizando relaciones trigonométricas:
ay 180
Roll = arctan ·
az π
−ax · 180
Pitch = arctan q
a2y + a2z π
Estos ángulos representan la inclinación del dron en los planos lateral y frontal, siendo claves para el monitoreo,
estabilización y control del sistema.
o Página 10 de 14 o
Circuitos electrónicos (86.06)
Circuitos microelectrónicos (TB068)
Curso 1 - 1.º Cuatrimestre 2025
Trabajo de laboratorio 1
Fecha: 12 de agosto de 2025
Depurador: OpenOCD
4. Medición de Parámetros
Tabla 1: Análisis de viabilidad técnica y económica del sistema embebido de monitoreo para dron
Parámetro Descripción / Método de medi- Valor obtenido / Unidad
ción estimado
Consumo promedio del sistema Estimativo 62.26 mA
Tiempo de ejecución de tareas Tiempo desde solicitud de lectura ** ms
hasta despliegue en LCD
Precisión de temperatura Según hoja de datos del sensor y ±2 °C
pruebas en laboratorio
Rango de medición acelerómetro Hoja de datos del fabricante ±2 g (g ≈ 9,8 m/s)
Precisión de altura Hoja de datos del fabricante ± 10 cm
Costo estimado del hardware Incluye MCU, sensores, pantalla, 22.62 USD
conexiones
Tiempo de desarrollo Desde planificación hasta prototi- 6 semanas
po funcional
Escalabilidad del sistema Posibilidad de integrar nuevos Alta –
sensores y expandir el menú
Facilidad de mantenimiento Código modular y documentado, Alta –
basado en tareas
5. Análisis de Consumo
Para estimar la corriente total del sistema se consideraron los consumos tı́picos de cada componente:
NUCLEO-F103RB (con ST-LINK) = 40 mA, LCD 16×2 (con retroiluminación) = 16 mA, MPU6050 = 3,9 mA y
cuatro LEDs con resistores 2k2 Ω cada uno. Se asume que los pulsadores no consumen corriente en reposo (entradas
con pull-up).
La placa se alimenta con 5V mediante la conexión del mini USB, esta placa como máximo puede entregar
120 mA y por cada pin como máximo 25 mA y 3,3 V.
La corriente de cada LED se calcula usando la ley de Ohm, suponiendo VCC = 3,3 V y caı́da en el LED Vf ≈ 2,0 V:
o Página 11 de 14 o
Circuitos electrónicos (86.06)
Circuitos microelectrónicos (TB068)
Curso 1 - 1.º Cuatrimestre 2025
Trabajo de laboratorio 1
Fecha: 12 de agosto de 2025
Sumando los consumos individuales obtenemos el total en el escenario con todos los LEDs encendidos:
Itotal = IN U CLEO + ILCD + IM P U + I4LEDs = 40,00 + 16,00 + 3,90 + 2,36 mA ≈ 62,26 mA.
Se reporta 62,2 mA como consumo estimado en operación tı́pica con LEDs encendidos.
En un escenario de ahorro donde la retroiluminación o los LEDs están apagados, se excluye la corriente de los LEDs
(2.36 mA):
Iahorro = Itotal − I4LEDs ≈ 62,2 − 2,36 = 59,9 mA,
reportado como 60 mA .
Para referencia rápida, la potencia eléctrica asociada al consumo máximo estimado es:
Observaciones: los valores son estimativos y dependen de la configuración real (por ejemplo: intensidad de la
retroiluminación del LCD, actividad del ST-LINK, variantes del MCU en placa propia). Para una determinación precisa
se optarı́a por medir la corriente con un multı́metro en serie, fuente de laboratorio o con un medidor de consumo en la
placa final.
Tabla 3: Medición y análisis de tiempos de ejecución (WCET) y cálculo del Factor de Uso (U) de la CPU
Tarea WCET (ms) Periodo (ms) Factor de Uso U Observaciones
Sensores
Menú
PWM
Otras
o Página 12 de 14 o
Circuitos electrónicos (86.06)
Circuitos microelectrónicos (TB068)
Curso 1 - 1.º Cuatrimestre 2025
Trabajo de laboratorio 1
Fecha: 12 de agosto de 2025
7. Índice de figuras
1. Disposición de la placa de pruebas correspondiente a la base del sistema. . . . . . . . . . . . . . . . . . 3
2. Disposición del prototipo de pruebas del dron. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Conexión módulo MPU6050 (izquierda) y conexión LEDs indicadores (derecha). . . . . . . . . . . . . . 5
4. Conexiónes del display y de los pulsadores mediante el estandar Morpho connector. . . . . . . . . . . . 5
5. Diagramas de bloques representativo de la aplicación desarrollada. . . . . . . . . . . . . . . . . . . . . 6
6. Diagrama de estructura de cola implementada en el menu. . . . . . . . . . . . . . . . . . . . . . . . . . 8
7. Representación de la maquina de estados del menú interactivo. . . . . . . . . . . . . . . . . . . . . . . 9
8. Representación de la maquina de estados de los pulsadores. . . . . . . . . . . . . . . . . . . . . . . . . 9
o Página 13 de 14 o
Circuitos electrónicos (86.06)
Circuitos microelectrónicos (TB068)
Curso 1 - 1.º Cuatrimestre 2025
Trabajo de laboratorio 1
Fecha: 12 de agosto de 2025
9. Bibliografı́a
Referencias
[1] René Beuchat, Florian Depraz, Andrea Guerrieri, Sahand Kashani. Fundamentals of System-on-Chip Design on Arm
Cortex-M Microcontrollers. Arm Education Media, 2021. ISBN: 978-1-911531-334-30 (print), 978-1-911531-35-7
(epub).
[2] Donald Norris. Programming with STM32: Getting Started with the Nucleo Board and C/C++. McGraw Hill TAB,
2018. ISBN: 978-1260031317.
[3] Brian W. Kernighan, Dennis M. Ritchie. The C Programming Language. 2nd ed., Pearson, 1988. ISBN: 978-
0131103627.
o Página 14 de 14 o