Prévia do material em texto
Prof. MSc. Caique Kirilo UNIDADE II Tópicos de Atuação Profissional Bloco I. Software embarcado. Bloco II. Arduino. Exemplo prático. Agenda Sistema embarcado -> Sistema microprocessado no qual o computador é completamente encapsulado ou dedicado ao dispositivo ou sistema que ele controla, podendo representar uma ampla gama de sistemas e, por isso, é possível encontrar na literatura várias definições diferentes para ele. Sistema embarcado é uma parte de um produto cujo usuário final não interage diretamente com o sistema. O que é? O termo sistema embarcado teve origem no final da década de 1960 com o primeiro Sistema Embarcado Moderno nomeado Apollo Guindace Computer, desenvolvido por Charles Stark Draper. Origem do termo Fonte: https://www.embarcados.com Os sistemas embarcados possuem a característica de interagir com o mundo real, recebendo sinais de sensores e enviando sinais de saída para atores que de alguma forma manipulam o ambiente. Conceitos SISTEMA EMBARCADO UNIDADE DE PROCESSAMENTO R A M E N T R A D A /S A ÍD A S O F T W A R E E M B A R C A D O N V M F O N T E D E E N E R G IA IN T E R F A C E S E S P E C ÍF IC A S A M B IE N T E S E N S O R E S A T O R E S C O N V E R S Ã O A /D C O N V E R S Ã O D /A Esquema genérico de um sistema embarcado. Fonte: adaptado de: Broekman; Notenboom (2002). O nome “embarcado” se dá ao fato de que esses sistemas são projetados, em geral, para serem autônomos de fontes de energia fixa como tomadas ou geradores. É possível classificar um sistema como embarcado quando ele é destinado a uma única tarefa e interage constantemente com o ambiente ao seu redor por meio de sensores e atuadores. Conceitos Sistemas embarcados podem funcionar de duas formas: controle de tempo real ou modo reativo, sendo um desses dois modos o que definirá o comportamento e o funcionamento da aplicação. Podem ser classificados em dois tipos: Hard Real Time: o tempo de resposta deve ser respeitado, podendo ter consequências sérias, caso contrário. Soft Real Time: realiza tarefas em um determinado intervalo de tempo, mesmo que esse tempo não seja respeitado. Classificação de funcionamento Sistemas embarcados podem ser definidos em três tipos: propósito geral, sistemas de controle e processamento de sinais: SE de controle: trabalham com realimentação em tempo real. Não possuem muita interação com o usuário e são sistemas mais robustos. Exemplos: sistemas automotivos, usinas nucleares, outros. Definição dos tipos de Sistemas Embarcados SE de propósito geral: possuem semelhanças com computadores de mesa, existindo uma grande interação com o usuário, por meio de terminais de vídeos ou monitores. Exemplos: videogames, caixa de banco, outros. SE de processamento de sinais: recebem e processam uma grande quantidade de informações em curto espaço de tempo. Os sinais são recebidos pelos conversores AD, processados e novamente convertidos em sinais analógicos. Exemplos: modens, tratamento de áudio, radares, outros. Definição dos tipos de Sistemas Embarcados Além da necessidade de respostas em tempo real, existem outras diferenças importantes entre sistemas embarcados e outros sistemas de software: 1. Sistemas embarcados executam constantemente desde o momento em que o hardware é ligado e não param até que o hardware seja desligado. Diferenças entre sistemas embarcados e outros sistemas de software 2. As interações com o ambiente do sistema são incontroláveis e imprevisíveis, por esse motivo, os sistemas embutidos de tempo real devem ser capazes de responder a eventos inesperados a qualquer momento. 3. Pode haver limitações físicas como a energia disponível para o sistema e o espaço físico ocupado pelo hardware, afetando o projeto de um sistema. Essas limitações podem gerar requisitos, como a necessidade de conservar a energia, prolongando a vida útil da bateria. Diferenças entre sistemas embarcados e outros sistemas de software 4. A interação direta com o hardware pode ser necessária, visto que existe uma camada de software que esconde o hardware do sistema operacional. Por outro lado, os sistemas embarcados podem interagir com uma diversidade de dispositivos de hardware que não possuem drivers separados do dispositivo. 5. Questões de segurança e confiabilidade podem dominar o projeto de sistema, pois, em diversos casos, a falha pode ter custos humanos ou econômicos elevados. Diferenças entre sistemas embarcados e outros sistemas de software Sobre a definição de sistemas embarcados, podem ser definidos em três tipos: a) SE de Controle, SE de Propósito Geral e SE de Processamento de Sinais. b) SE de Estado, SE de Processamento e SE de Preposição. c) SE de Caso, SE de Uso e SE de Relacionamento. d) SE de Máquina, SE de Dispositivo e SE de Controle. e) SE de Controle, SE de Processamento de Estado e SE de Propósito de Interação. Interatividade Sobre a definição de sistemas embarcados, podem ser definidos em três tipos: a) SE de Controle, SE de Propósito Geral e SE de Processamento de Sinais. b) SE de Estado, SE de Processamento e SE de Preposição. c) SE de Caso, SE de Uso e SE de Relacionamento. d) SE de Máquina, SE de Dispositivo e SE de Controle. e) SE de Controle, SE de Processamento de Estado e SE de Propósito de Interação. Resposta O arduino é uma pequena placa microcontroladora com plugue de conexão USB, permitindo a conexão com outros dispositivos externos, por exemplo, computadores e notebooks. É um computador pequeno com capacidade de programar comandos para processar entradas e saídas de dispositivos e seus componentes, sendo ele uma plataforma física com interação do hardware e programado pelo software. O que é? Fonte: arduino.cc O arduino foi desenvolvido com o objetivo de ser um dispositivo barato, funcional e fácil de programar, com a finalidade de auxiliar estudantes com pouco ou nenhum conhecimento em eletrônica no desenvolvimento de produtos tecnológicos. Origem do termo Em 2005, o arduino foi projeto por Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino e David Mellis, inspirados pelo projeto Processing e pelo projeto Wiring Board de Hernando Barragan. Essas inspirações serviram como apoio para tornar mais acessível a prototipagem de projetos envolvendo eletrônica e programação. O projeto inicial foi melhorado e novas versões foram introduzidas nos comércios. Desde então, um número de diferentes versões de placas de arduino foi comercializado. Origem do termo Além disso, o arduino possui outros tipos de terminais que permitem a conexão com motores, sensores luminosos, diodos a laser, alto-falantes e outros tipos de equipamentos. O arduino é uma plataforma que atraiu a imaginação dos entusiastas da eletrônica pelo simples fato dessa plataforma ser Open-Soure e por proporcionar uma maior facilidade no momento de auxiliar no desenvolvimento de projetos, por ser um equipamento de fácil manuseio. Conceito A troca de dados entre dispositivos eletrônicos é realizada de modo digital. Essas informações são representadas em formato de bits de dados individuais, que podem ser agrupados em mensagens de vários bits. Conceito – comunicação serial Um canal de comunicação pode ser classificado como canal simplex, em que a direção da informação transmitida é inalterada; canal half-duplex, em que a direção da informação transmitida pode ser revertida, ou seja, a informação poderá fluir nas duas direções; e canal full-duplex, em que as informações transmitidas podem trafegar simultaneamente no canal de comunicação em ambas as direções. Conceito – comunicação serial Para criar um projeto, clique em “Criar novo circuito”. Simulando circuitos Fonte: https://www.tinkercad.com/ Da paleta de componentes, insira uma bateria de 9V e um transistorNPN. Oriente-o conforme a imagem. Simulando circuitos Fonte: https://www.tinkercad.com/ Também vamos inserir um LED e um resistor para o coletor do transistor. Defina seu valor para 10KΩ. Simulando circuitos Fonte: https://www.tinkercad.com/ Vamos às ligações: do positivo da bateria, leve um fio ao resistor de 1KΩ e dele, outro fio ao ânodo do LED. Do seu cátodo, leve um fio ao coletor do transistor e do emissor deste, outro fio ao negativo da bateria. Simulando circuitos Fonte: https://www.tinkercad.com/ A seguir, insira da paleta um botão e mais um resistor. Defina o seu valor para 10KΩ. Simulando circuitos Fonte: https://www.tinkercad.com/ Do positivo da bateria, traga um fio ao terminal 1 do botão e do terminal 2 deste ao resistor. O outro lado do resistor vai à base do transistor. Simulando circuitos Fonte: https://www.tinkercad.com/ Ao iniciar a simulação, note que o LED praticamente não acende. Como não há corrente circulante na base, também não há no coletor, mantendo o transistor cortado e o LED apagado. Simulando circuitos Fonte: https://www.tinkercad.com/ Ao iniciar a simulação, note que o LED praticamente não acende. Como não há corrente circulante na base, também não há no coletor, mantendo o transistor cortado e o LED apagado. Simulando circuitos O diminuto brilho do LED se dá pelas FUGAS naturais do silício utilizado no transistor, não há como fugir disso! Fonte: https://www.tinkercad.com/ Podemos agora mudar para disparadores e, em seguida, escolher a opção arduino. Simulando com Arduino Fonte: https://www.tinkercad.com/ Vão aparecer vários projetinhos prontos para estudarmos, vamos escolher um deles. Simulando com Arduino Fonte: https://www.tinkercad.com/ Aqui no caso escolhemos o Blink e então eu arrastei para a área de trabalho. Simulando com Arduino Fonte: https://www.tinkercad.com/ Vamos agora mudar para a visualização do código e entender o que acontece lá. Fonte: https://www.tinkercad.com/ Alternar editor de código Código Fonte: https://www.tinkercad.com/ Referente ao código apresentado no projeto blink encontrado na plataforma thinkercad, qual será a ação se alterarmos o campo “aguardar” para “50”? a) O LED irá queimar. b) O LED não acenderá. c) O LED piscará mais rápido. d) O LED piscará com um intervalo maior. e) O LED piscará em cores diferentes. Interatividade Referente ao código apresentado no projeto blink encontrado na plataforma thinkercad, qual será a ação se alterarmos o campo “aguardar” para “50”? a) O LED irá queimar. b) O LED não acenderá. c) O LED piscará mais rápido. d) O LED piscará com um intervalo maior. e) O LED piscará em cores diferentes. Resposta BERGER, A. (2001). Embedded Systems Design: An Introduction to Processes, Tools and Techniques. CMP Books. BROEKMAN, B.; NOTENBOOM, E. (2002). Testing Embedded Software. Addison-Wesley. CANZIAN, E. (2011). MINICURSO Comunicação Serial RS232. São Paulo. MCROBERTS, M. (2011). Arduino Básico. São Paulo: Novatec. MONK, S. Programação com Arduino. São Paulo: Bookman, 2013. Referências OSSADA, J. M.; RANIERI, B. S.; BELGAMO, A. Guia de Elicitação de Requisitos para Sistemas Embarcados. Workshop em Engenharia de Requisitos, 2012. SOMMERVILLE, I. Engenharia de Software. São Paulo: Pearson Prentice Hall, 2012. TIAN, P.; WANG, J.; LENG, H.; QIANG, K. Construction of Distributed Embedded Software Testing Environment. International Conference on Intelligent Human-Machine Systems and Cybernetics, 2009. TONIOLO, C. P. Processo de reúso de requisitos não funcionais para sistemas embarcados usando NFR Framework, 2012. Referências ATÉ A PRÓXIMA!