Diseño con microcontroladores: 2024-2025

Grado en Ingeniería Informática

Curso: Tercero
Semestre: Quinto
Creditos: 6 ECTS
Carácter: Optativa
Coordinador:   Manuel Nieto

Normas Tutorías Calificaciones Guía docente
Temario Talleres Prácticas Arduino Visual Micro VMLAB Sala Alpera Material de Apoyo

Descripción

Esta asignatura tiene dos objetivos fundamentales: por un lado, profundizar en el conocimiento del funcionamiento de los computadores, específicamente, del sistema de entrada/salida y su interacción con el software; por otro lado, servir como introducción al diseño de sistemas basados en microcontroladores. La dedicación fundamental de los alumnos es el desarrollo, de forma autónoma, de un sistema basado en una placa Arduino (un microcontrolador AVR) a elegir entre varios propuestos por la asignatura; opcionalmente, se podrá desarrollar un sistema propuesto por los alumnos. En todo caso, se deberá conectar todos los componentes del sistema con el microcontrolador, se deberá configurar y controlar los módulos de entrada/salida involucrados, se deberá programar en lenguaje C las rutinas de tratamiento de las interrupciones que se generen, y se deberá programar el diálogo con los usuarios del sistema y todas las funciones necesarias para su correcto funcionamiento de acuerdo con su especificación. Durante las clases se explicarán los módulos de entrada/salida y los periféricos más usuales en los sistemas de control, su configuración y algunos ejemplos de cómo usarlos.

Para el desarrollo de las prácticas, se usará como plataforma de desarrollo un sistema Arduino Leonardo, que está basado en el microcontrolador AVR32U4. Todo el software que se debe implementar en las prácticas actuará sobre el microcontrolador directamente, salvo en algunas excepciones en que se podrá usar librerías del sistema Arduino ya desarrolladas.

Profesores:  Francisco Naveros Manuel Nieto Ángel Grover PérezMarco Xavier Rivera

Temario

  1. Introducción al diseño de sistemas basados en microcontroladores.
    Microcontrolador AVR Atmega32U4.
    • Arquitectura.
    • Juego de instrucciones.
    • Módulos de E/S.

  2. Arduino Leonardo.
    • IDE de Arduino.
    • Programación en C.
    • Prácticas propuestas.

  3. Entrada/Salida digital (Presentación clase I y clase II).
    • Activación de LED's.
    • Lectura de pulsadores.
    • Teclado (lectura digital y analógica).
    • Control de dispositivos.
    • Encoder en cuadratura.
    • Ejemplos.

  4. Control de módulos LCD.
  1. Gestión de interrupciones en AVR ATmega.
  2. Temporizadores programables (Presentación, Ejemplos).
    • Pulse Width Modulation (PWM).
    • Filtros PID (Vídeo ilustrativo).
    • Control de motores y servomotores.
    • Detección de paso por cero (ZCD).
      Gestión de potencia.

  3. Entrada/Salida serie. (Presentación)
    • USART (RS-232).
    • I2C.
    • SPI.

  4. Cadena de E/S Analógico/Digital (Presentación).
    • Convertidores.
    • Ejemplos.

  5. Ejemplos prácticos.

Talleres

Taller I

El martes día 24 de septiembre se realizará el primer taller de la asignatura en el aula de clase (3204). Para ello, todos los grupos deben haber elegido y configurado su práctica y deben haber recogido el material necesario para realizarla. El contenido del taller es el siguiente:

Taller II

El martes 1 de octubre comenzará el segundo taller de la asignatura, que se desarrollará en varias sesiones. Su contenido es el siguiente:

Taller III

El jueves 10 de octubre se realizará el tercer taller. En él se conectará el resto de los componentes de las prácticas y se comprobará su correcto funcionamiento:

Primera entrega

Tal y como os digimos, para completar los tres primeros talleres debéis preparar vídeos que muestren los resultados que habéis conseguido y todos los componentes de vuestra práctica conectados y funcionando correctamente. Cada vídeo debe ir acompañado del fichero .ino con el código correspondiente. El contenido que debéis incluir es el siguiente:

