Informações da Disciplina

 Preparar para impressão 

Júpiter - Sistema de Gestão Acadêmica da Pró-Reitoria de Graduação


Escola de Engenharia de São Carlos
 
Engenharia Aeronáutica
 
Disciplina: SAA0356 - Sistemas Embarcados para Veículos Aéreos
Aerial Vehicles Embedded Systems

Créditos Aula: 2
Créditos Trabalho: 2
Carga Horária Total: 90 h
Tipo: Semestral
Ativação: 15/07/2024 Desativação:

Objetivos
Apresentar aos alunos os conceitos profissionais e formas de trabalhar com software embarcado. Apresentar
conhecimentos teóricos e práticos de implementações de sistemas embarcados que compõe produtos aeronáuticos e também produtos não aeronáuticas, levando em consideração as principais diferenças. Relacionar sistemas embarcados com aplicações típicas do universo aeronáutico, com processos soft, firm e hard realtime.
 
 
 
Docente(s) Responsável(eis)
1117972 - Glauco Augusto de Paula Caurin
 
Programa Resumido
Exercitar procedimentos de programação de sistemas embarcados. Familiarizar-se com a forma, as ferramentas de trabalho profissional e os recursos utilizados para a programação de sistemas embarcados. Estudar as particularidades com o uso de sistemas operacionais de tempo real. Trabalhar ferramentas de software profissionais voltadas ao acionamento de motores, leitura de sensores, implementação de controladores e a comunicação em rede.
 
 
 
Programa
1.  Arquiteturas de sistemas embarcados.
     1.1. Definições e conceitos - Sistemas Embarcados, Sistemas Críticos e Sistema de Tempo Real.
2.  Revisão do Sistema Operacional Linux e Programação de Threads em Linux .
3.  Apresentação de hardware embarcado de diferentes capacidades e propósitos:
     a. Toolchain
     b. Booticaders
     c. Kernel
     d. Root Filesystem
     e. Build Systems (Yocto Project)
     f. Storage Strategies
     g. Devices Drivers e Board Support Packages (BSP)

Habilidades:
Programação em sistemas embarcados: Ter habilidades de programação em linguagens capazes de
operar mais próximo do hardware computacional, como C ou C++, e também em linguagens de mais alto
nível como Python para operações de tratamento de dados e manipulação de grandes arquivos de
imagens provenientes de comeras. Ou seja, desenvolver software que seja executado em sistemas
embarcados.
1 - Compreensão dos princípios do fírmware: Demonstrar um entendimento sólido dos princípios
fundamentais relacionados ao desenvolvimento de firmware, incluindo conceitos como arquitetura
do sistema embarcado, ciclo de vida do firmware, gerenciamento de memória, interrupções e
temporização.
2 - Conhecimento de microcontroladores e processadores embarcados: Familiaridade com
microcontroladores e processadores usados em sistemas embarcados, incluindo sua arquitetura,
periféricos e recursos específicos.
3 - Comunicação com periféricos: Ter a capacidade de interagir com periféricos externos, como
sensores, atuadores e interfaces de comunicação, utilizando protocolos de comunicação
adequados, como 12C, SPI ou UART.
4 - Depuração e teste de sistemas embarcados: Ser capaz de usar ferramentas e técnicas de depuração
para identificar e corrigir problemas em sistemas embarcados, bem como realizar testes para
verificar o funcionamento adequado.
5 - Desenvolvimento de aplicativos embarcados: Possuir habilidades práticas no desenvolvimento de
aplicativos a serem embarcados em sistemas embarcados. Isso envolve a capacidade de criar
software que será executado em dispositivos embarcados, como microcontroladores ou

microprocessadores. Essa habilidade inclui o conhecimento e a experiência na programação de
aplicativos embarcados, utilizando linguagens de programação adequadas, frameworks ou
ambientes de desenvolvimento integrado (IDEs) para criar aplicativos que executem diretamente no
hardware do sistema embarcado.

Competências Principais:
Projeto de sistemas embarcados: Ser capaz de projetar sistemas embarcados, considerando requisitos
funcionais e não funcionais, selecionando componentes apropriados, projetando a arquitetura do sistema
e gerenciando recursos limitados.
1 - Otimização de recursos: Ser capaz de otimizar o uso de recursos limitados em sistemas embarcados,
como memória, processamento e consumo de energia, a fim de garantir o desempenho adequado e
a eficiência do sistema.
2 - Integração de componentes: Ter habilidades para integrar diferentes componentes de hardware e
software em um sistema embarcado, garantindo a compatibilidade e a comunicação adequada entre
eles.
3 - Solução de problemas: Ser capaz de identificar e solucionar problemas complexos em sistemas
embarcados, aplicando conhecimentos teóricos, técnicas de depuração e habilidades de resolução
de problemas.
4 - Capacitar o aluno a atuar no desenvolvimento, projeto e implementação de sistemas embarcados em
diversas áreas, como automação industrial, dispositivos médicos, automóveis, Internet das Coisas
(loT) e muito mais, E importante ressaltar que essas competências podem ser aprimoradas ainda
mais por meio da prática, experiência profissional e continuidade nos estudos na área de sistemas
embarcados.e considerar as restrições de recursos, a eficiência de código, a integração com
periféricos e a interação com o sistema operacional ou firmware subjacente, se aplicável.
5 - Trabalho em equipe: Demonstrar habilidades de trabalho em equipe, colaborando com outros
membros do projeto para desenvolver e implementar sistemas embarcados de forma eficiente e
eficaz.

