19
Departamento de Engenharia Elétrica CRIAÇÃO DE UM BANCO DE DADOS PARA MONITORAMENTO E CONTROLE DE ESTOQUE DE MATERIAL EM AMBIENTE LABORATORIAL E DESENVOLVIMENTO DE INTERFACE GRÁFICA uLCD 70dt PARA ANÁLISE DO ESTADO DE POLARIZAÇÃO DA LUZ ATRAVÉS DE PLATAFORMA FPGA Aluno: Joaquim Dias Garcia Aluno: João Pedro Dias Garcia Orientador: Guilherme Penello Temporão Co-Orientador: Gustavo Castro do Amaral Introdução Geral O projeto desenvolvido ao longo do período 2014-15 no laboratório de optoeletrônica teve duas vertentes independentes que são detalhadas neste relatório. O ponto de convergência foi a facilidade demonstrada pelo aluno no desenvolvimento de interfaces gráficas, que motivou a maior parte da pesquisa. A primeira vertente trata de uma ferramenta voltada à organização do ambiente de trabalho e foi desenvolvida a partir do primeiro contato do aluno com a disposição dos materiais e dispositivos usados no dia-a-dia do laboratório. Algumas deficiências foram detectadas e solucionadas elegantemente através de uma plataforma gráfica on-line associada a um banco de dados disponível para todos os integrantes do corpo laboratorial. A segunda vertente trata de um assunto mais voltado para o foco direto de pesquisa do laboratório, o controle de polarização. Um dos pontos mais sensíveis associados a esse tipo de estudo é a visualização dos estados de polarização e que, mais uma vez, foi solucionada com simplicidade através do desenvolvimento de uma interface gráfica interativa. O relatório se encontra dividido entre a primeira e a segunda vertente e cada parte possui introdução, metodologia, resultados e conclusões próprias. Criação De Um Banco De Dados Para Monitoramento E Controle De Estoque De Material Em Ambiente Laboratorial Introdução O Laboratório de Optoeletrônica da PUC-Rio precisa de uma base de dados para a organização de seus materiais de pesquisa. Desde 1995, o Laboratório atua na área de pesquisa em Fotônica, objetivando, além de muitas pesquisas, o uso de fibras óticas. Atualmente, desenvolve projetos nas áreas de monitoramento de redes ópticas passivas, transmissão óptica em altas taxas, sensoriamento por fibras ópticas, instrumentação, design de hardware digital e comunicações quânticas. Apesar do Laboratório contar com um grande ferramental para pesquisa, é imprescindível que a organização do material seja feita com cuidado. É importante que os dispositivos necessários para o desenvolvimento de um projeto, tal qual a quantidade necessária para tal,

CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Embed Size (px)

Citation preview

Page 1: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

CRIAÇÃO DE UM BANCO DE DADOS PARA MONITORAMENTO E CONTROLE DE ESTOQUE DE MATERIAL EM AMBIENTE

LABORATORIAL E

DESENVOLVIMENTO DE INTERFACE GRÁFICA uLCD 70dt PARA ANÁLISE DO ESTADO DE POLARIZAÇÃO DA LUZ ATRAVÉS DE

PLATAFORMA FPGA

Aluno: Joaquim Dias Garcia Aluno: João Pedro Dias Garcia

Orientador: Guilherme Penello Temporão Co-Orientador: Gustavo Castro do Amaral

Introdução Geral

O projeto desenvolvido ao longo do período 2014-15 no laboratório de optoeletrônica teve duas vertentes independentes que são detalhadas neste relatório. O ponto de convergência foi a facilidade demonstrada pelo aluno no desenvolvimento de interfaces gráficas, que motivou a maior parte da pesquisa. A primeira vertente trata de uma ferramenta voltada à organização do ambiente de trabalho e foi desenvolvida a partir do primeiro contato do aluno com a disposição dos materiais e dispositivos usados no dia-a-dia do laboratório. Algumas deficiências foram detectadas e solucionadas elegantemente através de uma plataforma gráfica on-line associada a um banco de dados disponível para todos os integrantes do corpo laboratorial. A segunda vertente trata de um assunto mais voltado para o foco direto de pesquisa do laboratório, o controle de polarização. Um dos pontos mais sensíveis associados a esse tipo de estudo é a visualização dos estados de polarização e que, mais uma vez, foi solucionada com simplicidade através do desenvolvimento de uma interface gráfica interativa. O relatório se encontra dividido entre a primeira e a segunda vertente e cada parte possui introdução, metodologia, resultados e conclusões próprias.

