Relatório final de ic hector rebouças

34
Pontifícia Universidade Católica de São Paulo Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção. Light Analyzer um projeto para aprendizagem e análise das propriedades da luz e sua percepção. Relatório Final de Iniciação Científica Subprojeto do projeto: Webduino e RVA : a criação de uma “Rede de Sensores” aplicada ao Ensino de Ciências” aprovado pelo edital Universal CNPq 2011/2013 (Processo 474347/2011) Bolsista: Hector Costa Rebouças [email protected] Orientadora: Marisa Almeida Cavalcante [email protected] Gopef - Grupo de Pesquisa em Ensino de Física da PUC/SP Julho de 2013

description

Relatorio final das atividades de IC do experimento Light Analyzer que compoe um dos experimentos do Weblab da PUCSP

Transcript of Relatório final de ic hector rebouças

Page 1: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

Light Analyzer um projeto para

aprendizagem e análise das propriedades

da luz e sua percepção.

Relatório Final de Iniciação Científica

Subprojeto do projeto: Webduino e RVA : a criação de uma “Rede de

Sensores” aplicada ao Ensino de Ciências” aprovado pelo edital

Universal CNPq 2011/2013 (Processo 474347/2011)

Bolsista: Hector Costa Rebouças

[email protected]

Orientadora: Marisa Almeida Cavalcante

[email protected]

Gopef - Grupo de Pesquisa em Ensino de Física da PUC/SP

Julho de 2013

Page 2: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

2

Sumário

1 Introdução .............................................................................................. 3

2 Objetivo .................................................................................................. 3

3 Análise das atividades desenvolvidas ..................................................... 4

3.1 Sistemática adotada pelo orientador ................................................ 4

3.2 Objetivos alcançados e dificuldades encontradas ............................ 4

3.3 Atividades acadêmico-culturais relacionadas à pesquisa ................. 5

3.3.1 GEEPro ....................................................................................... 6

3.3.2 Oficinas de robótica diversas ....................................................... 6

4 Resumo da Pesquisa .............................................................................. 7

4.1 Processing ....................................................................................... 7

4.1.1 - Tabela com dados recolhidos do Sensor RGB ......................... 10

4.2 Conexão Remota ........................................................................... 11

4.2.1 Endereço IP: ............................................................................. 11

4.2.2 DNS .......................................................................................... 11

4.2.3 Servidor e Cliente: ..................................................................... 11

4.2.4 Modem ...................................................................................... 12

4.2.5 Roteador ................................................................................... 12

4.2.6 Site NO-IP e Programa DUC ..................................................... 13

4.2.7 IP Webcam ................................................................................ 13

4.2.8 Recursos Java: .......................................................................... 14

4.3 Formas de Modelagem .................................................................. 14

4.3.1 UML .......................................................................................... 14

4.3.2 DCL (Diagrama de Classes) ...................................................... 15

4.3.3 DCO (Diagrama de Comunicação) ............................................ 15

4.3.4 DSM (Diagrama de Sequência de Mensagem).......................... 15

4.3.5 DOB (Diagrama de Objetos)...................................................... 15

4.3.6 DCU (Diagrama de Casos de Uso)............................................ 15

4.3.7 DME (Diagrama de Máquina de Estados) ................................. 15

4.3.8 DAT (Diagramas de Atividades) ................................................ 16

4.4 Introdução ao Java ......................................................................... 16

Page 3: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

3

4.4.1 Java para Interface Gráfica de Usuário e o NetBeans ............... 19

5 Experimentos: ....................................................................................... 20

5.1 Reprodução com Led RGB ............................................................ 20

5.1.1 Material ...................................................................................... 20

5.1.2 Esquema .................................................................................... 20

5.1.3 Descrição ................................................................................... 21

5.2 Análise da luz com sensor RGB ..................................................... 25

5.2.1 Material ...................................................................................... 25

5.2.2 Esquema .................................................................................... 26

5.2.3 Descrição ................................................................................... 26

6 Conclusão ............................................................................................ 32

7 Bibliografia Atualizada .......................................................................... 33

1 Introdução

Light Analyzer é um experimento baseado na plataforma Arduino capaz de

analisar e reproduzir as componentes RGB da região espectral visível, ou seja, a luz

visível em suas componentes básicas; vermelho, verde e azul (Red, Green e Blue),

por definição é um projeto interdisciplinar por envolver conhecimentos teóricos e

práticos de física, engenharia de software, redes, linguagens de programação,

biologia dentre outros.

2 Objetivo

O experimento tem por objetivo fazer parte do WEBDUINO, laboratório de

experimentos remotos que está sendo desenvolvido na Faculdade Marquês de

Paranaguá, com apoio e financiamento do CNPq, viabilizando a possibilidade de

lugares sem condições de ter um laboratório usufruírem do uso de experimentos

reais à distância. Também visa contribuir em conhecimentos para a área estudada,

por deixar disponível todas às informações sobre seu desenvolvimento disponível na

internet.

Page 4: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

4

3 Análise das atividades desenvolvidas

