·

Engenharia de Produção ·

Introdução à Lógica e Programação

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Texto de pré-visualização

Estrutura do Arduino Apresentação O projeto Arduino é uma plataforma opensource que pode ser copiada modificada e alterada conforme necessário por qualquer pessoa e para outros projetos de tal maneira que o Arduino foi a origem de algumas variações tais como o Franzino Esse é um dos principais motivos pelos quais o Arduino difundiuse mundialmente e hoje é uma ferramenta muito utilizada para diversos fins Fala se muito em hardware porém devese considerar que o software também é uma parte importante do projeto e que também é opensource e pode igualmente ser modificado para melhor atender seus objetivos Nesta Unidade de Aprendizagem você irá focar na programação do Arduino utilizando a IDE Integrated Development Environment disponibilizada pelo projeto compreendendo os principais comandos e a estruturação do código Bons estudos Ao final desta Unidade de Aprendizagem você deve apresentar os seguintes aprendizados Reconhecer os comandos em linguagem C para programar o Arduino Aplicar a estrutura do código em C utilizando sketches Analisar o uso das bibliotecas no auxílio da programação do Arduino Desafio Os sistemas microcontrolados estão presentes no dia a dia mas as dificuldades de programação pelas quais os desenvolvedores tiveram que passar nem sempre são conhecidas Um bom exemplo são os semáforos de tráfego presentes em qualquer cidade Imagine que você é um Engenheiro de Desenvolvimento avançado da companhia de tráfego e foi incumbido de criar um novo modelo de semáforo cuja característica peculiar é prover auxílio aos deficientes visuais Esse semáforo além da função primária de orientar os veículos deve conter um auxílio sonoro para a travessia de deficientes visuais Tal auxílio sonoro deve ser inteligente a ponto de perceber o ruído externo do ambiente e regular seu volume a partir dessa informação Desenvolva o respectivo código envolvendo variáveis para leitura e acionamento e as estruturas de controle para sequenciamento de ações Infográfico O uso de bibliotecas na programação do Arduino é um facilitador mas e se não houver a biblioteca necessária disponível o que fazer A resposta é criar nossa própria biblioteca No Infográfico a seguir você verá a sequência para a criação de sua própria biblioteca para utilizar no Arduino IDE Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar Conteúdo do livro Um código adequadamente estruturado e escrito é o primeiro passo para o sucesso de um projeto Isso inclui a facilidade de achar bugs e inconsistências e até mesmo a análise do código por outras pessoas Comentários adequados e claros variáveis nomeadas de forma autoexplicável também são alguns exemplos Além de claro abordar os comandos e bibliotecas de forma adequada e consistente No capítulo Estrutura do Arduino da obra Robótica você irá ver um assunto essencial para o desenvolvimento de projetos com o Arduino que é sua programação utilizando o ambiente nativo disponibilizado com o Projeto Arduino Por meio da programação é possível dar funções e inteligência ao hardware para executar as tarefas conforme você planejou para seu desenvolvimento ROBÓTICA Estrutura do Arduino Arduino IDE Linguagem de programação do Arduino O código é composto por uma sequência de comandos Alguns desses comandos são os seguintes MONK 2017 Atribuição atribuir um valor a uma variável significa armazenar o valor nela para posterior uso O comando de atribuição em C é Para atribuirmos o valor 13 à variável led devemos fazer assim led 13 Os valores fixos usados no programa como o valor 13 são chamados de constantes pois o seu valor não muda Operadores é um conjunto de um ou mais caracteres que serve para operar sobre uma ou mais variáveis ou constantes Alguns dos operadores mais utilizados mas não somente são os seguintes Aritméticos adição subtração multiplicação divisão Lógicos operador e operador ou igualdade diferente ou maior ou maior e igual ou menor ou menor e igual Funções também conhecidas como subrotina é uma sequência de comandos que pode ser reutilizada várias vezes ao longo de um programa Para criar uma função e dizer o que ela faz é necessário fazer uma declaração de função Uma função é declarada conforme a Figura 3 Neste caso está sendo declarada a função void setup cujo conteúdo está compreendido entre as chaves Para executar esta função ou subrotina basta colocar o comando setup em seu código Como vimos o Arduino possui uma série de funções disponíveis para facilitar a programação Comentários são trechos de texto no código que servem apenas para documentar sem executar qualquer tipo de comando no programa Os comentários podem ser utilizados também para desabilitar comandos no código Nesse caso dizemos que o código foi comentado Os comentários pode ser de duas formas comentário de linha inicia com os caracteres tornando todo o resto da linha atual em um comentário comentário de bloco inicia com os caracteres e termina com os caracteres Todo o texto entre esses caracteres se torna um comentário Figura 4 Código estruturado para Arduino A primeira parte 1 é onde devemos incluir as bibliotecas auxiliares do código Dependendo das funções e do hardware envolvido no projeto pode ser necessário incluir bibliotecas especializadas A sintaxe de declaração das bibliotecas deve ser includenome da biblioteca A segunda parte 2 é onde geralmente se declara as variáveis do código Na verdade as variáveis podem ser declaradas em qualquer ponto do código inclusive dentro da rotina principal mas a boa prática recomenda declarálas neste trecho inclusive incluindo comentários pertinentes à funcionalidade de cada variável em caráter de documentação A terceira parte do código 3 referese à configuração preliminar Essa função é executada somente uma vez na inicialização do código Aqui é recomendado declarar a funcionalidade dos pinos configurações iniciais etc 7 Estrutura do Arduino A quarta parte 4 é onde consta a rotina principal que será executada infinitamente enquanto o sistema estiver energizado É aqui que seu código deve ser inserido por meio do uso de comandos e estruturas Somente utilizando comandos de controle é impossível criar um código completamente funcional precisamos também de rotinas e decisões pois a partir delas o código poderá tomar decisões baseadas em informações obtidas durante a execução do programa Para a implementação de rotinas e decisões utilizamos as estruturas de controle Estruturas de controle são blocos de instruções que alteram o fluxo de execução do código de um programa Com elas é possível executar comandos diferentes de acordo com uma condição ou repetir uma série de comandos várias vezes por exemplo EVANS 2011 As estruturas de controle mais utilizadas são as seguintes while é um controle que executa um conjunto de comandos repetidas vezes enquanto determinada condição for verdadeira while em inglês significa enquanto Ele segue o formato da Figura 5 Figura 5 Estrutura de controle while if é uma das estruturas mais básicas de programação em geral If significa se em inglês Ele verifica uma expressão e apenas se ela for verdadeira executa um conjunto de comandos Seu formato é apresentado na Figura 6 Figura 6 Estrutura de controle if Estrutura do Arduino 8 ifelse o ifelse pode ser visto como uma extensão do comando if Else em inglês significa caso contrário e o comando faz isto se isso for verdadeiro então faça aquilo caso contrário faça outra coisa Veja a Figura 7 for o comando for nada mais é do que um while acrescido de parâmetros de inicialização e finalização É necessário definir o seguinte Condição é uma expressão verificada repetidamente enquanto ela for verdadeira os comandos entre continuam sendo executados Inicialização executado apenas uma vez no início este comando define a condição inicial Finalização é um comando executado repetidas vezes ao final de cada repetição dos comandos entre Na Figura 8 o comando inicia a variável i em 0 i0 executa o código entre enquanto i for menor ou igual a 5 i5 e incrementa i em uma unidade a cada iteração i Outras funções de estrutura de controle podem ser localizadas nas literaturas ou no link a seguir porém são estruturas derivadas das expostas aqui httpsqrgopagelinkKBjk Bibliotecas As bibliotecas são um recurso adicional e essencial em qualquer nível de programação Geralmente elas são desenvolvidas com objetivos bem espe cíficos como para a utilização de determinado sensor ou display ou para fazer cálculos específicos Uma biblioteca é uma coletânea de funções com o objetivo de realizar tarefas específicas O Arduino possui algumas bibliotecas padrão como digitalWrite ou delay EVANS 2011 Vejamos um exemplo do comando digitalWrite o código por trás desse comando é demonstrado na Figura 9 POSH 2019 Figura 9 Códigobase do comando digitalWrite Estrutura do Arduino 10 Imagine que a cada necessidade de definir o estado do pino de saída digital tivéssemos que digitar todo o código anterior Seria uma total perda de tempo além de muito desgastante O uso dessa biblioteca ajuda muito basta utilizar a linha de código digitalWritepino valor que ela executa a tarefa por nós Para utilizar uma biblioteca em um sketch do Arduino você precisará informar ao compilador qual biblioteca quer utilizar Para isto no início do código no sketch você deve adicionar a seguinte linha includeNomedaBibliotecah Isto irá fazer com que o compilador acrescentes esta biblioteca nos dados enviados para o Arduino Pode parecer que essas funções são simples comandos para acionar uma saída digital por exemplo mas na verdade são várias linhas de código que quando executadas acionam a saída digital porém tudo isso está condensado em uma única função As bibliotecas padrão do Arduino que não precisam ser declaradas desse modo porque são automaticamente incluídas são as seguintes ARDUINO 2019 Wire permite enviar e receber dados por meio de uma interface TWI I2C interface a dois fios em uma rede de dispositivos ou sensores Embora faça parte do grupo de bibliotecas que é instalada com o Arduino IDE a biblioteca LiquidCrystal não está adicionada ao compilador então é necessário incluíla no código com a linha includeLiquidCrystalh Com isso podemos utilizar uma série de comandos que esta biblioteca disponibiliza para configurar e utilizar os displays no nosso projeto Veja a Figura 10 Uma ferramenta online de simulação que está sendo muito utilizada atualmente é a Tinkercad fornecida gratuitamente pela Autodesk Essa ferramenta tem muitos recursos de simulação de hardware além de compilar e mostrar em tempo real a execução do código Ela tem um recurso muito útil na depuração de códigos e que não existe na Arduino IDE que são os breakpoints Os breakpoints permitem interromper a execução do código em determinada linha de código para você poder observar as condições e variáveis e assim corrigir falhas na programação ARDUINO Libraries S l 2019 Disponível em httpswwwarduinoccenreference libraries Acesso em 19 maio 2019 EVANS B Beginning Arduino Programming EUA Apress 2011 MONK S Programação com Arduino começando com sketches Porto Alegre Bookman 2017 Série Tekne POSH M Handson embedded programming with C17 Birmingham Packt Publishing 2019 Leitura recomendada SEBESTA R W Conceitos de linguagens de programação Porto Alegre Bookman 2018 13 Estrutura do Arduino Encerra aqui o trecho do livro disponibilizado para esta Unidade de Aprendizagem Na Biblioteca Virtual da Instituição você encontra a obra na íntegra Conteúdo Dica do professor Veja nesta Dica do Professor a estrutura do Arduino Uno e do Arduino Mega Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar Exercícios 1 O código utilizado na programação de microcontroladores é muito utilizado para realizar cálculos e então tomar decisões Você está criando um código que em determinado momento precisa calcular a raiz quadrada de 127 Qual é o tipo de variável que deverá armazenar o resultado A float B int C byte D char E boolean Um código herdado é como usualmente se chamam os códigos feitos por outras pessoas que são enviados para outros programadores A primeira ação do herdeiro do código é realizar a compreensão das soluções utilizadas Analisando o código abaixo determine qual é o dado de saída que será disponibilizado supondo que a entrada analógica indica o valor de 500 2 A Posição 1 B Posição 2 C Posição 3 D Posição 4 E Resultado inválido Dentre as estruturas de controle disponíveis cada uma pode oferecer um determinado comportamento e cabe ao programador utilizálas da forma que seja mais eficaz para a resolução de seu problema No código abaixo compreendao e informe qual será seu comportamento sendo que existe um LED ligado na saída digital 3 A O LED permanecerá apagado B Quando o contador atingir o valor de 255 o LED será ligado e se apagará quando o contador estiver em 0 C O LED irá aumentar seu brilho e em seguida diminuir o brilho iniciando novamente o ciclo D O LED irá diminuir seu brilho e em seguida aumentar o brilho E O LED irá manterse sempre ligado Estruturas de controle são utilizadas para tomada de decisão baseadas em dados de entrada seja a entrada pelo usuário como um terminal por exemplo seja pela leitura de uma variável analógica ou até mesmo digital Faça a interpretação do código abaixo e selecione a opção que tenha a mesma funcionalidade do código 4 A whileanalogValue threshold digitalWriteledPin HIGH B switch analog case threshold digitalWriteledPin HIGH break case threshold digitalWriteledPin LOW break C do digitalWriteledPin HIGH whileanalogValue threshold D ifanalogReadpinvalor digitaWritepinHiGH digitalWritepinLOW E foranalogValue threshold digitalWriteledPin HIGH Muitas vezes devese fazer um código de recursos disponíveis de forma padrão nas bibliotecas disponibilizadas pelo projeto para atingir os objetivos do desenvolvimento Analise o código abaixo e informe qual o comportamento esperado 5 A O código irá gerar números aleatórios entre 0 e 299 e imprimilos no monitor serial B O código irá entrar em loop infinito que não executa função alguma C Serão gerados 150 números aleatórios e então a execução entrará em um loop infinito sem função alguma D A execução do código entrará em loop infinito sempre no mesmo período entre reinicializações E O código irá gerar números aleatórios e quando o valor obtido for igual a 150 o código entrará em um loop infinito sem função alguma Na prática Não muito tempo atrás possuir ou ter acesso a drones era exclusivamente de forças armadas ou de pesquisas avançadas Com a facilitação do acesso à eletrônica e sistemas cada vez mais potentes e com menos complicação tornouse possível que pessoas fizessem drones e derivados em casa Veja abaixo um projeto de drone utilizando Arduino que pode ser replicado ou se desejar um desafio maior modificado para ficar do seu jeito Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar Veja também em 3D um pouco mais sobre alguns itens presentes na construção de um drone utilizando arduino Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar Saiba Para ampliar o seu conhecimento a respeito desse assunto veja abaixo as sugestões do professor Integrando o Arduino com outros recursos Veja este artigo que integra o Arduino ao sensor Kinect para reconhecimento de movimento Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar Desenvolvimento de um dispositivo eletrônico para organizar medicamentos e promover a adesão medicamentosa O Arduino pode beneficiar inúmeras áreas Veja neste artigo o desenvolvimento de um protótipo utilizando Arduino na área da saúde para auxiliar na organização de medicamentos Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar Quando se inicia um projeto que envolve programação é muito importante que haja um planejamento preliminar da funcionalidade do código para tentar prever todas as condições que podem ocorrer e assim começar o código de forma a ficar organizado e funcional Às vezes ao tentar colocar em prática as ideias e começar a programar é normal sentirse ansioso pois o código parece se desenvolver mais rápido em sua cabeça do que na tela do computador Acontece que depois de várias linhas escritas o código não compila E quando se tenta corrigir o problema percebese que o código está um caos total Isso ocorre porque não havia um plano necessário principalmente quando se trata de desenvolvimento de software Uma ferramenta para o desenvolvimento desse plano antes e durante o desenvolvimento é chamada de Máquina de Estados assunto que você verá nesta Dica do Professor Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar Aprenda a utilizar a ferramenta Tinkercad Tinkercad é um simulador online de Arduino que vai auxiliálo no desenvolvimento de seus projetos Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar