Minicurso de Arduino Gabriel Vasiljević Felipe Fernandes January 28, 2013 Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 1 / 34
Sobre Sobre o minicurso: Duração de 20 horas Certificado ao final (com 80% de presença) Sobre as aulas: As aulas serão divididas entre a parte prática e teórica Intervalo de 20min Objetivos: Introduzir ao desenvolvimento de circuitos e dispositivos eletrônicos simples Capacitar o aluno a projetar sistemas mais complexos Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 2 / 34
Roteiro do curso Introdução ao Arduino Revisão de eletricidade Componentes eletrônicos Desenvolvimento com Arduino Linguagem Montagem do circuito Exemplos e exercícios Acessórios e Shields Projetos Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 3 / 34
Roteiro da aula Introdução O que é Arduino Tipos de Arduino Hardware O que podemos fazer com Arduino Mas antes... Revisão de eletricidade Circuitos eletrônicos Instalação da IDE Introdução à linguagem do Arduino Primeiros conceitos Principais funções e comandos básicos Primeiro exemplo Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 4 / 34
Introdução Antes de mais nada, o que é Arduino? Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 5 / 34
O que é Arduino Plataforma de prototipação baseada em hardware livre Totalmente open-source Não há nenhum custo além da compra da placa Comunidade ativa Criada para ser de fácil utilização e aprendizado Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 6 / 34
Tipos de Arduino Existem diferentes Arduinos para diferentes projetos Cada um se adapta melhor para determinadas situações Exemplos: Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 7 / 34
Tipos de Arduino Arduino Nano Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 8 / 34
Tipos de Arduino Arduino Mega Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 9 / 34
Tipos de Arduino LilyPad Arduino Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 10 / 34
Tipos de Arduino Arduino Uno É este que iremos utilizar! Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 11 / 34
O que podemos fazer com Arduino? As aplicações do Arduino são inúmeras Podemos fazer praticamente qualquer coisa! :) Site com diversos projetos explicados passo-a-passo: www.instructables.com Alguns exemplos: Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 12 / 34
Exemplos Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 13 / 34
Exemplos Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 14 / 34
Exemplos Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 15 / 34
Exemplos Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 16 / 34
E por último... LANÇA-CHAMAS!! OH YEAH!!! Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 17 / 34
Mas antes... É preciso ter noções basicas de eletricidade e eletrônica Evitar acidentes e peças queimadas :) Conhecer o funcionamento dos componentes que iremos utilizar LEDs, resistores, sensores etc. Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 18 / 34
Revisão (rápida) de eletricidade Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 19 / 34
Revisão (rápida) de eletricidade Átomos possuem prótons (carga positiva), elétrons (carga negativa) e nêutrons (carga nulas) Cargas opostas se atraem e cargas iguais se repelem Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 19 / 34
Revisão (rápida) de eletricidade Átomos possuem prótons (carga positiva), elétrons (carga negativa) e nêutrons (carga nulas) Cargas opostas se atraem e cargas iguais se repelem Elétrons livres se movimentam de forma aleatória Mas, quando submetidos à uma DDP ou a um campo magnético, passam a se mover ordenadamente Corrente elétrica Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 19 / 34
Revisão (rápida) de eletricidade DDP - Diferença De Potencial - Tensão Quando dois pontos possuem potenciais diferentes Elétrons se movem do maior potencial para o menor potencial Exemplo: Tomadas Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 20 / 34
Circuitos Circuito é a junção de componentes eletrônicos de forma que permitam a passagem de corrente elétrica Um componente eletrônico são tais quais permites a passagem de corrente através de elementos condutores Durante o minicurso, estaremos criando diversos circuitos, controlados pelo Arduino :) Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 21 / 34
Começando... Entendendo estes conceitos, podemos começar a trabalhar com o Arduino Basta tê-lo em mãos junto com um cabo USB! Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 22 / 34
Instalação 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 Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 23 / 34
Instalação da IDE No Linux sudo add-apt-repository ppa:arduino-ubuntu-team/ppa sudo apti-tude update sudo aptitude install arduino Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 24 / 34
Introdução à linguagem do Arduino Linguagem do Arduino é basicamente C e C++ Podemos usar qualquer função destas linguagens para manipular os dados de nosso projetos Possui funções específicas para manipulação do circuito Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 25 / 34
Principais funções Todo código do Arduino possui duas funções principais: setup() É onde a execução começa Responsável por inicializar as portas e atribuí-las como entradas ou saídas loop() É onde todos os comandos sao dados ao Arduino Sua execução é repetida até o programa terminar Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 26 / 34
Primeiros conceitos O Arduino controla o circuito através de suas portas Cada porta fornece ou recebe uma tensão (entrada ou saída) As portas podem trabalhar com tensões binárias (digitais) ou contínuas (analógicas) O Arduino Uno possui 28 portas, divididas entre: Digitais PWM Analógicas Ground (terra) Power (Reset, 3.3V e 5V) Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 27 / 34
Primeiro exemplo Exercitar os conceitos: acender o LED do Arduino O LED piscará a cada segundo Por padrão, o LED é conectado à saída 13 O que precisamos fazer? Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 28 / 34
Primeiro passo Criar um novo arquivo no IDE Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 29 / 34
Segundo passo Criar a função setup() Inicializar a porta Para isso, utilizamos a função pinmode(porta, modo) modo pode ser INPUT (entrada) ou OUTPUT (saída) Exemplo: Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 30 / 34
Segundo passo Criar a função setup() Inicializar a porta Para isso, utilizamos a função pinmode(porta, modo) modo pode ser INPUT (entrada) ou OUTPUT (saída) Exemplo: Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 30 / 34
Terceiro passo Criar a função loop() É nela que iremos controlar o LED Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 31 / 34
Terceiro passo Criar a função loop() É nela que iremos controlar o LED Como? Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 31 / 34
Terceiro passo A função digitalwrite(pino, estado) nos permite mudar o estado do pino para HIGH (ligado) ou LOW (desligado) Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 32 / 34
Terceiro passo A função digitalwrite(pino, estado) nos permite mudar o estado do pino para HIGH (ligado) ou LOW (desligado) A função delay(tempo) dá uma pausa de tempo milisegundos na execução do código Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 32 / 34
Terceiro passo A função digitalwrite(pino, estado) nos permite mudar o estado do pino para HIGH (ligado) ou LOW (desligado) A função delay(tempo) dá uma pausa de tempo milisegundos na execução do código Já temos tudo o que precisamos! :) Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 32 / 34
Terceiro passo Com a função loop() escrita, o código final ficará parecido com este: Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 33 / 34
Quarto passo Agora basta conectar o Arduino ao computador e fazer o upload do código! Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 34 / 34
Na próxima aula... Portas Digitais Componentes eletrônicos LEDs Resistores Capacitores Protoboard Primeiro exemplo melhorado Botões Buzzers Exercícios Gabriel Vasiljević Felipe Fernandes Minicurso de Arduino January 28, 2013 35 / 34