3.1 Sistemática adotada pelo orientador

Conforme proposto no projeto de pesquisa, a sistemática usada para o

desenvolvimento do projeto é a mesma para o desenvolvimento de programas, a

qual é chamada ADIT, uma sigla que significa Análise, Design, Implementação e

Teste, a qual foi implementa pelo estudo teórico do projeto (Análise), planejamento

dos experimentos (Design), desenvolvimento dos programas (Implementação) e

análise dos resultados (Teste).

A orientadora Marisa Cavalcante promovia encontros semanais nos quais

esclarecia dúvidas, analisava os avanços da pesquisa, discutia sobre possíveis

mudanças no projeto e os próximos passos da pesquisa.

3.2 Objetivos alcançados e dificuldades encontradas

Durante o período do primeiro semestre de pesquisa, foi possível pesquisar

quase toda parte teórica relacionada ao projeto conforme proposto no cronograma

inicial. Também foi possível realizar testes preliminares com o Arduino, a plataforma

Java, led RGB e o sensor RGB.

Durante o segundo semestre foi possível a pesquisa restante sobre Java,

Processing, conexão remota, formas de modelagem e interface gráfica, mais

relacionada à construção dos experimentos.

As dificuldades encontradas durante o período se concentraram no

gerenciamento do tempo para pesquisa, na precisão dos experimentos e na

configuração do computador destino (em que se deu a programação), já que era

preciso ter configurações específicas de adição de bibliotecas e outros programas.

Page 5: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

5

Uma consideração importante é que a estrutura do WEBDUINO ainda está

em andamento, sendo necessária a liberação de portas de rede e a finalização do

servidor dos experimentos na plataforma WebDeusto para que possa ser possível

hospedar os experimentos do Light Analyzer e outros experimentos relacionados ao

WEBDUINO, O está sobre responsabilidade do DTI e de outros orientandos. Ao

contrário do Light Analyzer, o projeto do WEBDUINO ainda deve estender-se por

mais um semestre para sua conclusão.

Contudo o projeto de iniciação científica proposto, Light Analyzer, foi

desenvolvimento integralmente no que se destinava, isto é, desenvolver um

experimento remoto capaz de analisar e reproduz as componentes RGB da luz

visível, emitida por um Led RGB, baseado na plataforma Arduino e Java. O

conteúdo da pesquisa, os experimentos e os programas estão prontos e disponíveis

para o uso, podendo ser integrados ao laboratório da PUC ou a qualquer outro

laboratório remoto que queiram se utilizar da pesquisa com o devido reconhecimento

de mérito do orientando, da orientadora e da universidade.

3.3 Atividades acadêmico-culturais relacionadas à pesquisa

Durante o período da vigência da pesquisa, com auxílio da orientadora,

comecei um estágio na área de Tecnologia Educacional na escola Dante Alighieri,

na qual estagio como auxiliar das oficinas de robótica. Além do Projeto

HighTechDante e do rato robótico, desenvolvidos no primeiro semestre e já citados

no relatório parcial, no segundo semestre de pesquisa, demos inicio ao GEEPro.

Page 6: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

6

3.3.1 GEEPro

O GEEPro, sigla para Grupos de Estudos em Programação tem por objetivo

ensinar aos alunos noções básicas sobre lógica de programação e linguagens de

programação, para que estes possam usar este conhecimento para projetos

desenvolvidos dentro do Dante.

Durante o período tive a oportunidade de ensinar aos alunos da oficina

esses conceitos e introduzi-los a linguagem Java sob a supervisão de minha

coordenadora de estágio. Trabalhei conceitos de variáveis, condicionais, laços,

sintaxe Java, classes e orientação a objetos.

A experiência desenvolveu minha habilidade com a plataforma Java,

conectando cada vez mais a parte prática com a conceitual à medida que tinha que

ensinar estes conceitos aos alunos. Também me proporcionou o primeiro contato

com uma experiência supervisionada de docência, o que tem me ajudado bastante

tanto no mundo acadêmico quanto no profissional.

3.3.2 Oficinas de robótica diversas

Além da oficina GEEPro, ajudo professores em outras oficinas de robótica,

as quais utilizam os kits da empresa Lego para suas montagens e programações,

principalmente os kits Lego NXT , Lego RCX e Lego MindStorms. Esses kits são

usados para ensinar robótica para alunos do 5º do ensino fundamental ao 3º ano do

Ensino Médio e possuem uma parte programável que dão mobilidade funcionalidade

as peças, viabilizando a criação de robôs de forma mais rápida e simples que a

convencional, por apenas ser necessário juntar as peças, já feitas para se

encaixarem de várias, e fazer o upload do software programado anteriormente pelos

alunos com a plataforma da Lego. Nessas oficinas minha principal responsabilidade

é ajudar os alunos com a parte de lógica de programação e na sintaxe da linguagem

de programação utilizada.

Page 7: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

7

4 Resumo da Pesquisa

4.1 Processing

Criado inicialmente em 2001, o Processing é uma linguagem de

