0% acharam este documento útil (0 voto)
42 visualizações9 páginas

02 - A Plataforma Arduino

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
42 visualizações9 páginas

02 - A Plataforma Arduino

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 9

2 A plataforma Arduino

2.1 Conhecendo a plataforma


Arduino é uma plataforma de eletrônica aberta para a criação de protótipos baseada
em software e hardware livres, flexíveis e fáceis de usar. Foi desenvolvida para artistas,
designers, hobistas e qualquer pessoa interessada em criar objetos ou ambientes interativos. O
Arduino pode adquirir informação do ambiente através de seus pinos de entrada, para isso uma
completa gama de sensores pode ser usada. Por outro lado, o Arduino pode atuar no ambiente
controlando luzes, motores ou outros atuadores. Os campos de atuação para o controle de
sistemas são imensos, podendo ter aplicações na área de impressão 3D, robótica, engenharia
de transportes, engenharia agronômica, musical, moda e tantas outras. O microcontrolador da
placa Arduino é programado mediante a linguagem de programação Arduino, baseada em
Wiring, e o ambiente de desenvolvimento (IDE) está baseado em Processing. Os projetos
desenvolvidos com Arduino podem ser executados mesmo sem a necessidade de estar
conectados a um computador, apesar de que também podem ser feitos comunicando-se com
diferentes tipos de software (como Flash, Processing ou MaxMSP). As placas podem ser feitas à
mão ou compradas montadas de fábrica. O download do software pode ser feito de forma
gratuita e os desenhos da placa estão disponíveis sob uma licença aberta, assim você também é
livre para adaptá-lo às suas necessidades (Disponível em: www.arduino.cc. Acesso 13/04/2020).

O projeto Arduino começou no ano de 2005 com o objetivo de criar um dispositivo para
estudantes que oferecesse controle integrado de projetos de design e interação, e que fosse
mais econômico que os sistemas de criação de protótipos disponíveis até o momento. O que
chamamos hoje de Arduino (o microcontrolador) nasceu na cidade italiana de Ivrea. Nesta
mesma cidade nos séculos X e XI houve um outro Arduino (um nobre) que se auto proclamou
rei de toda a Itália, obviamente a coisa não funcionou e, como era comum na época, ele foi
morto pelos rivais. O fato é que em sua cidade natal ele ainda é muito lembrado, a avenida
principal da cidade se chama “Via Arduino” bem como muitos comércios locais. Enquanto viviam
lá, os integrantes do time que criou o Arduino (o microcontrolador), depois do expediente iam
tomar uma cerveja. Onde? No Bar Arduino. Assim o nome do Arduino (o microcontrolador) é
uma homenagem ao Arduino (o bar) que por sua vez era uma homenagem ao outro Arduino (o
nobre). O projeto Arduino foi desenvolvido por Massimo Banzi, David Cuartielles, Tom Igoe,
Gianluca Martino e David Mellis. Está baseado em uma plataforma de código aberta chamada
Wiring, criada pelo artista colombiano Hernando Barragán durante uma tese de um master no
Interaction Design Institute Ivrea. Por outro lado, Wiring está baseado em Processing e seu
entorno de desenvolvimento integrado foi criado por Casey Reas e Ben Fry.

“Não acredito que o Arduino existiria sem Wiring, e não acredito que Wiring
existiria sem Processing. E que Processing sem dúvida não existiria sem
Design by Numbers e John Maeda”.

Entrevista a Casey Reas e Ben Fry, Shiffman Daniel (Set/2009)

Vamos conhecer agora o Arduino modelo UNO R3:


1 - Conector USB para o cabo tipo AB

2 - Botão de reset

3 - Pinos de entrada e saída digital e PWM

4 - LED verde de placa ligada

5 - LED laranja conectado ao pin13

6 - ATmega encarregado da comunicação com o computador

7 - LED TX (transmissor) e RX (receptor) da comunicação serial

8 - Porta ICSP para programação serial

9 - Microcontrolador ATmega 328

10 - Cristal de quartzo 16Mhz

11 - Regulador de voltagem

12 - Conector fêmea 2,1 mm com centro positivo

13 - Pinos de voltagem e terra