Essas competências permitem que um aluno possa atuar no desenvolvimento, projeto e implementação
de sistemas embarcados em diversas áreas, como sistemas aviônicos, controle de drones, automação
industrial, dispositivos médicos, automóveis, Internet das Coisas (loT).
     h. Processos e Threads
     i. Gerenciamento de Memória.
4.  Programação de dispositivos para conexão a redes de computadores industriais.
5.  Sistemas Operacionais de Tempo Real e programação de aplicativos em tempo real.
6.  Conceitos de Escalonamento.
7.  Conceitos de comunicação entre tarefas e sincronização:
     a. Buffering Data
     b. Time-Relative Buffering
     c. Ring Ruffers d. Mailboxes
     d. Queues
     e. Regiões críticas 
     f. Semáforos 
     g. Outros mecanismos de sincronização
     h. Deadlock
     i.  Inversão de Prioridades.
8.  Exemplos de aplicações:
     a. Escrita de comandos temporizados para atuadores
     b. Leitura temporizada de sensores
     c. Implementação de Sistema de Controle em malha fechada.
9.  Segurança e Análise de Qualidade no desenvolvimento de software.
 
 
 
Avaliação
     
Método
Aulas expositivas teóricas, aulas práticas em Laboratório Didático e em Sala de Computadores, elaboração de relatórios e listas de exercícios. Poderão ser realizadas viagens didáticas a empresas ou instituições com atividades no setor Computacional, de Inovação, Industrial, de Automação e Controle, de Projetos, e em especial no setor Aeronáutico. Avaliação: Desenvolvimento de exercícios e desafios ligados às aulas e tópicos individuais ao longo do semestre, Desenvolvimento de projeto envolvendo os conceitos de sistemas embarcados e problemas reais em uma aplicação que ilustra a sua inserção em questões e problemas de engenharia. Verificação de fundamentos através de prova individual ao final do semestre.
Critério
Média ponderada maior ou igual a 5,0 (cinco) das notas obtidas em provas, relatórios, tarefas e trabalhos em grupo. Critério de Aprovação: Extraídos do desempenho dos alunos de forma geral ou em grupo quando da realização de projetos, exercícios, simulações, atividade em laboratório e avaliações entre outras possibilidades.
Norma de Recuperação
Os critérios de avaliação da recuperação devem ser similares aos aplicados durante o semestre regular do oferecimento da disciplina; 1) A nota final (MF) do aluno que realizou provas de recuperação dependerá da média do semestre (MS) e da média das provas de recuperação (MR), como segue: d) MF=5 se 5 ≤MR ≤ (10 - MS); e) MF = (MS + MR) / 2 se MR > (10 – MS) f) MF = MS se MR < 5. 2) O período de recuperação das disciplinas deve se estender do início até um mês antes do final do semestre subsequente ao da reprovação do aluno em primeira avaliação.
 
Bibliografia
     
Chris Seimmonds, Mastering Embedded Linus Programming, Packt PublishingLtd. Birmingham, UK, ISBN 978-1-78439-253-6, 2015.
Laplante, P.A., Real Time Systems Design and Analysis, IEEE Press, 3rd. Edition, 2004.
Tanenbaum, A.; Modern Operating Systems, 3rd Edition, 2007.
Agrawala, A. K., Real-Time System Design, 1990.
Alan Burms, Andy Wellings, Real-Time Systems and Programming Languages.
MISRA-C 2012 - http://www.misra.org.uk/
Rico, F.M. (2022). A Concise Introduction to Robot Programming with ROS2 (1 st ed.). Chapman and
Hall/CRC. httDS://doi.orq/10.1201,9781003289623
Frank Vasquez , Chris Simmonds Mastering Embedded Linux Programming: Create fast and reliable
embedded solutions with Linux 5.4 and the Yocto Project 3.1 (Dunfell), 3rd Edition 3rd ed. Edition,
Publisher : Packt Publishing; 3rd ed. edition (May 14, 2021), ISBN-10 : 1789530385, ISBN-13 : 978-1789530384
John Madieu , Mastering Linux Device Driver Development: Write custom device drivers to support computer peripherals in Linux operating systems, Publisher : Packt Publishing (January 8, 2021) , ISBN-10 : 178934204X, ISBN-13 : 978-1789342048
Kaiwan N Billimoria Linux Kernel Programming: A comprehensive guide to kernel internais, writing kernel modules, and kernel synchronization, Publisher : Packt Publishing (March 19, 2021), ISBN-10 : 178995343X, ISBN-13 : 978-1789953435
Jean-Aime Maxa, Mohamed Slim Ben Mahmoud, Nicolas Larrieu, Model Driven Development for Embedded Software Application to Communications for Drone Swarm, Elsevier, Hardcover ISBN: 9781785482632, BookISBN: 9780081023891
Lozano, R. (Rogelio). (2010). Unmanned aerial vehicles: embedded control. 332.
httDS://www.wilev.com/en-fr/Unmanned+Aerial+Vehicles%3A+Embedded+Control-p-9781848211278, ISBN: 978-1-848-21127-8
 

Clique para consultar os requisitos para SAA0356

Clique para consultar o oferecimento para SAA0356

Créditos | Fale conosco
© 1999 - 2024 - Superintendência de Tecnologia da Informação/USP