programação, com código livre, criada para o aprendizado de programação por meio

de resultados visuais, como forma de uma recompensa rápida aos iniciantes em

programação. Com funções como point(x,y), rect(x,y,width,height), ellipse(x,y,width,

height), fill(r,g,b), matemática e criatividade é possível criar de gráficos em tempo

real a pinturas artísticas dinâmicas ou estáticas.

Contudo, com o passar do tempo o Processing tem sido bastante utilizado

para criação de gráficos em conjunto com o Arduino, oferecendo uma plataforma

fácil, simples e eficiente para este fim.

O programa trabalha com duas funções básicas, void setup() e void draw(), a

primeira é responsável por estabelecer a configuração inicial da tela do programa, e

a segunda é repetida continuamente, atualizando um novo desenho na tela a cada

repetição.

No projeto, o Processing foi utilizado com o intuito de visualizar a cor RGB a

partir dos valores obtidos pelo sensor RGB, para isso foi feito um experimento com o

sensor RGB, um led RGB e um programa na linguagem Processing. Nas figuras de

1 a 12 podemos verificar a cor emitida pelo led RGB e a tela criada pelo processing.

A programação do Arduino com o Sensor RGB e do Processing pode ser consultada

no anexo do relatório “Código Fonte dos Programas e Experimentos” na seção 1.1.1

– Nome: Código Fonte IC_Hector_SensorRGB_Processing e na seção 1.2.1 - Nome:

Código Fonte IC_Hector_SensorRGB_Arduino.

Page 8: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

8

Figura 1 Processing Sensor

detectando vermelho.

Figura 2 Processing Sensor detectando Verde

Figura 3 Processing Sensor

detectando Azul

Figura 4 – Experimento, cor vermelha

sendo detectado pelo sensor

Figura 5 – Experimento, cor verde

sendo detectado pelo sensor

Figura 6 – Experimento, cor

azul sendo detectado pelo

sensor

Page 9: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

9

Figura 7 Processing Sensor

detectando roxo.

Figura 8 Processing Sensor

detectando ciano

Figura 9 Processing Sensor

detectando ausência de cor

Figura 10 – Experimento, cor roxa

sendo detectado pelo sensor

Figura 11 – Experimento, cor ciano

sendo detectado pelo sensor

Figura 12 – Experimento,

ausência de cor sendo

detectada pelo sensor

Page 10: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

10

4.1.1 - Tabela com dados recolhidos do Sensor RGB

Para testar o sensor RGB fixamos a cor no LED RGB previamente e

verificamos o valor indicado de cada uma das componentes RGB. A tabela abaixo

reproduz os resultados obtidos.

Tabela 1: Dados detectados pelo sensor RGB

Tabela de Dados Leitura Sensor RGB

Cor Led RGB Valor Vermelho

Valor Verde

Valor Azul

Vermelho 159 31 8

Verde 15 90 36

Azul 29 64 150

Roxo (Azul+Vermelho) 159 26 130

Ciano (Azul+Verde) 40 138 163

Preto (Ausência de Cor) 4 4 2

As divergências observadas estão associadas à reflexão da luz em torno do

led e a diferença de intensidade de cada componente para o valor máximo de

tensão fixada.

O Led vermelho, por exemplo, apresenta maior intensidade que o LED verde

submetido à mesma ddp. Isso ocorre porque o Gap de energia necessário para o

seu acendimento é menor que o led verde.

Para o ajuste adequado é necessário associar um valor de resistência ao led

vermelho ligeiramente maior do que o led verde e azul. Contudo para saber o valor

exato desses resistores, também é preciso levar em conta o ambiente no qual ele

estará, e podem ser efetuadas no momento em que o experimento for

disponibilizado para acesso publico no Weblab da PUC/SP.

Page 11: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

11

4.2 Conexão Remota

A pesquisa relacionada à conexão remota neste projeto se restringe aos

conhecimentos necessários para a realização do projeto, que são, conceitos básicos

de rede, modem, roteadores, arquitetura cliente-servidor e os recursos que o Java

disponibiliza para tanto.

4.2.1 Endereço IP:

Do inglês Internet Protocol (Protocolo de Internet) é um número composto de

32 bits, ou seja, quatro campos de 8 bits (0-255) serve para identificar dispositivos

(exemplos: computadores, impressoras, câmeras ip) ligadas a uma rede que pode

ser tanto local quando externa como por exemplo a internet. Exemplo de um

endereço ip: 190.98.170.237.

4.2.2 DNS

Como é difícil para nós decorarmos números ip para acessar sites

hospedados em um computador ligado a rede, foi criado o Domain Name System

(Sistema de nomes de domínio) é mecanismo responsável por converter um nome

domínio em um número ip e vice-versa.

4.2.3 Servidor e Cliente:

Servidor é um componente, podendo ser uma aplicação ou computador que

fornece recursos para outras aplicações ou computadores, as aplicações ou

computadores que utilizam os recursos do servidor são chamados de clientes. O

servidor também tem a responsabilidade de gerenciar as conexões estabelecidas

