oficina de programação utilizando a plataforma arduino · ldr sensor cuja resist^encia varia com...

26
Oficina de Programa¸ ao utilizando a plataforma Arduino Bianca Alessandra Visineski Alberton [email protected] Kaya Sumire Abe [email protected] Programa de Educa¸c˜ ao Tutorial Computando Culturas em Equidade Departamento Acadˆ emico de Inform´ atica UTFPR 17 de abril de 2013 PET - CoCE (UTFPR) Oficina de Programa¸ ao 17 de abril de 2013 1 / 19

Upload: trankhuong

Post on 30-Nov-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Oficina de Programacao utilizando a plataformaArduino

Bianca Alessandra Visineski [email protected]

Kaya Sumire [email protected]

Programa de Educacao TutorialComputando Culturas em Equidade

Departamento Academico de InformaticaUTFPR

17 de abril de 2013

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 1 / 19

Page 2: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Sensores

O que sao?

Dispositivos capazes de responder a estımulos fısicos.

Qual a sua utilidade?

Os sensores sao os olhos, ouvidos e o tato do seu robo.

Existe uma grande variedade de sensores!

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 2 / 19

Page 3: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Sensores

O que sao?

Dispositivos capazes de responder a estımulos fısicos.

Qual a sua utilidade?

Os sensores sao os olhos, ouvidos e o tato do seu robo.

Existe uma grande variedade de sensores!

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 2 / 19

Page 4: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

LDR

Sensor cuja resistencia varia com a luminosidade.

Resistencia padrao

Escuridao total: maxima resistencia, acima de 1 MΩ.

Luz intensa: mınima resistencia, aproximadamente de 100 Ω.

Figura 1 : Sensor LDR.

Fonte: http://www.te1.com.br/wp-content/uploads/2011/03/

LDR-light-dependent-resistor.jpg.

Acesso em: 23 de fevereiro de 2012.

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 3 / 19

Page 5: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

LDR

Sensor cuja resistencia varia com a luminosidade.

Resistencia padrao

Escuridao total: maxima resistencia, acima de 1 MΩ.

Luz intensa: mınima resistencia, aproximadamente de 100 Ω.

Figura 1 : Sensor LDR.

Fonte: http://www.te1.com.br/wp-content/uploads/2011/03/

LDR-light-dependent-resistor.jpg.

Acesso em: 23 de fevereiro de 2012.

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 3 / 19

Page 6: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

LDR

Sensor cuja resistencia varia com a luminosidade.

Resistencia padrao

Escuridao total: maxima resistencia, acima de 1 MΩ.

Luz intensa: mınima resistencia, aproximadamente de 100 Ω.

Figura 1 : Sensor LDR.

Fonte: http://www.te1.com.br/wp-content/uploads/2011/03/

LDR-light-dependent-resistor.jpg.

Acesso em: 23 de fevereiro de 2012.

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 3 / 19

Page 7: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Utilizacao do LDR com o Arduino

Figura 2 : Utilizacao do LDR com o Arduino.

Fonte: Autoria Propria.

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 4 / 19

Page 8: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Codigo I

const int sensorMin = 0;

const int sensorMax = 600;

void setup ()

Serial.begin (9600);

void loop()

int sensorReading = analogRead(A0);

int range = map(sensorReading , sensorMin , sensorMax ,

0, 3);

// faz algo diferente , dependendo do valor de range

switch (range)

case 0:

Serial.println("dark");

break;

case 1:

Serial.println("dim");

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 5 / 19

Page 9: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Codigo II

break;

case 2:

Serial.println("medium");

break;

case 3:

Serial.println("bright");

break;

delay (1000);

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 6 / 19

Page 10: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Revendo algumas estruturas do codigo

Serial.begin

Serial.begin(9600); - Inicia uma comunicacao serial entre o Arduino e oComputador. Abra o Serial Monitor e veja o que e exibido na tela paradiferentes nıveis de luminosidade.

Leitura de dados Analogicos

analogRead(A0) - Faz uma leitura analogica.

Funcao map

map(valor , pisoValor , tetoValor , limiteInferior, limiteSuperior); - Funcaoque faz uma regra de tres para colocar um determinado valor em umafaixa desejavel, de acordo com sua proporcao

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 7 / 19

Page 11: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Revendo algumas estruturas do codigo

Serial.begin

Serial.begin(9600); - Inicia uma comunicacao serial entre o Arduino e oComputador. Abra o Serial Monitor e veja o que e exibido na tela paradiferentes nıveis de luminosidade.

Leitura de dados Analogicos

analogRead(A0) - Faz uma leitura analogica.

Funcao map

map(valor , pisoValor , tetoValor , limiteInferior, limiteSuperior); - Funcaoque faz uma regra de tres para colocar um determinado valor em umafaixa desejavel, de acordo com sua proporcao

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 7 / 19

Page 12: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Revendo algumas estruturas do codigo

Serial.begin

Serial.begin(9600); - Inicia uma comunicacao serial entre o Arduino e oComputador. Abra o Serial Monitor e veja o que e exibido na tela paradiferentes nıveis de luminosidade.

Leitura de dados Analogicos

analogRead(A0) - Faz uma leitura analogica.

Funcao map

map(valor , pisoValor , tetoValor , limiteInferior, limiteSuperior); - Funcaoque faz uma regra de tres para colocar um determinado valor em umafaixa desejavel, de acordo com sua proporcao

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 7 / 19