Criação De Um Banco De Dados Para Monitoramento E Controle De Estoque De Material Em Ambiente Laboratorial

Introdução

O Laboratório de Optoeletrônica da PUC-Rio precisa de uma base de dados para a organização de seus materiais de pesquisa. Desde 1995, o Laboratório atua na área de pesquisa em Fotônica, objetivando, além de muitas pesquisas, o uso de fibras óticas. Atualmente, desenvolve projetos nas áreas de monitoramento de redes ópticas passivas, transmissão óptica em altas taxas, sensoriamento por fibras ópticas, instrumentação, design de hardware digital e comunicações quânticas.

Apesar do Laboratório contar com um grande ferramental para pesquisa, é imprescindível que a organização do material seja feita com cuidado. É importante que os dispositivos necessários para o desenvolvimento de um projeto, tal qual a quantidade necessária para tal,

Page 2: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

estejam garantidos. O desenvolvimento de um banco de dados que permita que aos pesquisadores vinculados ao laboratório acessar o material disponível é de grande interesse nesse contexto. Além disso, o banco de dados permite um controle de empréstimo de material e instrumentos para alunos e professores não vinculados ao laboratório diretamente, mas que trabalhem em parceria.

O objetivo do trabalho é a implementação de um sistema que atue como ferramenta de busca e gerenciamento de empréstimos, prevenindo possíveis danos aos equipamentos, roubos e perdas. Com esse sistema será possível visualizar e acompanhar o status de um empréstimo e também obter informações do material: sua disponibilidade; localização; e a quem foi emprestado cada equipamento.

A criação de um banco de dados. Inicialmente, foi necessária a criação de um catálogo de todos os equipamentos existentes no laboratório. Uma planilha em formato Excel contendo os nomes dos materiais, as quantidades disponíveis de cada um, sua localização no laboratório, além da ficha técnica (datasheet) e informações básicas como fornecedor e um pequeno resumo explicando sua funcionalidade foi criada para essa finalidade.

O primeiro passo foi coletar informações sobre todos os materiais e atualizar a lista que existia até então. Cada material foi catalogado e reorganizado. Um registro atualizado e preciso sobre quantidade localização e informações gerais sobre cada peça disponível no laboratório foi, portanto, elaborado.

Em seguida a criação de um banco de dados para melhor manipulação era necessário. Neste sistema, um usuário poderia fazer buscas, alterar informações sobre as peças e registrar empréstimos tanto para ele quanto para terceiros (pessoas de fora do laboratório). Partindo do registro atualizado, cada nova operação atualizaria o estoque de forma que a evolução da quantidade respectiva de material se daria automaticamente.

Elementos teóricos.

A. MySql

O MySql é um sistema de gerenciamento de banco de dados relacional de código aberto usado na maioria das aplicações gratuitas para gerir suas bases de dados. O serviço utiliza a linguagem SQL (Structure Query Language – Linguagem de Consulta Estruturada), que é a linguagem mais popular para inserir, acessar e gerenciar o conteúdo armazenado num banco de dados.

Na criação de aplicações web abertas e gratuitas, o conjunto de aplicações mais usado é o LAMP, um acrônimo para Linux, Apache, MySQL e Perl/PHP/Python. Nesse conjunto de aplicações, inclui-se, respectivamente, um sistema operacional, um servidor web, um sistema gerenciador de banco de dados e uma linguagem de programação. Assim, o MySQL é um dos componentes centrais da maioria das aplicações públicas da Internet.

Há além do LAMP outras opções que foram utilizadas quando o sistema apresentava bugs ou erros de compilação como o AMPPS(Apache, MySQL, PHP, Python, Software). Assim como o a primeira opção o AMPPS apresenta todas as funcionalidades necessárias e uma interface mais amigável.