com seus clientes, identificando-os para que lhe possa ser possível saber qual

cliente deve receber informações e qual cliente está enviando informações.

Page 12: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

12

4.2.4 Modem

O modem é um dispositivo físico que permite o envio e recebimento de

dados por meio de linhas de telefone, seu nome está ligado a sua função de modular

o sinal analógico da linha de telefone em digital para receber os dados e vice-versa

para enviá-los. Na prática o modem juntamente ao provedor estabelece uma

conexão com a internet que recebe um número ip.

4.2.5 Roteador

O roteador é um dispositivo físico que permite a conexão de vários

computadores entre si e também o compartilhamento de uma única conexão de

internet, podendo ser essa rede tanto cabeada quando sem-fio (wireless). Apesar de

o endereço de conexão com a internet ser único, cada computador também recebe

um endereço ip dado pelo roteador, este serve para identificá-lo na rede local, para

que seja possível saber de qual computador se recebe uma requisição de dados

tanto para qual computador deve ser mandado algum dado.

O roteador também permite o mapeamento de portas, essas portas podem

servir de link para algum computador acessar um computador da rede remotamente,

configurando o número ip do computador desejado a porta desejada no rotador.

Deste serviço pode surgir a dúvida: qual a necessidade de um segundo

mapeamento dos computadores? Este é necessário justamente no caso de uma

conexão remota, numa conexão remota, o computador que se conecta ao servidor

só pode se utilizar de dois dados, o primeiro é o endereço ip de conexão do servidor

e o segundo o número da porta, utilizando a configuração (endereço_ip:porta). Por

isso se faz necessário no computador servidor esse endereçamento de portas, outra

questão que pode surgir é o porquê de não se utilizar do número ip local do

computador no lugar do número da porta, a resposta é que além de o número da

porta ser menor, torna a conexão apenas possível quando liberada e configurada no

rotador do servidor, tornando o computador mais seguro a invasões indesejadas.

Page 13: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

13

4.2.6 Site NO-IP e Programa DUC

O site http://www.noip.com, oferece o serviço gratuito de mapeamento de um

ip dinâmico através de um nome DNS seguido por sua sigla, este site também

oferece o programa DUC para download, com este programa é possível atualizar o

ip relacionado ao DNS sem precisar fazer o login no site, sendo apenas necessário

executar o programa e fazer o login em sua primeira execução. Com ele foi possível

mapear o ip dinâmico do computador doméstico no qual os servidores dos

experimentos são executados, assim os programas ao invés de estarem

configurados com um número ip, estão configurados com o DNS hectorreboucas.no-

ip.biz para que acessem o servidor.

Figura 13 - Programa DUC em execução

4.2.7 IP Webcam

O IP Webcam é um aplicativo para celular Android o qual permite

transformar a câmera do celular em uma câmera IP conectada via wireless, com a

devida liberação das portas e o mapeamento de um DNS para o ip dinâmico do

computador, é possível visualizá-la pela internet, digitando o DNS do ip e a porta, e

por esta forma os experimentos do projeto podem ser vistos remotamente.

Page 14: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

14

4.2.8 Recursos Java:

O Java oferece uma série de classes na subpasta java.net.* para recursos

de rede, e mais especificamente as classes Socket e ServerSocket que foram

utilizadas para a conexão remota. Quando criada uma instância da classe

ServerSocket, o único parâmetro necessário é o número da porta, exemplo:

“ServerSocket servidor = new ServerSocket(5050);” , isso porque o servidor que está

na rede interna e só precisa “ficar escutando” uma das portas pela qual o cliente

deve se conectar. Já quando a classe Socket é instanciada são necessários dois

parâmetros, o número do ip de conexão com a internet do servidor e a porta

mapeada com o endereço do servidor, exemplo: “Socket cliente = new

Socket(“190.98.170.237”,5050)” , ou com o endereço DNS e a porta: “Socket cliente

= new Socket(“hectorreboucas.no-ip.biz”,5050);

4.3 Formas de Modelagem

A modelagem do software é o processo no qual é feito o planejamento

simplificado de como se comportará o programa para realizar a tarefa a que se

propõe, na engenharia de software existem muitas formas de fazer essa

modelagem, contudo as que têm se mostrado mais eficientes são aquelas que se

utilizam de diagramas.

4.3.1 UML

Na década de 90 é criada a UML (Unified Modeling Language) uma

linguagem de modelagem unificada que padronizou os principais diagramas

utilizados no mercado e foi aceita pela Organização Internacional de Padronização

(ISO) como a linguagem de modelagem oficial da área. Seus principais diagramas

com suas funções estão listados abaixo:

Page 15: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

15

4.3.2 DCL (Diagrama de Classes)

É o diagrama mais utilizando e um dos mais importantes na engenharia de

software, é utilizado para definir as classes com seus atributos e operações, e

analisar suas inter-relações para se definir a melhor arquitetura possível.

4.3.3 DCO (Diagrama de Comunicação)

