Un cuatrimestre menos (II)
Continuo aquí con la segunda parte de la entrada anterior sobre las asignaturas optativas que he cursado en 5º de Ingeniera Informática.
Arquitecturas en Sistemas de Tiempo Real
Esta asignatura difiere un poco a la anterior. Esta vez tenemos ya todo el hardware diseñado e implementado, y trabajamos directamente sobre placas ya fabricadas. Durante el curso hemos usado la placa μC/Eval-STM32F107 Eval Board, que usa un procesador Cortex™-M3. Se aprende a manejar los componentes de entrada salida (LEDS y botones) de la placa, junto con los correspondientes elementos para sistemas de Tiempo Real (colas de mensajes, interrupciones, registros de flags…).
Esta placa tiene muchas limitaciones hardware ya que no tiene botones (aunque los profesores le soldaron algunos para las clases) y 3 leds. Al principio de la asignatura se dan unas nociones básicas de sistemas en tiempo real y, tras esto, se comienza a trabajar en la placa. Los programas para la placa se realizaran en C, en un entorno de desarrollo especial para estas placas. Se empezará programando solo una pequeña función para encender los leds, añadir el botón en otra tarea y continuar hasta aprender a realizar interrupciones con el botón para alterar el comportamiento de los leds.
Para la evaluación de la asignatura, se le propone al alumno (o grupo de alumnos) la realización de algún programa que atañe alguna funcionalidad extra de la placa, como puede ser un sensor de temperatura que tiene integrado o, si tuvieses algún componente extra de este mundo, usarlo también. Ademas, también es posible cambiar de placa a otra disponible en el departamento, la placa Stellaris Robotic Eval Board. Este modelo de placa, mas que placa es un pequeño robot.
Tiene, entre varios elementos, un display LCD, dos pulsadores, dos leds, dos motores con sus correspondientes sensores y dos sensores de colisión delanteros. Para la evaluación puedes tratar de hacer cualquier tipo de función (movimiento autónomo del robot o seguir una ruta predefinida y volver si encuentra algún obstáculo, por ejemplo). En nuestro caso escogimos esta placa e implementamos un movimiento autónomo de la placa, con giros aleatorios cuando choca. En paralelo, la pantalla display muestra la acción que esta realizando el robot, y cuando gira, nos indica el numero de grados que gira el robot.
Aquí tenéis un vídeo que realizamos para el día de la exposición, que lamentablemente fue grabado en una etapa temprana del trabajo y aun no mostraba los grados de giro.
Para mi gusto, en esta asignatura se aprende mucho, pero es necesario también ponerle muchas ganas. No es fácil coger la soltura con el manejo de C (sobre todo en una escuela donde la base se asienta exclusivamente en JAVA) y las tareas en tiempo real. Sobre todo, intentar no perder ninguna clase y trabajar entre varios para ir captando la mayor cantidad de información en las clases. Son muchos conceptos dados en poco tiempo, aunque todos interesantes para aprender sobre sistemas empotrados.
Hasta aquí esta asignatura, y con ella las dos asignaturas optativas de este primer cuatrimestre. Espero que hayáis aprendido algo y os haya gustado. Si tenéis alguna pregunta o sugerencia, podéis hacerla en los comentarios.