Princípios e Aplicações de Microcontroladores

Objetivos

Esta unidade visa dotar os alunos com a capacidade de compreender as aplicações de sistemas de baseados em microcontroladores e desenvolver as capacidades necessárias para projetar, programar e testar o software e estabelecer a interface com estes sistemas.

Objetivos de aprendizagem

  1. Compreender os sistemas baseados em microcontroladores
  2. Ser capaz de produzir software para um sistema baseado em microcontrolador
  3. Capacidade para fazer a interface com sistemas baseados em microcontroladores

Conteúdos Programáticos

  1. Compreender os sistemas baseados em microcontroladores
    • Tipos de microcontroladores: comparação com base nas características da família de dispositivos PIC, ARM, etc (velocidades de relógio, arquitetura interna, memória, portas I/O, tipo e tamanho de instrução, interrupções, recursos adicionais (por exemplo, conversores A/D, osciladores e temporizadores, tipo de encapsulamento)
    • Aplicações : uso de sistemas de controlo embebidos em periféricos para computadores (ratos, teclados, modem, fax, placa de som), dispositivos domésticos (fechaduras, ar condicionado, controles remotos de TV, aparelhos), telecomunicações (telefones móveis, pagers, agendas eletrónicas), aplicações automóveis (ignição keyless, travagem anti- bloqueio, gestão do motor, airbags) automação de escritório (fotocopiadoras, impressoras, fax), controle industrial (máquinas)
  2. Ser capaz de produzir software para um sistema baseado em microcontrolador
    • Projeto de software: especificar algoritmos na forma de fluxograma ou em pseudocódigo com detalhes suficientes para permitir a codificação direta
    • Especificação: utilização de especificações com modularização e passagem de dados entre módulos.
    • Escrever programas: escrever programas a partir das especificações; escrever programas em linguagem assembly
    • Teste de software: a partir de dados de teste apropriados (por exemplo, entradas e saídas esperadas) preparados previamente antes da execução do programa testar os programas e documentar os resultados; utilização de ferramentas de software (como debugger, execução passo-a-passo, pontos de interrupção) para detectar erros; alterações ao código ou estrutura do programa sempre que necessário.
  3. Capacidade para fazer a interface com sistemas baseados em microcontroladores
    • Conexão entrada/saída: programar os registos de controle de porta de entrada/saída (I/O); projeto de software para entrada/saída de dados; uso de programas para interface com periféricos de I/O típicos de um microcontrolador (por exemplo, placa de aplicação específica), incluindo interruptores, LEDs, displays de 7 segmentos, motor passo-a-passo, buzzers, semáforos.
    • Projeto prático: projetar e desenvolver software para realizar um projeto com o objetivo de comandar um periférico externo usando dispositivos de entrada e de saída na placa de aplicações a partir duma especificação; documentação do software e demonstração do funcionamento do microcontrolador com os dispositivos periféricos.

Bibliografia e recursos didáticos recomendados

  1. Jonathan Valvano, Embedded Systems: Introduction to Arm Cortex-M Microcontrollers, CreateSpace, 2013
  2. Andrew Sloss, Dominic Symes, Chris Wright, ARM system developer’s guide: designing and optimizing system software, Morgan Kaufmann, 2005