Também conhecido como “Diagrama de Colaboração” até a versão 1.5 da

UML, este diagrama serve para se visualizar a comunicação entre objetos em tempo

de execução, sendo possível visualizar as trocas de mensagens. O DCO é o DSM

complementam-se, a diferença é que o DSM se preocupa em especificar a

temporalidade do processo e o DCO não.

4.3.4 DSM (Diagrama de Sequência de Mensagem)

Preocupa-se com a ordem temporal na qual os objetos trocam suas

mensagens, costuma servir para identificar o evento gerador de um processo

modelado, bem como o ator responsável por esse evento.

4.3.5 DOB (Diagrama de Objetos)

Este diagrama oferece uma visão especifica dos objetos de um DCL

instanciados, com valores armazenados em um determinado momento da execução

de um processo, sendo assim basicamente dependente do DCL

4.3.6 DCU (Diagrama de Casos de Uso)

É um diagrama mais genérico e informal da UML, utilizado para levantar e

analisar requisitos, ajudando a entender como o sistema com suas interações com

usuário se comporta.

4.3.7 DME (Diagrama de Máquina de Estados)

Procura acompanhar as mudanças sofridas nos estados de instância de uma

classe, de um DCU ou mesmo de um subsistema ou sistema completo, se baseando

muitas vezes além do DCU em um DCL.

Page 16: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

16

4.3.8 DAT (Diagramas de Atividades)

Preocupa-se em descrever os passos que serão percorridos para a

conclusão de uma atividade específica, representada por um método ou por certo

grau de complexidade, podendo por vezes modelar um processo completo.

Concentra-se principalmente na representação de um fluxo de controle lógico.

4.4 Introdução ao Java

Figura 14 – Logotipo do Java

Inicialmente apelidado de StartSeven e depois Oak, o Java é uma linguagem

de programação orientada à objetos criada pela Sun Microsystems durante a década

90 com o intuito inicial de servir como linguagem de programação para

eletrodomésticos programáveis que poderiam interagir com o usuário, como uma TV

digital. Apesar de isso já ser uma realidade hoje, para época era uma ideia

revolucionária e acabou não sendo absorvida por esse mercado. Contudo seus

criadores com o advento da internet, renomearam a linguagem para Java e

aproveitaram para criar a tecnologia que hoje conhecemos como Applets, aplicações

dinâmicas que conseguiam rodar nos browsers estáticos da época, isso fez com que

a linguagem rapidamente se difundisse entre usuários e com o tempo fossem

criadas versões para outros ambiente de trabalho como desktops (JSE – Java

Standart Edition) e celulares (JME – Java Mobile Edition).

Page 17: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

17

Uma das grandes vantagens da tecnologia é sua portabilidade, um programa

criado em Java pode ser executado praticamente em qualquer Sistema Operacional,

isso porque ele não é executado inicialmente pelo sistema operacional e sim por

uma Máquina Virtual Java (JVM – Java Virtual Machine) programada para os

sistemas operacionais mais usados no mercado.

Figura 15 – Diagrama das diferentes JVM do Java

O programa é compilado pela máquina virtual que gera código executável

para o sistema. Seu ponto negativo é que o usuário precisa ter instalado essa

máquina virtual no seu computador, o que pode ser feito instalando o Java Runtime

Enviroment (JRE) no site da Sun Microsystems, o qual é simplesmente um Ambiente

de Execução Java que faz com que essas aplicações funcionem instalando a

Máquina Virtual Java e deixando disponível suas APIs que são um conjunto de

rotinas para a utilização das suas funcionalidades por aplicativos que não pretendem

envolver-se em detalhes da implementação do software, mas apenas usar seus

serviços.

Page 18: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

18

Figura 16 – Diagrama sobre o funcionamento do JRE

Já para fazer programas na linguagem, é necessário instalar o Java

Development Kit (JDK) – e configurar as variáveis de ambiente do sistema. O JDK

disponibiliza o compilador que gera o código executável Java para a Máquina Virtual

e as biblioteca do Java que facilitam o trabalho do programador e são juntadas ao

código pelo compilador sempre que necessárias no programa.

O ciclo básico para criação do programa e sua execução é o seguinte:

escrita do código fonte Java, compilação, geração dos Bytecodes Java, execução na

máquina virtual, junção com as bibliotecas necessárias, geração do código

executável do sistema operacional e execução do programa pelo sistema

operacional utilizando os recursos do hardware.

Figura 17 – Digrama sobre o ciclo da criação à execução de um programa Java

Page 19: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

19

4.4.1 Java para Interface Gráfica de Usuário e o NetBeans

O Java disponibiliza duas bibliotecas principais para criação de interfaces

com o usuário a “swing” e “awt”, com elas é possível criar janelas, painéis, menus,

botões, áreas de textos etc. Também é possível associá-las a eventos, como onClick

ou stateChange através de um Listener. Apesar de ser possível criá-los através da

codificação direta e observação da interface criada pela execução do código, esta

tarefa é trabalhosa e requer experiência do programador para lembrar a sintaxe