Page 3: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

Para utilizar o MySQL, é necessário instalar um servidor e uma aplicação cliente. O servidor é o responsável por armazenar os dados, responder às requisições, controlar a consistência dos dados, bem como a execução de transações concomitantes entre outras. O cliente se comunica com o servidor através da SQL. A versão gratuita do MySQL é chamada de Edição da Comunidade e possui o servidor e uma interface gráfica cliente.

Figura I-1: A Imagem Mostra a estrutura do banco na MySQL, todas as tabelas que se fizeram necessárias para a criação da database

B. HTML HyperText Markup Language ou Linguagem de Marcação de Hipertexto. É utilizada para produzir páginas na Web. Documentos HTML podem ser interpretados por navegadores. A tecnologia é fruto da junção entre os padrões HyTime e SGML.

HyTime é um padrão para a representação estruturada de hipermídia e conteúdo baseado em tempo. Um documento é visto como um conjunto de eventos concorrentes dependentes de tempo (como áudio, vídeo, etc.), conectados por hiperligações. O padrão é independente de outros padrões de processamento de texto em geral.

SGML é um padrão de formatação de textos. Não foi desenvolvido para hipertexto, mas tornou-se conveniente para transformar documentos em hiper-objetos e para descrever as ligações.

Figura I-2: A Imagem Mostra a estrutura de código HTML.

Page 4: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

C. Php

O PHP (um acrônimo recursivo para PHP: Hypertext Preprocessor) é uma linguagem de script open source de uso geral, muito utilizada, e especialmente adequada para o desenvolvimento web e que pode ser embutida dentro do HTML.

Em vez de muitos comandos para mostrar HTML (como acontece com C ou Perl), as páginas PHP contém HTML com código embutido que faz "alguma coisa”. O código PHP é delimitado pelas instruções de processamento (tags) de início e fim <?php and ?> que permitem que você pule para dentro e para fora do "modo PHP”.

O que distingue o PHP de algo como o Javascript no lado do cliente é que o código é executado no servidor, gerando o HTML que é então enviado para o cliente. O cliente recebe os resultados da execução desse script, mas não sabe qual era o código fonte. É possível, inclusive, configurar um servidor web para processar todos os seus arquivos HTML com o PHP, e então não haverá realmente nenhum modo dos usuários descobrirem se você usa essa linguagem ou não.

Uma grande vantagem em usar o PHP é que ele é extremamente simples, mas oferece muitos recursos para um programador profissional. Apesar do desenvolvimento do PHP ser focado nos scripts do lado do servidor, é possível fazer muito mais com ele: sites completos; acesso a banco de dados; e persistência de informação.

Figura I-3: A imagem mostra a integração de HTML e PHP. A primeira sendo usada para estilização da pagina e a segunda para funções e processos.

Page 5: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

C. Resultados O banco de dados foi feito para Web com o intuito de que qualquer usuário pudesse acessá-lo de qualquer computador do laboratório ou até mesmo de seus aparelhos celulares para realizar ações rápidas.

Dado esse fator, a linguagem que melhor se adaptou foi o PHP pelo seu fácil acesso a banco de dados e boa interatividade com MySQL, o sistema de database escolhido. O PHP era o principal responsável pela execução de funções, passagem de telas e por guardar informações. Todas as funções relacionadas ao Front-End são realizadas pelo PHP. Toda a questão da persistência de variáveis, como o login e a senha, para acesso a essas informações em diferentes paginas também. É interessante notar que o uso de cookies foi muito prático dado que os recursos para tal fornecidos pela linguagem são simples.

Em conjunto com o PHP, naturalmente, foi utilizado o HTML para se estruturar a pagina. O HTML é uma linguagem de hipertexto mundialmente conhecida e a mais utilizada para construção de paginas de web. Através de tabelas, divisórias, e formulários estruturados a base da página estava pronta. O PHP ao realizar suas funções alterava o HTML da página adicionando também essas estruturas após uma busca especifica ou uma dada função.

O banco de dados foi todo construído em MySQL. Algumas das grandes vantagens do MySQL além da ótima interação com PHP, são sua fácil sintaxe e por mais que ainda tenha a interface complicada é das mais intuitivas entre os prestadores desse tipo de serviço.