14 - Entradas analógicas

Com o passar dos anos a linha Arduino vem crescendo mais e mais e trazendo soluções
para os mais diversos projetos. Conheça um pouco mais desta família:
Foram também desenvolvidas placas de expansões para as funções do Arduino,
chamadas de Shields. Alguns exemplos:

Iremos instalar agora o software de desenvolvimento do Arduino (IDE) em Windows.


Este tutorial serve para instalação das placas Arduino Uno, Arduino Duemilanove, Nano, Arduino
Mega 2560 ou Diecimila. Para outras placas da linha Arduino deve-se buscar o tutorial
correspondente.

1 – Vamos precisar de uma placa Arduino e um cabo USB AB.

2 - Download do software do Arduino: Faça download da última versão do software do


Arduino. Ao terminar, descompacte o arquivo e mantenha a estrutura de pastas e sub-pastas.
Se quiser guarde esta pasta no drive C: do seu computador. Dentro desta pasta existe um
arquivo chamado arduino.exe que é o ponto de entrada do programa do Arduino, a IDE
(Integrated Development Environment).

3 - Conectando o Arduino O Arduino Uno isolado usa a energia do computador através


da conexão USB, não sendo necessária energia externa. Conecte a placa Arduino ao computador
usando o cabo USB AB. O LED verde de energia (PWR) deve acender.

4 - Instalando os drivers. Conecte a placa ao computador e aguarde o Windows iniciar o


processo de instalação do driver. Depois de alguns momentos o processo vai falhar. Clique em
concluir e dispense a ajuda do assistente. Clique no Menu Principal e abra o Painel de Controle.
Dentro do Painel de Controle, navegue até Sistema e Segurança. Na sequência clique em
Sistema, selecione Hardware e depois clique em Gerenciador de Dispositivos. Procure por Portas
(COM & LPT), onde você deve ver uma opção Arduino UNO (COMxx). Clique com o botão da
direita em Arduino UNO (COMxx) e escolha a opção Atualizar Driver. Depois escolha a opção
Instalar de uma lista ou local específico (Avançado), e clique em avançar. Finalmente navegue e
escolha o driver arduino.inf localizado na pasta Drivers do software do Arduino que você baixou.
O Windows vai finalizar a instalação do driver a partir deste ponto.

5 - Abrindo o programa Arduino Clique duas vezes na aplicação do Arduino, o arquivo


arduino.exe. Caso o programa carregue com o idioma que não é da sua preferência você pode
alterar na sessão de preferências do programa.

Espaço de trabalho:

Softwares escritos usando Arduino são chamados de Sketches. Estes Sketches são
escritos no editor de texto da IDE do Arduino e são salvos com a extensão de arquivo .ino. Este
editor tem características de cortar/colar e para buscar/substituir texto. A área de mensagem
dá feedback ao salvar e exportar arquivos e também exibe informações de erros ao compilar
Sketches. O canto direito inferior da janela exibe a placa atual e a porta serial. Os botões da
barra de ferramentas permitem que você verifique, carregue, crie, abra e salve Sketches ou abra
o monitor serial.

Nota: Nas versões do IDE antes de 1.0 os Sketches são salvos com a extensão .pde. É
possível abrir esses arquivos com a versão 1.0, mas você será solicitado a salvar o Sketch com a
extensão .ino.
A função Monitor Serial no IDE exibe dados seriais sendo enviados da placa Arduino para
o computador. Para enviar dados para a placa, digite o texto e clique no botão "enviar" ou
pressione enter. A comunicação entre a placa Arduino e seu computador pode acontecer em
várias velocidades padrão pré-definidas. Para que isso ocorra é importante que seja definida a
mesma velocidade tanto na Sketch quanto no Monitor Serial. Na Sketch esta escolha é feita
através da função Serial.begin. E no Monitor Serial através do menu drop down do canto inferior
direito. Note que no Mac ou Linux a placa Arduino irá resetar (executar novamente o seu Sketch
desde o início), quando você abrir o monitor serial.

A comunicação serial com a placa Arduino também pode ser feita através de outras
linguagens de programação como Processing, Flash, Python, MaxMSP e muitas outras.

