Prévia do material em texto
<p>Integração de Sistemas</p><p>Responsável pelo Conteúdo:</p><p>Prof. Esp. Márcio Belloni</p><p>Revisão Textual:</p><p>Prof. Me. Luciano Vieira Francisco</p><p>Microcontroladores Aplicados à Integração de Sistemas</p><p>Microcontroladores Aplicados</p><p>à Integração de Sistemas</p><p>• Estudar o funcionamento dos microcontroladores.</p><p>OBJETIVO DE APRENDIZADO</p><p>• Introdução aos Microcontroladores</p><p>• Microcontroladores Utilizados em</p><p>Sistemas de Controle e Sensoriamento</p><p>• Básico de Programação de Microcontroladores em Linguagem C++</p><p>• Exemplo de Integração de Sistemas de</p><p>Sensoriamento, Atuação e Microcontrolador</p><p>UNIDADE Microcontroladores Aplicados</p><p>à Integração de Sistemas</p><p>Introdução aos Microcontroladores</p><p>Com o advento do emprego dos componentes sólidos na eletrônica, houve uma</p><p>revolução tecnológica sem precedentes. Os circuitos tornaram-se integrados, em um</p><p>só componente, onde se pode obter um computador completo em apenas um CI:</p><p>os microcontroladores.</p><p>Os microcontroladores trazem embutidos em um único componente o processa-</p><p>dor de dados, memórias e interfaces de entrada e saída (input e output), inclusive,</p><p>havendo conversores de sinais, otimizando essas entradas e saídas. Alguns ainda</p><p>possuem mais facilidades e configurações. Quando uma empresa japonesa enco-</p><p>mendou à Intel circuitos integrados para as suas calculadoras, um dos engenheiros</p><p>da Intel resolveu anexar a esses circuitos um programa, armazenado em uma parte</p><p>do próprio circuito – estava criado o primeiro microprocessador.</p><p>A Intel iniciou a fabricação, então, do 4004 em 1971, com 4 bits, e velocidade</p><p>de 6 mil instruções por segundo. Iniciou a evolução dos microprocessadores, pois a</p><p>Intel no ano seguinte dobrou a capacidade de processamento com o 8008, de 8 bits.</p><p>Dessa forma, cabe conceituar o microprocessador: é um circuito integrado que</p><p>contém milhares, ou mesmo milhões de transistores, estes que trabalham juntos</p><p>para armazenar e manipular dados de modo que o microprocessador possa executar</p><p>grande variedade de funções úteis. As atribuições específicas que um microprocessa-</p><p>dor executa são ditadas por software.</p><p>Assim, verificou-se a necessidade de se direcionar os microprocessadores para</p><p>fins específicos e, desta forma, direcionar o hardware, em sua construção, para fi-</p><p>nalidades específicas. Ao fazer esse direcionamento e preparar o hardware para fins</p><p>específicos, criou-se os microcontroladores.</p><p>Microcontrolador é um microprocessador de propósito especial, cujas pastilhas</p><p>contêm todos os circuitos integrados periféricos necessários aos equipamentos</p><p>normalmente utilizados na área de controle de processos. Os microcontroladores</p><p>comuns são considerados de propósito geral – como o nome indica, são micropro-</p><p>cessadores destinados a controlar.</p><p>Dessa forma, os microcontroladores são pequenos computadores (SoC) monta-</p><p>dos em um só circuito integrado, com pequeno consumo de energia e estruturados</p><p>de forma compacta, tendo sido a Texas Instruments a criadora do primeiro micro-</p><p>controlador, o TMS1000, em 1974.</p><p>Dos microcontroladores atualmente no mercado, cerca de 50% são controladores</p><p>simples, sendo outros 20% processadores de sinais digitais (DSP) mais especializados.</p><p>Os microcontroladores podem ser encontrados em praticamente todos os disposi-</p><p>tivos eletrônicos digitais que nos cercam: teclado do computador, dentro do monitor,</p><p>disco rígido, relógio de pulso, rádio relógio, máquinas de lavar, fornos de micro-</p><p>-ondas, telefones etc., formando sistemas que se integram – você certamente está</p><p>cercado de dezenas.</p><p>8</p><p>9</p><p>Foram tão ou mais importantes para a revolução dos produtos eletrônicos que os</p><p>computadores, uma vez que permitiram a evolução de equipamentos que há anos</p><p>não se desenvolviam, tais como os motores a combustão, que com o novo controle</p><p>eletrônico passaram a funcionar em sistema bicombustível e poluindo menos; assim</p><p>como as máquinas fotográficas, que migraram de processos químico-mecânicos para</p><p>circuitos com microcontroladores, sensores digitais e memória.</p><p>Figura 1 – Controlador com arquitetura Von Neumann</p><p>Fonte: Adaptado de Wikimedia Commons</p><p>Microcontroladores Utilizados</p><p>em Sistemas de Controle e Sensoriamento</p><p>Em sistemas de controle e automação são raros os exemplos em que não há</p><p>necessidade do uso de alguma unidade de processamento. De fato, a não ser que o</p><p>sistema possua uma lógica extremamente simples, faz-se necessário o uso de uma ou</p><p>mais CPU – Central Processing Unit. Isso inclui sistemas que apresentam desde uma</p><p>simples interface com o usuário por meio de um LCD – Liquid Cristal Display –,</p><p>até o complexo controle de um veículo aeroespacial.</p><p>Existem diversos microcontroladores no mercado, sendo denominados simples</p><p>ou multiuso – de diversas marcas e capacidades. De tais microcontroladores pode-se</p><p>nomear os seguintes como os mais utilizados:</p><p>• Série AVR ATMega;</p><p>• Série Microchip PIC;</p><p>9</p><p>UNIDADE Microcontroladores Aplicados</p><p>à Integração de Sistemas</p><p>• MSP430;</p><p>• Série Microsoft 80XX.</p><p>Figura 2 – Microcontrolador Microchip PIC18F8720</p><p>Fonte: Wikimedia Commons</p><p>Figura 3 – Microcontroladores ATMEGA8 e ATMEGA32.</p><p>Muito utilizados especialmente por causa da</p><p>plataforma de desenvolvimento Arduino</p><p>Fonte: Wikimedia Commons</p><p>Para fins didáticos, e até mesmo por causa da facilidade de obtenção de simula-</p><p>dores e até de hardware, utilizaremos nestes estudos o ATMega, pois a difusão do</p><p>Arduino no mundo maker fez com que esse microcontrolador se tornasse ampla-</p><p>mente popular.</p><p>ATMega pode ser programado com a linguagem C++, facilitando ainda mais</p><p>o seu uso nesse tipo de trabalho, já que se trata de uma linguagem de baixo nível,</p><p>tornando-se simples de compreender.</p><p>Com a utilização do próprio sistema Arduino, pode-se programar o ATMega com</p><p>o painel fornecido pelo fabricante do Arduino. Tal painel é eficaz para pequenas</p><p>aplicações, mas um tanto limitado justamente para que seja acessível a uma gama</p><p>maior de pessoas.</p><p>Open source hardware consiste em dispositivos físicos de tecnologia concebidos e oferecidos</p><p>pelo movimento de design aberto. Tanto o software livre como o open source hardware são</p><p>criados sob o movimento de cultura open source e aplica esse conceito a uma variedade de</p><p>componentes. O termo normalmente significa que a informação sobre o hardware é facil-</p><p>mente reconhecida. O design no hardware – ou seja, desenhos mecânicos, esquemas, listas</p><p>de materiais, dados de layout do PCB, código fonte e dados de layout de circuitos integra-</p><p>dos –, além do software livre que aciona o hardware, estão liberados com a abordagem</p><p>livre e open source. Anualmente, a Open Source Hardware Association organiza a conferência</p><p>Open-Hardware Summit, da qual a Multilógica-Shop é patrocinadora, sendo a primeira con-</p><p>ferência abrangente do mundo sobre hardware aberto, um espaço para discutir e chamar a</p><p>atenção para esse movimento em rápido crescimento.</p><p>10</p><p>11</p><p>Básico de Programação de</p><p>Microcontroladores em Linguagem C++</p><p>Para a programação será utilizada uma linguagem aceita pelo ATMega, de fácil</p><p>compreensão, a linguagem C++. Assim, deve-se conhecer de forma básica essa lingua-</p><p>gem para programar o microcontrolador. Vale lembrar que o microcontrolador pode</p><p>executar o programa que não necessariamente se limitará a ler e atuar em portas.</p><p>Programas escritos usando o painel IDE do Arduino são chamados de Sketches</p><p>e são salvos com a extensão de arquivo.ino. Esse editor tem como características</p><p>cortar/colar e buscar/substituir texto. A área de mensagem dá feedback ao salvar</p><p>e exportar arquivos e exibe informações de erros ao compilar Sketches. O canto</p><p>direito inferior da janela exibe a placa atual e a porta serial; os botões da barra de</p><p>ferramentas permitem que você verifique, carregue, crie, abra e salve Sketches, ou</p><p>abra o monitor serial.</p><p>Figura 4 – Painel IDE do Arduino</p><p>Fonte: Acervo do Conteudista</p><p>A sintaxe do programa é formada por etapas:</p><p>Antes da chamada funções void. Neste ponto, configuram-se fatores globais. Tais</p><p>fatores serão lidos uma só vez e será considerado o tempo todo. Variáveis costumam</p><p>ser configuradas nesse momento, assim como bibliotecas chamadas com #include .</p><p>Comentários podem ser feitos no programa incluindo // antes do comentário ou</p><p>colocando-o entre */ e /*.</p><p>11</p><p>UNIDADE Microcontroladores Aplicados</p><p>à Integração de Sistemas</p><p>Chamada das configurações: void setup(). Neste momento, o microcontrolador</p><p>executará as sintaxes uma só vez. Neste local serão chamadas as bibliotecas prontas</p><p>com #include , preparadas as variáveis – int, float etc. – e serão configuradas as</p><p>entradas e saídas – o que ocorrerá dentro das chaves, vejamos:</p><p>{</p><p>// put your setup code here, to run once:</p><p>}</p><p>Chamada do loop: void loop(). As sintaxes adicionadas neste momento serão exe-</p><p>cutadas em modo loop; ou seja, quando terminar o programa, o microcontrolador</p><p>retornará ao início da chave e executará as ordens novamente.</p><p>{</p><p>// put your main code here, to run repeatedly:</p><p>}</p><p>Vejamos sintaxes básicas para criar o nosso próprio programa, que lerá as infor-</p><p>mações de um sensor, comparará em uma operação matemática com valores pré-</p><p>-estabelecidos e após, executará ou não a atuação de um relé ligando uma lâmpada.</p><p>Neste exemplo, um sistema analisará a temperatura ambiente, comparando-a com o</p><p>valor pré-determinado e após atuará, se necessário, ligando o sistema de refrigeração.</p><p>PinMode</p><p>Para configurar as entradas e saídas do microcontrolador, utiliza-se a sintaxe</p><p>pinMode, identificando-se a porta e se o microcontrolador deve tratá-la como uma</p><p>entrada ou saída.</p><p>Identifica-se o número da porta p e a sua situação (saída: OUTPUT, entrada: INPUT).</p><p>pinMode(p, OUTPUT);</p><p>Variáveis</p><p>Variáveis possuem uma propriedade chamada de escopo. Isso contrasta com anti-</p><p>gas versões de linguagens – como o Basic, onde toda variável era uma variável global.</p><p>Uma variável global pode ser vista por todas as funções de um programa. Dife-</p><p>rentemente, variáveis locais são visíveis apenas às funções nas quais são declaradas.</p><p>No ambiente Arduino, qualquer variável declarada fora de uma função – por</p><p>exemplo, setup(), loop() etc. – é uma variável global.</p><p>Os dados que guardamos nas variáveis podem ser de diferentes tipos, por exemplo:</p><p>• char: são utilizados para armazenar caracteres e ocupam um byte;</p><p>• byte: podem armazenar um número entre 0 e 255;</p><p>12</p><p>13</p><p>• int: ocupam 2 bytes (16 bits) e armazenam um número entre –32.768 e 32.767;</p><p>• unsigned int: ocupam 2 bytes, mas como não possuem sinal, podem tomar</p><p>valores entre 0 e 65.535;</p><p>• long: ocupa 32 bits (4 bytes), de –2.147.483.648 até 2.147.483.647;</p><p>• unsigned long: mesmo que o long, mas em valores positivos;</p><p>• float: números decimais que ocupam 32 bits (4 bytes). Podem tomar valores</p><p>entre –3,4028235E+38 e +3,4028235E+38;</p><p>• double: armazena números decimais, mas possui 8 bytes (64 bits).</p><p>Ints – integer ou inteiros – correspondem a dados primários para armazenamento</p><p>de números.</p><p>Nos micros ATMega um int armazena um valor de 16 bits (2 bytes), garantindo um</p><p>intervalo de -32.768 a 32.767. Em micros Samd (como o MKR1000), um int arma-</p><p>zena 32 bits (4 bytes), garantindo um intervalo de –2.147.483.648 a 2.147.483.647</p><p>– sendo mais que suficiente para a nossa aplicação.</p><p>A variável deve ser declarada antes da sintaxe, pois necessita informar ao pro-</p><p>grama como a instrução deverá tratar os valores desta variável – se numéricos ou</p><p>caracteres, por exemplo. Neste exemplo, usaremos int.</p><p>int T;</p><p>DigitalWrite(13,1);</p><p>Para escrever no pino digital, utiliza-se digitalWrite. O ATMega possui pinos que</p><p>podem encarar valores digitais e analógicos, permitindo que o microcontrolador</p><p>trate sinais e, inclusive, ofereça tecnologia PWM.</p><p>Atua-se na saída do pino, previamente configurado como saída com pinMode,</p><p>indicando o número da porta e o valor (ligado: HIGH, desligado: LOW). Podem ser</p><p>utilizados ainda os números 0 e 1 (ligado: 1, desligado: 0).</p><p>digitalWrite (pino,valor);</p><p>AnalogRead</p><p>Nos pinos configurados como entrada, para ler o valor de um pino analógico</p><p>especificado, utiliza-se analogRead e digitalRead. Como desejamos uma leitura de</p><p>entrada analógica, utilizaremos analogRead.</p><p>O ATMega contém um conversor analógico-digital de 10 bits com 6 canais. Com</p><p>isto, pode mapear voltagens de entrada entre 0 e 5 volts para valores inteiros entre</p><p>0 e 1.023. Isto permite uma resolução entre leituras de 5 volts/1.024 unidades, ou</p><p>4,9 mV (0,0049 volts) por unidade.</p><p>analogRead(pin)</p><p>13</p><p>UNIDADE Microcontroladores Aplicados</p><p>à Integração de Sistemas</p><p>If</p><p>O if é utilizado para executar um comando ou bloco de comandos no caso de uma</p><p>determinada condição ser avaliada como verdadeira.</p><p>if (condição) comandoA;</p><p>O comando pode ser uma sequência de comandos colocados entre chaves,</p><p>por exemplo:</p><p>if (condição) {</p><p>comandoA;</p><p>comandoB;</p><p>comandoC;</p><p>}</p><p>Operadores Relacionais</p><p>São utilizados em testes condicionais para determinar a relação entre dados, a saber:</p><p>Tabela 1</p><p>Operador Ação</p><p>> Maior que</p><p>>= Maior ou igual que</p><p>200){digitalWrite (2,1);}</p><p>}</p><p>Analisemos os passos do programa:</p><p>• int T : declara a variável T ao programa sem lhe atribuir valores. A instrução</p><p>atribuirá valores mais para frente;</p><p>15</p><p>UNIDADE Microcontroladores Aplicados</p><p>à Integração de Sistemas</p><p>• void setup(): indica ao microcontrolador que deverá iniciar as configurações,</p><p>cabendo passar uma só vez pelas instruções dentro das chaves;</p><p>• {pinMode(13, OUTPUT);</p><p>pinMode(2, OUTPUT);</p><p>pinMode(A5, INPUT);}</p><p>Configura os pinos 13 e 2 como saídas, e o pino analógico A5 como uma entrada;</p><p>• void loop(): inicia a fase onde o microcontrolador entra em loop, executando</p><p>as instruções repetidamente;</p><p>• digitalWrite (2,0): declara o pino 2 como em nível baixo, desligando o sistema</p><p>de refrigeração. Assim, o padrão do sistema é manter a refrigeração desligada;</p><p>• T=analogRead(A5): efetua a leitura do pino A5 e atribui o valor lido à variável</p><p>T. O valor de entrada será de 0 a 5 V;</p><p>• if (T>200){digitalWrite (2,1): apresenta uma condição ao microcontrolador, que</p><p>deverá comparar o valor lido no pino A5, já atribuído à variável T, com o valor</p><p>pré-definido em 200. Se for maior que o valor, executará a condição entre chaves,</p><p>qual seja, atribuindo valor alto ao pino 2 e ligando o sistema de refrigeração.</p><p>Verifica-se, assim, a integração entre os sistemas de refrigeração, microcontrola-</p><p>dor e de sensoriamento.</p><p>Arduino é uma plataforma de eletrônica aberta para a criação de protótipos e baseada</p><p>em software e hardware livres, flexíveis e fáceis de usar. Foi desenvolvida para artistas,</p><p>designers, hobistas e qualquer pessoa interessada em criar objetos ou ambientes interativos.</p><p>Pode adquirir informação do ambiente através de seus pinos de entrada – para isso uma</p><p>completa gama de sensores pode ser usada. Por outro lado, Arduino pode atuar no ambiente</p><p>controlando luzes, motores ou outros</p><p>atuadores. O microcontrolador da placa Arduino é</p><p>programado mediante a linguagem Arduino, baseada em Wiring, enquanto o ambiente de</p><p>desenvolvimento (IDE) está baseado em Processing.</p><p>Os desenhos da placa estão disponíveis sob uma licença aberta; assim, você também é livre</p><p>para adaptá-lo às su as necessidades.</p><p>O download desse software pode ser feito de forma gratuita em: https://bit.ly/2N41JDq</p><p>16</p><p>17</p><p>Material Complementar</p><p>Indicações para saber mais sobre os assuntos abordados nesta Unidade:</p><p>Sites</p><p>Arduino</p><p>https://bit.ly/2N41JDq</p><p>Ambiente on-line de simulação de circuitos eletrônicos Thinkercad</p><p>https://bit.ly/2YdhJcN</p><p>Leitura</p><p>Datasheet do relé NT73 JQC-3FC</p><p>https://bit.ly/37FK5PH</p><p>Datasheet do LM35</p><p>https://bit.ly/2N61sjx</p><p>17</p><p>UNIDADE Microcontroladores Aplicados</p><p>à Integração de Sistemas</p><p>Referências</p><p>ANGEL, P. M. Introducción a la domótica. In: Domótica: controle y automación.</p><p>[S.l.]: Ebai, 1993.</p><p>ATUADOR pneumático/linear/para máquina de solda por ultrassom. Direct</p><p>Industry, [20--]. Disponível em: . Acesso em: 13/05/2020.</p><p>BARBOSA, L. A. G. Edificações inteligentes: conceitos e considerações para</p><p>o projeto de arquitetura. 2006. 129 f. Dissertação (Mestrado em Ciências em</p><p>Arquitetura) –Faculdade de Arquitetura e Urbanismo da Universidade Federal do Rio</p><p>de Janeiro, Rio de Janeiro, 2006.</p><p>BOLZANI, C. A. M. Desenvolvimento de um simulador de controle de</p><p>dispositivos residenciais inteligentes: uma introdução aos sistemas domóticos.</p><p>2004. Dissertação (Mestrado) – Universidade de São Paulo, São Paulo, 2004.</p><p>BRETERNITZ, J. V. Domótica: as casas inteligentes. 2001. Disponível em: . Acesso em: 20/05/2020.</p><p>FACELI, K. et al. Inteligência artificial: uma abordagem de aprendizagem de</p><p>máquina. Rio de Janeiro: LTC, 2011.</p><p>MONTEBELLER, S. J. Estudo sobre o emprego de dispositivos sem fios: wireless</p><p>na automação do ar condicionado e de outros sistemas prediais. 2006. Dissertação</p><p>(Mestrado) – Universidade de São Paulo, São Paulo, 2006.</p><p>OFICINA DE ROBÓTICA. Programação em Arduino – módulo básico. abr.</p><p>2013. Disponível em: . Acesso em:</p><p>13/05/2020.</p><p>SANTOS, S. Introdução à IoT: desvendando a internet das coisas. Scotts Valley,</p><p>CA, EUA: CreateSpace, 2018.</p><p>TAURION, C. Big data. Rio de Janeiro: Brasport, 2013.</p><p>TEZA, V. R. Alguns aspectos sobre a automação residencial – domótica.</p><p>2002. Dissertação (Mestrado) – Universidade Federal de Santa Catarina,</p><p>Florianópolis, SC, 2002. Disponível em: . Acesso em:</p><p>13/05/2020.</p><p>18</p>