É valido também falar que algumas poucas funções do front-end também foram feita em JavaScript para posicionamento da pagina após uma atualização ou simples animações.

O modelo conceitual de dados:

Uma pessoa pode ser um aluno, um professor funcionário ou um terceiro que será cadastrado apenas na hora do empréstimo. Todas possuem nome, telefone, e-mail e número identificador, sendo que os beneficiados por empréstimo que não são membros do laboratório tem uma sequencia paralela de IDs visto que pertencem a outra tabela. Durante um registro de empréstimo se consta como identificador tanto o momento em que o empréstimo foi feito(TIME function), quanto o ID do material, o responsável e o beneficiado, sendo assim não é possível um conflito de informações na tabela tornando ela normalizada.

Mesmo que haja um conflito em identificador por uma pessoa ter ID de funcionário igual a outra com ID de terceiro o sistema saberá devido a um outro campo na tabela empréstimos que define se o empréstimo foi feito a um professor/aluno ou alguém que não está cadastrado como funcionário no sistema do laboratório.

No ato da realização do empréstimo, registra-se automaticamente a data do empréstimo, o nome do responsável, o número identificador do empréstimo(obtido automaticamente a partir da função “time”). Manualmente deve-se registrar as informações do beneficiado(caso não seja o próprio usuário) e a quantidade de materiais pegos, além de uma previsão de devolução do material. Quando o material for devolvido, a data de devolução será calculada automaticamente e passara a ser considerado pelo sistema um item devolvido então não constará mais nas buscas por empréstimo e sim por histórico.

Um material possui dados como nome, número serial indicando seu modelo, breve descrição, e produtor. Também consta na tabela de materiais sua localização no laboratório, quantidade disponível para empréstimo, URL para sua datasheet (p) e número identificador.

Page 6: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

Diagrama Entidades de Relacionamento:

As tabelas do banco de dados e como cada uma delas se estrutura:

• USERS (id, usuario, senha, email, telefone, adm) - Id: Identificador do usuário para realização de buscas no sistema, funciona como chave primaria. - Usuário: Nome de usuário para login no sistema de banco de dados. - Senha: Senha do usuário para login no banco de dados. - Email: Para questões de contato caso necessário. - Telefone: Para questões de contato caso necessário. - Adm: Campo determinante para restrições e permissões do usuário quanto a operações no sistema, como cadastro de outros usuários e adição de novos materiais.

• OUTROS (id, nome, telefone, email)

- Id: Identificador do beneficiado de fora do laboratórios para realização de buscas no sistema, funciona como chave primaria. - Nome: Para identificação da pessoa.

Page 7: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

- Email: Para questões de contato caso necessário. - Telefone: Para questões de contato caso necessário.

• EMPREST(Id, praquem, para, quando, devolucao, devolvido, responsavel, quantidade)

- Empréstimo: Identificador do empréstimo para consultas. - Id: Identificador do material para realização de buscas no sistema, funciona como chave primaria. - Praquem: Campo que determina apenas se o empréstimo foi para uso próprio do

usuário ou para empréstimo para alguém de fora do laboratório. Em certos casos guardará um nome de usuário e em outros um inteiro que mostra o id do beneficiado de fora do laboratório referenciando a tabela “outros”.

- Para: Nome do beneficiado. - Quando: data do empréstimo. - Devolução: data prevista para devolução. - Devolvido: data da devolução caso o equipamento já tenha sido devolvido. - Responsável: Nome do responsável pelo empréstimo por questões de organização. - Quantidade: Quantos daquele equipamento foram emprestados.

• MATERIAIS (ID, nome, distrib, model, about, data, quant, local)

- Id: Identificador do material para consulta e operações entre tabelas. Chave primária e externa para quase todas as operações do banco. - Nome: nome do material ou equipamento. - Distrib: o nome do distribuidor/marca ou fornecedor do equipamento.

Page 8: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