necessária, felizmente existem IDEs que facilitam o trabalho.

Uma IDE é um Ambiente de Desenvolvimento Integrado que disponibiliza

ferramentas que facilitam o trabalho da programação, seja por facilitar a referência

de bibliotecas para o programador, seja oferecendo uma interface gráfica para a

própria programação. O Netbeans é um exemplo de uma IDE para Java e outras

linguagens. Este disponibiliza uma ferramenta para a criação de interfaces que

facilita muito o trabalho, sendo preciso apenas arrastar o componente até o painel e

soltá-lo, quando selecionado ao lado aparece suas propriedades, as quais podem

ser modificadas pelo programador diretamente pelo painel, não sendo necessário

codificar a interface, apenas as ações que acontecerão ao ocorrer a interação.

Na Fig.18 fornecemos o exemplo de uma interface gráfica criada no

NetBeans e sua tela de configuração:

Figura 18 – Ambiente de desenvolvimento NetBeans – Criação de interface de usuário

Page 20: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

20

5 Experimentos:

Obs.: Códigos do experimento disponível em anexo parte 2.1

5.1 Reprodução com Led RGB

5.1.1 Material

1 Led RGB

1 Placa Arduino Uno

4 fios

5.1.2 Esquema

Figura 19 – Esquema de Montagem de Experimento Led RGB1 remoto

Fio preto no ground

Fio vermelho no pino 2

Fio azul no pino 6

Fio verde no pino 5

1 Para este teste inicial não nos preocupamos em dispor resistores para limitar a corrente para cada

componente. No experimento que será disponibilizado publicamente no Weblab da PUC/SP faremos a

associação de resistores, com Rvermelho>Rverde>Razul, para garantir a mesma intensidade destas componentes

quando submetidos a mesma ddp.

Page 21: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

21

5.1.3 Descrição

Este experimento permite ao usuário a reprodução de cores por meio de um

led controlado remotamente por uma interface de usuário Java. Para que este

experimento fosse possível, foi preciso programar o Arduino para que

constantemente lesse a porta serial; ele faz três leituras de valores que vão de 0-255

(saída PWM) e então configura a cor correspondente no Led RGB, fazendo essa

tarefa indefinidamente enquanto chegar valores da porta serial.

No computador onde está conectado o experimento roda outro programa

feito em Java (um servidor) que tem três funções, ficar “escutando” a porta 5050 na

rede, que deve estar liberada no roteador e mapeada com o endereço IP do

computador, mostrar as informações recebidas em uma interface gráfica no servidor,

com os valores de vermelho, azul e verde configurado pelo usuário remotamente, e

enviar esse dados para a porta serial correspondente do Arduino.

Já o programa do usuário, fornece o painel de configuração ao usuário, se

conecta ao servidor, na porta 5050, e envia as informações dos valores das três

valores RGB ao servidor.

É importante observar que esta conexão com o servidor se dá a partir do seu

endereço ip e sua porta já especificada 5050, contudo apesar de se fixar a porta, o

número ip em computadores domésticos é constantemente renovado a cada vez

que se desliga e liga o modem ou roteador. Por esta razão foi necessário deixar

configurado um endereço DNS (um nome como um site) que abstrai o número ip

dinâmico, o endereço criado foi o “http://hectorreboucas.no-ip.biz” e o programa

usado para atualizar esse ip é o DUC, que pode ser baixado no link:

“http://www.noip.com/client/DUCSetup_v4_0_1.exe”. Assim quando o programa do

cliente tenta se conectar ao servidor, ele é configurado com esse DNS e o número

da porta, sendo necessário ao servidor manter atualizado seu número IP.

Também é necessário que o computador do experimento tenha o JRE –

Page 22: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

22

(Java RunTime Enviroment) instalado e que seja adicionado as bibliotecas

rxtxSerial.dll e rxtxParallel.dll dentro de sua pasta /bin e o arquivo RXTXcomm na

pasta /lib/ext. As quais podem ser baixadas no link:

http://www.jcontrol.org/download/rxtx_en.html

Programa DUC atualizando ip do servidor

Figura 20 – DUC em execução (atualiza endereço ip do servidor)

Iniciando programa Servidor e configurando a porta serial

Figura 21 - nicando programa Servidor e configurando a porta serial

Page 23: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

23

Servidor Iniciado Aguardando Conexão

Figura 22 - Servidor Iniciado Aguardando Conexão

Conexão estabelecida com o cliente

Figura 23 - Conexão estabelecida com o cliente

Page 24: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

24

Tela do Cliente

Figura 24 - Tela do Cliente Experimento Led RGB remoto

Visualização do experimento remotamente

Figura 25 - Visualização do experimento remotamente

Page 25: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

25

Imagem do experimento sendo

transmitida remotamente via

aplicativo IP Webcam de um celular

Galaxy S III com sistema operacional

Android Versão 4.1.1.

Figura 26 - Imagem do experimento sendo

transmitida remotamente via aplicativo IP

Webcam de um celular Galaxy S III com sistema

