minicurso de arduino - dimap.ufrn.br · como funciona (componentes, ide, circuitos, no˘c~oes de...

Post on 08-Feb-2019

224 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Minicurso de Arduino

Gabriel VasiljevicWanderson Ricardo

August 28, 2015

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 1 / 45

Roteiro do curso

O que e o Arduino (especificacoes, modelos, aplicacoes)

Como funciona (componentes, IDE, circuitos, nocoes de eletricidade)

Linguagem (conceitos, funcoes e comandos basicos)

Portas digitais

Componentes eletronicos (LEDs, resistores, protoboard, botoes)

Sensores

Exemplos e exercıcios

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 2 / 45

Introducao

Antes de mais nada, o que e Arduino?

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 3 / 45

O que e Arduino

Plataforma de prototipacao baseada em hardware livreTotalmente open-sourceNao ha nenhum custo alem da compra da placaComunidade ativa

Criada para ser de facil utilizacao e aprendizado

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 4 / 45

Tipos de Arduino

Existem diferentes Arduinos para diferentes projetos

Cada um se adapta melhor para determinadas situacoes

Exemplos:

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 5 / 45

Tipos de Arduino

Arduino Nano

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 6 / 45

Tipos de Arduino

Arduino Mega

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 7 / 45

Tipos de Arduino

LilyPad Arduino

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 8 / 45

Tipos de Arduino

Arduino Uno

E este que iremos utilizar!

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 9 / 45

Mas antes...

E preciso ter nocoes basicas de eletricidade e eletronica

Evitar acidentes e pecas queimadas

Conhecer o funcionamento dos componentes que iremos utilizar

LEDs, resistores, sensores etc.

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 10 / 45

Revisao (rapida) de eletricidade

Atomos possuem protons (carga positiva), eletrons (carga negativa) eneutrons (carga nulas)

Cargas opostas se atraem e cargas iguais se repelem

Eletrons livres se movimentam de forma aleatoria

Mas, quando submetidos a uma DDP ou a um campo magnetico,passam a se mover ordenadamente

Corrente eletrica

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 11 / 45

Revisao (rapida) de eletricidade

Atomos possuem protons (carga positiva), eletrons (carga negativa) eneutrons (carga nulas)

Cargas opostas se atraem e cargas iguais se repelem

Eletrons livres se movimentam de forma aleatoria

Mas, quando submetidos a uma DDP ou a um campo magnetico,passam a se mover ordenadamente

Corrente eletrica

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 11 / 45

Revisao (rapida) de eletricidade

Atomos possuem protons (carga positiva), eletrons (carga negativa) eneutrons (carga nulas)

Cargas opostas se atraem e cargas iguais se repelem

Eletrons livres se movimentam de forma aleatoria

Mas, quando submetidos a uma DDP ou a um campo magnetico,passam a se mover ordenadamente

Corrente eletrica

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 11 / 45

Revisao (rapida) de eletricidade

DDP - Diferenca De Potencial - Tensao

Quando dois pontos possuem potenciais diferentes

Eletrons se movem do maior potencial para o menor potencial

Exemplo: Tomadas

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 12 / 45

Circuitos

Circuito e a juncao de componentes eletronicos de forma quepermitam a passagem de corrente eletrica

Um componente eletronico sao tais quais permitem a passagem decorrente atraves de elementos condutores

Durante o minicurso, estaremos criando diversos circuitos,controlados pelo Arduino

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 13 / 45

Comecando...

Entendendo estes conceitos, podemos comecar a trabalhar com oArduino

Basta te-lo em maos junto com um cabo USB

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 14 / 45

Instalacao da IDE

No Windows

Baixar os arquivos no site oficial (www.arduino.cc)

Descompactar

Conectar o Arduino

Instalar os drivers (localizados na pasta extraıda)

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 15 / 45

Instalacao da IDE

No Linux

sudo add-apt-repository ppa:arduino-ubuntu-team/ppa

sudo apti-tude update

sudo aptitude install arduino

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 16 / 45

Introducao a linguagem do Arduino

Linguagem Wired, baseada em C e C++

Podemos usar qualquer funcao destas linguagens para manipular osdados de nosso projetos

Possui funcoes especıficas para manipulacao do circuito

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 17 / 45

Principais funcoes

Todo codigo do Arduino possui duas funcoes principais:

setup()

E onde a execucao comecaResponsavel por inicializar as portas e atribuı-las como entradas ousaıdas

loop()

E onde todos os comandos sao dados ao ArduinoSua execucao e repetida ate o programa terminar

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 18 / 45

Primeiros conceitos

O Arduino controla o circuito atraves de suas portas

Cada porta fornece ou recebe uma tensao (entrada ou saıda)

As portas podem trabalhar com tensoes binarias (digitais) oucontınuas (analogicas)

O Arduino Uno possui 28 portas, divididas entre:

DigitaisPWMAnalogicasGround (terra)Power (Reset, 3.3V e 5V)

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 19 / 45

Primeiro exemplo

Exercitar os conceitos: acender o LED do Arduino

O LED piscara a cada segundo

Por padrao, o LED e conectado a saıda 13

O que precisamos fazer?

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 20 / 45

Primeiro passo

Criar um novo arquivo no IDE

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 21 / 45

Segundo passo

Criar a funcao setup()

Inicializar a porta

Para isso, utilizamos a funcao pinMode(porta, modo)modo pode ser INPUT (entrada) ou OUTPUT (saıda)Exemplo:

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 22 / 45

Segundo passo

Criar a funcao setup()

Inicializar a porta

Para isso, utilizamos a funcao pinMode(porta, modo)modo pode ser INPUT (entrada) ou OUTPUT (saıda)Exemplo:

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 22 / 45

Terceiro passo

Criar a funcao loop()

E nela que iremos controlar o LED

Como?

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 23 / 45

Terceiro passo

Criar a funcao loop()

E nela que iremos controlar o LED

Como?

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 23 / 45

Terceiro passo

A funcao digitalWrite(pino, estado) nos permite mudar o estado dopino para HIGH (ligado) ou LOW (desligado)

A funcao delay(tempo) da uma pausa de tempo milisegundos naexecucao do codigo

Ja temos tudo o que precisamos! :)

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 24 / 45