- Model: modelo do equipamento, para alguns pode ser o ano, enquanto que para outros o valor que ocupa este campo e o numero de série. - About: uma breve descrição sobre o material; pode conter também informações importantes como a peça está funcionando mal. - Data: um link para datasheet. - Quant: o número de equipamentos daquele disponível no laboratório para uso. - Local: o lugar onde o equipamento se encontra no laboratório, armário, gaveta ou até sala.

As Páginas: - Fazendo Login:

- Adicionando material (uma janela pop-up surge com um formulário para adição de material):

Page 9: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

- Adicionando usuário (assim como a adição de materiais há uma janela pop-up):

- Carrinho de equipamentos para empréstimo (o carrinho de compras aparece com um Mouse-Over):

- Empréstimo sendo realizado:

Page 10: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

Conclusões Com um sistema próprio de banco de dados o laboratório de Optoeletrônica da PUC-

Rio pode exercer um maior controle sobre o uso de seus equipamentos tanto pelos próprios integrantes do laboratório quanto por pessoas de fora, uma vez que o empréstimo de material é realizado frequentemente.

A possibilidade de atribuir a determinados usuários o título de administradores do banco de dados faz com que o controle seja realizado tanto fisicamente (presença direta no laboratório) quanto on-line. A busca de material, o acesso à sua localização e o controle da quantidade disponível se tornaram tarefas simples e rápidas de forma que o controle de estoque é automático. Esse ponto é bastante sensível já que a falta de material durante uma fase crítica de pesquisa pode inviabilizar o seu desenvolvimento. Referências

1 – MILANI, André. Construindo aplicações Web com php e MySql. 2010.

2 – MILANI, André. MySQL, Guia do programador, 2007.

3 – SILVA, Maurício Samy. Criando Sites com HTML, 2008.

Page 11: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

Desenvolvimento De Interface Gráfica ulcd 70dt Para Análise Do Estado De Polarização Da Luz Através De Plataforma FPGA

Introdução O Laboratório de Optoeletrônica da PUC-Rio é voltado para o estudo da luz, suas características e aplicações. Em suas pesquisas um dos assuntos principais sendo abordados atualmente é a polarização da luz.

A polarização é uma propriedade de ondas eletromagnéticas, entre elas a luz, que pode ser utilizada para as mais diversas aplicações, como os televisores LCD, óculos com lentes Polaroid, etc. Além disso, é um fator de grande impacto nas transmissões utilizando fibras ópticas. Com a ajuda de um controle de polarização eficaz é possível reduzir os impactos da dispersão dos modos de polarização o que possibilita taxas de transmissão de dados maiores em fibras ópticas. Um dispositivo capaz de identificar o estado de polarização da luz (polarímetro) é uma ferramenta, portanto, de grande demanda em projetos envolvendo comunicações ópticas.

Uma FPGA é um dispositivo programável composto de um número muito grande de Blocos Lógicos Programáveis, pequenas células que contém as estruturas básicas da eletrônica digital. Através da programação da malha de interconexões que conecta esses blocos, é possível criar qualquer tipo de circuito digital. A linguagem VHDL é uma linguagem específica para descrição de hardware que auxilia na criação, tanto na etapa de síntese quanto na de simulação, dos circuitos digitais desejados.

Aliando um polarímetro analógico convencional, conversores analógico-digitais, um hardware de processamento específico desenvolvido em FPGA e um monitor LCD, é possível criar uma estrutura autônoma (sem a conexão com um computador) de visualização de estados de polarização. Além de apresentar dimensões reduzidas, essa estrutura também elimina os tempos de transmissão entre o computador e a coleta de dados, o que a torna mais veloz em grande parte das aplicações. Dentre os circuitos possíveis de serem estruturados em uma FPGA, pode-se destacar, do ponto de vista desse projeto: a interface entre a FPGA e o monitor; a interface entre a FPGA e os conversores analógico-digitais; e uma unidade de processamento digital de sinal que conecte as duas interfaces.

Na confecção de um conversor analógico digital uma das etapas foi a confecção de uma interface touchscreen para o usuário interagir com o conversor. O laser passa por um processo de analise por uma FPGA que se comunica com a placa LCD responsável pela interface. A transmissão de dados é feita através de um protocolo RS232, comunicação serial.