Para hacer la entrega debéis generar un fichero comprimido con todo el contenido; si tenéis acceso, lo cargáis en UPMdrive o OneDrive de la UPM; si no podéis, lo cargáis en Dropbox, Onedrive, GoogleDrive... o donde tengáis acceso; después enviáis el enlace a dmc@datsi.fi.upm.es. No es necesario que funcione todo al tiempo. Pueden ser programas y vídeos independientes; únicamente debéis mostrar que todo funciona correctamente y para ello podéis usar cualquier librería de Arduino, ya sea oficial o no, tal y como hicimos en los talleres. La fecha de la entrega es el viernes 18 de octubre.

Taller IV

El jueves 24 de octubre tendrá lugar el cuarto taller, que tratará de la gestión de las interrupciones, en concreto las externas:

Taller V

El quinto taller se realizará en dos sesiones, el jueves 7 de noviembre y el martes 12. En él se ejercitará el uso del Timer 1 del AVR32U4 para varios propósitos usando distintos modos de funcionamiento (Guion):

Taller VI

El sexto taller estará centrado en el uso y configuración de los filtros PID. Se realizará en dos sesiones, el jueves 21 de noviembre y el martes 26.

Prácticas

La prácticas consistitrán en la implementación de un pequeño sistema de control basado en una placa Arduino Leonardo. Se realizarán en grupos de dos alumnos. Cada grupo deberá elegir una de las prácticas que se presentarán durante las primeras clases.

Las prácticas propuestas para este curso basadas en el sistema Arduino son las siguientes: Todas ellas incluyen el control de un pequeño teclado y un módulo LCD para los que se dispone de varias alternativas en función de los deseos y espectativas de cada grupo, desde el uso de un módulo arduino ya construido con toda la funcionalidad requerida, hasta el completo diseño y construcción de un módulo similar.

Los alumnos que así lo deseen podrán plantear prácticas alternativas de similar o mayor complejidad.

Equipo de Teams para buscar compañero de prácticas (Código 4tkvlsb).

Gracias a la "amabilidad" de vuestro compañero Eric Mozo Ruiz, "podéis encontrar a vuestra disposición" la práctica que realizó durante el curso 2017/18 Control de servo motores, práctica que obtuvo la sobrevalorada calificación de 5 puntos.
Confiamos en la sensatez y buen criterio de todos los alumnos de la asignatura, esperando que no hagan uso de este material ni de cualquier otro inapropiado que conduzca a la aplicación de lo previsto para los casos de prácticas o examenes copiados.

Memoria

Todas los grupos deberán redactar una memoria que incluya la documentación técnica de su práctica. El objetivo de esta documentación es proporcionar detalles suficientes para que alguien ajeno a ella y con la preparación adecuada sea capaz de comprender su propósito, su funcionamiento, y cómo está implementada, de forma que pueda fácilmente realizar modificaciones tales como sustituir o añadir componentes, o modificar su funcionalidad.

El formato de la memoria y su estructuración en capítulos y apartados debe ser decidido y elaborado por cada grupo. Una buena documentación técnica debe incluir estos aspectos: La descripción de la práctica con sus componentes, su propósito y su funcionalidad. Las conexiones de cada componente con el procesador y con los módulos de E/S; la configuración y programación de los módulos de E/S y su uso coordinado con el software. Las interrupciones usadas, su propósito, sus rutinas de tratamiento y su relación con el programa de control. El interfaz de usuario y una guía de uso. La estructura del programa de control y su desglose en ficheros; las variables y las funciones más importantes usadas. Los convenios que se hubieren establecido. Y cualquier otra información de todo tipo que se considere relevante, todo ello adaptado a la complejidad y características de cada práctica.

Sistema Arduino

http://arduino.cc: "Arduino es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar. Se creó para artistas, diseñadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos." Esta es la página oficial del sistema arduino; en ella se puede encontrar información de la placa Leonardo usada en clase, instrucciones para la descarga, instalación y uso delsoftware de desarrollo (IDE), la referencia del lenguaje de arduino y ejemplos de uso (antiguamente había una página en español, pero no se actualizaba habitualmente y terminó desapareciendo).

El software de arduino está implementado sobre la librería AVR Libc ( Copia local V 2.2.0), que es un subconjunto de la librería estándar libc adaptada a la familia de microcontroladores AVR de 8 bits. Todos sus módulos pueden ser usados junto con las librerías de arduino.

Plugin Visual Micro. Depurador