operacional Android Versão 4.1.1.

5.2 Análise da luz com sensor RGB

Obs.: Códigos do experimento disponível em anexo parte 2.2

5.2.1 Material

1 Placa Arduino Uno

1 Sensor de Cor RGB ADJD-S311-CR999

6 fios

Page 26: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

26

5.2.2 Esquema

Figura 27 – Esquema do Experimento Sensor RGB remoto

5.2.3 Descrição

Este experimento permite a visualização gráfica dos dados obtidos pelo

experimento, fornecendo ao usuário, os valores de cada cor vermelha, verde e azul

de 0 à 255 e também a cor resultante da mistura das três.

Para que o experimento fosse possível foi preciso programar o Arduino para

que lesse constantemente o sensor e enviasse esses dados à porta serial, a cada

leitura quatro dados são enviados, o carácter 'A' para informar o início da leitura e

sinalizando os três próximos valores, os quais serão enviados: vermelho, verde e

azul.

Também foi necessário criar um programa em Java que executa no

computador que hospeda o experimento, com a função de ler os dados da porta

serial que são enviados pelo Arduino, mostrar esses dados em uma interface

Page 27: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

27

gráfica, gerenciar as conexões dos clientes do experimento, e enviar os dados a

estes clientes pela porta de rede 5051 que já deve estar previamente liberada no

roteador do computador do experimento.

Por fim é necessário o programa do usuário que será um cliente do servidor

da máquina do experimento, o cliente que pode ser executado em qualquer

computador que tenha instalado o JRE ( Java RunTime Enviroment) tenta se

conectar ao servidor na porta 5051 e receber os dados correspondentes de

vermelho, verde e azul.

As observações referente ao endereço ip do primeiro experimento servem

também para o segundo, isto é, o cliente está programado para tentar se conectar

no endereço http://hectorreboucas.no-ip.biz que abstrai o ip dinâmico do computador

servidor.

Iniciando Servidor

Figura 28 - Iniciando Servidor,

Experimento Sensor RGB

remoto

Page 28: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

28

Esperando Conexão

Figura 29 - Esperando Conexão Experimento Sensor RGB remoto

Conexão Realizada

Figura 30 – Conexão realiza, experimento Sensor RGB remoto

Page 29: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

29

Tela Cliente

Figura 31 – Tela do Cliente, experimento Sensor RGB remoto

Experimento sendo visto remotamente

Figura 32 - Experimento sendo visto remotamente, experimento Sensor RGB remoto

Page 30: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

30

Cliente utiliza programa do LedRGB para controlar o Led

Figura 33 - Cliente utiliza programa do LedRGB para controlar o Led

Valor obtido pelo sensor

Figura 34 – Tela Cliente Light Analyser com valor obtido pelo sensor RGB

Page 31: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

31

Imagem do experimento sendo

transmitida remotamente via

aplicativo IP Webcam de um celular

Galaxy S III com sistema operacional

Android Versão 4.1.1.

Figura 35 - Imagem do experimento sendo transmitidas remotamente via aplicativo IP Webcam de um

celular Galaxy S III com sistema operacional Android Versão 4.1.1.

Experimento visto remotamente pelo cliente

Figura 36 – Experimento Sensor RGB e Led RGB visto remotamente pelo cliente

Page 32: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

32

Observações:

Apesar de neste exemplo os dois experimentos estarem sendo usados em

conjunto pelo mesmo usuário, isto não é obrigatório, até porque o programa cliente

do SensorRGB tem uma vantagem frente ao programa do LedRGB, enquanto o

LedRGB só pode ser controlado por uma pessoa por vez, pois haveria conflito no

resultado se várias pessoas o controlassem ao mesmo tempo; o sensor RGB pode

ser acessado por várias pessoas ao mesmo tempo, pois estas apenas recebem os

dados do Sensor RGB, sem interferir no experimento. Portanto em um laboratório

remoto o programa do Sensor RGB sempre estaria disponível para ser visualizado,

observado a capacidade máxima de conexões fixada em 50 na programação.

Apesar do controle do Led RGB só estar disponível quando não houver nenhum

outro usuário conectado, vários usuários podem observar os efeitos do Led RGB

mudando dinamicamente e observar os efeitos no sensor.

Outro ponto é a equivalência de resultados entre os dois experimentos. Embora

um experimento reproduza uma cor e o outro faça a análise da cor do Led RGB,

estes são dois experimentos diferentes, portanto, seus resultados, apesar de

semelhantes irão variar quando a intensidade de cada cor, certamente uma cor com

uma tonalidade mais intensa no Led RGB aparecerá com um valor maior no sensor

RGB, mas é preciso frisar que estes resultados não devem nem serão equivalentes.

Para garantir a equivalência é necessário efetuar algumas correções com relação

aos resistores que devem ser associados a cada componente do LED RGB e evitar

qualquer tipo de reflexão de luz por objetos situados em torno do receptor e emissor.

6 Conclusão

Apesar de o experimento ter o objetivo de fazer parte do WEBDUINO, este ainda