Elementos Teóricos

A. Elaboração da interface

A ideia da interface inicialmente consistia na esfera de Poincarré e alguns botões adicionais para a manipulação de dados e interação com a placa. O grande circulo no Sketch representa a esfera. Sendo o principal elemento da tela ela naturalmente ocupa a maior parte. A esfera foi desenhada pixel a pixel e passou por uma transformação por meio de uma matriz que girava seus eixos x,y,z de modo que o eixo z se mantivesse na vertical e os eixos x e y formassem o mesmo angulo com ele. Assim seria possível visualizar mais claramente a profundidade e altura. A esfera foi colorida da seguinte forma: tanto os eixos quanto os

Page 12: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

círculos auxiliares para indicação de altura foram pintados na parte da frente de vermelho e na parte de trás de azul. Assim era muito mais fácil ter noção de onde o ponto se encontrava.

Ao lado da esfera na área superior temos os botões S1,S2,S3, que representam os parâmetros de Stokes. Ao seus lados os respectivos valores das coordenadas que eram utilizados para projetar o referido ponto na esfera. Ao clicar em qualquer um dos parâmetros de stokes o parâmetro era selecionado para ser editado. Assim além do valor enviado a LCD pela fuga seria possível escolher valores diferentes para projetar o ponto.

O circulo pequeno abaixo dos parâmetros de stokes é uma roleta que serve como slider. Girando a roleta o valor selecionado é alterado até se encontrar o valor desejado.

O botão “scan” chama a função que lê os valores obtidos da FPGA e projeta na esfera. “Cancel” serve tanto para parar o Scan quanto para cancelar a edição de um Parâmetro de Stokes e OK confirma essa edição.

É possível ver na Figura II-2 que foi necessário criar outros botões para auxiliar com a manipulação dos Parâmetros de Stokes. Ao clicar em um parâmetro seu valor é impresso onde se encontra a linha amarela. Essa linha mostra qual casa decimal está sendo alterada e o circulo slider irá alterar (somar ou subtrair) aquela quantia.

Figura II-1 - Interface Planejada.

Figura II-2 - Interface implementada.

Page 13: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

B. Visualização de Estruturas Tridimensionais

Alguns testes foram feitos para a identificação de qual dessas perspectivas seria a mais indicada para a visualização do estado de polarização (que é representado como um ponto na superfície da esfera) na Esfera de Poincaré. Alguns exemplos práticos já implementados (como os programas AutoCAD, Inventor Series, SolidWorks, SketchUp e outros), além dos resultados dos testes com os pesquisadores do laboratório identificaram que a perspectiva ideal seria a Isométrica.

Depois da escolha da perspectiva de representação da esfera, um ponto importante é a

determinação da matriz de rotação necessária para mudar o eixo de coordenadas retangulares canônicas (x,y,z) para o eixo de coordenadas isométricas (u,v,w). Isso é fundamental, uma vez que as coordenadas processadas pela placa estarão no eixo de coordenadas (x,y,z) mas a sua visualização será no eixo de coordenadas (u,v,w). Quando tratamos cada uma dessas componentes como as coordenadas de um vetor tridimensional, a transformação necessária passa a ser uma matriz.

Nesta parte utilizamos o Maple1, que é um sistema algébrico computacional, ou seja, é um software comercial que facilita o cálculo matemático no computador através de bibliotecas que podem ser de: álgebra linear, diferenciais e integrais, gráficas, simbólicas, etc. Para objetos tridimensionais, podemos realizar uma rotação utilizando a seguinte matriz de rotação2:

A Figura 4 mostra um exemplo de rotação de um vetor (ponto vermelho) no Maple, cujo eixo de coordenadas retangulares canônicas (x,y,z) foi transportado, através de uma transformação linear, para o eixo de coordenadas isométricas (u,v,w).

1 A PUC-Rio concede uma licença do software Maple para todos os alunos do Centro Técnico Científico (CTC).

2 A matriz de rotação está orientada no sentido horário.

Figura II-3 – Exemplos de perspectivas.

Figura II-4 – Perspectiva isométrica de uma esfera tridimensional visualizada no Maple.