Terceiro passo

A funcao digitalWrite(pino, estado) nos permite mudar o estado dopino para HIGH (ligado) ou LOW (desligado)

A funcao delay(tempo) da uma pausa de tempo milisegundos naexecucao do codigo

Ja temos tudo o que precisamos! :)

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 24 / 45

Terceiro passo

A funcao digitalWrite(pino, estado) nos permite mudar o estado dopino para HIGH (ligado) ou LOW (desligado)

A funcao delay(tempo) da uma pausa de tempo milisegundos naexecucao do codigo

Ja temos tudo o que precisamos! :)

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 24 / 45

Terceiro passo

Com a funcao loop() escrita, o codigo final ficara parecido com este:

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 25 / 45

Quarto passo

Agora basta conectar o Arduino ao computador e fazer o upload do codigo

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 26 / 45

Portas Digitais

Trabalham com tensoes binarias: 0V ou 5V

14 ao total, numeradas de 0 a 13

Portas 0 e 1 reservadas aos LEDs RX e TX, respectivamente

Principais funcoes:

digitalRead(pino);digitalWrite(pino, estado);

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 27 / 45

Componentes eletronicos

Componentes eletronicos sao as diversas pecas que iremos utilizar emnossos projetos

Cada um possui uma funcao bastante especıfica

Controlaremos o comportamento de cada um com o Arduino

Exemplos: LEDs, resistores, capacitores, potenciometros...

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 28 / 45

LEDs

Light Emitting Diode

Semicondutores - Bloqueiam a corrente por um lado e a permite pelooutro

