• Nenhum resultado encontrado

OFICINA Uso da plataforma Arduino no Ensino de Ciências

N/A
N/A
Protected

Academic year: 2021

Share "OFICINA Uso da plataforma Arduino no Ensino de Ciências"

Copied!
32
0
0

Texto

(1)

Astrogildo Junqueira

Docente Física/IFSP

Lucas D´Amásio

David Larronda

Licenciandos/IFSP

Apoio Financeiro:

Prodocência / Capes

OFICINA

(2)

Wikipedia: plataforma de prototipagem eletrônica de hardware livre, projetada

com um microcontrolador Atmel AVR de placa única, com suporte de

entrada/saída embutido, uma linguagem de programação padrão

essencialmente em C / C++.

(3)

Entrada USB

Pinos E/S Digitais

Pinos E/S Analógicas

CONHECENDO A PLATAFORMA ARDUINO

Microcontrolador Atmel AVR LED

Conexão ao computador por cabo

USB

Indica se o arduíno está ligado a uma fonte; conectado ao pino 13.

“cérebro” do arduíno. Marca Atmega, com 10bits e 32KB de memória.

14 portas de entrada/saída digitais (sinal elétrico de “0” ou de “1”)

(4)

IDE: Ambiente de Desenvolvimento Integrado

(Integrated Development Environment)

O IDE pode ser baixado gratuitamente de: www.arduino.cc

IDE: PROGRAMANDO O ARDUÍNO

Nesta área serão escritos os comandos para o arduíno

(5)

PROTOBOARD: MONTANDO PROJETOS ARDUINO

Placa de plástico em que os orifícios são conectados internamente por trilhas metálicas. Os oríficios servem para a inserção de terminais de componentes e fios de conexão.

sentidos das trilhas no protoboard

Fios de conexão (ou “jumpers”) entre o arduíno e o protoboard

(6)

Sensor para temperatura:

SENSORES E SHIELDS PARA ARDUÍNO

Sensor de distância por US:

Acelerômetro de três eixos

Bússola digital três eixos

Shield Bluetooth:

Shield Ethernet:

(7)

EXPERIMENTOS COM ARDUÍNO NO ENSINO DE FÍSICA

Irradiação Térmica: Sensor de temperatura (LM35)

Duas latinhas, branca e preta, iluminadas por

uma lâmpada, com um sensor em cada uma. Variação da temperatura com o tempo

(8)

Fonte: A placa Arduino: opção de baixo custo para experiências de Física por Souza et al., RBEF, vol. 33(1), 2011.

Oscilação de uma régua: Sensor de luz (LDR)

(9)

Pêndulo vertical: sensor de ultrasom

EXPERIMENTOS COM ARDUÍNO NO ENSINO DE FÍSICA

Movimento Oscilatório Vertical com Arduíno

40 50 60 70 80 100 150 200 250 300 350 400 Tempo (ua) P o s iç ã o ( u a )

(10)

ARDUINO: NOSSO PRIMEIRO PROJETO

Acendendo e Apagando LED

Os primeiros componentes

LED (Light Emitting Diode): Diodo Emissorde Luz: diodo semicondutor que ao ser energizado emite luz visível. Possui polaridade, portanto, a perna maior deve ser ligada à tensão de alimentação e a perna menor à terra (GND da placa).

Resistor: dispositivo que dificulta a passagem da corrente elétrica e transforma a energia elétrica em energia térmica. Não possui polaridade.

(11)

CIRCUITO COM UM RESISTOR

E UM LED EM SÉRIE

MATERIAIS:

• 1 LED

• 1 RESISTOR

• PROTOBOARD

• FIOS CONECTORES

• PLACA ARDUINO

ARDUINO: NOSSO PRIMEIRO PROJETO

Acendendo e Apagando LED

(12)

Após realizada as conexões dos componentes, são escritos os códigos de comandos no