O ambiente Arduino pode ser estendido através da utilização de bibliotecas, assim como
a maioria das plataformas de programação. Bibliotecas fornecem funcionalidades extras para
uso em sketches. Por exemplo, para trabalhar com hardware ou manipulação de dados. Algumas
bibliotecas já vêm instaladas com a IDE Arduino, mas você também pode fazer download ou
criar a sua própria.

Para usar uma biblioteca em um sketch, selecione em sua IDE Arduino: Sketch> Importar
Biblioteca.

Dentro da programação você inclui as funcionalidades de uma biblioteca já existente a


partir do comando: #include <LiquidCrystal.h>.

2.2 Conhecendo a programação


Arduino se programa em uma linguagem de alto nível semelhante a C/C++ e geralmente
tem os seguintes componentes para elaborar o algoritmo:

• Estruturas
• Variáveis
• Operadores booleanos, de comparação e aritméticos
• Estrutura de controle
• Funções digitais e analógicas
Para mais detalhes visite a Referência da linguagem de programação Arduino, em
português. Veja a referência extendida para características mais avançadas da linguagem
Arduino e a página das bibliotecas para interação com tipos específicos de hardware, no site
oficial do Arduino.

Estruturas: São duas funções principais que deve ter todo programa em Arduino. A
função setup() é chamada quando um programa começa a rodar. Use esta função para inicializar
as suas variáveis, os modos dos pinos, declarar o uso de livrarias, etc. Esta função será executada
apenas uma vez após a placa Arduino ser ligada ou ressetada. setup(){ }

Após criar uma função setup() que declara os valores iniciais, a função loop() faz
exatamente o que seu nome sugere, entra em looping (executa sempre o mesmo bloco de
código), permitindo ao seu programa fazer mudanças e responder. Use esta função para
controlar ativamente a placa Arduino. loop(){ }

Variáveis: São expressões que você pode usar em programas para armazenar valores
como a leitura de um sensor em um pino analógico.

Aqui destacamos algumas:

• Variáveis Booleanas: Variáveis boolenas, assim chamadas em homenagem a George


Boole, podem ter apenas dois valores: verdadeiro (true) e falso (false). boolean
running = false;
• Int: Inteiro é o principal tipo de dado para armazenamento numérico capaz de
guardar números de 2 bytes. Isto abrange a faixa de -32.768 a 32.767 (valor mínimo
de -2^15 e valor máximo de (2^15) -1). int ledPin = 13;
• Char: Um tipo de dado que ocupa 1 byte de memória e armazena o valor de um
caractere ASCII. Caracteres literais são escritos entre aspas. char myChar = ‘A’;

Operadores booleanos: Estes operadores podem ser usados dentro da condição em


uma sentença if.