Page 14: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

Quando realizamos 3 rotações sucessivas devemos multiplicar as matrizes em ordem inversa. Chegamos, portanto, à seguinte matriz de rotação:

D. Implementação da Esfera Isométrica e a construção dos dados utilizando programação

A implementação do desenho de uma esfera estática foi uma tarefa que envolveu muitos

processos, inclusive a criação de um algoritmo em MATLAB, um software interativo de alta performance voltado para o cálculo numérico a que se tem acesso graças à licença para alunos da PUC-Rio. Em um primeiro momento, os cálculos das dimensões da esfera foram realizados no papel levando em conta o tamanho da tela, o tamanho desejado da esfera e a posição que ela deveria ficar.

Após a criação do algoritmo da esfera em MATLAB e o protótipo funcionar de acordo em um monitor chegou a hora de desenhá-la na placa uLCD70dt. Uma enorme dificuldade foi que a placa não suportava variáveis do tipo float normalmente, era necessário criar um vetor de tamanho dois e fazer operações matemáticas uma a uma para aplicação da matriz de transformação. Logo uma formula não muito complexa como a da esfera r^2 = sqrt(a^2+b^2+c^2) exigia muitas linhas de código. Mais ainda com a aplicação da matriz.

Todas as contas deveriam ser feitas com valores de -1 a 1 e depois esses valores seriam multiplicados por 200. O raio da esfera representado na placa. Os eixos u e v (retornados da transformação de x e y) mostravam em que ponto exatamente deveriam ser desenhados o pixel transformado enquanto que relativo ao eixo w(retornado da transformação de z) era interessante apenas ser positivo ou negativo. No primeiro caso pintando o pixel de vermelho e no outro de azul.

Figura II-5 – Matriz de rotação final.

Figura II-6 – Operação com ponto flutuante uma a uma.

Page 15: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

Na figura 7 as linhas mais fortes representam a parte da frente da esfera enquanto que as mais fracas representam a parte de trás. Na placa ficou decido que a parte da frente seria representada em vermelho e a parte de trás em azul.

E. Circulo de modificação de valores (Slider)

A roleta controladora serve para alterar, através de seu giro, o valor do Parâmetro de Stokes selecionado. A Figura II-8 mostra a ideia inicial de como seria a disposição touchscreen com as áreas sensíveis ao toque presentes no circulo.

Basicamente ao passar de uma área quadrada para a outra, as funções touch da placa seriam alertadas e se o movimento ocorresse no sentido horário seria acrescido o valor e no anti-horário seria decrescido. O problema inicial foi que os quadrados das pontas acabavam por ter grande parte de sua área desperdiçada e, portanto, nem sempre o dedo do usuário passava por ele. Assim, a sensibilidade era pouca e eventualmente o movimento não era bem captado.

Figura II-7 – Esfera em perspectiva isométrica. Somente a silhueta da esfera está desenhada.

Figura II-8 – Idéia inicial da disposição de regiões sensíveis ao toque.

Figura II-9 – Modificação da idéia inicial para melhoria na sensibilidade do

slider.

Page 16: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

A solução foi redistribuir a área das regiões como mostrado na Figura II-9. Instintivamente, a pessoa passava o dedo pelas regiões norte-sul e leste-oeste mais precisamente. Dessa maneira, a área dessas regiões foi diminuída em troca do aumento das outras. Através de testes verificou-se que a redistribuição foi significativamente mais eficaz e sensível. Esse, portanto, foi o modelo adotado.

F. Representação de Estados de Polarização – A Esfera de Poincaré e os

Parâmetros de Stokes O estado de polarização da luz é descrito por um vetor de quatro elementos, conhecido

como Parâmetros de Stokes. A notação utilizada para representar os Parâmetros de Stokes é dada pelo seguinte vetor coluna: . Sendo o parâmetro a representação da intensidade total da luz. Normalizando os parâmetros de Stokes por , podemos chegar à seguinte fórmula:

Onde SOP representa o estado de polarização da luz. Um espaço geométrico descrito pelos parâmetros de Stokes normalizados gera a casca esférica conhecida como Esfera de Poincaré. A Figura 10 representa os estados de polarização na Esfera de Poincaré.