IDE e salvos na memória do arduíno. Os comandos que usaremos são indicados abaixo.

void setup() {

pinMode(13, OUTPUT);

// define a porta digital 13

// para sinal de saida para o LED

}

void loop() {

digitalWrite(13, HIGH);

// acende o LED

delay(1000);

// aguarda por um segundo

digitalWrite(13, LOW);

// apaga o LED

delay(1000);

// aguarda por um segundo

}

Porém, antes de iniciarmos, vamos conversar um pouco sobre circuitos elétricos,

algumas leis básicas e a lógica dos comandos aqui usados.

ARDUINO: NOSSO PRIMEIRO PROJETO

Acendendo e Apagando LED

(13)

ARDUINO: NOSSO PRIMEIRO PROJETO

Antes, um pouco de eletrônica

Lei de Ohm

Conceitos fundamentais para entendermos os circuitos elétricos são os de

corrente (i) e tensão (V) elétricas e o de resistência (R).

A relação entre eles é dado pela Lei de Ohm: V = R.i.

V = R.i  i = V/R = 9/90 = 0,1 A

Se conectarmos uma lâmpada com resistência

de 90  a uma bateria de 9 V, a corrente elétrica

fluindo pelo circuito será dada pela Lei de Ohm:

Podemos ligar

dois

ou mais componentes resistivos (lâmpada, resistor, etc.)

basicamente de duas maneiras: série e paralelo.

Ligação em série: a mesma corrente passa pelos dois componentes resistivos

Ligação em paralelo: a mesma tensão elétrica é aplicado aos dois componentes resistivos

(14)

ARDUINO: NOSSO PRIMEIRO PROJETO

Antes, um pouco de eletrônica

Para não queimarmos um LED, ele é ligado em série

com resistor R. O valor mínimo desta resistência é

dada pela Lei de Ohm.

Suponha que o LED suporte até 2 V de tensão e

corrente de 10 mA = 0,010 A e está ligado junto com

a resistência a uma fonte de V = 5 V.

Se ele suporta apenas 2 V, então 3 V da fonte devem ir

para o resistor R.

V

res

= R.i  R = V

res

/i = 3/0,01 = 300

V

res

+ V

LED

= 5 V  V

res

= 5 V - 2 V = 3 V

(15)

 Programação: códigos de comando

void setup() {

// initialize the digital pin as an output.

// Pin 13 has an LED connected on most Arduino boards:

pinMode(13, OUTPUT);

}

void loop() {

digitalWrite(13, HIGH);

delay(1000);

digitalWrite(13, LOW);

delay(1000);

}

Porta de saída Definições

Saída para LED (HIGH = 5 V) Espera 1000 ms

Saída para LED (LOW = 0 V) Espera 1000 ms

Laço: Repete indefinidamente

Observação: o que estiver escrito após “//” não é lido pelo arduíno, apenas observações do programador.

ARDUINO: NOSSO PRIMEIRO PROJETO

Acendendo e Apagando LED

(16)

 Conferindo (compilando) a programação

Depois de escrever os comandos, pressione

o botão . O IDE irá verificar se há algum

erro de lógica na programação.

 Montando o circuito

Conforme discutido, e com o arduíno desconectado,

conecte, usando os fios e o protoboard, os

componentes do circuito: Arduino-LED-resistor.

 Escrevendo o sketch

Escreva a programação no IDE, com o Arduino desconectado

ARDUINO: NOSSO PRIMEIRO PROJETO

(17)

 Porta de comunicação com o Arduino

Conecte o computador com o Arduino via

cabo USB. Após isso, vá em “Ferramentas”,

depois em “porta”. Escolha uma porta de

comunicação com o Arduíno.

 Gravando na memória do Arduino

Estabelecida a comunicação, pressione o

botão . O IDE irá gravar na memória do

Arduíno os comandos.

Se tudo der certo, você verá o arduíno piscando e em seguida o LED no