• && (“e” lógico) Verdadeiro apenas se os dois operandos forem verdadeiros, ou seja,
a primeira condição e a segunda forem verdadeiras. Exemplo: if (digitalRead(2) == 1
&& digitalRead(3) == 1) { // ler dois interruptores // ... } é verdadeiro apenas se os
dois interruptores estiverem fechados.
• || (“ou” lógico) Verdadeiro se algum dos operandos for verdadeiro, ou seja, se a
primeira ou a segunda condição for verdadeira. Exemplo: if (x > 0 || y > 0) { // ... } é
verdadeiro apenas se x ou y forem maiores que 0.
• ! (negação) Verdadeiro apenas se o operando for falso. Exemplo: if (!x) { // ... } é
verdadeiro apenas se x for falso (ou seja, se x for igual a 0).

Operadores de comparação: if, que é usado juntamente com um operador de


comparação, verifica quando uma condição é satisfeita, como por exemplo um input acima de
um determinado valor. O formato para uma verificação if é:

if (algumaVariavel > 50)

{// faça alguma coisa}

O programa checa se alguma Variável (colocar acentos em nomes de variáveis não é


uma boa ideia) é maior que 50. Se for, o programa realiza uma ação específica. Colocado de
outra maneira, se a sentença que está dentro dos parêntesis é verdadeira o código que está
dentro das chaves roda; caso contrário o programa salta este bloco de código. As chaves podem
ser omitidas após uma sentença if se só houver uma única linha de código (definida pelo ponto
e vírgula) que será executado de modo condicional:

if (x > 120) digitalWrite(LEDpin, HIGH);

if (x > 120) digitalWrite(LEDpin, HIGH);

if (x > 120) {digitalWrite(LEDpin, HIGH);} // todos são corretos

A sentença que está sendo verificada necessita o uso de pelo menos um dos operadores
de comparação:

x == y (x é igual a y)

x! = y (x é não igual a y)

x < y (x é menor que y)

x > y (x é maior que y)

x <= y (x é menor ou igual a y)

x >= y (x é maior ou igual a y)

Operadores aritméticos: Se aplicam no uso de variáveis.

= (igualdade)

+ (adição)

- (subtração)

* (multiplicação)

/ (divisão)

% (resto da divisão)

Estruturas de controle: São instruções que permitem decidir e realizar diversas


repetições de acordo com alguns parâmetros. Entre os mais importantes podemos destacar:

• Switch/case: Do mesmo modo que as sentenças if, as switch/case controlam o fluxo dos
programas. Switch/case permite ao programador construir uma lista de “casos” dentro
de um bloco delimitado por chaves. O programa checa cada caso com a variável de teste
e executa o código se encontrar um valor idêntico.

switch (var)

case 1: //faça alguma coisa quando var == 1

case 2: //faça alguma coisa quando var == 2

default: // se nenhum valor for idêntico, faça o default

// default é opcional
}

• While: While fará com que o bloco de código entre chaves se repita contínua e
indefinidamente até que a expressão entre parêntesis () se torne falsa. Algo tem que
provocar uma mudança no valor da variável que está sendo verificada ou o código vai
sempre ficar dando voltas dentro do while. Isto poderia ser o incremento de uma
variável ou uma condição externa, como o teste de um sensor.

var = 0;

while(var < 200)

{ // algum código que se repete 200 vezes var++;}

• For: A sentença for é utilizada para repetir um bloco de código delimitado por chaves.
Um contador com incremento normalmente é usado para controlar e finalizar o loop. A
sentença for é útil para qualquer operação repetitiva, e é frequentemente usada com
arrays para operar em conjuntos de dados ou de pinos.

// Aumentar o brilho de um LED usando um pino PWM

int PWMpin = 13; // um LED no pino 13

void setup()

{// nenhum setup é necessário}

void loop()

for (int i=0; i <= 255; i++)

analogWrite(PWMpin, i);

delay(10);

Funções digitais: Orientadas a revisar o estado e a configuração das entradas e saídas


digitais.

• pinMode() Configura o pino especificado para que se comporte ou como uma entrada (
input ) ou uma saída ( output ).
Sintaxe: pinMode(pin, mode)

pinMode(9, OUTPUT); // determina o pino digital 9 como uma saída.

• digitalRead() Lê o valor de um pino digital especificado, HIGH ou LOW .


Sintaxe: digitalRead(pin)

buttonState = digitalRead(9); // Leitura do estado de um botão no pino 9.

• digitalWrite() Escreve um valor HIGH ou um LOW em um pino digital.


Sintaxe: digitalWrite(pin, valor)

digitalWrite(9, HIGH); // Coloca o pino 9 em estado HIGH.

Funções analógicas: Ideais para a leitura ou escrita de valores analógicos.

• analogRead() Lê o valor de um pino analógico especificado. A placa Arduino contém um


conversor analógico-digital de 10 bits com 6 canais. Com isto ele pode mapear tensões
de entrada entre 0 e 5 volts para valores inteiros entre 0 e 1023. Isto permite uma
resolução entre leituras de 5 volts / 1024 unidades ou 0,0049 volts (4.9 mV) por unidade.
Sintaxe: analogRead(pin)

int a = analogRead (A0); // Lê o valor do pino analógico A0 e armazena

//este valor na variável "a".

• analogWrite() Escreve um valor analógico (onda PWM) em um pino. Pode ser usado
para acender um LED variando o brilho ou girar um motor a velocidade variável.
Sintaxe: analogWrite(pin, valor)

analogWrite (9,134); // Envia o valor analógico 134 para o pino 9.

Você também pode gostar