não inteiramente configurado e em funcionamento. Contudo o projeto de Iniciação

Científica Light Analyzer proposto foi comprido em sua totalidade naquilo que se

destinava, isto é, estudar as propriedades do espectro eletromagnético visível e criar

um experimento remoto baseado na plataforma Arduino e na plataforma Java capaz

Page 33: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

33

de analisar e reproduzir as componentes RGB da luz. A plataforma Java oferece

grande flexibilidade caso for preciso mudar os aplicativos de ambiente, como a Web,

e eventuais adaptações na programação para o WebDeusto. O conteúdo estudado,

os experimentos, programas e códigos estão prontos e disponíveis tanto para

WEBDUINO quanto para outros pesquisadores que queiram construir os

experimentos ou ler a pesquisa, observado os reconhecimentos de mérito ao

orientado, orientadora e universidade.

7 Bibliografia Atualizada

1 C. Fiolhais.; J.Trindade (2003). “Física no Computador: O Computador

como uma Ferramenta no Ensino e na Aprendizagem das Ciências

Físicas”: Revista Brasileira de Ensino de Física, 25, 3, 259 - 272

2 M. F. Barroso; G. Felipe; T. da Silva. (2006) “Aplicativos Educacionais e o

Ensino de Física. Ata do X Encontro de Pesquisa em Ensino de Física,

publicação em

http://www.sbf1.sbfisica.org.br/eventos/epef/x/atas/resumos/T0113-1.pdf .

3 D. F. de Souza; J. Sartori.; M.J. Bell e L.A.Nunes (1998). “Aquisição de

dados e Aplicações Simples Usando a Porta Paralela do Micro PC.” Revista

Brasileira de Ensino de Física, 20, 4, 413-422

4 E. Montarroyos e W. Magno, C (2001). “Aquisição de Dados com a Placa

de Som do Computador” Revista Brasileira de Ensino de Física, 23, 1, 57 -

62

5 M. A. Cavalcante e. C. R. Tavolaro, (2003). “Medindo a Velocidade do

Som”. Física na Escola, 4, 1, 29 - 30

6 C. E. Aguiar e F. Laudares, (2001). ‘Aquisição de Dados usando Logo e a

Porta de Jogos do PC’. Revista Brasileira de Ensino de Física, 23, 4, 371-

379

7 R. Haag, (2001). “Utilizando a Placa de Som do Micro PC no Laboratório

Didático de Física.” Revista Brasileira de Ensino de Física, 23, 2, 176-183

Page 34: Relatório final de ic hector rebouças

Pontifícia Universidade Católica de São Paulo

Light Analyzer - Um projeto para aprendizagem e análise das propriedades da luz e sua percepção.

34

8 C. W. Magno. e E.Montarroyos, (2002) “Decodificando o Controle Remoto

com a Placa de Som do PC”. Revista Brasileira de Ensino de Física, 24, 4,

497- 499

9 M. A. Cavalcante; E. Silva; R. Prado, e R. Haag, (2002). “O Estudo de

Colisões através do Som” Revista Brasileira de Ensino de Física 24, 2,

150-157 (2002).

10 G. Dionísio, e C. W. Magno, (2007) “Photogate de baixo custo com a

porta de jogos do PC”. Revista Brasileira de Ensino de Física, 29,2, 287-293

11 M. A. Cavalcante; A. Bonizzia e L.C. P.Gomes (2008) “Aquisição de dados

em laboratórios de Física; um método simples, fácil e de baixo custo” Revista

Brasileira de Ensino de Física, 30,2, 2501-2506

12 M. A. Cavalcante; A. Bonizzia e L.C. P.Gomes (2009) “O ensino e

aprendizagem de física no Século XXI: sistemas de aquisição de dados nas

escolas brasileiras, uma possibilidade real” Revista Brasileira de Ensino de

Física 31,4, 4501-4506

13 Souza,A.R.; Paixão,A.C.; Uzêda,D.D; Dias,M.A. ; Duarte,S. e

Amorim,H.S.(2011) “A placa Arduino: uma opção de baixo custo para

experiências de física assistidas pelo PC “Revista Brasileira de Ensino de

Física 33,1, 1702-1705.

14 Varejão, Flávio (2004): “Linguagens de Programação Java, C e C++”, 1-23.

15 A. Conci, E. Azevedo, F. R. Leta, Computação Gráfica, 11-48.

16 http://www.cdcc.usp.br/cda/producao/2007-com-ciencia/galeria-de-

imagens.html (Site sobre estudo dos variados espectros de luz e a análise de

estrelas, data de último acesso: 25/02/2013)

17 http://projeto39.wordpress.com/o-Arduino/ (Blog com breve, mas eficiente

explicação sobre o Arduino, data do ultimo acesso:25/02/2013 às 21h:08m )

18 http://www.infoescola.com/fisica/espectro-visivel/ (Explicação sobre

comprimento de ondas eletromagnéticas e exemplo das tecnologias que as

utilizam, data de último acesso: 25/02/2013 às 21h:08m)