protoboard acendendo e apagando conforme os comandos.

(18)

EXERCÍCIO: PROJETO COM 3 LEDS

Levando em consideração a discussão realizada até aqui, tente montar um projeto com

3 LEDs ligados ao arduíno, acendendo e apagando alternadamente os LEDS.

void setup() { pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT); } void loop() { digitalWrite(11, HIGH); delay(1000); digitalWrite(11, LOW); digitalWrite(12, HIGH); delay(1000); digitalWrite(12, LOW); digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); }

(19)

PROJETO: LED COM PWM

Pinos PWM: nesse projeto vamos usar os pinos 3, 5 e 6, que também são pinos PWM (Pulse with

Modulation). Esse pinos são indicados pelo sinal ~ (til). Com ele, podemos fornecer valores de tensão

fracionários entre HIGH (5 V) e LOW (0 V), com passos de tensão de V = 5 V / 256 ~ 0,0195 V, permitindo uma variação gradual da tensão entre 0 V e 5 V.

AnalogWrite(pino, valor): Com esse comando, podemos enviar um valor fracionário (de 0 a 255) para o pino PWM. Para o estado 255, associamos o valor 5V e para o estado 0, associamos o valor 0 V AnalogWrite(3, 0) Pino 3 Valor 0 (mínimo) AnalogWrite(3, 255) Pino 3 Valor 255 (máximo)

(20)

Vamos montar um projeto simples com apenas um LED e verificar como funciona o pino PWV.

void setup() {

pinMode(3, OUTPUT);

}

void loop() {

analogWrite(3, 255);

}

(21)

ESPECTRO ELETROMAGNÉTICO E AS CORES

A luz é aquilo que chamamos em Física de Ondas Eletromagnéticas. Além das ondas

que enxergamos (a luz), temos outros tipos de ondas EM para os quais nossos olhos

não são sensíveis. O que caracteriza as regiões do chamado espectro eletromagnético

são as freqüências de oscilações das ondas EM (ou seja, quantas oscilações numa

unidade de tempo).

(22)

CORES: REGIÃO DO VÍSIVEL.

A região do visível, que é composta das frequências que enxergamos, pode ser

dividida (arbitrariamente) em sub-regiões que associamos as cores.

Fonte: “Esclarecendo o significado de cor em física” por Silva, Revista Física na Escola vol. 8(1), 2007

f

c

(23)

CORES: MISTURA ADITIVAS DE CORES

O que acontece quando misturamos luzes de cores diferentes? Vamos obter o

chamado sistema cromático aditivo. Esse sistema é formado pela adição das três

cores primárias da luz: azul, vermelho e verde (RGB)

(24)

PROJETO: LED RGB

Vamos continuar nossa exploração do Arduíno, usando agora outro tipo de LED: LED RGB. Ele é composto por três LED de cores diferentes, chamado simplesmente LED RGB. Nele, temos embutido três LEDs de cores vermelho (R), verde (G) e azul (B): a perna maior é o ânodo e as outras são os cátodos.

Para fazermos a conexão desse LED com o arduíno, montamos o circuito abaixo, usando três saídas digitais do arduíno (R,G e B) e o GND (ânodo). Ao lado, a programação.

void setup() {

pinMode(3, OUTPUT);

pinMode(5, OUTPUT);

pinMode(6, OUTPUT);

}

void loop() {

analogWrite(3, 255);

analogWrite(5, 255);

analogWrite(6, 255);

}

(25)

PROJETO: BUZZER

FAZENDO BARULHO

Vamos agora fazer um pouco de barulho!

Nesse projeto iremos usar um dispositivo que produz som. O Buzzer é um transdutor piezoelétrico feito com uma membrana vibratória que ao ser excitada por impulso vibra e produz um tom.

O nosso projeto com o buzzer é mostrado abaixo, juntamente com um exemplo de programação.

