Depto. Arquitectura

(Informática Industrial)
Diseño con Microcontroladores

Curso Cuatrimestre Carácter Créditos
Tercero Primero Optativa 6

Curso 2023/2024

Temario Talleres Prácticas Arduino Visual Micro VMLAB Sala Alpera Material de Apoyo

Normas

Tutorías Calificaciones


Coordinador: Manuel Nieto

Profesorado: Ángel Grover Pérez, Manuel Nieto

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).
    • 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

Los días jueves 16, martes 21 y jueves 23 de noviembre se realizarán tres talleres para comenzar a usar y conectar el software y el material de las prácticas. Para esos días deberán estar formados todos los grupos, con las prácticas y su material elegido y entregado. Los talleres se realizarán en el aula habitual de las clases. Cada grupo deberá llevar un ordenador portátil y el material de su práctica.

Para completar los talleres, debéis preparar un vídeo en el que aparezca el diodo led parpadeando y el módulo LCD funcionando y mostrando su funcionalidad tal como hicimos durante el taller o de forma semejante. El vídeo debéis enviarlo por email a dmc@datsi.fi.upm.es incluyendo el fichero .ino con el código. Así mismo, debéis incluir en el vídeo todos los elementos que componen vuestra práctica conectados y funcionando. No es necesario que funcionen todos al tiempo ni que realicen ninguna función concreta; únicamente debéis mostrar que funcionan. Para ello podéis usar cualquier librería de Arduino, ya sea oficial o no. La fecha tope es el lunes 4 de diciembre. Si tenéis dudas sobre cómo conectar algún dispositivo o la forma de probarlo podéis consultarnos.

Cómo probar algunos componentes:

Puerto serie: Conectar RxD y TxD cruzados; conectar GND. Configurar la conexión de hyperterminal sin control de flujo. Usar la librería Serial1 y probar algún ejemplo de los que aparecen en la descripción de sus funciones (p.e. Serial1.readString().

Motor de corriente continua: Conectar + y - a la salida del puente en H. Conectar Gnd y 5V a la alimentación del encoder. Conectar la salida A o B del encoder a una entrada de Arduino con pullup.
Conectar la fuente de alimentación a la entrada del puente en H (y la salida al motor +-). Conectar GND y 5V a la alimentación del puente en H. Conectar InA e InB a dos salidas de Arduino (valores 1 y 0). Conectar pwm a una salida pwm de arduino y generar una señal pwm con AnalogWrite(). Comprobar que se reciben pulsos del encoder con DigitarRead().

Servomotor: Conectar GND, 5V y una salida pwm al motor. Probar usando la librería Servo.

Optotriac: Conectar 5V y una salida Arduino. Conectar la bombilla y enchufar a la pared. Encender (0) y apagar (1) la bombilla.

Detector de paso por cero: Conectar GND, 5V y una entrada de Arduino. Conectar el detector a la pared. Comprobar que se reciben pulsos del detector con DigitalRead().

Teclado y potenciómetro: Conectar GND, 5V y una entrada análogica de Arduino. Usar AnalogRead() para comprobar la tensión del teclado y del potenciómetro.

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

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.


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.

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, 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 de esta parte 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 de esta parte 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/Informatica_Industrial/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 19/12/2023