MINICURSO DE ARDUINO Ministrantes Equipe Jaguar Desenvolvedores Equipe

  • Slides: 55
Download presentation
MINICURSO DE ARDUINO Ministrantes: Equipe Jaguar Desenvolvedores: Equipe Jaguar

MINICURSO DE ARDUINO Ministrantes: Equipe Jaguar Desenvolvedores: Equipe Jaguar

Explicaremos o que é Arduino e suas utilidades. O QUE É ARDUINO

Explicaremos o que é Arduino e suas utilidades. O QUE É ARDUINO

Arduino • É uma plataforma de computação física – consegue “perceber” a realidade através

Arduino • É uma plataforma de computação física – consegue “perceber” a realidade através de sensores e tomar ações físicas para controlá-la através de atuadores; • Para isso, utiliza de uma placa de Entrada/Saída microcontrolada baseada em bibliotecas e sintaxe que simplificam a linguagem C/C++.

Utilidades

Utilidades

A seguir mostraremos algumas informações sobre a plataforma Arduino. PLATAFORMA

A seguir mostraremos algumas informações sobre a plataforma Arduino. PLATAFORMA

Plataforma • Foi projetado para ser de fácil entendimento, programação e aplicação, podendo ser

Plataforma • Foi projetado para ser de fácil entendimento, programação e aplicação, podendo ser utilizado como ferramenta educacional sem muitos conhecimentos de eletrônica. • O Arduino utiliza o micro controlador (MCU) Atmega. Um MCU é um “computador” em um chip, possuindo, também, processador, memória e periféricos, porém é utilizado para funções específicas;

Especificações técnicas do Arduino UNO. ESPECIFICAÇÕES TÉCNICAS

Especificações técnicas do Arduino UNO. ESPECIFICAÇÕES TÉCNICAS

Arduino UNO

Arduino UNO

Apresentaremos o ambiente de programação do Arduino. AMBIENTE DE PROGRAMAÇÃO

Apresentaremos o ambiente de programação do Arduino. AMBIENTE DE PROGRAMAÇÃO

Divisão do ambiente. • O software Arduino pode ser rudemente dividido em três partes:

Divisão do ambiente. • O software Arduino pode ser rudemente dividido em três partes: - Inclusão de bibliotecas, variáveis e pinos; - Setup (onde se preestabelece algumas definições, como se um pino é de entrada ou saída, por exemplo); - Loop (programação em si: leitura de pinos de entrada e tomada de decisões/ações). • Obs. : o “setup” e o “loop” são grandes estruturas de controle, logo têm início e “void”.

Ensinaremos a maneira de se conectar ao Arduino pelo computador. CONEXÃO

Ensinaremos a maneira de se conectar ao Arduino pelo computador. CONEXÃO

Conexão com o arduino • Conecte o Arduino no computador e espere o reconhecimento;

Conexão com o arduino • Conecte o Arduino no computador e espere o reconhecimento; • Na barra de menu da plataforma de programação, vá em “Tools >> Board >> Arduino UNO”; • Depois, volte em “Tools >> Serial Port >> COMX”; • Quando a programação estiver pronta, aperte clique no botão “Verify”. Se houver algum problema em seu programa, o software irá denunciá-lo, mostrando a linha em que ocorreu e qual o possível problema; • Depois de corrigidos todos os problemas e verificado novamente, aperte o botão “Upload” que irá embarcar seu programa no Arduino.

A seguir apresentaremos algumas referências na linguagem utilizada pelo Arduino. REFERÊNCIAS DA LINGUAGEM

A seguir apresentaremos algumas referências na linguagem utilizada pelo Arduino. REFERÊNCIAS DA LINGUAGEM

Operadores Tipos de operadores operações Operadores aritméticos +, -, =, etc. Operadores booleanos &&,

Operadores Tipos de operadores operações Operadores aritméticos +, -, =, etc. Operadores booleanos &&, ||, !”A” Operadores de comparação ==, !=, <=, etc.

