DESENVOLVIMENTO DE DIRIGÍVEL INDOOR CONTROLADO VIA RÁDIO FREQÜÊNCIA Felipe Victor Procópio1 Júlio Cesar Veríssimo2 Juliano Coelho Miranda3 RESUMO Este artigo tem o objetivo de descrever o desenvolvimento de um dirigível indoor rádio controlado e todas as tecnologias envolvidas em sua construção. Para esse fim foram utilizados conceitos de programação desktop (C#) e de micro controladores (PIC). O dirigível é basicamente constituído de: um balão inflado com gás hélio, uma estrutura de gôndola, uma câmera wireless e três motores de corrente contínua. Um dos motores controla o deslocamento do dirigível na direção horizontal, responsável pela propulsão. Um segundo motor controla o dirigível na direção vertical, responsável pela elevação. O terceiro motor localizado na parte traseira do balão é utilizado como leme, para controlar a direção do vôo. A câmera implantada na parte frontal do balão capta as imagens do ambiente. São apresentados maiores detalhes relativos ao desenvolvimento realizado (Hardware e Software) e o funcionamento do controle do dirigível no decorrer do artigo. Palavras Chave: dirigível, radio freqüência, gás hélio, aforge.NET, comunicação serial, módulos de comunicação Xbee. 1 Aluno do Curso de Ciência da Computação do Centro Universitário do Sul de Minas UNIS-MG. Email: [email protected]. 2 Aluno do Curso de Ciência da Computação do Centro Universitário do Sul de Minas UNIS-MG. Email: [email protected]. ³ Professor do Centro Federal de Educação Tecnológica CEFET, Ex Professor do Centro Universitário do Sul de Minas UNIS-MG. Email: [email protected]. 1. REFERENCIAL TEÓRICO 1.1. DIRIGÍVEL Um dirigível é uma aeronave mais leve do que o ar, que pode ser controlada. Ao contrário de aeronaves mais pesadas, os dirigíveis sustentam-se através do uso de uma grande cavidade que é preenchida com um gás menos denso do que o ar, como o gás hélio ou mesmo o inflamável gás hidrogênio. (DIRIGÍVEL..., 2010, P. 1). Figura 1: Dirigível. Atualmente no Brasil, dirigíveis a base de gás hélio são utilizados para fins publicitários e para realização de transmissões de TV em eventos esportivos. A mais famosa dessas aeronaves possui o nome de Ventura, sendo mais conhecida como dirigível da Goodyear, por ser de propriedade dessa fabricante de pneus. (DIRIGÍVEL..., 2010, P. 1). 1.2. ROBÓTICA Robótica é um ramo da tecnologia que engloba mecânica, eletrônica e computação, que atualmente trata de sistemas compostos por máquinas e partes mecânicas automáticas e controladas por circuitos integrados, tornando sistemas mecânicos motorizados, controlados manualmente ou automaticamente por circuitos elétricos. De uma forma geral, veículos robóticos abrangem sistemas aéreos, terrestres e subaquáticos. Na sua forma mais simples, esses sistemas podem ser operados remotamente, ou seja, controlados à distância por um operador humano, o tempo todo, para desempenhar determinada tarefa. Os sistemas robóticos aéreos são comumente denominados Veículos Aéreos Não-Tripulados (vants) ou, em Inglês, Unmanned Aerial Vehicles (uavs). Em termos de aeronaves, têm-se principalmente aviões, helicópteros e dirigíveis, existindo ainda propostas de aeronaves não convencionais. Apesar de serem mais lentos e menos manobráveis que aviões e helicópteros, dirigíveis necessitam despender menos energia e podem permanecer por longos períodos em vôo; têm a capacidade de pairar no ar sobre áreas de interesse; podem decolar e pousar verticalmente sem necessidade de infraestrutura complexa; apresentam grande capacidade de carga relativa ao próprio peso e degradam lentamente em caso de falha (usualmente não caem abruptamente). Essas características, dentre outras, fazem com que os dirigíveis sejam uma plataforma aérea particularmente adequada para um amplo conjunto de operações de observação remota. (ROBÓTICA AÉREA..., 2010, P. 1). 1.3. COMUNICAÇÃO SERIAL A maioria das mensagens digitais são mais longas que alguns poucos bits. Por não ser prático nem econômico transferir todos os bits de uma mensagem simultaneamente, a mensagem é quebrada em partes menores e transmitida sequencialmente. A transmissão bit-serial converte a mensagem em um bit por vez através de um canal. Cada bit representa uma parte da mensagem. Os bits individuais são então rearranjados no destino para compor a mensagem original. Em geral, um canal irá passar apenas um bit por vez. A transmissão bit-serial é normalmente chamada de transmissão serial, e é o método de comunicação escolhido por diversos periféricos de computadores. A transmissão byte-serial converte oito bits por vez através de oito canais paralelos. Embora a taxa de transferência seja oito vezes mais rápida que na transmissão bit-serial, são necessários oito canais, e o custo poderá ser maior do que oito vezes para transmitir a mensagem. Quando as distâncias são curtas, é factível e econômico usar canais paralelos como justificativa para as altas taxas de transmissão. A interface Centronics de impressoras é um caso típico de transmissão byte-serial. (PULGA, 2004). 1.3.1. - Taxa de Transferência (Baud Rate) A taxa de transferência refere-se à velocidade com que os dados são enviados através de um canal e é medido em transições elétricas por segundo. Na norma EIA232, ocorre uma transição de sinal por bit, e a taxa de transferência e a taxa de bit (bit rate) são idênticas. Nesse caso, uma taxa de 9600 bauds corresponde a uma transferência de 9600 dados por segundo, ou um período de aproximadamente, 104 ms (1/9600 s). Outro conceito é a eficiência do canal de comunicação que é definido como o número de bits de informação utilizável (dados) enviados através do canal por segundo. Ele não inclui bits de sincronismo, formatação, e detecção de erro que podem ser adicionados à informação antes da mensagem ser transmitida, e sempre será no máximo igual a um. 1.3.2. - Transmissão Assíncrona x Transmissão Síncrona Geralmente, dados serializados não são enviados de maneira uniforme através de um canal. Ao invés disso, pacotes com informação regulares são enviados seguidos de uma pausa. Os pacotes de dados binários são enviados dessa maneira, possivelmente com comprimentos de pausa variável entre pacotes, até que a mensagem tenha sido totalmente transmitida. O circuito receptor dos dados deve saber o momento apropriado para ler os bits individuais desse canal, saber exatamente quando um pacote começa e quanto tempo decorre entre bits. Quando essa temporização for conhecida, o receptor é dito estar sincronizado com o transmissor, e a transferência de dados precisa torna-se possível. Falhas na manutenção do sincronismo durante a transmissão irão causar a corrupção ou perda de dados. Duas técnicas básicas são empregadas para garantir a sincronização correta. Em sistemas síncronos, canais separados são usados para transmitir dados e informação de tempo. O canal de temporização transmite pulsos de clock para o receptor. Através da recepção de um pulso de clock, o receptor lê o canal de dado e armazena o valor do bit encontrado naquele momento. O canal de dados não é lido novamente até que o próximo pulso de clock chegue. Como o transmissor é responsável pelos pulsos de dados e de temporização, o receptor irá ler o canal de dados apenas quando comandado pelo transmissor, e, portanto a sincronização é garantida. (CANZIAN, 2009). 1.4. MICROCONTROLADOR PIC O PIC é um componente eletrônico pertencente à classe dos microcontroladores programáveis de arquitetura Harvard e conjunto reduzido de instruções (RISC). Em síntese, é um microcomputador completo, consistindo de uma memória RAM, memória não volátil EEPROM, memória de programa, controladores de E/S digital e analógica (opcional) em torno de uma CPU com um conjunto reduzido de instruções, dentro de um único chip. O PIC pode ser programado para executar diversas tarefas, como controlar um dispositivo eletromecânico, realizar medições, exibir informações em um display, ou simplesmente piscar luzes. A simplicidade, disponibilidade e o baixo custo são os principais atrativos do PIC. A programação pode ser feita em um PC com ferramentas disponíveis gratuitamente em Assembler ou C, mas requer o uso de um dispositivo programador para transferir o código do programa para dentro do PIC. Normalmente isto pode ser feito de duas maneiras: • Inserindo-se o PIC no soquete apropriado do programador. Posteriormente, o PIC é transferido para o circuito definitivo, onde pode ser soldado diretamente à placa de circuito impresso ou inserido em um soquete. • Conectando-se um programador serial em um soquete previamente soldado à placa de circuito impresso onde o PIC já reside. Isto é conhecido como InCircuit Serial Programming ou ICSP. Esta modalidade é bastante prática e causa menos estresse ao PIC, por evitar seu constante manuseio durante repetidos testes. Há vários tipos diferentes de programadores cujo projeto pode ser encontrado na Internet ou adquirido pronto de determinados fornecedores. A maioria deles é de fácil construção e podem ser conectados ou à porta paralela ou à porta serial do computador. De fato, qualquer computador que disponha de uma dessas interfaces pode ser usado para programar o PIC. (PIC MICRO..., 2010, P. 1). 1.5. RÁDIO FREQÜÊNCIA Rádio é um recurso tecnológico das telecomunicações utilizado para propiciar comunicação por intermédio da transcepção de informações previamente codificadas em sinal eletromagnético que se propaga através do espaço. O sistema de comunicação de rádio frequência é feito através de ondas eletromagnéticas propagadas no espaço, que por serem de comprimento diferente são classificadas em ondas curtas de alta frequência e ondas longas de baixa frequência, assim, utilizadas para fins diversos como televisão, rádio, avião, etc. Os sistemas de radiocomunicação normais são formados por dois componentes básicos: Transmissor – composto por um gerador de oscilações, que converte a corrente elétrica em oscilações de uma determinada frequência de rádio; um transdutor que converte a informação a ser transmitida em impulsos elétricos equivalentes a cada valor e um modulador, que controla as variações na intensidade de oscilação ou na freqüência da onda portadora, sendo efetuada em níveis baixo ou alto. Quando a amplitude da onda portadora varia segundo as variações da freqüência e da intensidade de um sinal sonoro, denomina-se modulação AM. Já quando a freqüência da onda portadora varia dentro de um nível estabelecido a um ritmo igual à frequência de um sinal sonoro, denomina-se modulação FM; Receptor – Tem como componentes principais: a antena para captar as ondas eletromagnéticas e convertê-las em oscilações elétricas; amplificadores que aumentam a intensidade dessas oscilações; equipamentos para desmodulação; um alto-falante para converter os impulsos em ondas sonoras e na maior parte dos receptores osciladores para gerar ondas de radiofrequência que possam se misturar com as ondas recebidas. (RADIO..., 2010, P. 1). 1.6. LINGUAGEM DE PROGRAMAÇÃO C# O C# (C Sharp) é uma linguagem de programação desenvolvida pela Microsoft que é completamente suportada pela plataforma .NET Framework, abrange o poder e a versatilidade do Visual Basic, a força e a criatividade do C++ e a inteligência do Javascript para validações. Além disso, por ser derivado de C++ e C e por possuir uma grande semelhança com a linguagem de programação Java, permitindo que desenvolvedores destas linguagens pudessem se adaptar com facilidade ao C#. Segundo HADDAD (2004) o impacto do C# no mercado foi tão grande que muitas ferramentas e plataformas deixaram de existir. O C# possuiu grandes vantagens, uma delas é a possibilidade de maior interatividade com os usuários, que passam a poder postar informações a qualquer momento, com o C# controlando o envio e recebimento de dados, principalmente a partir da mesma pagina. Outra vantagem na utilização de C# é a programação orientada a objeto, não possível em C e em Visual Basic. Segundo HADDAD (2004) este seria um dos melhores recursos oferecido por esta linguagem, visto que os códigos podem ser utilizados facilmente, pois existem heranças, polimorfismo e encapsulamento. Outro tão esperado recurso oferecido pelo C# é o recurso de programação orientada a evento, que significa não ter de programar linhas em Javascript para disparar os poucos eventos existentes em alguns controles. Em síntese, a linguagem de programação C# disponibiliza os seguintes aspectos: • Maior interatividade com os usuários; • Possui recurso de programação orientada a objeto; • Desenvolvimento em ambiente Windows; • Não precisa registrar componentes; • Possui fácil validação e tratamento de dados. (VANTAGENS..., 2010, P. 1). 1.6.1. AFORGE.NET FRAMEWORK O framework aforge.NET é escrito em C# e é projetado para desenvolvedores e pesquisadores nas áreas de Visão Computacional e Inteligência Artificial. Atua diretamente nas áreas de processamento de imagens, redes neurais, algoritmos genéticos, aprendizado de máquina, robótica. O framework é composto por um conjunto de bibliotecas e aplicativos de exemplo, e tem várias bibliotecas que demonstram suas características: • Aforge.Imaging Bibliotecas com funcionalidades de processamento de imagens e filtros. • Aforge.Vision Biblioteca de visão computacional. • Aforge.Neuro Biblioteca para redes neurais artificiais. • Aforge.Genetic Biblioteca para computação evolucionária. • Aforge.Fuzzy Biblioteca para lógica fuzzy. • Aforge.machinelearning Biblioteca para aprendizado de maquinas. • Aforge.Robotics Biblioteca que provê suporte a alguns kits para robótica. • Aforge.Video Conjunto de bibliotecas para processamento de vídeo. 2. DESENVOLVIMENTO Como já havia sido citado anteriormente o objetivo deste projeto é o desenvolvimento de um dirigível indoor radio frequência de baixo custo. Em um primeiro momento foi criado o protótipo do dirigível para testes referentes à estabilidade e velocidade do dirigível. Na segunda etapa, foi desenvolvido o software que é responsável pelo controle e captura de imagens através da câmera acoplada ao equipamento. 2.1. PROTOTIPAÇÃO Analisando as opções de dirigível (indoor, outdoor, rígido, flexível) foi necessária a criação de um protótipo para abstrair as funções e opções possíveis. O primeiro dirigível desenvolvido em nosso projeto possuía apenas dois motores, designados para propulsão e elevação e, não possuía um motor para controle de direção. Este era constituído de: - Três balões inflados de diâmetro 100 cm; - Dois motores (Propulsão e elevação); - Dois circuitos de rádio frequência (transmissor e receptor); - Uma bateria de 9 V para alimentação dos motores e do circuito. No primeiro instante, o intuito do desenvolvimento era apenas vislumbrar o que seria necessário para o desenvolvimento do projeto final. Era controlado por um Controle RF e inflado com gás hélio. O grande fator problema do protótipo era o peso dos equipamentos em relação à quantidade de gás hélio que seria utilizada. Um metro cúbico de hélio pode elevar cerca de 1000 gramas, por isso multiplicamos o volume do balão por 1000. Por exemplo: um balão de 6 metros possui um raio de 3 metros. 3* 3 * 3 * 3,14 * 4/3 = 113 m3 de volume. 113 m3 * 1000 gramas/m3 = 113.000 gramas ou 113 quilogramas. Realizando esses cálculos, levando em consideração o peso dos equipamentos, foi possível obter a quantia de hélio necessária para fazer o dirigível flutuar. 2.2. ARQUITETURA DO SISTEMA O sistema de comunicação aplicação/dispositivo será implementado na forma descrita pela figura 2 abaixo. Figura 2: Arquitetura de Comunicação do Sistema A comunicação será feita através do computador com a aplicação Visual C# que irá enviar/receber comandos através do Circuito Xbee transmissor o circuito transmissor logicamente necessita de um receptor que por sua vez será responsável por realizar a comunicação com o circuito que possui o PIC possibilitando assim a interpretação lógica dos comandos realizando o acionamento dos motores do dirigível. 2.3. DESENVOLVIMENTO DO CIRCUITO ELETRÔNICO O sistema de comunicação do dirigível deve possuir algo que faça a ligação entre a serial que irá receber os comandos e o PIC que será responsável por interpretar esses comandos através da sua programação sendo possível assim realizar o acionamento dos motores que irão movimentar o dirigível. Portanto para realizar essa comunicação foi criado um circuito eletrônico que foi constituído de: 2 Módulos X-Bee 1 Módulo Usb – Xbee 1 Led 1 Placa Perfurada Para que os módulos Xbee Tx e RX possam se comunicar é necessário que o pino RX do PIC esteja conectado ao pino TX do Xbee. E o pino TX do PIC ao RX do Xbee. Na figura 3 temos a arquitetura do circuito eletrônico desenvolvido para o dirigível utilizando o software Multisim: U1 LM7805CT V1 12 V LINE VOLTAGE VREG COMMON 0 C1 1mF 0 5 K1 Q1 R1 11 12 D1 1N4007 1 0 BC337 U2 17 18 1 2 3 RA0 RA1 RA2 RA3 RA4T0CKI 4 16 MCLR OSC1CLKIN 5 VSS VDD RB0INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 OSC2CLKOUT 14 6 7 8 9 10 11 12 13 15 R2 D2 1N4007 2 17 BC337 1mH 1 Ω 7 13 14 D3 1N4007 3 10 K 1kΩ 18 BC337 1mH 1 Ω 8 J3 K4 Q4 R4 15 K3 Q3 HDR1X2 J1 K 1kΩ R3 HDR1X2 16 K2 Q2 209 PIC16F84A 1mH 1 Ω 6 19 0 J2 K 1kΩ D4 1N4007 4 K 1kΩ BC337 1mH 1 Ω Figura 3: Arquitetura da placa principal. HDR1X8 2.4. VISUAL STUDIO – COMPONENTE PORTA SERIAL A comunicação serial utilizada nesse projeto será feita através de uma porta serial virtual emulada pelo dispositivo transmissor e receptor RF. A comunicação serial utilizando o Visual Studio 2008 é de simples implementação, podendo se utilizar de um componente já existente no C# que realiza comunicação com a porta serial. A comunicação funciona da seguinte forma: • Obtêm-se a conexão com a porta serial definindo a qual porta irá se conectar Ex: (COM1, COM2... Etc.). • Definir a que velocidade (baud rate) será realizada a transmissão • Definir os bits de paridade entre a comunicação • Utilizar no projeto a biblioteca using System.IO.Ports que é responsável por utilizar os dispositivos de interface externa do computador. Depois de realizadas estas etapas era necessário abrir a conexão com a porta serial para que fosse possível enviar comandos a serem executados pelo lado receptor da porta serial. 2.5. REALIZANDO COMUNICAÇÃO RÁDIO FREQUÊNCIA Para realizar a comunicação via rádio frequência entre computador e dirigível, foram utilizados dois módulos X-Bee Pro, um deles conectado à placa COM-USBEE ligada ao computador, que emulara uma porta serial e o outro ligado no circuito do dirigível. A escolha dos módulos foi feita devido à facilidade de implementação, pois não necessitam de nenhuma configuração, pela qualidade e alcance de comunicação, que chega à 100m em linha reta. Figura 4:Comunicação dos módulos X-Bee Pro 2.6. OBTER IMAGENS DE VÍDEO PARA O C# O projeto do dirigível Indoor RC possui uma câmera para captura de vídeo e exploração de ambientes possibilitando captação de imagens e também para que em futuros projetos fosse possível tornar-se um dirigível autônomo. Conhecendo as diversas opções de frameworks disponíveis para integração de vídeo no Visual Studio C#, a que mais se adequou ao projeto foi a Aforge 2.1, devido a sua fácil implementação e diversas fontes de pesquisa, incluindo o próprio site do desenvolvedor. Abaixo uma breve descrição: Aforge 2.1: Possui além das funções de captura de vídeo, funções de inteligência artificial e processamento de imagens já desenvolvidas, alem de ser escrito em C# e possuir código fonte livre e ampla documentação. 3. CUSTO DO PROJETO Apesar de ser um projeto com fins científicos e visando o menor custo possível alguns componentes geraram um custo aos participantes. Segue abaixo a planilha com os custos do projeto: Quantidade Componente Valor 2 Módulos Xbee R$ 160,00 1 Microcontrolador (PIC) R$ 80,00 1 Placa CON-USBBEE R$ 90,00 1 Placa PROTO-BEE R$ 25,00 100 lbs Gás Hélio R$ 120,00 3 Balões R$ 6,00 1 Câmera s/ Fio R$ 79,90 3 Motores R$ 7,80 3 Hélices R$ 6,50 Tabela 1: Tabela de custo (Desenvolvida pelos autores) 4. PROJETOS FUTUROS O projeto desenvolvido mostrou-nos as diversas aplicações possíveis ao nosso protótipo. Como desenvolvimento futuro, consideramos a opção de implantação de uma câmera de maior resolução, para que o sistema possa ser utilizado na vigilância de ambientes. Também a substituição dos motores por outros mais potentes para que o projeto possa se tornar um dirigível Outdoor, podendo assim explorar ambientes externos. Levando em conta a melhoria no dispositivo de captura de imagens, seria possível implementar o processamento de imagens utilizando o framework AFORGE.NET para sensoriamento de movimentos, cores e etc. Após ser implementado como dirigível Outdoor, novamente uma gama de possibilidades nos é proposta, podendo ser acoplado ao dirigível um modulo GPS para localização do equipamento. E como uma aplicação de extrema importância, devemos citar também o desenvolvimento de um dirigível autônomo, que através do processamento das informações do meio externo seria capaz de operar sozinho. 5. CONCLUSÃO Este projeto possibilitou aumentar nossos conhecimentos em diversas áreas da computação, como programação e eletrônica. Durante o decorrer do projeto, foram utilizadas várias ferramentas de desenvolvimento, como Visual Studio C#, para criação do software de controle com a utilização do framework AFORGE.NET para obtenção e tratamento de imagens utilizando câmera acoplada ao dirigível. Com a utilização dessas ferramentas foi possível obter uma visão de situações perfeitamente aplicáveis dentro da realidade do mercado de desenvolvimento de software. Com todo o desenvolvimento do projeto, percebemos as diversas possibilidades de aplicação do projeto sendo não somente para fins publicitários, como foi inicialmente proposto, mas possibilitando a exploração nas áreas de monitoramento de ambientes, sistema autônomo de navegação, entre outras. ABSTRACT This article describes the development of an indoor radio controlled blimp and all the technologies involved in the project. For this purpose, we used the concepts of desktop programming (C#) and microcontrollers (PIC). The blimp is basically composed of: a balloon inflated with helium gas, a structure for the gondola, a wireless camera and three DC motors. The first motor, controls the displacement of the blimp in the horizontal direction, it’s responsible for the propulsion. The second motor, controls the blimp in the vertical direction, it’s responsible for the floatation. The third motor, placed at the rear of the blimp, controls the direction of flight, like a rudder. The camera placed in front of the blimp captures images of the environment. More details concerning the development of the project (Hardware and Software) and the control operation of the blimp are presented. Keywords: blimp, radio frequency, helium gas, aforge.NET, serial communication Xbee communication modules. 6. REFERENCIAL BIBLIOGRÁFICO Dirigível, 2010, Disponível em: http://pt.wikipedia.org/wiki/Dirig%C3%advel em 17 Set. 2010 Rogercom, 2010, Disponível em: http://www.rogercom.com em 17 Set. 2010 Robótica, 2010, Disponível em: http://pt.wikipedia.org/wiki/Rob%C3%b3tica em 17 Set. 2010 PIC Micro hardware and software techniques to help you design your projects, 2010, Disponível em: http://pt.wikipedia.org/wiki/Rob%C3%b3tica em 19 Set. 2010 Rádio (comunicação), 2010, Disponível em: http://pt.wikipedia.org/wiki/R%C3%a1dio_frequ%C3%aancia em 17 Set. 2010 C# Comunicação Serial, Disponível em: http://underlineivan.blogspot.com/2010/06/acessando-porta-serial-com-c.html em 03 Out. 2010 Vantagens do C#, Disponível em: http://karhunkaatolaulu.blogspot.com/2008/01/vantagens-do-c.html em 03 Out. 2010 Desenvolvendo com Framework aforge.NET Disponível em: http://www.developerit.com/en/search/page-2/isapi-rewrite em 5 Out. 2010 Artigo Controlo de um Dirigível, Disponível em: http://ltodi.est.ips.pt/aabreu/relatoriofinal_dirigivel.pdf em 05 Out. 2010