Nesta representação podemos perceber que os estados de polarização linear correspondem ao equador da esfera, e que os estados de polarização circular correspondem aos polos da esfera.

E. Comunicação entre as placas

A comunicação entre as placas FPGA e LCD é feita através de um protocolo RS-232. Duas portas são configuradas na placa LCD para serem entrada e saída. É um padrão de protocolo para troca serial de dados binários entre um DTE(Terminal dados, Data Terminal equipment) e um DCE(Comunicador de dados, Data Communication equipment). É comumente usado nas portas seriais dos PCs. Foram escolhidas duas portas da placa LCD para entrada e saída e, através delas, o protocolo RS-232 é implementado, recebendo e enviando bits. Inicialmente a placa 70dt envia um Byte de sinal para a FPGA responder com os valores dos Parâmetros de Stokes. Os valores variam de -1 a 1, porém para uma comunicação mais simples e rápida e pelo fato da LCD não trabalhar bem com pontos flutuantes foi feito um padrão onde a própria placa receberia um valor inteiro entre -1024 e 1023 (10 bits) e trabalharia com esse valor. Para cada valor, portanto, seria necessário ao menos dois Bytes.

Foi utilizado um padrão de envio na seguinte forma:

Figura II-10 – Representação da Esfera de Poincaré e dos principais estados de polarização.

Page 17: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

- Os três primeiros bits do primeiro Byte identificam o Parâmetro (x,y ou z) que está sendo transmitido.

- O quarto bit do primeiro Byte indicaria se o numero seria positivo (0) ou negativo (1).

- Os dois primeiros bits do segundo Byte seriam uma extensão do cabeçalho de identificação.

- Os demais bits concatenados (total de 10 bits) determinariam o valor enviado.

Operadores básicos de lógica: Shifts(>>,<<), ANDs(&) e ORs( | ) foram necessários para realizar decodificar as mensagens e recuperá-las .

Resultados

Os resultados do trabalho são bastante visuais e estão contidos nas Figuras a seguir, montagem do circuito e fotos da placa.

Figura II-11 – Diagrama de blocos do projeto.

Figura II-12 – Ambiente utilizado para programação e sua linguagem própria Diablo16.

Page 18: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

Figura II-12 – Placa lendo um valor enviado pela FPGA (0,1,0);.

Figura II-12 – Valor do parâmetro sendo alterado através do slider touch-screen.

Figura II-12 – Valor do parâmetro fora da esfera. A interface emite um aviso e não desenha o ponto correspondente.

Page 19: CRIAÇÃO DE UM BANCO DE DADOS PARA … · Criação De Um Banco De Dados Para Monitoramento E Controle De ... Uma planilha em formato Excel contendo os nomes dos materiais, ... ligações

Departamento de Engenharia Elétrica

Referências

1 – AMARAL, Gustavo Castro do. FPGA Applications on Photon Detection Systems. MsC Thesis, DEE, PUC-Rio, March 2014.

2 – BHASKER, Jayaram. A VHDL Primer. 3. ed. New Jersey: Prentice Hall, 1999.

3 – GIUCA, Matt. Calculating the gluPerspective matrix and other OpenGL matrix maths. Disponível em: <http://unspecified.wordpress.com/2012/06/21/calculating-the-gluperspective-matrix-and-other-opengl-matrix-maths/ >.

4 – MIRANDA JUNIOR, Gastão Florêncio. Vetores e Geometria Analítica. São Cristóvão: Universidade Federal de Sergipe. CESAD, 2007.

5 – PERRY, Douglas L. VHDL: Programming by Example. 4. ed. New York: McGraw-Hill, 2002.

6 – TEMPORÃO, Guilherme Penello. Um Polarímetro de Baixo Custo. Dissertação de Mestrado, DEE, PUC-Rio, Julho de 2003.

7 – OpalKelly, XEM3005 User Manual, OpalKelly, Technical Report.

8 – Texas Instruments, ADS805e, Datasheet.

9 – General Photonics Corporation, POD-001 Poladetect, Operation Manual.

10 – DIABLO 16 internal functions Manual.