Formados por um anodo (perna maior) e um catodo (menor)

Exemplos: Controle remoto, TVs, luzes de equipamentos em geral

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 29 / 45

Resistores

Oferecem resistencia a passagem da corrente eletrica

Causam Efeito Joule

Podemos medir a resistencia dividindo a tensao pela corrente. Estaunidade chama-se Omh (Ω)

Codigo de cores

Exemplos: Chuveiros eletricos, ferro de passar roupa, lampadaincandescente

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 30 / 45

Protoboard

Serve para unir os componentes com maior facilidade

Elimina a necessidade da solda

Formado por ligacoes verticais (centrais) e horizontais (inferiores esuperiores)

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 31 / 45

Primeiro exemplo melhorado

Agora que ja conhecemos alguns componentes, podemos melhorarnosso primeiro projeto

Vamos fazer piscar um LED de verdade! :)

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 32 / 45

Primeiro exemplo melhorado

Agora que ja conhecemos alguns componentes, podemos melhorarnosso primeiro projeto

Vamos fazer piscar um LED de verdade! :)

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 32 / 45

Primeiro exemplo melhorado

Utilizaremos o mesmo codigo do primeiro exemplo

A diferenca e que criaremos um circuito composto por um LED, umresistor e a protoboard

Como montar este circuito?

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 33 / 45

Primeiro exemplo melhorado

E necessario que haja uma DDP para ocorrer a corrente eletrica quealimentara o LED

Lembrar que o LED e um semicondutor, por isso, a corrente so fluipor uma direcao

Deve-se conectar o anodo (perna maior) do LED ao gerador (porta13)

O catodo deve ser conectado a uma porta terra (GRD - Ground)

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 34 / 45

Primeiro exemplo melhorado

O resistor deve ser conectado entre o anodo e o gerador

O LED e sensıvel e tensoes muito altas podem queima-loO resistor limita a intensidade da corrente que chega ao LED

Para facilitar, utilize a protoboard!

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 35 / 45

Primeiro exemplo melhorado

O resultado:

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 36 / 45

Botoes

Podemos controlar alguns dos componentes do sistema utilizandobotoes

Botoes controlam a passagem da corrente

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 37 / 45

Botoes

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 38 / 45

Exemplos

Acender um LED utilizando um botao

Ideia principal: se apertamos o botao, o LED acende. Se o soltarmos,o LED apaga;

Como implementar isso?

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 39 / 45

Sensores

Sensores sao utilizados para captar informacoes do ambiente

Iluminacao, temperatura, umidade...

Traduzem essas variaveis em forma de tensao

Mas, temperatura, pressao, luminosidade etc. sao variaveis contınuas

Ou seja, precisamos captar valores contınuos de tensao para trabalharcom essas variaveis

Portas analogicas!

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 40 / 45

Sensor de Luminosidade - LDR

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 41 / 45

Sensores

Usamos as portas analogicas para receber estas informacoes

Recebemos valores entre 0V e 5V e traduzimos como um inteiro entre0 e 1023

Exemplo: Sensor de luminosidade

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 42 / 45

Sensor de Luminosidade - LDR

LDR - Light Dependent Resistor

Resistor sensıvel a radiacao luminosa

Quanto maior a luminosidade do ambiente, menor a resistencia

Ou seja, para luminosidade 0 (zero), teremos resistencia maxima

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 43 / 45

Sensor de Luminosidade - LDR

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 44 / 45

Exercıcios

Tarefas:

Captar, atraves de uma entrada analogica, a quantidade de luzrecebida do ambiente, mostrando este valor no monitor serial

Criar um LED inteligente - ou seja, ele so acende quando a luz estabaixa

Criar um LED que acenda de forma inversamente proporcional a luzdo ambiente - ou seja, quanto mais escuro o ambiente, maior aintensidade do brilho do LED

Gabriel Vasiljevic Wanderson Ricardo Minicurso de Arduino August 28, 2015 45 / 45

top related