relatório final de ic hector rebouças
DESCRIPTION
Relatorio final das atividades de IC do experimento Light Analyzer que compoe um dos experimentos do Weblab da PUCSPTRANSCRIPT
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
Orientadora: Marisa Almeida Cavalcante
Gopef - Grupo de Pesquisa em Ensino de Física da PUC/SP
Julho de 2013
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
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.
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.
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.
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.
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.
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
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
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.
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.
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.
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.
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:
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.
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).
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.
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
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
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.
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 –
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
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
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
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
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
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
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
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
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
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
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
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
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)