rDUINOScope
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 10 | ||||
| × | 1 | ||||
| × | 1 |
Sobre este projeto
Descrição
O primeiro controle de telescópio independente baseado em Arduino do mundo, Goto.
Todos os controles de telescópio de código aberto disponíveis usam Raspberry Pi, que consome muita energia, ou usa o Arduino como extensão para um computador, smartphone ou tablet. rDUINOScope é o primeiro dispositivo autônomo baseado em Arduino que permite que astrônomos amadores aproveitem o céu noturno.
A ideia inicial era criar uma alternativa barata e fácil de construir aos produtos GOTO disponíveis comercialmente, como os fabricados pela SkyWatcher, Orion, Vixen e outros. Portanto, a arquitetura de hardware é construída em uma placa Arduino DUE e sensores baratos disponíveis no mercado. Instruções sobre como construir e guia do usuário foram criados no site do projeto. No coração do sistema está uma placa Arduino DUE, carregada com um software que é constantemente desenvolvido para adicionar funcionalidades.
rDUINOScópio com Stellarium:
Detalhes
rDUINOScópio é um sistema de controle de telescópio baseado em Arduino Due (GOTO) de código aberto. Desenhado como um sistema autônomo, o rDUINOScope não precisa de um PC, tablet ou telefone celular, nem conexão com a Internet para operar e fornecer vistas deslumbrantes!
Basicamente, ele tem um banco de dados com os OS MELHORES 250 objetos estelares (Catálogos de Tesouros Escondidos e Messier) e 200 estrelas , calcula sua posição no céu e aponta o telescópio. Os procedimentos de alinhamento implementados permitem uma experiência "sempre na ocular" ao girar para objetos selecionados e, uma vez que o objeto está na ocular, o sistema continua a rastreá-lo.
Caso, no entanto, você queira aproveitar as vantagens de seus dispositivos eletrônicos, #rDUINOScope utiliza comunicação Bluetooth (configuração sem fio) para conectar-se a todos os dispositivos eletrônicos e aceitar comandos baseados no protocolo de comunicação MEADE LX200.
O sistema funciona com motores de passo de todos os tipos e pode ser montado em montagens DIY ou em produtos disponíveis comercialmente como SkyWatcher, MEADE, Orion, Vixen e etc.
Funcionalidade:
O que há dentro do rDUINO SCOPE?
rDUINOScope Github
Instruções de construção
PASSO 1 Preparação
Antes de começar, é importante que você entenda como o software funciona para poder fazer alterações e personalizá-lo para você. Afinal, este é um dos pontos fortes mais significativos deste projeto!
Para entender esta parte, você precisa baixar o código dos Arquivos do projeto, junto com os arquivos "bibliotecas" ... ou simplesmente baixar o pacote completo em: http://rduinoscope.co.nf/downloads.php . Todos os números de linha referenciados estão de acordo com o código da V2.1. Boiana EQ
Você deve saber como funciona o código do Arduino. Normalmente o programa Arduino tem 2 seções - SETUP (); e LOOP (); SETUP () é executado no início do programa e basicamente utiliza o sistema; LOOP () é uma função de loop constante que dispara várias vezes por segundo. Portanto, para garantir que tenhamos telas, entradas de toque e etc. e que a tela não pisque por causa do LOOP (), precisamos inventar um mecanismo para permitir que o Arduino saiba o que o usuário espera que ele faça. Assim, na seção LOOP (), você verá uma parte muito pequena do código que diz apenas "Considere o toque .. ou considere o tempo ..." e etc. O resto das atividades acontecem dentro dessas funções que nos permitem alterar o fluxo do programa para que as telas não sejam atualizadas várias vezes por segundo.
Cálculos :Usei algumas informações encontradas na internet sobre como calcular a posição de objetos estelares. A maior parte das informações que coletei no seguinte link:http://www.stargazing.net/kepler/altaz.html - Descreve as fórmulas necessárias e abordagem para calcular o Ângulo Horário (HA), sabendo a localização, a hora atual e o objeto estelar RA e DEC.
Depois de criar o código para calcular
HA / linha 678:void calcularLST_HA () /
, Usei esta página para verificar se funciona bem:http://www.jgiesen.de/astro/astroJS/siderealClock/ e, posteriormente, quando adicionei o banco de dados com objetos Messier, usei o Stellarium (http:// www.stellarium.org/) aplicação para os mesmos cheques. O principal problema que encontrei não foram as fórmulas em si, mas a maneira como o Arduino lida com os tipos de variáveis e, em particular, a precisão dos cálculos.
Agora, uma vez que temos HA e DEC calculados para um determinado objeto, queremos fazer o ponto de montagem do telescópio e, para isso, precisamos de alguma forma saber quanto exatamente os motores precisam girar. Para ter sucesso nisso, preciso saber qual é a relação entre o sem-fim e a engrenagem - ou seja, quantas voltas o sem-fim deve dar para que a engrenagem faça 360 °. Eu tenho o Vixen Super Polaris e uma pesquisa rápida na internet revelou que ele usa engrenagem de 144 dentes para eixos RA e DEC. Eu criei um arquivo Excel simples (* .XLS - http://rduinoscope.co.nf/downloads/Gears_Stepper_Calculation.xlsx) para calcular quanto os motores deveriam girar uma vez que calculei HA e DEC, e também com que freqüência para "disparar "motores para compensar a rotação da Terra.
Gears_Stepper_Calculation.xlsx
O mesmo modelo matemático que usei no XLS também está implementado no código, então o que você precisa fazer é simplesmente substituir os valores de sua montagem no início do código (linhas 34 a 37).
// AQUI VÃO AS informações de montagem, engrenagens e direção.// ... usado para calcular a proporção HourAngle para microSteps // ATUALIZE ESTA PARTE de acordo com sua CONFIGURAÇÃO // ------ --------------------------------------- // NB:RA e DEC usam o mesmo equipamento proporção (144 dentes no meu caso)! // --------------------------------------- ------- int WORM =144; int REDUTOR =4; // redução de marcha 1:4int DRIVE_STP =200; // Stepper drive tem 200 passos por revoluçãoint MICROSteps =16; // Usarei o modo de 1/16 microsteps para conduzir o sideral - também determina a velocidade MAIS BAIXA.
Agora, uma vez que calculamos as razões, o código saberá quanto girar os motores a fim de apontar o telescópio para as coordenadas correspondentes e também qual é a velocidade do relógio para que a montagem possa rastrear o objeto. As funções que cuidam dos itens acima começam na linha 906 e na linha 917:
void Sidereal_rate () {} void cosiderSlewTo () {}
Considerações :Você sabe, este não é um produto pronto para o consumidor. Ele permite que você o personalize de acordo com suas necessidades e, portanto, é muito flexível, mas com a flexibilidade vêm algumas desvantagens. Incluí esta seção de “considerações” para garantir que elas não sejam excluídas da sua lista de tarefas pendentes.
- Montagem de motores é uma tarefa simples, que, no entanto, influencia a maneira como seus cálculos devem funcionar. No meu cenário, o Vixen Super Polaris tem suas engrenagens originais colocadas no lado direito do eixo do sem-fim. No entanto, descobri que esses eixos eram curtos para substituir as engrenagens por polias e, portanto, movi as polias no lado oposto do eixo (à esquerda). Isso fez com que o motor realmente precisasse girar para trás para aumentar a posição do telescópio e, portanto, tive que revisar o código original que criei. Definitivamente, você deve revisar as direções em que seus motores giram, de outra forma, você acabará com a contagem incorreta das etapas, portanto, posição incorreta. Deixe-me mostrar o que quero dizer:veja a linha 1028 onde comando o motor para STP_BACK, mas na linha 1031 eu aumento o contador + =... (Todos os números de linha referenciados estão de acordo com o código de V2.1. Boiana EQ ).
if (SLEW_RA_microsteps> RA_microSteps) {digitalWrite (RA_DIR, STP_BACK); digitalWrite (RA_STP, HIGH); digitalWrite (RA_STP, LOW); RA_microSteps + =RA_mode_steps;} else {digitalWrite (RA_DIR, STP_FWD); digitalWrite (RA_STP, HIGH); digitalWrite (RA_STP, LOW); RA_microSteps - =RA_mode_steps;}
AÇÃO: Revise as seguintes partes do código: void consider_Manual_Moveint xP, int yP ), void cosiderSlewTo () e void Sidereal_rate ().
- Norte VS. Sul Hemisférios:O código também inverte o movimento FORWARD dependendo do hemisfério em que você está localizado. Isso é feito em uma parte do código, onde cuido das entradas de toque. Pode ser necessário revisar a seção de código.
- Engrenagem nos eixos DEC e RA :Meu código funciona assumindo que os eixos DEC e RA usam uma engrenagem de 144 dentes. Este é o caso do Vixen Super Polaris. Caso você tenha uma configuração diferente, pode ser necessário revisar algumas partes do código. Se você tiver problemas para identificar essas partes do código, mande-me uma mensagem e tentarei ajudá-lo!
Planeje suas atividades: Agora chegamos a um ponto em que precisamos planejar nossas atividades para realmente construir o sistema rDUINO Scope GoTo. A estimativa aproximada é que você deve ser capaz de completar o sistema em 2-3 dias, considerando que você tem tudo o que é necessário (hardware, ferramentas e materiais). Levei algo como 4-5 meses para concluí-lo, considerando que eu só conseguia trabalhar durante a noite (não todas as noites), e também precisava fazer muitas pesquisas. Juntar tudo me levou a:
- 1 dia para construir o painel Shield e melhorar o sistema
- 1 dia para embalar tudo em uma caixa
- 1 dia para consertar motores e polias na montagem
PASSO 2 Materiais
Agora, como sabemos basicamente como o programa funciona, você precisa planejar suas compras e obter os materiais necessários.
Lista de materiais :A maioria dos materiais que usei são comprados de fornecedores chineses na Internet. Poucos deles, porém, decidi comprar localmente principalmente porque eram considerados bons e eu queria evitar atrasos:GPS, Bluetooth e Joystick. Custou-me cerca de $ 190 USD para conseguir tudo isso, então é realmente um custo baixo em comparação com o quão caro é comprar tal sistema de fabricantes. Você pode encontrar a lista de materiais junto com seus preços e onde você pode comprá-los no site do projeto:http://rduinoscope.co.nf/rDUINO_step2.html, mas a lista também está disponível neste site na seção "COMPONENTES" .
Se você puder encontrá-los mais baratos ou entregá-los mais rápido, eu sugiro fortemente que você faça isso.
Além disso, dependendo do seu projeto, você pode precisar de 40 pinos. cabo com conectores para o TFT, alguns parafusos plásticos para prender o joystick, cabo USB para garantir que o Arduino Due ainda é programável quando fechado na caixa, ventilador e outros.
Se você não os tem em casa (como eu não tinha), também deve comprar alguns materiais de solda, solda, pinças, multímetro digital e outros.
Software de que você precisará :Uma parte importante da construção de seu rDUINOScope é baixar e instalar o IDE do Arduino e todos os softwares relacionados (drivers, definições de placa e bibliotecas). Siga a lista abaixo para instalar o necessário em seu computador:
- Acesse o site do Arduino e baixe o IDE:https://www.arduino.cc/en/Main/Software. Instale o software - assim que o software for instalado, ele também instalará os drivers necessários para que seu computador reconheça a placa Arduino quando conectado.
- Execute o Arduino IDE e navegue até: Ferramentas -> Tabuleiro -> Gerente de Conselhos , uma vez lá Baixe e instale a definição da placa Arduino Due “Placas Arduino SAM (ARM Cortex-M3 de 32 bits)”;
- Baixe o pacote de bibliotecas que usei como parte do programa e copie e cole na pasta “bibliotecas” de sua instalação do Arduino IDE. (NOTA:"bibliotecas" é uma pasta em seu computador, mas também é uma pasta dentro do PACOTE COMPLETO disponível no site do projeto: http://rduinoscope.co.nf/downloads.php , então o que você precisa fazer é baixar o pacote, renomear a extensão para .ZIP, abri-lo e copiar o conteúdo da pasta "_libraries" do ZIP para a pasta "libraries" do seu computador.)
- Reinicie o IDE e abra o arquivo do programa principal - “_02_Boiana_EQ.ino”. Você perceberá que mais 4 arquivos serão abertos em TABs separados. Esses são arquivos de suporte que cuidam de diferentes partes do software.
Agora você deve ser capaz de compilar o código e carregá-lo na placa do Arduino Due depois de conectar o Arduino ao seu computador.
Nota: Caso você não saiba como funciona o IDE do Arduino e o que precisa ser feito para programar o Arduino, consulte o site e os tutoriais:https://www.arduino.cc/en/Tutorial/HomePage
PASSO 3 Montagem
Para obter instruções mais detalhadas, visite o site do projeto:http://rduinoscope.co.nf/rDUINO_step3.html
Agora é a hora de criar o painel Shield. Uma placa Shield é uma placa com pinagens que você empilha na parte superior da placa ArduinoDUE. Alguns dos componentes precisam estar na placa e alguns estão melhor posicionados na caixa do gabinete. Minha divisão é assim:
- Suporte da placa de proteção:ambas as unidades DRV8825, relógio RTC3231, módulo Bluetooth HC-05, Piezo speker, conector para 12V e pinagem para os componentes restantes;
- Os componentes instalados na caixa são:Módulo GPS NEO 6M - RX para que a antena sempre aponte para o céu, sensor de temperatura DHT22 preso fora da caixa através de um orifício, joystick PS2, tela TFT e todos os interruptores (LIGADO Interruptor / OFF e interruptor de modo Dia / Noite). Além disso, fiz furos para os conectores dos drives do motor, conector da fonte de alimentação de 12 V e uma porta de cabo USB que vai para a porta Nativa do ArduinoDUE para permitir atualizações de software sem abrir a caixa.
Como conectar componentes à placa ARDUINO DUE:
Componente .... Pino de hardware .... Pino de Arduino
GPS
- GPS NEO 6M .... RX .... 16
- GPS NEO 6M .... TX .... 17
RTC
- RTC DS3231 .... SDA .... A4
- RTC DS3231 .... SCL .... A5
Bluetooth
- BT HC-05 .... TXD .... 14
- BT HC-05 .... RXD .... 15
DHT
- DHT22 .... out .... 3
Palestrante
- Alto-falante piezo .... 2
PS2
- joystick PS2 .... VRx .... A1
- joystick PS2 .... VRy .... A0
Declinação DRV8825
- DEC DRV8825 .... PASSO .... 6
- DEC DRV8825 .... DIR .... 7
- DEC DRV8825 .... M0 .... 10
- DEC DRV8825 .... M1 .... 9
- DEC DRV8825 .... M2 .... 8
- DEC DRV8825 .... REINICIAR DEC DRV8825 .... DORMIR
Ascenção Direita DRV8825
- RA DRV8825 .... PASSO .... 4
- RA DRV8825 .... DIR .... 5
- 3V
- RA DRV8825 .... M0 .... 11
- RA DRV8825 .... M1 .... 13
- RA DRV8825 .... M2 .... 12
- RA DRV8825 .... REINICIAR RA DRV8825 .... DORMIR
Tela TFT
- use com escudo TFT .... pinos (22-53) + SPI
- Dia / Noite .... Interruptor de modo .... A3
Certo ... Agora estamos prontos para montar o Shield Board. Pegue uma placa de circuito impresso de prototipagem e avalie como cortá-la, para que ela possa conter todos os componentes para ter algum espaço para a fiação e ter a pinagem soldada de forma que possa ser empilhada em cima do Arduino. Observe que você precisa soldar todos os pinos usados pelo Arduino e conectá-los aos componentes na placa de blindagem ou a um conector nesta placa de blindagem para que os componentes colocados na própria caixa possam ser conectados também.
Estou incluindo abaixo algumas fotos do processo:
Feito isso, conectei a placa e testei o escudo! Não estava funcionando! :( Eu verifiquei a fiação e descobri que criei uma ponte entre 2 conexões e tive que consertar. Observe que a partir deste momento comecei a verificar todos os problemas de solda, pois realmente tive a sorte de não queimar meu Arduino ou qualquer outra coisa com a fiação errada. NB:Certifique-se de verificar todas as conexões! Certifique-se de seguir o seguinte diagrama de fiação para o DRV8825 e os drives do motor, pois é importante.
Certifique-se de usar um adaptador de energia adequado (12 V, 1,6 A) e conectar os drives do motor antes de ligar a energia! NB:Nunca conecte os drives do motor quando o DRV8825 estiver sob carga, pois isso pode queimar os drivers!
Agora que todos os componentes estão soldados no lugar, sugiro que você também conecte os drives do motor, carregue o software na placa Arduino e teste toda a configuração. Deve funcionar sem falhas neste ponto.
Agora você deve ser capaz de brincar com o software e conhecer a interface do usuário. Para ajudar na interface, criei uma página do GUIA DO USUÁRIO no site do projeto:http://rduinoscope.co.nf/guide.html
Sua configuração deve ser semelhante a esta:
PASSO 4 Embale juntos
Assim que a placa de blindagem estiver pronta, pegue a caixa e comece a dispor todos os componentes restantes e planeje onde você precisa fazer os furos e que formato e tamanho. A melhor maneira de fazer buracos é com um canivete pequeno (pelo menos para mim). Realmente não importa se é um buraco redondo ou quadrado. Você pode cortá-lo facilmente com uma pequena faca afiada.
A única exceção é para a tela, onde você realmente precisa de um orifício longo, plano e quadrado. Pedi ajuda e meu pai o fez em suas máquinas de corte.
Assim que estiver satisfeito com o layout e considerá-lo factível, comece a cortar os orifícios. É um processo longo e cria alguma confusão, mas não deve demorar mais do que 2 a 3 horas. Às vezes eu usava brocas quando precisava fazer orifícios circulares, por exemplo:conector de alimentação de 12V, conectores de motor RA e DEC.
Prepare sua pistola de cola quente e comece a colar os componentes a quente na caixa, conforme mostrado abaixo:
Agora tudo está conectado e embalado, exceto o componente na face frontal da caixa. Decidi colocar lá a tela TFT, o joystick do PS2 e o botão Day / Night Mode. Quando cheguei à tela TFT, criei uma conexão simples de cabo de fita com conectores macho e fêmea e conectei à tela. No entanto, isso não funcionou! O motivo é que os pinos foram espelhados e, como tal, a tela TFT não pode mais funcionar. Portanto, decidi trabalhar em algumas conversões complicadas de 2D para 3D e descobrir os conectores que tinha com o cabo plano para resolver o problema
Longa história, resumindo: Não é uma ciência de foguetes, mas me deu alguns momentos difíceis até que eu descobrisse uma solução. Uma solução feia, mas funcionou e ainda funciona um ano depois. Abaixo você pode ver o que quero dizer.
Basicamente, o que você vê aqui é:
- Cabo fita
- conectores fêmea de 40 pinos
- pinos para soldar em um corte de PCB para formar matriz (2 x 20 pinos)
Funcionou como um encanto e me permitiu completar a caixa!
PASSO 5 O Monte Equatorial Alemão
Por mais que eu queira compartilhar com você como conectar os drives do motor à sua montagem, não posso. A verdade é que qualquer fabricante cria o seu próprio design e, como tal, não existe uma solução que funcione para todos.
Eu uso o Vixen Super Polaris dos anos 80 e o método abaixo funciona para isso. Preciso lembrar que as decisões que você tomou na ETAPA 1 onde você precisava alterar os valores no código agora afetará nosso trabalho. Abaixo você pode ver minha configuração de polias e correias.
Comprei 2 conjuntos para minha configuração. Só não tinha certeza de como funcionaria e comprei um conjunto com redução 1:4 e um conjunto com redução 1:3. O tamanho da correia também deve ser diferente porque a redução afeta a distância entre as duas polias. Admito que, com um bom planejamento e design, você pode decidir antecipadamente como proceder e poupar algum dinheiro, mas eu estava com pressa. Eu precisava fazer funcionar!
Depois de colocar as correias, roldanas e o suporte na minha frente, decidi que a melhor abordagem para mim seria usar a redução 1:4 porque tudo parecia encaixar perfeitamente no suporte e comecei a trabalhar na carcaça do motor. Depois de meio dia, consegui pensar nisso:
Testei toda a configuração e tive que fazer algumas alterações no software (atualizar os valores das variáveis para 4 na linha 35) para que representasse minha decisão final de projeto. Testei novamente e tudo funcionou perfeitamente.
Tive que esperar por uma boa noite estrelada para poder testá-lo corretamente, mas enquanto esperava, percebi que algo não estava certo!
Eu tinha o melhor sistema GOTO de controle de telescópio, muito melhor do que o que posso comprar com meu orçamento de hobby, mas não parecia certo. Precisou de alguns retoques finais, o que mais tarde me deixou orgulhoso do meu rDUINOScópio!
Finalmente, meu rDUINOScópio Vixen SP Ferrari tem a aparência que eu acho que deveria ter!
Arquivos
_READ_ME.txt:Descrição da versão final v.2.1 Boiana EQ junto com alguns F.A.Q.
_READ_ME.txt
_02_Boiana_EQ.ino:Arquivo Arduino principal
_02_Boiana_EQ.ino
graphic_screens.ino:GRAPHICS FILE - vinculado ao arquivo principal
graphic_screens.ino
touch_inputs.ino:TOUCH INPUTS FILE - vinculado ao arquivo principal
touch_inputs.ino
BT.ino:BLUETOOTH COMMUNNICATION - vinculado ao arquivo principal
BT.ino
regular_updates.ino:TIME UPDATES - vinculado ao arquivo principal
regular_updates.ino
Código
- Snippet de código # 1
- Snippet de código # 3
Snippet de código # 1 Texto simples
// AQUI VAI A informação de montagem, engrenagens e direção.// ... usada para calcular a proporção HourAngle para microSteps // ATUALIZE ESTA PARTE de acordo com sua CONFIGURAÇÃO // --------- ------------------------------------ // NB:RA e DEC usam a mesma relação de engrenagem (144 dente no meu caso)! // ------------------------------------------ ---- int WORM =144; int REDUTOR =4; // redução de marcha 1:4int DRIVE_STP =200; // Stepper drive tem 200 passos por revoluçãoint MICROSteps =16; // Usarei o modo de 1/16 microsteps para conduzir sideral - também determina a velocidade MAIS BAIXA.
Snippet de código # 3 C / C ++
if (SLEW_RA_microsteps> RA_microSteps) {digitalWrite (RA_DIR, STP_BACK); digitalWrite (RA_STP, HIGH); digitalWrite (RA_STP, LOW); RA_microSteps + =RA_mode_steps;} else {digitalWrite (RA_DIR, STP_FWD); digitalWrite (RA_STP, HIGH); digitalWrite (RA_STP, LOW); RA_microSteps - =RA_mode_steps;}
Github
https://github.com/dEskoG/rDUINOScopehttps://github.com/dEskoG/rDUINOScopeEsquemas
Como conectar motores de passo e DRV8825 e conectá-los ao Arduino DUE How to wire all all sensors and conenct to Arduino DUEProcesso de manufatura