Page 13: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Motores

O que sao?

Dispositivos que transformam energia eletrica em energia mecanica.

Tipos de Motores

Corrente Contınua (DC)

Corrente Alternada (AC)

Composicao

Rotor - Parte rotatoria do motor. Funciona como um ıma que mudade polaridade

Estator - Parte estatica do motor. Produz um campo magnetico queinterage com o rotor.

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 8 / 19

Page 14: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Motores

O que sao?

Dispositivos que transformam energia eletrica em energia mecanica.

Tipos de Motores

Corrente Contınua (DC)

Corrente Alternada (AC)

Composicao

Rotor - Parte rotatoria do motor. Funciona como um ıma que mudade polaridade

Estator - Parte estatica do motor. Produz um campo magnetico queinterage com o rotor.

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 8 / 19

Page 15: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Motores

O que sao?

Dispositivos que transformam energia eletrica em energia mecanica.

Tipos de Motores

Corrente Contınua (DC)

Corrente Alternada (AC)

Composicao

Rotor - Parte rotatoria do motor. Funciona como um ıma que mudade polaridade

Estator - Parte estatica do motor. Produz um campo magnetico queinterage com o rotor.

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 8 / 19

Page 16: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Funcionamento de um motor

Figura 3 : Princıpio de funcionamento do motor.

Fonte:http://www.ebah.com.br/content/ABAAAAS-QAC/motores-corrente-continua.

Acesso em 17 de abril de 2012.

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 9 / 19

Page 17: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Rotor

Figura 4 : Quatro vistas diferentes do rotor de um motor

Fonte: http://www.123rf.com/photo_10578260_

rotor-of-electric-motor-four-view-isolated-on-white-background.html.Acesso em 21 de janeiro de 2013.

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 10 / 19

Page 18: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Estator

Figura 5 : Estator de um motor CA.

Fonte: http://taller-7ei.blogspot.com.br/2012_03_01_archive.html.Acesso em 21 de janeiro de 2013.

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 11 / 19

Page 19: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Servomotor

O que e?

Nada mais e que um motor DC que permite controlar a posicao do eixo domotor.

Figura 6 : Componentes de um servomotor.

Fonte: http://www.pictronics.com.br/downloads/apostilas/servomotores.pdf.Acesso em 4 de junho de 2012.

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 12 / 19

Page 20: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Como utilizar?

Figura 7 : Controle do servomotor utilizando sinais PWM.

Fonte: http://www.pictronics.com.br/downloads/apostilas/servomotores.pdf.Acesso em 4 de junho de 2012.

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 13 / 19

Page 21: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Servomotores e Arduino

Padrao de cores

Branco: sinal

Vermelho: alimentacao 5V

Preto: GND

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 14 / 19

Page 22: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Servomotores e Arduino

Figura 8 : Conexao de teste entre o Arduino e o servomotor.

Fonte: http://arduino.cc/en/Reference/Servo.Acesso em 25 de janeiro de 2013.

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 15 / 19

Page 23: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Codigo I

// Importacao da biblioteca Servo

#include <Servo.h>

//Cria um objeto da classe Servo

Servo servo;

//Pino que envia o sinal para o servomotor

int pinServo = 9;

// Variavel que guarda a posicao em que o servomotor

esta

int posicaoServo = 0;

void setup ()

// Inicializa o Arduino no pino pinServo

servo.attach(pinServo);

void loop()

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 16 / 19

Page 24: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Codigo II

// Percorre as 180 posicoes do servomotor no

sentido positivo de rotacao

for(posicaoServo = 0; posicaoServo < 180;

posicaoServo ++)

//Envia para o servomotor qual eh posicao na

qual o eixo deve estar

servo.write(posicaoServo);

delay (15);

// Percorre as 180 posicoes do servomotor no

sentido negativo de rotacao

for(posicaoServo = 180; posicaoServo >=1;

posicaoServo --)

servo.write(posicaoServo);

delay (15);

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 17 / 19

Page 25: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Principais funcoes da biblioteca Servo

attach(pino): inicializa o objeto da classe Servo no pino indicado, ouseja, inicializa o servomotor.

write(angulo): envia um sinal indicando a posicao do eixo doservomotor.

read(): le em qual posicao o eixo do servomotor esta. Esta posicaovaria entre 0 e 180o.

detach(): ”desliga”o servomotor de seu pino. Essa funcao e quandodeseja-se utilizar o pino para utilizar a funcao PWM e utilizar asfuncoes da classe Servo ao mesmo tempo.

Outras funcoes desta biblioteca podem ser encontradas emhttp://arduino.cc/en/Reference/Servo.

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 18 / 19

Page 26: Oficina de Programação utilizando a plataforma Arduino · LDR Sensor cuja resist^encia varia com a luminosidade. ... Utiliza˘c~ao do LDR com o Arduino ... Projeto Utilizando tr^es

Projeto

Utilizando tres LDR’s e um servomotor, devera ser construıdo um robo quevire uma placa de papelao (Dimensoes 7x12) para o lugar onde houvermais luminosidade. Posicione os LDR’s de modo a seguir o curso do sol.

Devera ser entregue um relatorio com os topicos listados na apostila.

Entregar o relatorio dia 15/05/13.

PET - CoCE (UTFPR) Oficina de Programacao 17 de abril de 2013 19 / 19