SISTEMA SUPERVISÓRIO UTILIZANDO REALIDADE AUMENTADA Daniel de Aranda Lima, Kenedy Lopes Nogueira, Keila Nogueira ([email protected] - [email protected]@hotmail.com) Fundação Educacional de Ituiutaba, Universidade do Estado de Minas Gerais Ituiutaba – MG, Brasil Resumo – A proposta desse artigo é desenvolver um Sistema Supervisório que utilizará a porta paralela do computador para monitorar sensores de temperatura de um forno que produz carvão vegetal. Para exibir os valores encontrados pelos sensores, além da forma convencional, também será usada a tecnologia da Realidade Aumentada, que será uma forma inovadora de visualização do tal sistema. O sistema de monitoramento será desenvolvido em linguagem C++, onde será possível monitorar sensores de temperatura através da porta paralela do computador. Para a visualização dos valores das temperaturas encontradas, será utilizado um aplicativo desenvolvido com a ferramenta ARToolKit, muito utilizada para o desenvolvimento de aplicações de Realidade Aumentada, pois opera através de técnicas de visão computacional, processamento de imagens e programação. Palavras-Chave – Automação Industrial, Realidade Aumentada, ARToolKit, Sistema Supervisório. SUPERVISORY SISTEM USING AUGMENTED REALITY Abstract - The purpose of this article is to develop a Supervisory System using the parallel port of computer to monitor the temperature sensors of a furnace that produces charcoal. To view the values found by the sensors, in addition to the conventional way, will also used the Augmented Reality technology, which will be an innovative way of viewing this system. The monitoring system will be developed in C + + language, where you can monitor the temperature sensors through the parallel port of your computer. To view the values of temperatures encountered, will be used an application developed with ARToolKit tool, widely used for developing applications of Reality Increased therefore operates through techniques of computer vision, image processing and programming. 1 Keywords – Industrial Automation, Augmented Reality, ARToolKit, Supervisory System. N de rodapé na página inicial será utilizada apenas pelo professor avaliador para indicar o andamento do processo de revisão. Não suprima eta nota de rodapé quando editar seu artigo. I. INTRODUÇÃO Este artigo destaca o uso da tecnologia da Realidade Aumentada agregada aos Sistemas Supervisórios convencionais, usados amplamente na indústria. A proposta deste trabalho é tornar a forma de visualização das informações apresentadas pelos Sistemas Supervisórios atuais mais atraente, usando para isso, técnicas de Realidade Aumentada. Como vantagem desta implementação, pode-se citar que o operador não terá a necessidade de estar diante da tela do computador para ter acesso às informações sobre temperatura recebidas pelo sistema, basta que esteja de posse dos óculos de Realidade Aumentada. Ao olhar para o forno em direção aos marcadores situados estrategicamente na mesma posição dos sensores, ele poderá visualizar os valores das temperaturas em tempo real. Além da contribuição tecnológica este artigo aborda também o uso dos Sistemas Supervisórios como forma de diminuir as perdas durante o processo de produção de carvão vegetal, diminuindo assim o impacto ambiental. II. MOTIVAÇÃO As técnicas de visão computacional e Realidade Aumentada têm ampla possibilidade de utilização em diversos setores da sociedade: Marketing, Medicina, Pedagogia, Educação, Treinamento, Indústria, Pesquisa Acadêmica, Entretenimento, Projetos de Engenharia, Teleconferência e Tele-Imersão, Movimentação de Robôs, Preservação Histórica, etc. A grande contribuição deste é a utilização de Realidade Aumentada para proporcionar ao usuário uma maior imersão onde combinando as cenas virtuais e ambientes reais em um ambiente único. III. FUNDAMENTOS TECNOLÓGICOS 1) ARToolKit - É uma biblioteca que usa técnicas de visão computacional para calcular o ponto de vista real da câmera em relação a um marcador no mundo real. Há vários passos, primeiro a imagem de vídeo é transformada em uma imagem binária (em P&B) baseada no valor do limiar de intensidade. Depois, busca-se nesta imagem por regiões quadradas. O ARToolKit encontra todos os quadrados na imagem binária, muitos dos quais não correspondem a marcadores de referência. Para cada quadrado, o desenho padrão dentro dele é capturado e comparado com alguns gabaritos pré-treinados. Se houver alguma similaridade, então o ARToolKit considera que encontrou um dos marcadores de referência. O ARToolKit usa então o tamanho conhecido do quadrado e a orientação do padrão encontrado para calcular a posição real da câmera em relação à posição real do marcador. Uma matriz 3x4 conterá as coordenadas reais da câmera em relação ao marcador. Esta matriz é usada para calcular a posição das coordenadas da câmera virtual. Se as coordenadas virtuais e reais da câmera forem às mesmas, o modelo de computação gráfica pode ser desenhado precisamente sobre o marcador real (figura 2). A API OpenGL é usada para calcular as coordenadas virtuais da câmera e desenhar as imagens virtuais.[6] Figura. 1. – Exemplo de marcador. Figura. 2. – Imagem do marcador transformada em P&B. Figura. 3. – Objeto 3D projetado sobre o marcador. 2) C++ Builder - O ambiente de desenvolvimento integrado (IDE) CodeGear™ C++ Builder® 2009 será utilizado para escrita do programa que receberá e processará as informações dos sensores de temperatura, pois possui melhor desempenho e confiabilidade. comandos e funções (200 comandos do core OpenGL e 50 da GLU - OpenGL Utility Library) que são usados para especificar os objetos e operações necessárias para produzir programas interativos com imagens coloridas e animação 3D. Existe praticamente uma implementação do OpenGL para cada tipo de plataforma. OpenGL não é uma linguagem de programação, é uma poderosa e sofisticada API (Application Programming Interface) para criação de gráficos 3D. É importante comentar que, para ser portável, OpenGL não possui funções para gerenciamento de janelas, interação com o usuário ou arquivos de entrada/saída. OpenGL fornece apenas um pequeno conjunto de primitivas gráficas para construção de modelos: pontos, linhas e polígonos. Já a biblioteca GLU (que faz parte da implementação OpenGL) possui várias funções para modelagem, tais como superfícies quadráticas, e curvas e superfícies NURBS (Non Uniform Rational B-Splines).[2] 5) LM35 - O sensor LM35 é um sensor de precisão, fabricado pela National Semiconductor, que apresenta uma saída de tensão linear relativa à temperatura em que ele se encontrar no momento em que for alimentado por uma tensão de 4-20Vdc e GND, tendo em sua saída um sinal de 10mV para cada Grau Celsius de temperatura, sendo assim, apresenta uma boa vantagem com relação aos demais sensores de temperatura calibrados em “KELVIN”, não necessitando nenhuma subtração de variáveis para que se obtenha uma escala de temperatura em Graus Celsius. O LM35 não necessita de qualquer calibração externa ou “trimming” para fornecer com exatidão, valores temperatura com variações de ¼ºC ou até mesmo ¾ºC dentro da faixa de temperatura de –55ºC à 150ºC. Este sensor tem saída com baixa impedância, tensão linear e calibração inerente precisa, fazendo com que o interfaceamento de leitura seja especificamente simples, barateando todo o sistema em função disto. Este sensor poderá ser alimentado com alimentação simples ou simétrica, dependendo do que se desejar como sinal de saída, mas independentemente disso, a saída continuará sendo de 10mV/ºC. Ele drena apenas 60µA para estas alimentações, sendo assim seu auto-aquecimento é de aproximadamente 0.1ºC ao ar livre. O sensor LM35 é apresentado com vários tipos de encapsulamentos, sendo o mais comum o TO-92, que mais se parece com um transistor, e oferece ótima relação custo benefício, por ser o mais barato dos modelos e propiciar a mesma precisão dos demais. A grande diversidade de encapsulamentos se dá devido à alta gama de aplicações deste integrado. [3] 3) VRML - Ferramenta usada para criar o mundo virtual. A Virtual Reality Modeling Language é uma linguagem que permite que se apresentem objetos e mundos tridimensionais através da World Wide Web.[1] 4) OpenGL - É uma biblioteca de rotinas gráficas e de modelagem, 2D e 3D, que estabelece para o programador uma interface com o hardware gráfico, independente da plataforma. Esta interface consiste de aproximadamente 250 Figura. 4. – Sensor de temperatura LM35. 6) Microcontrolador PIC16F877 - Trata-se de um microcontrolador da família de 8 bits e núcleo de 14 bits fabricado pela Microchip Technology. Possui memória flash de programa com 8192 palavras de 14 bits, memória RAM com 368 bytes e memória EEPROM com 256 bytes. Sua frequência de operação (clock) vai até 20MHz, resultando em uma velocidade de processamento de 5 MIPS. Seu conjunto de instruções RISC se compõe de 35 instruções. Pode funcionar com alimentação de 2V a 5,5V. Sua pinagem DIP tem 40 pinos. Como periféricos ele possui: • 5 conjuntos de portas de entrada e saída (total de 33 portas); • Conversor analógico-digital de 10 bits de resolução e 8 canais de entrada; • Periférico de comunicação paralela e serial (USART e MSSP); • 2 Módulos CCP (Comparação, Captura e PWM); • 3 Timers (1 de 16 bits e 2 de 8 bits); • Watchdog timer.[4] o circuito usual é bastante simples, necessitando apenas do sensor propriamente dito, um Microcontrolador PIC16F877 para converter o sinal analógico para digital e enviá-lo aos displays de 7 segmentos e em seguida ao computador pela porta paralela. Portanto, nesse projeto foi utilizado o sensor LM35 como sensor de temperatura atuando de modo simples e objetivo, enviando um sinal analógico que será convertido para digital e logo depois enviará aos displays de 7 segmentos e ao computador pela porta paralela, como pode ser visto em parte na figura 6 Figura. 6. – Circuito do termômetro. Figura. 5. – Microcontrolador PIC16F877. 7) Porta Paralela - A porta paralela do computador é o meio mais fácil para controlar dispositivos externos, como LEDs, lâmpadas e até mesmo eletrodomésticos. Atualmente, as impressoras vendidas no mercado utilizam conexão USB. Com isso, na maioria dos computadores modernos a porta paralela está disponível, podendo ser usada para controlar circuitos externos ao computador. Na verdade, a idéia por trás da porta paralela é muito simples. Ela é uma interface de comunicação paralela de 8 bits, e portanto tem-se oito bits disponíveis. Como cada bit de dados pode ser transmitido como “0” (desligado) ou como “1” (ligado), pode-se ligar ou desligar diretamente até oito dispositivos, como LEDs, lâmpadas e até mesmo eletrodomésticos.[5] IV. DETALHES DA IMPLEMENTAÇÃO Em um primeiro momento foi necessário desenvolver um termômetro para ser usado nos testes do sistema. No forno real as temperaturas são muito elevadas e por esse motivo os sensores originais não puderam ser utilizados. Tais temperaturas não poderiam ser alcançadas dentro de um laboratório e, portanto, seria impossível testar o funcionamento do Sistema Supervisório. Existem no mercado hoje em dia, diversos tipos de sensores de temperatura, que vão desde os NTC´s, PTC´s e diodos até os mais variados tipos de termopares, dentre outros. Porém, estima-se que talvez nenhum dos citados anteriormente seja de tão simples manuseio e exija tão poucos aparatos eletrônicos para que funcione, quanto o modelo LM35, pois Em um segundo momento, foi desenvolvida uma interface para o Sistema Supervisório utilizando o ambiente de desenvolvimento integrado (IDE) CodeGear™ C++ Builder® 2009. Nesta interface será utilizado o sistema de abas, onde cada uma delas apresentará uma forma diferente de visualização das temperaturas. Na primeira aba, como pode ser visto na figura 7, pode-se visualizar o forno lateralmente. As temperaturas são apresentadas em destaque posicionadas na direção dos sensores. As cores verde e vermelho são usadas para destacar se a temperatura está normal ou acima do normal. Esses valores são atualizados em tempo real. Quando as temperaturas ultrapassam um limite pré-estabelecido, os respectivos resfriadores são ligados. Isso pode ser visto na parte de baixo do sistema. Os estados de operação ON e OFF dos resfriadores também são destacados nas cores verde e vermelho. Na segunda aba, como pode ser visto na figura 8, pode-se visualizar o forno de maneira tridimensional. Ele dá um giro de 360º em torno de um eixo imaginário. Dessa forma o operador tem noção de todas as dimensões do forno. Assim como na primeira aba, as temperaturas também são mostradas em tempo real e nas cores verde ou vermelho, de acordo com seu nível. Na terceira aba, existe um gráfico também atualizado em tempo real. Neste gráfico é mostrada a evolução das temperaturas em função do tempo. A atualização se dá a cada 1 milissegundo para uma maior precisão. Isto poderá ser visto nas figuras a seguir. Já no topo do Sistema Supervisório, encontra-se um botão onde o operador pode habilitar a Realidade Aumentada, como pode ser visto na figura 10. Figura. 10. – Botão que habilita a Realidade Aumentada. Figura. 7. – Planta do forno de carvão vegetal. Figura. 8. – Modelo tridimensional do forno. Ao clicar nesse botão, basta que se coloquem os óculos de Realidade Aumentada para se ter uma total imersão em um mundo virtual. Desse modo, ao olhar para o forno em direção aos marcadores situados estrategicamente na mesma posição dos sensores, ele poderá visualizar os valores das temperaturas em tempo real. Isso se dá da seguinte forma: um marcador, como o da figura 1, foi previamente associado ao objeto virtual que, neste caso, é o valor da temperatura encontrada, em forma textual. Foi utilizado o ARToolkit combinando as cenas virtuais geradas pelo computador com o mundo real observado pelo usuário através da câmera situada na parte frontal dos óculos, possibilitando a adição de informações a este mundo. A câmera captura a imagem, localiza o marcador, o computador busca o objeto virtual (valor da temperatura) referente ao marcador daquele sensor, e insere conforme programado. Esses valores inseridos virtualmente, são as temperaturas coletadas pelo sensor LM35. Eles são atualizados em tempo real. V. CONCLUSÕES E TRABALHOS FUTUROS O circuito que contém o sensor já foi montado em placa de circuito impresso e os valores das temperaturas estão sendo mostrados corretamente através dos displays de 7 segmentos. Podemos perceber que os valores transmitidos até o Sistema Supervisório através da porta paralela estão sendo compatíveis com aqueles mostrados externamente nos tais displays. Isso nos leva a crer que a leitura e calibragem foi feita de maneira correta e satisfatória. Os mesmos valores podem ser vistos através do Sistema Supervisório de quatro formas diferentes: em uma planta em 2D do forno, em uma imagem tridimensional do forno, em forma de um gráfico que evolui com o tempo e em função da temperatura e através da Realidade Aumentada, onde basta posicionarmos a webcam ou um óculos de Realidade Aumentada para o marcador que os valores são exibidos em tempo real. Figura. 9. – Gráfico com a evolução da temperatura. REFERÊNCIAS BIBLIOGRÁFICAS [1] Cortona 3D. http://www.cortona3d.com/. 23/04/2009 18:00hs/19:00hs. [2] IMPA - Instituto Nacional de Matemática Pura e Aplicada. http://w3.impa.br/~lvelho/i3d01/demos/lourena/Introduc ao.htm. 27/04/2009 15:30hs/16:30hs. [3] Universidade de Caxias do Sul – Centro de Ciências Exatas e Tecnológicas – Departamento de Engenharia Mecânica. http://www.ucs.br/ccet/demc/vjbrusam/inst/temp51.pdf. 27/04/2009 16:30hs/17:30hs. [4] Wikipedia. http://pt.wikipedia.org/wiki/PIC16F877. 27/04/2009 18:30hs/19:30hs. [5] Rogercom – O maior conteúdo brasileiro sobre porta paralela. http://www.rogercom.com/. 27/04/2009 19:30hs/20:30hs. [6] Realidade Aumentada. http://realidadeaumentada.com.br/home/index.php?optio n=com_content&task=view&id=6&Itemid=28. 27/04/2009 20:30hs/21:30hs.