UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO TECNOLÓGICO DEPARTAMENTO DE ENGENHARIA ELÉTRICA PROJETO DE GRADUAÇÃO SISTEMA DE CONTROLE AUTOMÁTICO DE POSIÇÃO PARA TELESCÓPIOS E RASTREAMENTO DE OBJETOS ASTRONÔMICOS ANGELO AUGUSTO FONTANA VITÓRIA - ES Setembro/2005 ANGELO AUGUSTO FONTANA SISTEMA DE CONTROLE AUTOMÁTICO PARA TELESCÓPIOS E RASTREAMENTO DE OBJETOS ASTRONÔMICOS VITÓRIA - ES Setembro/2005 ANGELO AUGUSTO FONTANA SISTEMA DE CONTROLE AUTOMÁTICO PARA TELESCÓPIOS E RASTREAMENTO DE OBJETOS ASTRONÔMICOS COMISSÃO EXAMINADORA: Prof Dr Hans-Jorg Andreas Schneebeli Orientador Prof Dr Raquel Frizera Vassallo Examinadora Prof Dr Paulo Faria Santos Amaral Examinador Vitória - ES, 10 de setembro de 2005 DEDICATÓRIA Aos meus pais, meus irmãos, minha namorada e às pessoas que sempre estiveram e estarão ao meu lado. i AGRADECIMENTOS Agradeço a todos que contribuíram direta ou indiretamente para que este trabalho fosse realizado. A Hans-Jorg pela orientação. Aos professores da Instituição UFES pelo conhecimento. ii LISTA DE FIGURAS Figura 1 - Montagens mais utilizadas: a) montagem equatorial. b) montagem azimutal. .................................................................................................................... 12 Figura 2 - Sistema de coordenadas Azimutal ............................................................ 14 Figura 3 - Visão geral do sistema .............................................................................. 15 Figura 4 - Níveis de tensão utilizados para alimentação do sistema. ........................ 17 Figura 5 - Diagrama de blocos do módulo de potência. ............................................ 18 Figura 6 - Estado das saídas do UCN5804 em função dos pinos de controle STEP INPUT, HALF STEP e DIRECTION. ......................................................................... 19 Figura 7 - Diagrama de blocos do módulo de controle. ............................................. 20 Figura 8 - Órbita modelo de planeta. Cada trajetória elíptica contém valores característicos em relação ao plano eclíptico, formado pela trajetória do planeta Terra. ......................................................................................................................... 24 Figura 9 - Exemplo do cálculo da menor distância para ser percorrida da posição atual até a posição de destino. a) L2 é a menor distância, portanto, o movimento deve ser anti-horário. b) L4 é a menor distância, portanto, o movimento deve ser horário. ...................................................................................................................... 26 Figura 10 - Fluxograma que mostra como o código decide por percorrer o menor caminho. .................................................................................................................... 27 Figura 11 - Rotina para o rastreamento de planetas. ................................................ 28 Figura 12 - Estrutura do programa. ........................................................................... 29 Figura 13 - Byte de comando para o calendário/relógio ou endereço para a RAM. .. 30 Figura 14 - Leitura e escrita de um byte de dados. Primeiro uma seqüência de bits de comando (1 byte), logo em seguida, o dado a ser transmitido (1 byte). Note que na leitura o dado só é enviado a linha I/O na transição negativa. ............................. 31 Figura 15 - Seqüência para registro no DS1302. É necessário para cada item (dia, mês, ano, semana, hora, minuto e segundo). O valor de cmd diz o tipo de registro, e data o valor deste registro. Os bits são enviados e recebidos serialmente a partir do LSB. ..................................................................................................................... 32 Figura 16 - a) Seqüência para envio de uma string ao controlador do visor. Considerando que a variável string é um vetor cujos elementos são um byte, primeiro é enviado o nibble mais significativo em seguida o nibble menos iii significativo. O deslocamento do ponteiro da memória é realizado automaticamente. b) Seqüência para envio de comando como limpar tela, posicionar ponteiro da memória RAM, etc... .................................................................................................. 33 Figura 17 - Projeto do telescópio elaborado em AutoCAD. ....................................... 34 Figura 18 - Instalação dos motores de passo associados a redutores de sistema de vidro elétrico automotivo. .......................................................................................... 35 Figura 19 - Base do telescópio com um modelo de pequeno porte. ......................... 35 Figura 20 - Foto da placa do módulo de potência. .................................................... 36 Figura 21 - Foto da placa de ensaio do LAI e periféricos. ......................................... 37 Figura 22 - Projeção fora do papel devido folgas do sistema mecânico. .................. 38 Figura 23 - Resultados obtidos no teste de compensação de folgas. a) posição da origem; b) posição após 6 operações; c) posição após 12 operações. ..................... 38 Figura 24 - Sistema de coordenadas azimutal. O astro M tem coordenadas h (altura) e A (azimute). Os “pólos” deste sistema são o zênite e o nadir. O azimute é medido a partir do Norte em direção ao Oeste, ao longo do horizonte (o círculo principal neste sistema). A altura é positiva em direção ao zênite e negativa em direção ao nadir. Também são mostrados na figura os eixos cartesianos x, y e z.... 43 Figura 25 - Esquemático de ligação do módulo de potência. .................................... 45 Figura 26 - Esquemático de ligação da placa de ensaio do LAI-UFES [19]. ............. 45 Figura 27 - Fluxograma que mostra a decisão tomada para registro do movimento. Toda vez que o movimento muda de direção alguns passo são dados sem registro para compensar folgas do sistema mecânico. .......................................................... 46 Figura 28 - A rotina mostra que o modo HALF STEP é usado somente nas proximidades da posição de destino, garantindo precisão e rapidez durante o movimento. A variável margem é o numero de passos em torno da posição de destino. D é a posição de destino e A é a posição atual. .......................................... 47 iv LISTA DE TABELAS Tabela 1 - Comparação dos resultados dos cálculos do MSP com mapas celestes eletrônicos ................................................................................................................. 39 v GLOSSÁRIO CPU - Unidade Central de Processamento. I/O - Input/Output (entrada/saída), dados recebidos ou enviados. LSB - Less Significative Bit (Bit Menos Significativo), bit menos significativo de um registro. MSB - More Significative Bit (Bit Mais Significativo), bit mais significativo de um registro. Nibble - Metade de um byte, unidade de informação de 4 bits. Periélio - Ponto da órbita de um astro cuja distância ao Sol é a menor possível. (antônimo de afélio). RAM - Random Access Memory, Memória de Acesso Aleatório. RISC - Reduced Instruction Set Computer, processador que a quantidade de instruções que ele pode executar foi diminuída para permitir uma freqüência de trabalho mais rápida. menos Sistema geocêntrico - Sistema que considera a Terra como o centro do universo. Sistema heliocêntrico - Sistema que considera o Sol como o centro do universo. vi SUMÁRIO DEDICATÓRIA ........................................................................................................... I AGRADECIMENTOS ................................................................................................ II LISTA DE FIGURAS ................................................................................................ III LISTA DE TABELAS ............................................................................................... V GLOSSÁRIO ........................................................................................................... VI SUMÁRIO ............................................................................................................... VII 1 INTRODUÇÃO .................................................................................................... 10 1.1 Motivação ...................................................................................................... 10 1.2 Definição do Problema .................................................................................. 10 1.3 Metodologia .................................................................................................. 11 1.3.1 Definição dos Movimentos ................................................................... 11 1.3.2 Sistema de Controle ............................................................................ 12 1.3.3 Disposição do Hardware ...................................................................... 12 1.3.4 Código de Controle .............................................................................. 13 2 DESCRIÇÃO DA SOLUÇÃO ............................................................................. 14 2.1 Definição do Hardware.................................................................................. 14 2.2 Definição de Software ................................................................................... 16 3 DESCRIÇÃO DO HARDWARE .......................................................................... 17 3.1 Alimentação .................................................................................................. 17 3.2 Módulo de Potência ...................................................................................... 18 3.2.1 Controladores de Motor de Passo ....................................................... 18 3.2.2 Buffers ................................................................................................. 19 3.3 Módulo de Controle ....................................................................................... 20 3.3.1 Microprocessador ................................................................................ 20 3.3.2 Calendário ........................................................................................... 21 3.3.3 Visor .................................................................................................... 21 3.3.4 Teclados .............................................................................................. 22 3.3.5 Buffers ................................................................................................. 22 4 DESCRIÇÃO DO SOFTWARE ........................................................................... 23 4.1 Cálculo da Posição dos Astros ..................................................................... 23 4.2 Função Deslocamento .................................................................................. 25 vii 4.3 Função Rastreamento de Planetas ............................................................... 28 4.4 Menu de Opções ........................................................................................... 28 4.5 Interface ........................................................................................................ 30 4.5.1 Módulo de Potência ............................................................................. 30 4.5.2 Calendário/Relógio .............................................................................. 30 4.5.3 Visor Alfanumérico ............................................................................... 32 5 CONSTRUÇÃO E TESTES ................................................................................ 34 5.1 Construção Mecânica ................................................................................... 34 5.2 Confecção dos Módulos ................................................................................ 36 5.3 Testes ........................................................................................................... 37 5.3.1 Folgas .................................................................................................. 37 5.3.2 Cálculos ............................................................................................... 39 5.3.3 Rastreamento ...................................................................................... 39 6 CONCLUSÕES E TRABALHOS FUTUROS ...................................................... 41 APÊNDICE A .......................................................................................................... 43 APÊNDICE B .......................................................................................................... 45 APENDICE C .......................................................................................................... 46 REFERÊNCIAS BIBLIOGRÁFICAS ....................................................................... 48 viii RESUMO O interesse pela astronomia vem adquirindo grande importância no Brasil. Isso se deve principalmente às conquistas e descobertas espaciais da humanidade nos últimos anos. A Astronomia é uma das poucas ciências onde amadores possuem um papel ativo, especialmente na descoberta e monitoração de fenômenos temporários. Para fazer parte deste grupo de pessoas que adora estudar astros e estrelas e iniciar uma observação do céu basta adquirir um simples binóculo. Entretanto estes pequenos equipamentos são limitados e uma grande gama de eventos não podem ser observados. Para que os estudos sejam mais aprofundados e explorados é necessário possuir um bom equipamento. Atualmente existe no mercado uma grande variedade de equipamentos telescópicos. Existem desde equipamentos mais simples com posicionamento manual até os mais sofisticados, onde o posicionamento é microprocessado e atuado eletronicamente. Sem dúvida, os equipamentos com mais sofisticação são também os mais caros e estes estão longe da realidade da maioria das pessoas, principalmente no Brasil onde estes equipamentos são taxados pela importação. Para suprir esta necessidade de aparelhamento para auxiliar no estudo dos astros e que esteja ao alcance de todos, desenvolveu-se um sistema de posicionamento para telescópios de baixo custo capaz de rastrear objetos astronômicos. O projeto consiste na construção de um protótipo contendo, além das partes mecânicas, um dispositivo eletrônico microprocessado com uma boa gama de funcionalidades. Dentre elas está o rastreamento dos planetas, que é feito através da atualização dinâmica da posição dos astros por cálculos astronômicos já conhecidos. O sistema deverá ser autônomo e ainda possuir uma grande capacidade para expansão. Espera-se, com o desenvolvimento deste sistema, atender todas as necessidades de uma observação de qualidade para que os estudos realizados por amadores obtenham resultados profissionais. ix 10 1 INTRODUÇÃO 1.1 Motivação A automação de telescópios é muito importante para a astronomia, o que permite uma maior comodidade, velocidade e segurança na observação prolongada de astros celestes. Muitas vezes é necessário um longo tempo de observação para que seja registrado um fenômeno ou dados sejam coletados para um posterior estudo. Sistemas automatizados dessa natureza são conhecidos como Star Tracker. Assim como a astronomia profissional, a amadora também pode tirar proveito desta tecnologia com equipamentos portáteis existentes no mercado. Porém o custo destes equipamentos é inacessível à maioria das pessoas. Para preencher esta lacuna e aumentar o interesse do público neste ramo de atividade, desenvolveu-se um sistema de controle automático para telescópios de baixo custo com os atributos oferecidos pelos equipamentos profissionais. 1.2 Definição do Problema Para concretizar um sistema que posiciona um objeto que está a milhões de quilômetros de distância, é necessário observar alguns tópicos. O sistema deve controlar uma montagem simples que se movimenta de maneira suave, e sua estrutura deve ser robusta para evitar vibrações causadas por interferências mecânicas externas. Devido ao campo de visão dos telescópios ser limitado a valores muito pequenos, deve ser previsto um sistema que garanta uma precisão compatível com esta abertura. Portanto, um bom sistema mecânico ajudaria no desenvolvimento do sistema de controle. Quanto maior for o valor de redução das engrenagens acopladas aos motores, mais lento é o processo. Os atuadores (motores e engrenagens) responsáveis por realizar os movimentos da estrutura mecânica devem responder de maneira rápida aos comandos de controle, permitindo um sistema dinâmico com velocidades compatíveis ao movimento dos astros no céu. O comando destes atuadores deve ser simplificado minimizando a estrutura do código de controle. 11 A fidelidade nos resultados dos cálculos em hardware com relação aos cálculos astronômicos viabilizaria uma execução eficiente e precisa dos movimentos garantindo segurança nos dados coletados. Portanto a escolha do microcontrolador é muito importante. Deve possuir um sistema estável e com interface amigável. 1.3 Metodologia Primeiramente, verificar quais os movimentos (sistema de coordenadas) seriam controlados e as possíveis aplicações mecânicas que possibilitariam estes movimentos. Em seguida estudar as soluções que deverão atuar sobre a estrutura mecânica. Pois, a escolha dos componentes pode definir a complexidade do código de controle. Definir o desenvolvimento estrutural do software buscando um sistema otimizado e, por conseqüência, um processo mais eficiente. Por fim, o desenvolvimento de uma interface amigável e a escolha dos periféricos adequados poderão enriquecer a operação do sistema de controle tornando-a mais fácil e agradável. Em suma, o estudo parte da estrutura que define o movimento. 1.3.1 Definição dos Movimentos Há vários tipos de estruturas que podem ser aplicadas à base de telescópios, dentre elas destacam-se as montagens Equatorial e Azimutal [1]. A escolha do tipo de montagem é fundamental para o desenvolvimento do código de controle, pois possuem características de comando bem diferentes. Ambas as alternativas possuem dois eixos, a diferença está no posicionamento. A Equatorial possui um eixo posicionado paralelamente ao eixo de rotação da terra e outro fixo e perpendicular ao primeiro eixo. Sua construção requer muitas peças tornando-a muito complexa. 12 Na montagem Azimutal um dos eixos é perpendicular ao solo e o outro eixo é responsável pela inclinação. Possui um sistema de coordenadas simples e de fácil manuseio. A Figura 1 mostra as montagens mais utilizadas em equipamentos amadores. Figura 1 - Montagens mais utilizadas: a) montagem equatorial. b) montagem azimutal. A montagem Azimutal foi a alternativa escolhida por ter um sistema de coordenada compatível com o sistema tratado nos cálculos astronômicos. 1.3.2 Sistema de Controle Umas das alternativas seria a construção de um sistema de controle com malha fechada atuando sobre motores de corrente contínua. Entretanto, seria necessária a utilização de codificadores de posição (encoders) associados a reduções para obter grande precisão de deslocamento e leitura de posição, tornando o código complexo e o projeto caro. A melhor opção foi utilizar motores de passo já que a posição tomada por eles não sofre tanto com interferências externas, podendo garantir sua posição através apenas dos comandos de controle. Assim, os motores de passo podem ser usados em circuitos abertos, sem qualquer realimentação de controle. 1.3.3 Disposição do Hardware Todo o sistema poderia ser desenvolvido em um único módulo para facilitar a instalação e o manuseio, mas os componentes de potência poderiam afetar os 13 componentes mais sensíveis devido a alterações elevadas de temperatura. Definiuse a separação em dois blocos. Um acomodaria os componentes mais robustos e menos sensíveis a ruídos e o outro garantiria a proteção dos componentes mais sensíveis, evitando interferências externas. Os dois módulos estariam interligados remotamente via cabo, oferecendo liberdade de movimento ao operador. 1.3.4 Código de Controle O movimento dos planetas já é conhecido pelos astrônomos, e, através de cálculos matemáticos em função da data atual, é possível prever a posição dos astros em sua trajetória. Combinado com geometria espacial é possível se chegar aos valores do Azimute e Altura da posição dos Astros em relação à localização global do observador [2]. Contudo, a velocidade de execução e a precisão dos valores devem ser cabíveis a esse tipo de sistema, garantindo a eficiência e satisfação nos resultados. A contagem do tempo poderia ser feita pelo próprio microcontrolador. Uma rotina de interrupção atualizaria os dados de um calendário necessário para consultas durante o rastreamento. Porém, a utilização de um circuito autônomo que processa um calendário tornaria o código menor e menos pesado, economizando espaço na memória e processamento do microcontrolador. Este componente receberia um registro inicial e passaria a contar o tempo, quando necessário poderia ser consultado. Quando o sistema estiver desligado este calendário estaria alimentado por bateria, garantindo o contínuo funcionamento. 14 2 DESCRIÇÃO DA SOLUÇÃO Por se tratar de uma montagem simples e barata exigindo menor complexidade do sistema de controle, foi escolhida a estrutura com Montagem Azimutal [1], cujo sistema de coordenadas está ilustrado na Figura 2. Nesta montagem o telescópio gira em torno de um eixo vertical que faz com que o tubo realize um movimento paralelo ao horizonte. A montagem Figura 2 - Sistema de coordenadas Azimutal apresenta também um outro eixo na posição horizontal que permite um movimento de altura. Esse tipo de estrutura normalmente é montada sobre um tripé simples o que a torna uma montagem leve e de fácil manuseio. No Apêndice A há mais informações sobre o sistema de coordenadas Azimutal. Para acompanhar um determinado astro e mantê-lo centralizado no campo de visão do telescópio, é preciso acionar ambos os movimentos. Por esses motivos a montagem Azimutal apresenta um bom desempenho. Para movimentar estes eixos os motores devem conter o torque necessário para movimentar toda a estrutura, além de suportar forças externas contrárias ao movimento. Portanto, foram utilizados motores de passo de baixo grau, e combinado com uma redução alta proporcionou-se grande precisão e torque. Devido aos motores de passo, foi desnecessário o uso de um controle de malha fechada já que a partir dos comandos efetuados já se sabe a posição exata do movimento. A partir destes dados pode-se definir o sistema de controle usado. 2.1 Definição do Hardware O sistema escolhido é composto basicamente por dois módulos como mostra a Figura 3. 15 12 Volts MÓDULO DE POTÊNCIA MÓDULO DE CONTROLE MOTORES DE PASSO Figura 3 - Visão geral do sistema O módulo de potência é responsável pela alimentação de todo o sistema tanto de baixas quanto de altas potências. Este módulo possui uma alimentação não regulada para os motores e uma fonte regulada que alimenta todos os componentes de controle. Para simplificar o código e economizar espaço em placa utilizou-se controlador de motor de passo UCN5804 de alta potência para o controle. Seu acionamento é oriundo do módulo de controle. O módulo de controle é responsável pelo controle e processamento do algoritmo e nele está localizada toda a interface com o usuário. Há um visor alfanumérico que mostra o status do sistema e um teclado para inserção de dados e escolha de procedimentos. Inicialmente foi testado um microcontrolador de 8 bits para o sistema. Apesar de atender a estrutura do código que realiza o movimento, o microcontrolador testado não tem capacidade para manipular grandes variáveis e retornar resultados com precisão. Devido à necessidade de precisão e rapidez nos cálculos, foi escolhido o microcontrolador de 16 bits da Texas Instruments da família MSP430, que, além de atender aos critérios, pôde ser adquirido gratuitamente no site de seu fabricante. Para economizar espaço na memória e processamento do microcontrolador foi decidida a utilização do Real Time Clock DS1302, esse possui um processamento autônomo e é responsável por registrar e contar a data e horário. 16 2.2 Definição de Software Devido à facilidade de programar e possuir diversas ferramentas para compilação, foi utilizada a linguagem C para desenvolver o programa que executa no microcontrolador. [3]. O comando para o movimento da estrutura deve ser simplificado. É necessário apenas dizer qual a direção e o tipo de passos que devem ser realizados. O movimento Azimutal é limitado em 90 graus para Altura e tem liberdade total no Azimute. Este, antes de iniciar um movimento, define qual o menor caminho a percorrer. Além disso prevê compensação de folgas do sistema mecânico. O código permite a comunicação entre o microcontrolador e os periféricos. O Visor Alfanumérico informa o estado do sistema. O Calendário/Relógio é para que registro da data/horário e consulta do tempo durante a contagem sejam realizados quando solicitados. Um programa amigável para o usuário facilita o manuseio e entendimento do sistema, portanto decidiu-se por um programa que possui um menu de opções explicativo onde pode-se escolher basicamente entre rastrear objeto (principal função do sistema), posicionar, configurar data, hora e local e calibrar: Rastrear objetos - A partir de algoritmos já conhecidos que obtém a localização dos astros e estrelas em função da hora, data e posicionamento global do telescópio pode-se determinar a posição Azimutal do planeta escolhido. Assim, o microcontrolador pode atuar sobre o controlador de motor de passo mantendo o astro no campo de visão do telescópio. Posicionar - Com o uso dos teclados pode-se inserir a posição desejada para o posicionamento. Configurar data, hora e local - O usuário deve inserir a data e horário atual para registro no calendário e permitir a contagem do tempo para consultas realizadas na opção rastrear objetos. Calibrar - Para obter o referencial. 17 3 DESCRIÇÃO DO HARDWARE O sistema é composto por dois módulos: potência e controle. A separação em módulos é baseada nas características dos componentes que compõem, diminuindo as interferências, principalmente temperatura e ruído, causadas por componentes de alta potência em circuitos de sinais mais sensíveis. 3.1 Alimentação Para garantir compatibilidade com várias fontes disponíveis no mercado e a possibilidade do uso em baterias automotivas, foi determinada uma alimentação geral de 12 Volts. A partir da tensão de entrada obtêm-se os níveis de tensão necessários para o funcionamento do sistema. O nível de tensão para os componentes de baixa potência é regulado por um regulador de tensão 7805 [4], obtendo 5 Volts. A tensão de 3,3 Volts que alimenta o microcontrolador é fornecida pelo regulador TPS76933 da Texas Instruments [5] situado no módulo de controle. Os motores utilizados são motores de passo unipolares de 4 fases com tensão nominal de 6 Volts e corrente nominal de 1,2 Amperes por fase. O módulo de potência fornece o nível de tensão para os motores a partir da associação em série com resistores de potência (10 Watts) de mesmo valor ao dos enrolamentos de 5 Ohm, obtendo a tensão necessária nos terminais. Na Figura 4 é mostrado o caminho da alimentação de todo o sistema. MÓDULO DE POTÊNCIA Regulador 5 V 5 volts 12 V R 6V UCN5804 SN74AHC244 MÓDULO DE CONTROLE Regulador 3,3 V 3,3 volts Visor LCD SN74AHC244 DS1302 Micro controlador Teclados MOTORES DE PASSO Figura 4 - Níveis de tensão utilizados para alimentação do sistema. 18 3.2 Módulo de Potência Este módulo recebe alimentação externa de 12 Volts e fornece energia para todos os componentes eletro-eletrônicos do sistema. Inclui os componentes de alta potência que atuam sobre os motores de passo como os controladores. Assim, a circulação do ar no interior do módulo se fez necessária através de um ventilador de 12 Volts evitando qualquer problema com temperatura. Na Figura 5 está o diagrama de blocos do módulo de potência. O Apêndice B mostra com mais detalhes as ligações dos componentes. UC3611 5V R UCN5804 12 V R R STEP 5V DIRECTION HALF STEP RJ-45 R 74HC244 UCN5804 MOTOR AZIMUTE DIRECTION HALF MOTOR ALTURA UC3611 Figura 5 - Diagrama de blocos do módulo de potência. 3.2.1 Controladores de Motor de Passo O comando dos motores de passo deverá ter um número reduzido de linhas de sinais provenientes do módulo de controle e atender aos dados de placa dos motores de 6 volts de tensão nominal e 1,2 Amperes de corrente nominal por fase. Portanto, os motores utilizados são atuados via controladores de motor de passo UCN5804 que por sua vez são comandados pelo microcontrolador. Os UCN5804 são controladores de alta potência para motores de passo unipolares com quatro fases. Possuem 4 saídas com capacidade de conduzir 1,25 Amperes por fase e podem ser alimentados com até 35 Volts. [6]. Deste modo, os controladores satisfazem os critérios mínimos para o funcionamento dos motores. O controle e a seqüência das saídas são efetivados através das transições no pino de entrada STEP INPUT (Entrada de passo) e estado dos pinos DIRECTION (Direção) e HALF STEP (Meio passo), conforme a Figura 6. Os pinos OUTPUT 19 ENABLE (Saída habilitada) e ONE-PHASE (Uma Fase) foram colocados em nível lógico baixo determinando que o sistema esteja habilitado e sempre alimentando duas fases dos motores. O uso de apenas três pinos de controle para cada motor simplifica as funções do código, além de minimizar o número de vias de sinais que percorrerá desde o módulo de controle até o módulo de potência. UCN5804 STEP INPUT HALF STEP DIREITA - DIRECTION = LOW OUTPUT A OUTPUT B OUTPUT C OUTPUT D ESQUERDA - DIRECTION = HIGH PASSO = 1,8º PASSO = 0,9º Figura 6 - Estado das saídas do UCN5804 em função dos pinos de controle STEP INPUT, HALF STEP e DIRECTION. Nas saídas dos drivers de motor de passo são colocados diodos schottky (internos ao circuito integrado UC3611) em paralelo as vias de saída dos UCN5804 evitando a geração de uma tensão indutiva reversa nas transições que chega a ser elevada o bastante para destruir a eletrônica de controle. [7]. 3.2.2 Buffers A idéia de dois módulos vem da utilização remota do módulo de controle, podendo o usuário controlar à distância (via cabo de aproximadamente 1 metro) os movimentos do telescópio. Porém, devido ao fato do microcontrolador não fornecer corrente suficiente nos pinos de saída o sinal, depois de percorrido alguns centímetros, pode perder significado comprometendo a comunicação. Portanto definiu a necessidade do uso de circuitos integrados 74HC244 nas saídas do módulo de controle e entrada do módulo de potência. Cada 74HC244 possui oito buffers não inversores. [8]. No caso dos buffers localizados no módulo de potência, esses são responsáveis por recuperar todos os sinais de comando provenientes do módulo de controle e conduzir aos pinos de entrada do UCN5804. 20 3.3 Módulo de Controle A partir deste módulo, pode-se controlar e observar o status do sistema. A alimentação do módulo de controle é procedente do módulo de potência. É onde está localizado o microcontrolador, o calendário eletrônico que fará a contagem do tempo, os teclados para inserção de dados e um visor alfanumérico. A Figura 7 mostra a composição do módulo de controle. Foi aproveitada a placa de ensaio do Laboratório de Automação Inteligente (LAI) da UFES para a gravação do código por BSL. Os periféricos foram soldados na área de prototipagem em wire-wrap e conectados aos conectores das portas I/O do MSP. [19]. O Apêndice B mostra com mais detalhes as ligações dos componentes da placa de ensaio do LAI. RJ-45 5V ACRÉSCIMO DECRÉSCIMO MSP 430 DIREITA RS E D4 R/W D5 D7 D6 Visor alfanumérico 5V I/O CE 3,3 V SCLK ESQUERDA HALF DIRECTION HALF MENU 5V 74HC244 3,3 V STEP STEP 3,3 V TECLADOS DIRECTION 74HC244 DS1302 Figura 7 - Diagrama de blocos do módulo de controle. 3.3.1 Microprocessador É o mais importante dos componentes. É nele que todo o processo é gerenciado. O grande motivo que definiu a escolha do microcontrolador para este sistema foi a garantia de que os cálculos astronômicos da posição de planetas seriam executados com rapidez, gerando resultados com precisão numérica satisfatória. Deste modo foi escolhido um microcontrolador com arquitetura RISC de 16 bits combinada com freqüência de operação elevada. O chip MSP430F149 é um microcontrolador programável que combina alta precisão e consumo extremamente reduzido de potência. Adquirido junto a Texas 21 Instruments, o MSP430 é um microcontrolador de baixo consumo, reúne uma CPU com arquitetura RISC de 16 bits, 48 pinos de I/O, trabalha com freqüência de até 8 MHz, possui 60 KBytes de memória Flash integrada e 2 KBytes de memória RAM. [9]. A interface com vários periféricos é possível devido ao número elevado de portas úteis para I/O. O extenso espaço disponível para programação permite um código rico em aplicações e informações, tornando mais compreensivo para o usuário em qualquer processo. A utilização da interface JTAG para gravação e depuração permite que o projetista realize a programação e a depuração do seu software diretamente na placa de aplicação, sem a necessidade de utilização de equipamentos dispendiosos como emuladores. [10]. Também é possível realizar gravação via comunicação serial BSL. [11]. 3.3.2 Calendário Para economizar memória e processamento do microcontrolador foi decidido pelo uso de um Calendário/Relógio (Real Time Clock - RTC) capaz de processar a data e horário formados pelo dia, mês, ano, semana, hora, minuto e segundo. Assim foi feita a escolha do chip DS1302 que permite o registro, a consulta e a contagem do tempo baseada em um oscilador de 32768 kHz externo ao componente. A comunicação do Calendário/Relógio eletrônico com o microcontrolador é via uma simples interface serial síncrona e são usados apenas três terminais: CE (habilitação), I/O (via de dados) e SCLK (clock serial). Possui também um terminal para alimentação via bateria que mantém o chip ligado sem perder o processamento. [12]. 3.3.3 Visor A fim de manter uma interface com o operador foi utilizado um visor alfanumérico de 16 colunas e 2 linhas compatível com o controlador HD44789. Foram utilizados os pinos de controle RS (tipo de dados - instrução ou valor), R/W (fluxo de dados - leitura ou escrita) e E (sinal de clock) para operação. Para 22 simplificar e economizar o número de I/O do microcontrolador MSP foram usados apenas 4 bits do barramento dos dados, configuração permitida pelo controlador do visor. [13]. A comunicação é feita unidirecionalmente. O flag interno ao controlador HD44789 que indica linha de dados desocupada, não foi utilizado. Apenas é aguardado o instante necessário para um novo envio de dados. Assim o visor pôde ser ligado ao microcontrolador através do 74HC244 (buffer unidirecional) para interface entre os dois diferentes níveis de tensão dos sinais, 5 Volts para o visor e 3,3 Volts para o microcontrolador. 3.3.4 Teclados Existem 5 teclas em configuração PUSH UP para manuseio e inserção de dados. As funções das teclas são MENU/OK, ACRÉSCIMO, DECRÉSCIMO/CANCELA, DIREITA e ESQUERDA. 3.3.5 Buffers Os buffers do módulo de controle são idênticos aos do módulo de potência, porém, no módulo de controle existem dois 74HC244. Um é para garantir a comunicação entre o microcontrolador e os controladores de motor de passo UCN5804 localizados no módulo de potência, o outro é para interface com periféricos de níveis de tensão TTL com o microcontrolador CMOS. 23 4 DESCRIÇÃO DO SOFTWARE 4.1 Cálculo da Posição dos Astros O cálculo da posição de um planeta foi a maior obra de Johannes Kepler, que primeiro conseguiu equacionar suas órbitas, baseado nos dados coletados por seu mestre, Tycho Brahe. Estes cálculos se baseiam nas três leis, hoje conhecidas como leis de Kepler [14]: - Lei das órbitas elípticas (1609): A órbita de cada planeta é uma elipse, com o Sol em um dos focos. Como conseqüência, a distância do Sol ao planeta varia ao longo de sua órbita. - Lei das áreas (1609): A reta unindo o planeta ao Sol varre áreas iguais em tempos iguais. O significado físico desta lei é que a velocidade orbital não é uniforme, mas varia de forma regular: quanto mais distante o planeta está do Sol, mais devagar ele se move. Dizendo de outra maneira, esta lei estabelece que a velocidade real é constante. - Lei harmônica (1618): O quadrado do período orbital dos planetas é diretamente proporcional ao cubo de sua distância média ao Sol. Esta lei estabelece que planetas com órbitas maiores se movem mais lentamente em torno do Sol, e, portanto, implica que a força entre o Sol e o planeta decresce com a distância ao Sol. A equação para as órbitas planetárias é a equação geral das elipses: x2 y 2 + =1 a2 b2 Onde x e y fornecem a posição do planeta no plano de coordenadas, a e b são respectivamente os semi-eixos maior e menor da elipse. 24 O problema é posicionar esta elipse no espaço. Para isso, conforme Figura 8, deve-se ter em mãos os seis elementos orbitais que equacionarão a órbita: semi-eixo maior da elipse (a), excentricidade da órbita ( CS /a), inclinação da órbita em relação ao plano da eclíptica (i), longitude do nodo ascendente (Ω) e argumento do periélio (ω). Estes dados são tabelados e publicados regularmente nos anuários do Observatório Nacional, aliados ao tempo decorrido desde a passagem pelo periélio (P), fornecerão a posição do planeta. Os seguintes procedimentos de Figura 8 - Órbita modelo de planeta. Cada trajetória elíptica contém valores característicos em relação ao plano eclíptico, formado pela trajetória do planeta Terra. cálculos são efetuados pelo microcontrolador para obtenção da posição dos astros: 1. Aplica-se na fórmula da elipse o semi-eixo maior e a excentricidade para determinar a equação que atende à sua órbita. Em seguida é calculada a anomalia excêntrica e a anomalia verdadeira através da fórmula da área da elipse. Usando a fórmula de Kepler calcula-se a anomalia média e o movimento médio. Com o movimento médio calcula-se o período e a constante de proporcionalidade, e a velocidade areolar. 2. Para posicionar o planeta sobre esta órbita deve-se calcular o tempo decorrido ∆t entre o instante da passagem do planeta pelo periélio e a data desejada. Este dado é fornecido como dia Juliano [15], calculado a partir do momento desejado (ano, mês, dia, hora e fração). Com isso o problema está resolvido no plano, mas o planeta e sua órbita estão no espaço, então serão usadas coordenadas espaciais. 3. Assim sendo, a equação obtida será posicionada sobre um referencial com a origem no Sol (sistema heliocêntrico) usando a geometria esférica. Para isso serão usados a inclinação da órbita, a longitude do nodo ascendente e o argumento do periélio. Depois que estas equações estiverem prontas, deve-se trazer a origem para o ponto de vista terrestre, ou seja, para a posição da Terra, passando do 25 sistema heliocêntrico para o sistema geocêntrico. Esta mudança exige que a Terra já esteja localizada no espaço, num sistema de equações similar ao usado anteriormente para a localização do astro a ser observado. Depois de reduzidas à posição topocêntrica, local do observador, os raios vetores e seus ângulos são transformados em Ascensão Reta e Declinação, que são os dados da posição do astro. 4. A partir destes valores é possível obter o Azimute e Altura do astro conforme sistema de coordenadas definido para a base do telescópio: Altura = arcsen (sen (Declinação ) ⋅ sen (Latitude ) + L L cos (Declinação ) ⋅ cos (Latitude ) ⋅ cos (Hora _ angular )) ⎛ sen (Declinação ) − sen (Altura ) ⋅ sen (Latitude ) ⎞ ⎟⎟ Azimute = arccos ⎜⎜ ( ) ( ) cos Altura ⋅ cos Latitude ⎝ ⎠ onde, Hora_angular é em função do Tempo sideral local (Local Sideral Time - LST) e a Ascensão Reta. Tempo sideral local (Local Sideral Time - LST) é em função do tempo e a Longitude do local. Como se vê, não existe uma fórmula para o cálculo da posição do planeta e sim uma série complexa de procedimentos [2] [16] [17] [18]. Para implementar o procedimento acima, utilizaram-se variáveis flutuantes de 64 bits, além dos cálculos exigirem bibliotecas de funções matemáticas complexas. O resultado retornado é igual aos valores obtidos de cartas estelares eletrônicas, mostrando a eficiência do processo. 4.2 Função Deslocamento Para iniciar o deslocamento o programa pede para inserir as posições de destino do Azimute e Altura através dos teclados. Feito, chama-se a rotina de deslocamento. A função de movimento do motor tem como entrada o valor atual do passo e o valor desejado para posicionamento. Este processo não é finalizado até que o valor atual seja igual ao da posição de destino. 26 O movimento do motor de Altura é bem simples, basta efetuar uma comparação: se a posição atual for menor que a posição de destino o motor deve movimentar para cima, caso contrário o movimento é para baixo. No caso do motor Azimute, antes do primeiro passo, é verificado qual o menor caminho para se percorrer. Este caminho depende das posições atual e destino, e do valor do número total de passos por volta definido pela redução de engrenagem (400x61=24400), conforme Figura 9. Pos_atual > Pos_destino 90 a) 180 Pos_destino > Pos_atual o L2 o o 0 /360 90 b) o L1 180 o L4 o o 0 /360 o L3 270 o Pos_atual Pos_destino L1=Pos_atual - Pos_destino L2=Pos_destino + (24400 - Pos_atual) 270 o L3=Pos_destino - Pos_atual L4=Pos_atual + (24400 - Pos_destino) Figura 9 - Exemplo do cálculo da menor distância para ser percorrida da posição atual até a posição de destino. a) L2 é a menor distância, portanto, o movimento deve ser anti-horário. b) L4 é a menor distância, portanto, o movimento deve ser horário. O fluxograma do código que decide o caminho a ser tomado pelo motor de Azimute é mostrado na Figura 10. 27 Início Posição atual > destino sim não não não Caminho L3 <= L4 sim sim Caminho L1 <= L2 não sim Posição atual = destino Passo para a direita Passo para a esquerda Fim Figura 10 - Fluxograma que mostra como o código decide por percorrer o menor caminho. Foi usada uma variável para registro da posição atual do telescópio. Este registro recebe valores de 0 a 24400 (0º a 360º) para o movimento de Azimute e de 0 a 6100 (0º a 90º) para o movimento da Altura. Seus valores só são zerados quando iniciamos a função de calibração onde posicionamos o telescópio para o Azimute 0º (Norte) e Altura 0º (Horizonte). A função do código que controla os movimentos dos motores leva em conta alguns pontos de grande relevância. Deve-se considerar um sistema de estrutura mecânica com folgas causadas pelas reduções acopladas nos eixos dos motores e interferências de forças externas. Assim, toda vez que o motor mudar de direção, serão efetuado alguns passos sem o registro do movimento. Outro item importante quando se trata de movimento preciso é a velocidade de execução, o código que define quando é importante o uso do HALF STEP. O movimento sempre é executado em FULL STEP (passo completo), ou seja, HALF STEP desativado, e para garantir a contagem correta dos passos é executado um duplo incremento nas variáveis de registro da posição atual. Quando a posição atual se aproxima da posição de destino, o HALF STEP é ativado e o incremento nos valores de registro se torna único. 28 O Apêndice C mostra como são os processos que compensa as folgas do sistema mecânico e controla o uso da função HALF STEP. 4.3 Função Rastreamento de Planetas Com os valores do local da observação, fuso horário e data local configurados, a função executa um ciclo fechado que obedece ao fluxograma mostrado na Figura 11. Primeiramente um menu de opções permite a escolha do planeta a ser observado. Logo em seguida é feito o cálculo da posição retornando o Azimute e Altura do planeta escolhido em função da data corrente. Caso a Altura seja negativa, isto é, planeta abaixo do horizonte, a função logo é abandonada. Caso contrário chama-se a função de deslocamento. Esta função posiciona o telescópio para o local calculado, porém, leva-se um tempo para o deslocamento e o planeta já adquire uma nova posição. Novamente é feito o cálculo da posição e um novo deslocamento é executado, este não leva tanto tempo por estar posicionado próximo da posição destino. Assim o rastreamento se estabelece em movimentos curtos, acompanhando o planeta desejado até que o observador opte por abandonar o processo. Rastrear Rotina para escolha do planeta Pega data e hora do calendário/relógio Chama a função de deslocamento AZ=Calcular AZ (Planeta, data/hora) AL=Calcular AL (Planeta, data/hora) sim não AL>0? Fim Figura 11 - Rotina para o rastreamento de planetas. 4.4 Menu de Opções O programa possui um menu de opções, Figura 12, de simples entendimento onde se pode escolher basicamente entre rastrear objeto (principal 29 função do sistema), posicionar, configurar data, hora e local, ajuste de folga e calibrar: PRINCIPAL MENU POSICIONAR RASTREAR AJUSTAR DATA/HORA COORDENADAS CALIBRAR MECÂNICA Figura 12 - Estrutura do programa. As funções implementadas no sistema são: PRINCIPAL: Este é o estado inicial do sistema. Aqui são mostrados a data, horário e a posição dos motores. Permite o controle manual da posição através do teclado. A tecla MENU/OK chama o menu de opções. MENU: Detém as opções de movimento e configuração. Através das teclas direcionais (DIREITA e ESQUERDA) do teclado pode-se selecionar uma das opções. Para chamar basta pressionar MENU/OK. POSICIONAR: É preciso informar a posição de destino (Azimute e Altura) do movimento. Os valores são alterados através das teclas ACRÉSCIMO e DECRÉSCIMO/CANCELAR. Após a confirmação o movimento é efetuado. RASTREAR: Por meio das teclas direcionais (DIREITA e ESQUERDA) seleciona-se o planeta para observação. Para iniciar o rastreamento basta pressionar MENU/OK. O cálculo será processado e o movimento efetuado, e a sua posição será atualizada. Até que o operador decida por abandonar a função e pressione a tecla DECRÉSCIMO/CANCELAR. AJUSTAR DATA/HORA: Permite atualizar a data e horário por meio dos valores do dia, mês, ano, semana, hora, minuto, segundo. Após a inserção dos valores os dados serão registrados no Calendário/Relógio DS1302. COORDENADAS: Usando a teclas ACRÉSCIMO e DECRÉSCIMO/CANCELAR, configura a posição atual (Latitude e Longitude) do observador, assim como o fuso horário da região. 30 CALIBRAR: Após posicionar o telescópio para o Azimute=Norte e Altura=Horizonte, pressiona-se MENU/OK. Assim se defini a posição como referência do sistema (Azimute=0º e Altura=0º). MECÂNICA: Através das teclas ACRÉSCIMO e DECRÉSCIMO/CANCELAR, ajusta o número de passos que correspondem a folga do sistema mecânico. Este valor se obtém através de testes que serão mostrados mais adiante. Todas a funções e rotinas estão disponíveis digitalmente no Apêndice D. 4.5 Interface 4.5.1 Módulo de Potência A interface entre os módulos de controle e potência é feita através de um barramento de 6 vias de controle (3 para cada controlador) que comunicam os pinos de I/O do microcontrolador aos pinos STEP INPUT (Entrada de passo), DIRECTION (Direção) e HALF STEP (Meio passo) do controlador de motor de passo UCN5804. Para movimentar, o código do movimento deve definir o estado dos pinos DIRECTION (direita ou esquerda) e HALF STEP (meio passo ou passo completo) e pulsar os pinos STEP INPUT. 4.5.2 Calendário/Relógio A comunicação entre o 7 6 5 4 3 2 1 0 Calendário/Relógio e o microcontrolador MSP 1 RAM CR A4 A3 A2 A1 A0 RD WR é via uma simples interface serial síncrona usando apenas três terminais, dois para Figura 13 - Byte de comando para o calendário/relógio ou endereço para a RAM. controle (CE, CLK) e um para os dados (I/O). Antes da transmissão dos dados é necessário informar ao DS1302 que tipo de dados está sendo transferido e o que se deve fazer com eles. Para isso envia-se um byte de comando, como mostra a Figura 13. Um byte de comando inicia cada transferência de dados. O MSB (bit 7) deve estar em nível lógico alto. Se estiver em nível lógico baixo, informa ao DS1302 que 31 será desabilitado. O bit 6 especifica que são dados de Calendário/Relógio se o nível lógico for 0, ou dados de RAM se for nível lógico 1. Este último não será usado. Os bits 1 ao 5 definem o registro para ser escrito ou lido (dia, mês, ano, hora, minuto, segundo), e o LSB (bit 0) especifica a operação de escrita se nível lógico 0 ou operação de leitura se nível lógico 1. O byte de comando é sempre enviado a partir LEITURA do LSB como mostra a Figura 14. CE CLK I/O R/W A0 A1 A2 A3 A4 R/C 1 D0 D1 D2 ESCRITA COMANDO D3 D4 D5 D6 D7 D5 D6 D7 DADO CE CLK I/O R/W A0 A1 A2 A3 A4 R/C 1 D0 D1 COMANDO D2 D3 D4 DADO Figura 14 - Leitura e escrita de um byte de dados. Primeiro uma seqüência de bits de comando (1 byte), logo em seguida, o dado a ser transmitido (1 byte). Note que na leitura o dado só é enviado a linha I/O na transição negativa. A entrada CE como nível lógico alto inicia todas as transferências de dados. Como a interface é serial e síncrona, a transferência do byte é feita bit a bit com auxilio de um clock. Para escrita, os dados devem ser válidos durante a transição positiva e para leitura, durante a transição negativa do clock. Caso o pino de entrada CE for levado ao nível lógico baixo, a transferência de dados é finalizada e o pino de I/O é levado ao estado de alta impedância. A leitura do DS1302 é feita pelo envio do comando referente ao registro requerido. Após o envio do comando o valor do registro estará disponível bit a bit na linha I/O a cada pulso enviado ao pino CLK do Calendário/Relógio. O registro de um valor no DS1302 é similar à leitura, porém, depois do envio do comando, a linha I/O será de responsabilidade do microcontrolador. O MSP enviará bit a bit o valor para registro e pulsará o pino CLK, permitindo o Calendário/Relógio adquirir o valor da linha. 32 A Figura 15 mostra a rotina para enviar e receber um registro do Calendário/Relógio. Início Escrita Leitura I/O_DIR=1 - direção do pino I/O i=0 I/O_DIR=1 - direção do pino I/O CE=1 - habilita transmissão i=0 I/O=(data>>i) AND 0x01 - envia bit data=data OR (i<<I/O) - recebe bit i=0 i+1 i>7? i>7? sim sim i+1 i+1 não Linha CLK é pulsada Linha CLK é pulsada não I/O=(cmd>>i) AND 0x01 - envia bit não Linha CLK é pulsada i>7? sim Fim Fim Leitura ou Escrita Figura 15 - Seqüência para registro no DS1302. É necessário para cada item (dia, mês, ano, semana, hora, minuto e segundo). O valor de cmd diz o tipo de registro, e data o valor deste registro. Os bits são enviados e recebidos serialmente a partir do LSB. 4.5.3 Visor Alfanumérico A transferência de dados pode ser feita por um barramento de 8 ou 4 vias. Foi utilizado apenas 4 vias para economizar pinos do microcontrolador. O controle é feito por 3 pinos: RS (tipo de registro: instrução ou valor), R/W (leitura/escrita) e E (habilita). O visor é dividido em 2 linhas e 16 colunas e cada segmento representa uma matriz 5x7 onde será mostrado o valor alfanumérico. Os segmentos estão relacionados com a memória RAM do controlador do visor a partir do endereço 0x00 até 0x27 para a primeira linha, e 0x40 até 0x67 para a segunda linha. Quando os valores dos endereços são alterados os segmentos correspondentes também alteram. Para comandar o módulo é necessário utilizar uma seqüência de iniciação determinada pelo fabricante, como segue: É enviado um comando de 4 bits contendo o valor 3 (0011 binário) por meio das linhas D4 a D7. Esta operação deve 33 ser feita três vezes. Em seguida envia-se o comando 2 (0010 binário). Desse ponto em diante o controlador passa a trabalhar no modo 4 bits e deve-se enviar cada byte em duas metades de 4 bits, iniciando pelo nibble mais significativo. Por fim enviamse os comandos de configuração do visor, liga/desliga do visor e de modo, não necessariamente nesta ordem. Feita a iniciação do controlador já se pode comandar o visor, para isso devese seguir a seqüência mostrada na Figura 16. Envia-se um byte com instruções para o controlador do visor. Com este comando pode-se escrever algo na memória RAM ou executar procedimentos pré-configurados, como por exemplo, limpar tela e mudar a posição do ponteiro de memória. b) Envio para a RAM Envio de Comando E=0 R/W=0 RS=1 E=0 R/W=0 RS=0 i=0 D=cmd >> 4 D=string[i] >> 4 Linha E é pulsada Linha E é pulsada D=cmd & 0x0F D=string[i] & 0x0F Linha E é pulsada não a) Linha E é pulsada Fim i+1 sim Fim da string? Fim Figura 16 - a) Seqüência para envio de uma string ao controlador do visor. Considerando que a variável string é um vetor cujos elementos são um byte, primeiro é enviado o nibble mais significativo em seguida o nibble menos significativo. O deslocamento do ponteiro da memória é realizado automaticamente. b) Seqüência para envio de comando como limpar tela, posicionar ponteiro da memória RAM, etc... 34 5 CONSTRUÇÃO E TESTES 5.1 Construção Mecânica Inicialmente, para a construção da base do telescópio, foi feita a escolha dos materiais para o sistema mecânico. Confeccionada em madeira, a estrutura da base deverá suportar um telescópio amador em PVC com 250 mm de diâmetro e 1200 mm de comprimento com peso estimado de 20 Kg. O projeto elaborado em AutoCAD é mostrado na Figura 17. Figura 17 - Projeto do telescópio elaborado em AutoCAD. A estrutura em madeira gira sobre uma base de ferro (base de cadeira giratória) compondo o eixo vertical (Azimute). Na parte superior da estrutura de madeira existem dois apoios para fixar o telescópio formando o eixo horizontal (Altura). Cada eixo de rotação do sistema Azimutal possui dois rolamentos afastados um do outro garantindo a estabilidade. As reduções são engrenagens de rosca sem fim do sistema de vidro elétrico automotivo e foram adquiridos em sucata. Os motores DC originais do sistema de vidro elétrico foram substituídos pelos motores de passo. O valor do passo sobre o eixo do telescópio é definido pelo valor do passo do eixo dos motores dividido pela relação de engrenagens (0,9º/61=53,115 segundos de grau). Os motores de passo associados com engrenagens foram instalados nos eixos conforme Figura 18. 35 Figura 18 - Instalação dos motores de passo associados a redutores de sistema de vidro elétrico automotivo. Para acompanhar os motores, o módulo de potência foi embarcado na estrutura giratória de madeira, impedindo o enroscamento dos cabos de alimentação. Apenas o módulo de controle poderá ser removido da estrutura para a operação. A Figura 19 mostra como ficou a base com um pequeno telescópio instalado. A estrutura em madeira possibilitou um baixo custo de construção, porém deve-se observar pela necessidade de reforço. A madeira não é o material ideal para manter a rigidez da estrutura. Com o tempo, suas junções poderão folgar e dificultar o equilíbrio do telescópio. A utilização de uma estrutura em metal seria a melhor opção. Os motores de passo e as reduções foram as aquisições mais onerosas. Por outro lado são mais baratos que os codificadores de posição (encoders) que seriam usados caso fosse definido um sistema de controle de malha fechada. Figura 19 - Base do telescópio com um modelo de pequeno porte. 36 5.2 Confecção dos Módulos No módulo de potência há uma entrada para alimentação e conectores para os motores de passo. Possui um conector RJ-45 por onde chega os sinais do módulo de controle. A distribuição dos componentes, conforme a Figura 20, facilitou a uniformidade da temperatura. Porém a utilização de ventilação forçada com ventiladores (coolers) foi necessária. Além dos resistores de potência, os controladores também emitem muito calor. Foram utilizados encaixes (sockets) nos circuito integrados para facilitar a substituição, caso ocorra queima dos componentes. Figura 20 - Foto da placa do módulo de potência. O módulo de controle (Figura 21) foi confeccionado a partir da placa de ensaio elaborada no Laboratório de Automação Inteligente da UFES. Os periféricos foram soldados na área de prototipagem e estão ligados aos conectores da placa de ensaio referentes às portas de I/O do MSP. O comando de controle dos movimentos é enviado ao módulo de potência através de um cabo de 8 vias, com terminais RJ45. 37 Figura 21 - Foto da placa de ensaio do LAI e periféricos. 5.3 Testes Foram realizados três testes. Um determinou os valores que representam as folgas mecânicas para compensação através do código. O outro verificou a precisão dos cálculos astronômicos. O Terceiro se define a partir dos resultados dos dois primeiros testes, onde se fez o rastreamento de um planeta. 5.3.1 Folgas No primeiro teste, foi fixada uma caneta laser no telescópio e, sua projeção, posicionada no centro de uma matriz 10 x 10 com espaçamentos de 5 mm para calibração, ou seja, Azimute=0º na linha 5 e Altura=0º na coluna 5. Foram executados alguns movimentos aleatoriamente. Em seguida foi solicitado ao sistema para que retornasse a posição de origem. Naturalmente, devido às folgas do sistema mecânico, o experimento não obteve um resultado satisfatório. O ponto de luz posicionou-se fora do papel conforme mostra Figura 22. 38 Figura 22 - Projeção fora do papel devido folgas do sistema mecânico. A partir deste ponto, o movimento foi executado manualmente até chegar ao ponto de origem desejado (centro da matriz). Foram contados os passos que representam as folgas mecânicas. Os valores obtidos foram 11 e 15, para Azimute e Altura respectivamente. Estes valores foram inseridos no código de compensação de folga. Agora, com o código de compensação de folga funcionando, O teste foi realizado repetidas vezes até que se obtiveram os resultados mostrados na Figura 23. Figura 23 - Resultados obtidos no teste de compensação de folgas. a) posição da origem; b) posição após 6 operações; c) posição após 12 operações. Em 6 operações o ponto de luz se posicionou conforme Figura 23-b. Após 12 operações o ponto já estava fora da matriz, como mostra a Figura 23-c. Vale lembrar que a distância da base do telescópio até o anteparo foi de 10 m. Quanto maior a distância mais precisos são os valores da contagem. Este resultado mostra que o código funciona, desde que bem aferido. Mas se o sistema sofrer qualquer interferência, deverá ser novamente calibrado. Assim, a solução ideal é eliminar os efeitos da folga mecanicamente. 39 5.3.2 Cálculos No segundo teste, foi executada uma rotina no MSP que calcula e mostra na tela do visor alfanumérico o valor da posição dos planetas em função da data e horário. Os resultados foram comparados com cartas celestes eletrônicas executadas em um computador de 32 bits. Os resultados são mostrados na Tabela 1. Os dados de entrada da função são Data:17/09/2005, Hora:15:00:00, fuso:-3, Longitude: 40º00”00’ OESTE e Latitude: 20º00”00’ SUL. MSP Software Planetarium Azimute Altura Azimute Altura Mercúrio 289:22:18 +34:37:11 289:21:04 +34:37:21 Vênus 291:05:50 +77:04:39 291:05:23 +77:04:46 Marte 218:26:35 -84:40:40 218:28:36 -84:40:43 Júpiter 292:31:56 +61:41:39 292:32:16 +61:43:00 Saturno 285:41:35 -12:13:51 285:41:44 -12:14:13 Urano 107:30:29 -19:07:55 107:27:29 -18:11:58 Netuno 105:44:02 +05:15:13 105:46:41 +04:40:39 Plutão 069:44:07 +66:59:10 087:42:17 +56:33:33 Tabela 1 - Comparação dos resultados dos cálculos do MSP com mapas celestes eletrônicos Foi observado que cada carta celeste possui um resultado diferente, talvez por possuírem modelos de cálculo distintos. Porém, podemos confirmar que os dados calculados pelo MSP foram satisfatórios por se aproximaram dos resultados registrados na maioria das cartas celestes. Nota-se também que quanto mais longe está o planeta maior é a diferença entre os modelos. 5.3.3 Rastreamento Por fim, foi feito o rastreamento do planeta Vênus por um período de aproximadamente 30 minutos. Apesar dos valores usados nas coordenadas serem aproximados, por todo o tempo o sistema manteve o planeta no campo de visão do sistema óptico. 40 Mesmo sendo um telescópio pequeno e os cálculos não preverem interferências que causam o desvio da luz, verificou-se a eficácia do sistema de rastreamento. Porém, dependendo da capacidade de alcance do sistema óptico do telescópio, estas interferências e aproximações poderão ser relevantes. 41 6 CONCLUSÕES E TRABALHOS FUTUROS O primeiro desafio foi construir um sistema mecânico que contribuísse para o bom desempenho do sistema de controle. Muitas interferências foram encontradas e a solução foi contorná-las via programação prevendo folgas e momentos causados pelo peso do instrumento. O sistema de coordenadas da montagem Azimutal é bem simples e de fácil construção. As engrenagens de rosca sem fim nos oferecem uma redução satisfatória para o deslocamento com grande precisão sem prejudicar a velocidade dos movimentos da base. Os motores associados à redução possuem grande capacidade de torque podendo ser acoplados em telescópios de grandes dimensões e peso. Os controladores dos motores permitem troca rápida de estado dos terminais dos motores beneficiando a dinâmica do movimento e, satisfatoriamente, o acompanhamento dos movimentos dos astros. A separação em dois módulos foi realmente necessária, pois os controladores dos motores de passo mais os resistores dissipam muito calor e poderiam prejudicar os componentes mais sensíveis. O microcontrolador da família MSP430 da Texas Instruments foi a escolha perfeita para o código desenvolvido. O grande espaço na memória para gravação do código e manipulação de variáveis permitiu uma programação com diversas funcionalidades. Além de permitir um sistema amigável de fácil operação. O principal problema foi a tradução dos procedimentos para o cálculo da posição dos planetas para a linguagem C. E para garantir uma grande precisão nos cálculos, o uso de bibliotecas com funções matemáticas complexas foram indispensáveis. Apesar de ser um procedimento trabalhoso retornou o resultado esperado. Os valores dos cálculos se aproximam dos dados da maioria dos softwares de mapas estelares. Mas por ser tratar de equipamentos amadores os resultados obtidos foram satisfatórios. O planeta permanece no campo de visão do telescópio durante todo o rastreamento. Quando verificamos a posição real do planeta, observamos que ainda existem muitas correções a serem feitas devido à perturbação gravitacional de outros planetas, que afetam reciprocamente suas órbitas de maneira muito complexa. Centenas de parâmetros têm de ser computados. Para calcular esta 42 interação, hoje são usados computadores rápidos que geram tabelas com precisão bastante alta, mas que ainda contêm erros. Mantendo a idéia de construção de um sistema portátil e barato, uma nova versão do código poderia incluir o rastreamento de estrelas de grande e média magnitudes que poderiam ser observadas através de telescópios amadores. Esta nova versão não necessitaria de um novo hardware, já que ainda há muito espaço na memória do microcontrolador. Um outro rumo pode ser traçado. Um sistema mais complexo e preciso para grandes observatórios com auxílio de máquinas poderosas pode ser desenvolvido. 43 APÊNDICE A O plano principal do sistema de coordenadas horizontais é definido como sendo o plano que contém o horizonte do observador. Os dois ângulos que definem a posição de um astro qualquer são a Altura e o Azimute, como mostra a Figura 24. Figura 24 - Sistema de coordenadas azimutal. O astro M tem coordenadas h (altura) e A (azimute). Os “pólos” deste sistema são o zênite e o nadir. O azimute é medido a partir do Norte em direção ao Oeste, ao longo do horizonte (o círculo principal neste sistema). A altura é positiva em direção ao zênite e negativa em direção ao nadir. Também são mostrados na figura os eixos cartesianos x, y e z. O horizonte do observador deve ser definido corretamente. O horizonte visível ou aparente é sujeito às irregularidades topográficas, não definindo necessariamente desta forma um grande círculo e, conseqüentemente, não servindo como base para a definição de um sistema de coordenadas. Assim, definimos o horizonte astronômico como sendo o círculo centrado no observador, perpendicular à sua vertical (definida como paralela ao campo gravitacional), independentemente de acidentes geográficos. A intersecção desta mesma vertical com a esfera celeste define o zênite e o nadir. A altura de um astro é medida a partir do horizonte astronômico, sendo positivo quando o astro está acima do horizonte e negativo no caso contrário. Assim o zênite tem por definição uma altura de 90º e o nadir, −90º. O azimute é por definição, medido a partir do meridiano Norte (0º) do observador e os ângulos são contados no sentido → Oeste (90º) → Sul (180º) → Leste (270º). 44 Devemos notar ainda que neste sistema as coordenadas de um astro variam com o tempo devido, sobretudo ao movimento diário (rotação da Terra). De fato, o azimute de um astro sempre aumenta durante o decorrer de um dia (exceto pela descontinuidade a 360º). Para garantir uma grande precisão são usados redutores no eixo dos motores com relação 1:61. Como os motores de passo têm precisão máxima de 400 passos por volta (0,9º por passo) isso resulta em uma precisão final de 400*61=24400 passos por volta (0,01475º por passo). 45 APÊNDICE B Nas Figuras 25 e 26, são mostradas os esquemáticos das ligações dos componentes do módulos de potência e da placa de ensaio do Laboratório de Automação e Inteligente (LAI-UFES) respectivamente. - IC1: buffer 74HC244 - R1, R2, R3 e R4: 4,7 Ω 10 Watts - IC2 e IC3: controladores UCN5804 - R5, R6, R7, R8, R9 e R10: 10 KΩ 1/8 Watts - IC4 e IC5: diodos schottk UC3611 - J1: Conector RJ-45 - IC6: regulador 7805 Figura 25 - Esquemático de ligação do módulo de potência. Figura 26 - Esquemático de ligação da placa de ensaio do LAI-UFES [19]. 46 APÊNDICE C As figuras mostram as características implícitas no código de posicionamento. Na Figura 27, a rotina prevê a folga proveniente do sistema mecânico. Em toda mudança de direção alguns passos são dados sem o registro do deslocamento. E a Figura 28, mostra como é usada a função de HALF STEP do drive de motor de passo. Como esta função garante precisão ela é ativada nas proximidades da posição de destino e quando é necessário um deslocamento mais rápido ela é desativada. Início DIRECTION = X ≠X Passo anterior? =X K=0 STEP INPUT é pulsada Registro do passo sim K++ STEP INPUT é pulsada não K<folga Registro do passo STEP INPUT é pulsada Fim Figura 27 - Fluxograma que mostra a decisão tomada para registro do movimento. Toda vez que o movimento muda de direção alguns passo são dados sem registro para compensar folgas do sistema mecânico. 47 Início HALF STEP = ON HALF STEP = OFF sim não (D - A) < margem ? Registra movimento Executa movimento Registra movimento Fim Figura 28 - A rotina mostra que o modo HALF STEP é usado somente nas proximidades da posição de destino, garantindo precisão e rapidez durante o movimento. A variável margem é o numero de passos em torno da posição de destino. D é a posição de destino e A é a posição atual. 48 REFERÊNCIAS BIBLIOGRÁFICAS [1] MONTAGEM AZIMUTAL [on line]. Disponível: http://telescopios.sites.uol. com.br/ montagens.html. [capturado em janeiro de 2005]. [2] ASTRONOMIA URBANA. Cálculos Astronômicos [on line]. Disponível: http://paginas.terra.com.br/educacao/Astronomia/calculos_astronomicos.html. [capturado em janeiro de 2005]. [3] C/C++ COMPILERS AND DEBUGGERS. [on line]. IAR Systems. Disponível: http://www.iar.com/p850/p850_eng.php. [capturado em janeiro de 2005]. [4] VOLTAGE REGULATORS 7805 - DATASHEET [on line]. Disponível: http://www.ti.com/. [capturado em janeiro de 2005]. [5] LINEAR REGULATORS TPS76933 - DATASHEET [on line]. Texas Instruments. Disponível: http://www.ti.com/. [capturado em janeiro de 2005]. [6] STEPPER MOTOR DRIVE UCN5804 - DATASHEET [on line]. Allegro MicroSystems. Disponível: http://www.allegromicro.com/. [capturado em janeiro de 2005]. [7] SCHOTTKY DIODE ARRAY UC3611 - DATASHEET [on line]. Texas Instruments. Disponível: http://www.ti.com/. [capturado em janeiro de 2005]. [8] OCTAL BUFFER/LINE DRIVE 74HC244 - DATASHEET [on line]. Texas Instruments. Disponível: http://www.ti.com/. [capturado em janeiro de 2005]. [9] MIXED SIGNAL MICROCONTROLLER MSP430F149 - DATASHEET [on line]. Texas Instruments. Disponível: http://www.ti.com/. (msp430f149.pdf) [capturado em janeiro de 2005]. [10] PROGRAMMIG A FLASH-BASED MSP430 USING THE JTAG INTERFACE [on line]. Texas Instruments. Disponível: http://www.ti.com/. (slaa149.pdf) [capturado em janeiro de 2005]. [11] FEATURES OF THE MSP430 BOOTSTRAP LOADER [on line]. Texas Instruments. Disponível: http://www.ti.com/. (slaa089b.pdf) [capturado em janeiro de 2005]. [12] TRICKLE-CHARGE TIMEKEEPING CHIP DS1302 - DATASHEET [on line]. Dallas Semiconductor. Disponível: http://www.maxim-ic.com/. (DS1302.pdf) [capturado em janeiro de 2005]. 49 [13] LCD MODULE JM162A HD44789 [on line]. JHD. Disponível: http://www.jinghua-displays.com/. (jm162aspec.pdf). [capturado em janeiro de 2005]. [14] LEIS DE KEPLER [on line]. João Batista Garcia Ganalle. Disponível: http://www2.uerj.br/~oba/cursos/astronomia/primeiraleidekepler.htm, http://www2.uerj.br/~oba/cursos/astronomia/segundaleidekepler.htm e http://www2.uerj.br/~oba/cursos/astronomia/terceiraleidekepler.htm. [capturado em janeiro de 2005]. [15] MEDIDAS DO TEMPO [on line]. Kepler de Souza Oliveira Filho e Maria de Fátima Oliveira Saraiva. Disponível: http://astro.if.ufrgs.br/tempo/tempo.htm [16] HOW TO COMPUTER PLANETARY POSITIONS [on line]. Paul Schlyter, Stockholm, Sweden. Disponível: http://astro.if.ufrgs.br/trigesf/position.html. [capturado em janeiro de 2005]. [17] CÁLCULO DAS ORBITAS PLANETÁRIAS [on line]. Eng. André Esteban Plaza. Disponível: http://www.geocities.com/lemagicien_2000/mathpage/calcorb/ calcorb.html. [capturado em janeiro de 2005]. [18] COORDENADAS CELESTES [on line]. Disponível: http://www.cdcc.sc.usp.br/ cda/aprendendo-basico/esfera-celeste/coordenada-celeste/coordenada-estelargra.htm. [capturado em janeiro de 2005]. [19] TEXAS INSTRUMENTS MSP430 [on line]. Prof. Dr. Hans-Jorge Andreas Schneebeli. Disponível: [capturado em janeiro de 2005]. http://www2.ele.ufes.br/~hans/msp/index.html.