Dos de los inconvenientes del sistema arduino son que su IDE es muy sencillo y, fundamentalmente, que no dispone de ninguna ayuda para la depuración del software. Atmel, la empresa que diseñó y fabricaba los microcontroladores en que se basan los distintos modelos de arduino, ha desarrollado varias herramientas de libre disposición que incluyen un IDE, Atmel Studio, que tiene integrados simuladores para varios microcontroladores (entre los que no se encuentra el Atmega32U4 usado por arduino Leonardo). Atmel fue comprada por la empresa Microchip y está migrando Atmel Studio a una nueva versión, Microchip Studio. La última versión de Atmel Studio es la 7 (Instalador para Windows, User Guide en pdf).

La empresa Visual Micro ha desarrollado un plugin que integra toda la funcionalidad del IDE de arduino en Atmel Studio combinando la simplicidad del primero con todas las ayudas que proporciona el segundo. Este plugin es de libre disposición y se puede descargar e instalar directamente desde Atmel Studio (Tools->Extensions and Updates: "Arduino Ide for Atmel Studio 7").

Visual Micro incluye un depurador que facilita el desarrollo de software para el sistema arduino. Utiliza de forma totalmente transparente la misma vía de comunicación con el microcontrolador que el IDE de arduino mostrando los mensajes de depuración en ventanas independientes. Amplía el concepto de punto de ruptura (breakpoint) insertando código C oculto que determina en qué momentos se dispara el breakpoint, qué información muestra, qué acciones se toman y qué variables se puede modificar durante la ejecución del programa.

La funcionalidad de depuración de Visual Micro no está incluida en la versión libre, salvo para su evaluación durante 45 dias. Tiene un coste no demasiado alto para particulares y un poco mas elevado para empresas.

El orden de instalación de estos tres componentes es:

  1. arduino
  2. Atmel Studio
  3. Visual Micro

Simulador VMLAB

VMLAB es un IDE para la familia AVR que integra un depurador simbólico de alto nivel y un simulador interactivo de los microcontroladores AVR, de sus módulos de E/S, de los periféricos más usuales y que dispone de herramientas para modelar y simular el comportamiento de otros periféricos.

Para el desarrollo del software está integrado con WinAVR, que incluye el compilador GCC de GNU, el mismo que usa el sistema arduino.

El orden de instalación de estos dos componentes es:

  1. WinAVR
  2. VMLAB

Si no funciona correctamente en Windows 10, sustituir el fichero \WinAVR\utils\bin\msys-1.0.dll por este otro.

Sala Alpera

La sala Alpera es un taller que comparte Informática Industrial con otras asignaturas. En ella tenéis a vuestra disposición material (cables, resistencias, condensadores...), herramientas (destornilladores, alicates, polímetro, osciloscopio, analizador lógico, soldador...) y mesas de trabajo.
El material está guardado en un armario con llave. Para usar la sala debéis pedir la llave (o que os abra la puerta) al conserje de la zona (planta 0 del bloque 4 o planta 2 del bloque 3) identificándoos como alumnos de Informática industrial. Al terminar de trabajar debéis dejar todo el material guardado en el armario y devolver la llave dejando la sala cerrada.

Material de Apoyo

IMPORTANTE: Casi toda la información de esta sección está sacada de internet. Es bien sabido por todo el mundo que cualquiera puede poner información en la red sin necesidad de pasar controles de fiabilidad. Los manuales de los fabricantes y la documentación de los paquetes de software pueden contener erratas, pero son a todas luces fiables. El resto de la información, en general, también lo es, pero contiene inexactitudes, alguna tontería y está bastante sesgada hacia el mundo de los pcs, así que usadla con cautela.

Pinnacle 52. Simulador de microcontroladores de la familia 8052. Sólo para windows.

Documentación sobre el 8052. Contiene manuales de las familias AT89C51 y AT89C52 de Atmel (versiones del 8051 y 8052). También contiene manuales de varios microcontroladores.

Documentación de Dallas Semiconductors.

Documentación del bus i2c.

Documentación sobre Displays de cristal líquido (Módulos LCD).

Eagle Layout Software. Software de diseño de circuitos lógicos y placas. Versión Freeware.

Información sobre el estandard RS-232 y otros interfaces.

Información sobre el 8052.