void setup() { pinMode(9, OUTPUT); } void loop() { digitalWrite(9, HIGH); delay(150); digitalWrite(9, LOW); delay(1000); }

(26)

SONS E MÚSICA

f

T

1

Os fenômenos oscilatórios podem ser caracterizados principalmente por sua frequencia (f) ou período (T).

Período (T): tempo de repetição de uma oscilação completa (s) Frequencia (f): número de oscilações numa unidade de tempo (Hz)

As ondas sonoras são perturbações nas posições das moléculas do ar que vibram para lá e para cá, na direção da onda (longitudinais), produzindo regiões de baixa e alta

pressões (vales e cristas). O ser humano é capaz de identificar sons de 20 Hz até 20 kHz

f

v

som

(27)

SONS E MÚSICA

A música ocidental é baseada principalmente na chamada escala temperada. Basicamente, um som (tom) de uma dada freqüência (f0) e junto com uma outra, chamada de oitava (2xf0).

Dividimos esse intervalo de uma oitava em 12 intervalos chamados semi-tons, de tal forma que cada semitom vizinho é separado pela relação entre as frequencias:

059

,

1

2

1/12 1

n n

f

f

Desta forma podemos criar uma escala temperada da seguinte forma (usando o dó como tom da escala):

Desta forma, segue-se aproximadamente as distâncias (intervalos) entre notas na escala natural, como os exemplos abaixo:

(28)

PROJETO BUZZER

FAZENDO MELODIA

Vamos estudar mais alguns recursos da programação do arduíno num projeto para produzir uma pequena melodia. Para isso, usaremos novamente o buzzer, conforme indicado na figura. Veja que a programação, agora um pouco mais longa, tem alguns elementos novos.

int C = 262, D = 294, E = 330, F = 349, G = 392, A = 440, B = 523; int P = 0; int i; int ode[ ] = { E,E,F,G,G,F,E,D,C,C,D,E,E,D,P,D,P, E,E,F,G,G,F, E,D,C,C,D,E,D,C,P,C,P, D,D,E,C,D,E,P,F,E, C,D,E,P,F,E,D,C,D,P, E,E,D,G,G,F,E,D,C,C,D,E,D,C,P,C }; int tempo[ ] = { 1,1,1,1,1,1,1,1,1,1,1,1,1.5,1,.5,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1.5,1,.5,1,1, 1,1,1,1,1,1,.5,1,1,1,1,1,.5,1,1.5,1,.5,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1.5,.125,1,1 }; void setup() { pinMode(3,OUTPUT); } void loop() {

for(i=0; i<sizeof(ode)/2; i++) {

if(ode[i] != 0) tone(3,ode[i]); elsenoTone(3); delay(tempo[i] * 500); noTone(3); } noTone(3); delay(10000); }

(29)

Variáveis: as variáveis reservam espaço na memória do arduíno para armazenar valores de determinados parâmetros a serem usado na programação do arduíno.

Tipos de dados: as variáveis podem armazenar valores inteiros, fracionários, etc. Para isso, é necessário especificar o tipo de dado que ela irá armazenar. Dependendo do tipo de dado, a variável irá consumir mais ou menos da memória do arduíno.

int: armazena números inteiros de -32.768 a 32.768 (ocupa 2 bytes no arduíno UNO). long: armazena números inteiros de -2.147.483.648 a 2.147.483.648 (ocupa 2 bytes no arduíno UNO).

float: armazena números fracionários de -3,4028235.10+38 a 3,4028235.10+38 (ocupa 4

bytes no arduíno UNO). Precisão de 6 ou 7 dígitos depois da vírgula.

array: conhecido como vetor unidimensional (vetor) ou multidimensional (matriz). int vetor [8]; // indica um vetor de 8 posições

int matriz [3][3]; // indica matriz de 3 linhas e 3 colunas

PROJETO ALTO FALANTE