Sintaxe if • Estruturas de controle (if, else, for, etc. ): if(condição) { ação;

Sintaxe if • Estruturas de controle (if, else, for, etc. ): if(condição) { ação; } else { ação 2; } • Obs. : todas as linhas do programa que não são de estruturas de controle devem terminar com “; ”

Sintaxe else if • else if(condição) { Ação 1; } else { Ação 2;

Sintaxe else if • else if(condição) { Ação 1; } else { Ação 2; } • Obs. : O uso do else if não acarreta a necessidade do uso da função else finalizando.

Sintaxe pinos • Os pinos podem ser declarados com qualquer nome, desde que sejam

Sintaxe pinos • Os pinos podem ser declarados com qualquer nome, desde que sejam declarados como “int”; • O endereço físico deve ser atribuído a esse nome através de um “=”; int nome = 6; • Os pinos analógicos devem ser atribuídos a endereços do tipo “Ax”. Por exemplo: int nome = A 5;

Variáveis • As variáveis são aquelas responsáveis por guardar valores que podem ser posteriormente

Variáveis • As variáveis são aquelas responsáveis por guardar valores que podem ser posteriormente retomados. Por exemplo, registrar os dados lidos por um sensor em um determinado momento; • Qualquer informação vinda do meio externo deve ser salva em uma variável para poder ser utilizada futuramente; • Além disso, deve-se definir o tipo de variável (int , char, long etc. );

Variáveis • Para serem utilizadas, as variáveis devem ter sido definidas na área específica

Variáveis • Para serem utilizadas, as variáveis devem ter sido definidas na área específica para tal fim. Nesta zona, deve ser igualada a seu valor inicial (se houver) ou simplesmente se termina a linha com “; ”; int nome_variável = 0; ou int nome variável;

Constantes • As constantes são aquelas utilizadas, geralmente, como parâmetros; • As mais utilizadas

Constantes • As constantes são aquelas utilizadas, geralmente, como parâmetros; • As mais utilizadas são INPUT/OUTPUT, true/false, etc. HIGH/LOW,

Funções • Digitais I/O – pin. Mode() digital. Write() digital. Read(); • Analógicas I/O

Funções • Digitais I/O – pin. Mode() digital. Write() digital. Read(); • Analógicas I/O – analog. Reference() analog. Read() analog. Write() – PWM; • Temporais – millis() micros() delay. Microseconds(); • Matemáticas – min() max() abs() map().

Mostraremos os parâmetros das funções do Arduino. PAR METROS DAS PRINCIPAIS FUNÇÕES

Mostraremos os parâmetros das funções do Arduino. PAR METROS DAS PRINCIPAIS FUNÇÕES

Digitais I/O • pin. Mode(pino, OUTPUT/INPUT) – utilizada para setar se um determinado pino

Digitais I/O • pin. Mode(pino, OUTPUT/INPUT) – utilizada para setar se um determinado pino será de entrada (INPUT) ou saída (OUTPUT). Deve ser utilizada na área de setup; • digital. Write(pino, HIGH/LOW) – utilizada para “escrever” no pino selecionado nível lógico 1 (HIGH) ou 0 (LOW); • digital. Read(pino) – utilizada para “ler” se o pino está com valor lógico 1 ou 0.

Temporais • millis() – utilizada para contar quantos milissegundos se passaram desde que a

Temporais • millis() – utilizada para contar quantos milissegundos se passaram desde que a plataforma começou a funcionar; • delay(valor) – utilizada para que o programa espere determinado tempo. Esse período de espera é parametrizado por “valor” em sua sintaxe (em milissegundos).

DESAFIOS

DESAFIOS

Blink • Programa básico padrão que utiliza as principais funções digitais e pode ser

Blink • Programa básico padrão que utiliza as principais funções digitais e pode ser realizado apenas com a placa do Arduino; • Há um LED interno na placa ligado ao pino digital 13; • Deve-se fazer com que esse LED pisque com período de 2 s (acenda, permaneça 1 s aceso, apague, permaneça 1 s apagado, acenda de novo e assim por diante); Obs. : Lembrem-se de que primeiro se deve declarar tudo (pinos, variáveis se necessário), depois setar os pinos e só assim começar o loop.

Semáforo • Um LED normal possui um catodo (parte negativa) e um anodo (parte

Semáforo • Um LED normal possui um catodo (parte negativa) e um anodo (parte positiva). Fisicamente o catodo é a maior parte interna de um LED. A outra, menor, é o anodo; • O catodo deve ser ligado à trilha do terra. O anodo deve receber o sinal vindo do Arduino. • Para esse desafio serão utilizados três LEDs (verde, amarelo e vermelho) e estes devem funcionar semelhante a um sinal de trânsito. Porém, ficando 1 s aceso apenas em cada cor.

Apresentaremos mias funções utilizadas. MAIS FUNÇÕES

Apresentaremos mias funções utilizadas. MAIS FUNÇÕES

Analógicas • analog. Read(pino) – utilizada para “ler” o valor de tensão de um

Analógicas • analog. Read(pino) – utilizada para “ler” o valor de tensão de um pino. Porém, o número retomado por esta não é a tensão em si, e sim um valor digital de 0 (0 V) a 1023 (5 V) (leitura de 10 bits); • analog. Write(pino, valor) – utilizada para “escrever” o valor de tensão que deve sair por um pino. Porém, seu parâmetro deve ser um número de 0 (0 V) a 255 (5 V) (escrita de 8 bits). Com isso, pode-se criar um PWM (Pulse Width Modulation – Modulação por Largura de Pulso) que se utiliza para controlar a velocidade de um motor ou a intensidade luminosa de um LED, por exemplo.

Matemáticas • map(valor, mínimo_origem, máximo_origem, mínimo_desejado, máximo_desejado) – utilizada para interpolar um valor de

Matemáticas • map(valor, mínimo_origem, máximo_origem, mínimo_desejado, máximo_desejado) – utilizada para interpolar um valor de determinada escala para outra. Por exemplo, para “escrever” em um pino um valor proporcional à leitura de outro pino (“valor”), utiliza-se esta função.

DESAFIOS

DESAFIOS

Controlando Brilho LED Potenciômetro • Agora deve-se controlar o brilho de um LED; •

Controlando Brilho LED Potenciômetro • Agora deve-se controlar o brilho de um LED; • O brilho do LED devera ser proporcional ao giro do potenciômetro. • Lembrem-se que o arduino executa a leitura em 10 bits e somente permite a escrita em 8 bits, portanto se faz necessário interpolar esse valor usando a função map.

Serial • Serial. println(informação a ser printada) – utilizada para printar um valor ou

Serial • Serial. println(informação a ser printada) – utilizada para printar um valor ou informação quando aberto o serial monitor. Para isso é necessário declará-lo no setup da seguinte maneira: Serial. begin(9600); • Caso seja uma variável já utilizada apenas é escrito o nome dela, caso você queira nomear algo dependendo de comparações, por exemplo, é necessário que o nome esteja entre “” dentro dos parênteses.

LDR • Neste exemplo você terá que utilizar a leitura do LDR e printar

LDR • Neste exemplo você terá que utilizar a leitura do LDR e printar no serial monitor se ela é preta ou branca. Dica: informação você deve LER a vinda do componente (que é analógico, ou seja, o valor retomado é um número e não HIGH/LOW). Lembrese de que a parte analógica lê de 0 a 1023.

BIBLIOTECAS

BIBLIOTECAS

Resumo • As bibliotecas nos proporcionam ampliar o horizonte de programação que se tem

Resumo • As bibliotecas nos proporcionam ampliar o horizonte de programação que se tem utilizando apenas as funções e estruturas padrões; • Podem incluir funções, constantes, etc; • Devem ser declaradas na área específica para este fim, segundo a seguinte sintaxe: #include <Nome_Bilblioteca. h>;

Exemplos • Liquid. Crystal – permite a utilização de um display de cristal líquido

Exemplos • Liquid. Crystal – permite a utilização de um display de cristal líquido (LCD) matricial através de um shield; • Servo – permite o controle de servomotores adicionando funções para tal; • XBee – permite a utilização de um módulo Zig. Bee também através de um shield.

DESAFIO

DESAFIO

Display 7 Segmentos • Neste desafio o objetivo é fazer um contador cíclico que

Display 7 Segmentos • Neste desafio o objetivo é fazer um contador cíclico que funcione de 0 a 9, mudando de 1 em 1 segundo. • Lembre-se que existe uma biblioteca para sua utilização e é necessário incluí-la. • Quando utilizado essa programação a declaração tem que ser: • LM 7 Seg. Direct disp(2, 3, 4, 5, 6, 7, 8, 9, false); // pinos ilustrativos • O setup: disp. define. Digits(1, 0, 0); • Loop: disp. value. Write(valor_desejado);

BIBLIOGRAFIA

BIBLIOGRAFIA

Bibliografia FONSECA, Erika G. Pereira, BEPPU, Mathyan Motta. Apostila Arduino – Universidade Federal Fluminense.

Bibliografia FONSECA, Erika G. Pereira, BEPPU, Mathyan Motta. Apostila Arduino – Universidade Federal Fluminense. Pgs. 1 a 21. Engenheirando. Disponível em www. engenheirando. com. Acessado em 12 de novembro de 2012. Language Reference. Disponível no site da Arduino.

AGRADECIMENTOS

AGRADECIMENTOS

MEIOS PARA CONTATO

MEIOS PARA CONTATO

Contatos • Site: equipejguar. com. br • Facebook: facebook. com. br/Equipe. Jguar. VR •

Contatos • Site: equipejguar. com. br • Facebook: facebook. com. br/Equipe. Jguar. VR • Youtube: youtube. com. br/Equipe. Jaguar • Email: contato