The PC technology guide. Información sobre el pc, periféricos y todo lo que le rodea.

Normas

DESARROLLO DEL CURSO

La asistencia a clase es obligatoria; se realizarán controles todas las clases y talleres. A lo largo del curso se irán presentando distintos aspectos relacionados con el diseño de sistemas basados en microcontroladores y se irán realizando ejemplos usando el sistema arduino y el simulador vmlab. Su instalación, configuración y uso se ilustrará, de forma somera, durante las exposiciones en el aula. Una buena parte de las explicaciones y ejemplos estarán relacionados directamente con la práctica que deberán completar los alumnos en grupos de dos. Aquellos alumnos que realicen prácticas especiales deberán hacer una presentación de las mismas al final del curso.

EXÁMENES

Para aprobar la asignatura se deberá realizar una práctica, entregar una memoria de la misma y realizar un examen, debiéndose aprobar en la misma convocatoria. En caso de suspender alguna de las partes, se considerará la asignatura suspensa y se deberá realizar una nueva práctica, entregar la memoria y realizar un nuevo examen.

No se devolverán las memorias de las prácticas, por lo que se aconseja a los alumnos que conserven una copia.

Para la admisión de los alumnos al examen de la asignatura será necesario que hayan realizado la práctica en su totalidad.

REVISIÓN DE EXÁMENES Y PRÁCTICAS

Una vez publicadas las notas de la asignatura, se abrirá un plazo de solicitud de revisión (2 días hábiles) para aquellos alumnos que consideren que existe algún error en la calificación. Esta solicitud de revisión se realizará conectándose al URL (WEB) http://www.datsi.fi.upm.es/docencia/DMC/rev_dmc.html. El alumno deberá rellenar los datos que se requieran. Una vez hecha la revisión por los profesores, se publicará la lista de notas revisadas. Si el alumno desea revisión presencial, deberá acudir al lugar y hora que se establecerá en su momento.

Se recuerda a los alumnos que la revisión de exámenes tiene por objeto detectar y subsanar los posibles errores que puedan surgir en el proceso de calificación. No se trata de explicar individualmente cómo se resuelve el examen ni de variar ni discutir los criterios de corrección para una persona determinada.

PRÁCTICAS o EXÁMENES COPIADOS

Los exámenes se realizarán a nivel personal y la práctica en los grupos establecidos. Si se detecta que algún alumno ha copiado en algún examen o algún grupo ha copiado en la realización de la práctica, se le calificará como suspenso en esa convocatoria y en la siguiente. En particular, en el caso de la práctica, se tendrá en cuenta que la responsabilidad de la práctica está compartida por todos los miembros del grupo, por lo que en caso de detectar alguna copia la norma se aplicará a todos los miembros de todos los grupos involucrados en la copia (tanto los que copian como los que se dejan copiar). Para evitar problemas y reclamaciones que no se podrán atender se recomienda a los alumnos que sean especialmente cuidadosos con los ficheros que se utilicen para la realización de la práctica, puesto que de ello depende que la práctica pueda o no ser copiada. En concreto, utilice siempre dispositivos extraibles cuando trabaje en un PC del Centro de Cálculo (no deje los ficheros en el disco duro ni siquiera de forma transitoria) y haga uso de los mecanismos que proporciona el sistema operativo cuando estos estén disponibles (máquinas Unix).

Página modificada el 10/12/2024


Noticias

  • 10-Diciembre-2024. Notas acerca del contenido de la memoria.
  • 20-Noviembre-2024. El Taller VI se realizará los días jueves 21 y martes 26 de noviembre.
  • 7-Noviembre-2024. El Taller V se realizará los días jueves 7 y martes 12 de noviembre.
  • 24-Octubre-2024. El Taller IV se realizará el jueves 24 de octubre.
  • 16-Octubre-2024. La fecha de la Primera entrega es el viernes 18 de octubre.
  • 8-Octubre-2024. El Taller III se realizará el jueves 10 de octubre.
  • 30-Septiembre-2024. El Taller II comenzará el martes 1 de octubre.
  • 19-Septiembre-2024. El Taller I está planificado para el martes 24 de septiembre.
  • 18-Julio-2024. Sección dedicada a anuncios y novedades que surjan durante el desarrollo de la asignatura.