CONHECENDO MAIS RECURSO

Escopo das variáveis: as variáveis podem ser declaradas dentro da função void( ) ou loop( ) – nesse caso serão chamadas de variáveis locais; ou podem ser declaradas antes de void( ), nesse caso será chamada de variável global.

tone(pino, frequencia, duração): função que gera um sinal de onda quadrada com frequencia específica

(30)

PROJETO ALTO FALANTE

CONHECENDO MAIS RECURSO

Estrutura de repetição “for”: faz o bloco de comandos seja repetido conforme a condição e o incremento especificado. Ela possui três parâmetros: a inicialização da variável de controle, uma condição e um incremento.

for(inicialização; condição; incremento)

for (int x = 1; x <= 10; x++) Exemplos: Inicializa com x valendo 1 Incremento de 1 unidade na variável x Repete até o valor de x = 10 for (int x = 2; x <= 100; x+=2) Inicializa com x valendo 2 Incremento de 2 unidades na variável x Repete até o valor de x = 100

(31)

PROJETO ALTO FALANTE

CONHECENDO MAIS RECURSO

Estrutura de seleção “if...else”: realiza um desvio de fluxo de funcionamento do programa, dependendo da condição especificada ser verdadeira ou falsa.

If (condição) { bloco de comando 1 } else { bloco de comando 2 } Exemplo: If (a != 10) {

// realiza esse bloco de comando se a diferente de 10 else {

// realiza esse bloco de comando se a igual 10 }

(32)

ENTENDENDO MELHOR O PROJETO BUZZER

Objetivo da Programação: usando FOR e IF/ELSE tocar as notas ode[ ] em seqüência durante os tempos correspondentes tempo[ ]*500 ms, ou seja:

Toca a primeira nota ode[0] = E por tempo[0]*500 = 500 ms; Toca a segunda nota ode[1] = E por tempo[1]* 500 = 500ms

etc.

IF

Condição: ode[ i ] 0

Satisfeita: Toca nota ode[ i ] Não satisfeita: faz pausa FOR:

Realiza a tarefa de i = 0 até i = número máximo de notas - 1 (*)

exemplo esquemático:

(*) Cada ode[ ] ocupa 2 bytes de memória, então: Número máximo de notas = sizeof ( ode[] ) / 2

Referências

Documentos relacionados

Como resulta da prova produzida, fizeram tudo o que podiam e estava ao seu alcance (designadamente através da oportuna apresentação de um plano de saneamento financeiro) para

Os ácidos organoborônicos precursores podem ser preparados a partir da utilização de diversas metodologias descritas na literatura, sendo a reação de compostos de organolítio

Análise do Tempo e Renda Auferidos a partir da Tecnologia Social Durantes os períodos de estiagem, as famílias do semiárido busca água para o consumo familiar em locais mais

--- Foi presente à Câmara Municipal, pela Senhora Vereadora, Dr.ª Teresa Fernandes, a informação técnica n.º I/6098/2011, datada de 27 de Setembro, bem como a

imii lorlc demais para ser influenciado por uma pessoa indecisa. Deu-lhe inil.i i sua atenção. Com sua personalidade vibrante, com sua càpacidade de i i.ii sempre no meio do

A estabilidade térmica nas baixas temperaturas (Figura 4a), foi de aproximadamente 50% da sua atividade inicial aos 14 dias para a polimetilgalacturonato liase (PMGL)

Este estudo demonstra elevada prevalência de malária, moderada endemicidade do VHB e provavelmente baixa ocorrência de coinfecções entre o plasmódio e o VHB, pelas diferenças

EXPERIMENTANDO E DESCOBRINDO: A CONTRIBUIÇÃO DE UMA OFICINA PARA DESPERTAR ALUNOS DE NÍVEL MÉDIO PARA AS DIMENSÕES DA ÓPTICA COMO DISCIPLINA E CAMPO DE PESQUISA..