-
Notifications
You must be signed in to change notification settings - Fork 0
RTOS: Real Time Operating System
Dado que mi experiencia es Sistemas Operativos de Tiempo Real es nula, el objetivo de este proyecto es estudiarlos mientras lo aplico en el control de un brazo robótico básico. Por su amplia difusión, el kernel que he decidido utilizar es freeRTOS sobre la placa de desarrollo EDU-CIAA-NXP.
Para su estudio, me guiaré con el libro "Masteringthe FreeRTOS™ Real Time Kernel: A Hands-On Tutorial Guide" de Richard Barry, en paralelo con el FreeRTOS V10.0.0 Reference Manual (Ambos se pueden encontrar en el siguiente link).
Dentro del repositorio del firmware_v3 del proyecto CIAA, se encuentran aplicados todos los ejemplos del libro. La idea de este proyecto no es realizar exactamente esos ejemplos, sino orientar cada concepto aprendido al objetivo final del control de un brazo robótico, con lo que se generarán nuevos "ejemplos" más específicos que serán mis distintas pruebas a lo largo del desarrollo del proyecto.
En resumen, todo lo que sigue son mis apuntes teóricos y ejemplos o ejercicios con los que fui trabajando. Cabe aclarar, que dichos ejemplos serán específicos para la placa, utilizando la librería sAPI que provee el firmware.
Para más información sobre freeRTOS, el link a la página principal.
Al plantear una aplicación embebida con requisitos de tiempo real, es necesario definir si esos requisitos son soft real-time (tiempo real "blando") o hard real-time (tiempo real "duro").
Un requerimiento de tiempo real blando es aquel que tiene un determinado deadline que de no cumplirse no provoca que el sistema falle. Caso contrario, un requerimiento de tiempo real duro es aquel que de no cumplirse su deadline el sistema fallará.
La diferencia entre ambos tipos de requerimientos es difícil de marcar ya que de cierta manera es subjetiva. Los requerimientos de tiempo, el hecho de que un sistema falle o no y la magnitud de esa falla, son impuestos a criterio del desarrollador.
Por ejemplo en este proyecto, se analizan las siguientes dos tareas:
- La primera consiste en refrescar un display con los datos actuales del robot.
- La segunda es el cumplimiento de consignas del usuario moviendo los motores del robot a una determinada velocidad.
Se puede decir como desarrollador, que el primera es un requisito mucho más blando que el segundo, ya que un par de milisegundos más o menos en la actualización del display no impactarán demasiado en el usuario, mientras que esa misma diferencia en el movimiento de un motor desecadenará en un mal desempeño del robot.
Microcontroladores y Electrónica de Potencia - Gonzalo G. Fernández - Legajo N°11544
Facultad de Ingeniería - Universidad Nacional de Cuyo - Mendoza, Argentina