Baixe o app para aproveitar ainda mais
Prévia do material em texto
ARDUINO 01/09/2014 CURSO BÁSICO DE PROGRAMAÇÃO Apostila básica que explica como usar e programar o Arduino, uma plataforma física de computação de código aberto baseada em uma simples placa microcontroladora e um ambiente de desenvolvimento de desenvolvimento próprio para escrever o código para a placa. ARDUINO Página 1 ARDUINO P R O G R A M A Ç Ã O E U S O O QUE É O ARDUINO? O Arduino é um projeto totalmente aberto de protótipos de eletrônica baseados numa plataforma de hardware e software flexível e de fácil utilização. É destinado a artistas, designers, hobbyistas e qualquer tipo de pessoa interessada em criar objetos ou ambientes interativos. É um projeto que engloba software e hardware e tem como objetivo fornecer uma plataforma fácil para prototipação de projetos interativos, utilizando um microcontrolador. Ele faz parte do que chamamos de computação física: área da computação em que o software interage diretamente com o hardware, tornando possível integração com sensores, motores e outros dispositivos eletrônicos. O Arduino pode perceber o ambiente por receber informação de uma grande variedade de sensores, e pode estimular o ambiente controlando luzes, motores, e outros atuadores. A parte de hardware do projeto, uma placa que cabe na palma da mão, é um computador como qualquer outro: possui microcontrolador, memória RAM, memória flash (para guardar o software), temporizadores, contadores, dentre outras funcionalidades. O microcontrolador em que se baseia (ATMEL) é programável usando a linguagem Arduino (baseada em C/C++), e também aceita código diretamente em C/C++, bem como o ambiente do Arduino que é baseado em Processing. Normalmente, é necessário construir os circuitos para as entradas e saídas do Arduino, o que permite flexibilidade e uma grande variedade de soluções para um mesmo problema. Muitos projetos para Arduino estão disponíveis na internet (o próprio site do Arduino mantém um fórum e um blog para os usuários do sistema), facilitando o aprendizado e a troca de informações entre os construtores. Os projetos em Arduino podem ser únicos ou podem comunicar com outros circuitos, ou até mesmo com outros softwares em um computador (por exemplo, Java, Flash, Processing, MaxMSP). As placas podem ser montadas à mão ou serem compradas montadas, e o software pode ser obtido gratuitamente. Como o Arduino é um projeto aberto, diversas empresas fabricam e disponibilizam suas placas no mercado, como o Freeduino, Seeduino, Roboduino, Pinguino e os brasileiros Severino e Brasuino. ARDUINO Página 2 Esta apostila foi baseada em diversos projetos disponíveis na internet. São referências importantes: www.arduino.cc Site do projeto Arduino. Permite o download do ambiente de programação e contém referências e tutoriais para iniciantes, além de manter um fórum e um blog www.viaspositronicas.blogspot.com Blog mantido por diversas pessoas ligadas à robótica educacional, de várias localidades do país. Contém informações sobre diversas plataformas e campeonatos. www.earthshineEelectronics.com Disponibiliza para download o “The complete beginners guide to the Arduino”, uma das principais referências para iniciantes (em inglês). TIPOS DE ARDUINOS: ARDUINO Página 3 ALIMENTAÇÃO O Arduino pode operar com uma tensão de 6 a 20 Volts. Se receber menos que 7 V, entretanto, o pino de 5 V poderá fornecer menos que cinco Volts e a placa pode ficar instável. Se utilizar mais que 12 V, o regulador de tensão pode superaquecer e danificar a placa. A faixa recomendada é entre 7 e 12 volts. Os pinos de energia são os seguintes: VIN. Equivale à tensão de entrada da placa Arduino quando utiliza uma fonte externa (diferentemente dos 5 volts da conexão USB ou outras fontes reguladas). Você pode fornecer energia através deste pino, ou, se fornecer uma tensão através do plug, obter a mesma tensão através deste pino. 5V. Fornece a tensão regulada para o microcontrolador e outros componentes da placa. 3V3. Fornece uma tensão de 3.3 Volts gerada pelo chip FTDI (on-board). A corrente máxima é de 50mA. GND. Pinos-terra. ARDUINO Página 4 Entradas e Saídas Cada um dos pinos digitais do Arduino pode ser usado como uma entrada ou saída, usando as funções pinMode(), digitalWrite(), e digitalRead(). Eles operam com 5 volts. Cada pino pode fornecer ou receber um máximo de 40 mA e tem um resistor pull-up interno (desconectado por padrão) de 20-50 kOhms. Além disso, alguns pinos têm funções especializadas: Serial: Usado para receber (RX) e transmitir dados (TX) TTL serial. PWM: Usado para fornecer 8 bits de saída PWM com a função analogWrite (). LED: 13. Há um built-in LED conectado ao pino digital 13. Quando o pino está em HIGH o LED está ligado, quando o pino é LOW, ele está desligado. Entradas Analógicas: Cada uma das quais com 10 bits de resolução (isto é, 1024 valores diferentes). Por padrão, eles medem até 5 volts, embora seja possível mudar o limite superior de sua faixa usando o pino AREF e função analogReference (). AREF: Tensão de referência para as entradas analógicas. Usado com analogReference (). Reset. Trazer esta linha LOW para resetar o microcontrolador. Tipicamente usado para adicionar um botão de reset. HARDWARE VS SOFTWARE Antes de começar a trabalhar propriamente com esta plataforma de desenvolvimento, torna-se necessário começar por perceber o seu funcionamento, para tal descrever-se-á neste capítulo o funcionamento do Arduino, em termos de Hardware e Software. Espera-se assim de certa forma “iluminar o caminho” neste estudo, fazendo com que toda a percepção do assunto a tratar se torne mais simples, ou seja, serão aqui apresentadas as bases para a sua compreensão. Hardware Um microprocessador, basicamente, é constituído por um circuito integrado com a capacidade de executar determinadas instruções, sendo a sua velocidade de processamento determinada por um circuito que produz um determinado Clock (kHz, MHz ou GHz). ARDUINO Página 5 O seu poder de processamento é afetado por características como Bits, quantidade de núcleos, arquitetura apresentada, tipo de instruções, entre outras. Como fator de grande importância tem-se ainda a existência de memória externa, onde estão armazenados os programas que serão executados. Um microcontrolador, ao contrário de um microprocessador, é desenhado e construído de forma a integrar diversos componentes num único circuito integrado, evitando, assim, a necessidade de adicionar componentes externos ao microcontrolador, que permitiriam as suas funcionalidades. Pela análise da figura acima, pode-se ter uma noção de alguns exemplos de componentes que se encontram disponíveis, conseguindo reunir uma grande quantidade de recursos num único circuito integrado. ARDUINO Página 6 Na figura seguinte, é apresentado um diagrama de blocos de um microcontrolador ATMega168 – em tudo idêntico a um ATMega328 – em que é possível identificar todos os seus constituintes. ARDUINO Página 7 ARDUINO Página 8 ARDUINO Página 9 ARDUINO Página 10 ARDUINO Página 11 ARDUINO Página 12 ARDUINO Página 13 SOFTWARE Instalação e Util ização O Software de desenvolvimento Arduinoé bastante fácil e intuitivo de utilizar, não havendo qualquer nível de dificuldade. Foram estruturados passos de forma a simplificar a sua utilização e instalação. O 1º passo consiste em efetuar o download do respectivo software de desenvolvimento, através do site oficial Arduino (www.arduino.cc). A última versão disponível aparecerá na parte superior da página, como mostra a figura abaixo, sendo só necessário escolher a versão apropriada para o sistema operacional do seu computador. O 2º passo consiste em descompactar o arquivo “.ZIP” (versão Windows ou Mac OS) ou “.tgz” (versão Linux) para uma pasta à sua escolha. Escolha uma pasta de destino final, pois o programa não necessita de instalação. Utilizando o sistema operacional Windows, o conteúdo da pasta deverá ser o seguinte: ARDUINO Página 14 O 3º passo consiste em ligar a placa de desenvolvimento ao computador e instalar os drivers FTDI, para permitir uma conversão de USB para série. O 4º passo consiste em configurar a porta série a ser utilizada e qual o tipo de modelo Arduino, que nos encontramos a utilizar. Para tal, necessitamos de abrir o Software de desenvolvimento e escolher na barra de separadores a opção “Tools”. ARDUINO Página 15 O 5º e último passo para a utilização do Software consiste em elaborar o seu Sketch, compilar e, caso não tenha erros, fazer o uploading para a placa de desenvolvimento Arduino. Ciclo de Desenvolvimento Os passos necessários para elaborar uma aplicação (após ter feito a instalação do Software) podem ser apresentados de uma forma esquemática e a qual se pode designar por Ciclo de Desenvolvimento. Índice de Instruções Aqui estão relacionadas as mais importantes instruções base do ambiente de desenvolvimento Arduino, sem recorrer a bibliotecas externas, sendo estas enumeradas por tipo de aplicação. Antes de abordar algumas das instruções possíveis numa linguagem de alto nível, podemos fazer uma breve abordagem para analisar qual a classificação a atribuir ao microcontrolador em estudo. Ppodemos classificar os processadores tendo em conta o seu conjunto de ARDUINO Página 16 instruções em duas categorias: CISC (Complex Instruction Set Computers) e RISC (Reduced Instruction Set Computers). Baseando-se a arquitetura CISC num conjunto de instruções com modos de endereçamento bastante complexos, ao utilizar este tipo de arquitetura é permitido elaborar programas bastante compactos e codificáveis ao recorrer a um uso reduzido de instruções. Alguns dos inconvenientes deste tipo de arquitetura são baseados no elevado tempo de ciclos de relógio, necessários para executar cada uma das suas instruções. Outro inconveniente é a existência de variados modos de endereçamento. Por outro lado os processadores baseados em arquiteturas do tipo RISC apresentam um conjunto de instruções bastante reduzido, possibilitando assim obter uma enorme simplicidade e um tempo de execução menor por instrução que a arquitetura CISC. Conseguindo, assim, com um conjunto de instruções básicas com tempo de execução menores, obter, no final, velocidades de processamento mais elevadas que a arquitetura CISC. Na sua versão mais simples pode afirmar-se que os processadores RISC possuem os seguintes tipos de instruções: Instruções lógicas e aritméticas sobre registos; Instruções de transferência de dados entre memória e registros; Instruções de controle. No datasheet dos microcontroladores utilizados nos modelos do Arduino, pode- se perceber que estamos perante microcontroladores baseados numa arquitetura “advanced RISC”. Esta arquitetura foi desenvolvida para ser uma especificação “standard” para uma família de microprocessadores baseada na família MIPS (Microprocessor Without Interlocked Pipeline Stages - arquitetura de microcontroladores RISC, desenvolvida pela “MIPS Technology”). ARDUINO Página 17 ARDUINO Página 18 ARDUINO Página 19 ARDUINO Página 20 ARDUINO Página 21 ARDUINO Página 22 FUNÇÕES DE CONTROLE DE FLUXO ARDUINO Página 23 ARDUINO Página 24 ARDUINO Página 25 ARDUINO Página 26
Compartilhar