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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Top Related