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.
Download

1 – Introdução - Departamento de Engenharia Eletrica, UFES