rDUINOScopio
Componentes y suministros
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 10 | ||||
| × | 1 | ||||
| × | 1 |
Acerca de este proyecto
Descripción
El primer telescopio de control Goto autónomo basado en Arduino del mundo.
Todos los controles de telescopio de código abierto disponibles usan Raspberry Pi, que consume mucha energía, o usan Arduino como extensión para una computadora, teléfono inteligente o tableta. rDUINOScope es el primer dispositivo autónomo basado en Arduino que permite a los astrónomos aficionados disfrutar del cielo nocturno.
La idea inicial era crear una alternativa barata y fácil de construir de productos GOTO disponibles comercialmente como los fabricados por SkyWatcher, Orion, Vixen y otros. Por lo tanto, la arquitectura de hardware se basa en una placa Arduino DUE y sensores económicos disponibles en el mercado. Instrucciones sobre cómo construir y guía del usuario se crearon en el sitio web del proyecto. En el corazón del sistema hay una placa Arduino DUE, cargada con software que se desarrolla constantemente para agregar funcionalidad.
rDUINOScope con Stellarium:
Detalles
rDUINOScopio es un sistema de control de telescopio (GOTO) de código abierto, basado en Arduino Due. ¡Diseñado como un sistema independiente, rDUINOScope no necesita una PC, tableta o teléfono celular, ni conexión a Internet para operar y ofrecer vistas impresionantes!
Básicamente tiene una base de datos con LOS MEJORES 250 objetos estelares (Catálogos Messier y Hidden Treasures) y 200 estrellas , calcula su posición en el cielo y apunta el telescopio. Los procedimientos de alineación implementados permiten una experiencia de "siempre en el ocular" cuando se desplaza hacia los objetos seleccionados y una vez que el objeto está en el ocular, el sistema lo sigue rastreando.
Sin embargo, en caso de que desee aprovechar sus dispositivos electrónicos, #rDUINOScope utiliza la comunicación Bluetooth (configuración inalámbrica) para conectarse con todos los dispositivos electrónicos y aceptar comandos basados en el protocolo de comunicación MEADE LX200.
El sistema funciona con motores paso a paso de todo tipo y se puede montar tanto en soportes de bricolaje como en productos disponibles comercialmente como SkyWatcher, MEADE, Orion, Vixen, etc.
Funcionalidad:
¿Qué hay dentro del rDUINO SCOPE?
rDUINOScope Github
Instrucciones de construcción
PASO 1 Preparación
Antes de comenzar, es importante que comprenda cómo funciona el software para poder realizar cambios y personalizarlo. ¡Después de todo, esta es una de las fortalezas más importantes de este proyecto!
Para comprender esta parte, debe descargar el código de los archivos del proyecto, junto con los archivos de las "bibliotecas" ... o simplemente descargar el paquete completo desde: http://rduinoscope.co.nf/downloads.php . Todos los números de fila referenciados están de acuerdo con el código de V2.1. Boiana EQ
Debes saber cómo funciona el código Arduino. Por lo general, el programa Arduino tiene 2 secciones:SETUP (); y LOOP (); SETUP () se ejecuta al principio del programa y básicamente utiliza el sistema; LOOP () es una función de bucle constante que se activa varias veces por segundo. Entonces, para asegurarnos de que tenemos pantallas, entradas táctiles, etc. y que la pantalla no parpadea debido al LOOP (), necesitamos inventar un mecanismo para que Arduino sepa qué es lo que el usuario espera que haga. Así, en la sección LOOP () verá una porción muy pequeña del código que solo dice "Considere tocar ... o considerar tiempo ..." y etc. El resto de las actividades suceden dentro de esas funciones lo que nos permite alterar el flujo del programa para que las pantallas no se actualicen varias veces por segundo.
Cálculos :He utilizado información que se encuentra en Internet sobre cómo calcular la posición de los objetos estelares. La mayor parte de la información que recopilé del siguiente enlace:http://www.stargazing.net/kepler/altaz.html:describe las fórmulas necesarias y el enfoque para calcular el ángulo horario (HA), conocer la ubicación, la hora actual y el objeto estelar RA y DEC.
Una vez que creé el código para calcular HA / fila 678:void calculateLST_HA () /
, Usé esta página para verificar si funciona bien:http://www.jgiesen.de/astro/astroJS/siderealClock/, y en una etapa posterior, cuando agregué la base de datos con Messier Objects, usé Stellarium (http:// www.stellarium.org/) solicitud para los mismos cheques.
El problema principal que encontré no fueron las fórmulas en sí, sino la forma en que Arduino maneja los tipos de variables y, en particular, la precisión de los cálculos.
Ahora, una vez que tenemos el HA y DEC calculados para un objeto dado, queremos que el punto de montaje sea el telescopio y, para hacerlo, necesitamos saber de alguna manera cuánto deben girar exactamente los motores. Para tener éxito en esto, necesito saber cuál es la relación de gusano a engranaje, es decir, cuántas vueltas debe hacer el gusano para que el engranaje haga 360 °. Tengo Vixen Super Polaris y una búsqueda rápida en Internet reveló que usa un engranaje de 144 dientes para ejes RA y DEC. He creado un archivo de Excel simple (* .XLS - http://rduinoscope.co.nf/downloads/Gears_Stepper_Calculation.xlsx) para calcular cuánto deben girar los motores una vez que calculé HA y DEC, y también con qué frecuencia "disparar "motores para compensar la rotación de la Tierra.
Gears_Stepper_Calculation.xlsxEl mismo modelo matemático que utilicé en XLS también se implementa en el código, por lo que lo que debe hacer es simplemente sustituir los valores de su montura al comienzo del código (filas 34 a 37).
// AQUÍ VAYA LA INFORMACIÓN DE MONTAJE, ENGRANAJES Y TRACCIÓN .// ... se usa para calcular la relación HourAngle a microSteps // ACTUALIZA ESTA PARTE de acuerdo con tu CONFIGURACIÓN // ------ --------------------------------------- // NB:RA y DEC usan el mismo equipo ratio (144 dientes en mi caso)! // --------------------------------------- ------- int GUSANO =144; int REDUCTOR =4; // Reducción de marcha 1:4int DRIVE_STP =200; // La unidad paso a paso tiene 200 pasos por revolución en MICROSteps =16; // Usaré el modo de micropasos 1/16 para conducir sidéreo; también determina la velocidad MÁS BAJA.
Ahora, una vez que hayamos calculado las relaciones, el código sabrá cuánto girar los motores para apuntar el telescopio a las coordenadas correspondientes y también cuál es la velocidad del reloj para que la montura pueda rastrear el objeto. Las funciones que se ocupan de lo anterior comienzan en la fila 906 y la fila 917:
void Sidereal_rate () {} void cosiderSlewTo () {}
Consideraciones :Sabes, este no es un producto listo para el consumidor. Le permite personalizarlo para sus necesidades y, por lo tanto, es muy flexible, pero con la flexibilidad vienen algunos inconvenientes. He incluido esta sección de "consideraciones" para asegurarme de que no se eliminen de su lista de tareas pendientes.
- Montaje de motores es una tarea simple, que sin embargo afecta la forma en que deberían funcionar sus cálculos. En mi escenario, las Vixen Super Polaris tienen sus engranajes originales colocados en el lado derecho del eje helicoidal. Sin embargo, encontré que esos ejes eran cortos para reemplazar los engranajes con poleas y, por lo tanto, moví las poleas en el lado opuesto del eje (izquierda). Esto provocó que el motor realmente necesita girar hacia atrás para aumentar la posición del telescopio y, por lo tanto, tuve que revisar el código original que había creado. Definitivamente debe revisar las direcciones en las que giran los motores de otra manera, terminará con un conteo incorrecto de los pasos y, por lo tanto, en una posición incorrecta. Permítame mostrarle lo que quiero decir:vea la fila 1028 donde ordeno el motor a STP_BACK, pero en la fila 1031 aumento el contador + =... (Todos los números de fila referenciados están de acuerdo con el código de V2.1. Boiana EQ ).
if (SLEW_RA_microsteps> RA_microSteps) {digitalWrite (RA_DIR, STP_BACK); escritura digital (RA_STP, ALTA); escritura digital (RA_STP, BAJA); RA_microSteps + =RA_mode_steps;} else {digitalWrite (RA_DIR, STP_FWD); escritura digital (RA_STP, ALTA); escritura digital (RA_STP, BAJA); RA_microSteps - =RA_mode_steps;}
ACCIÓN: Revise las siguientes partes del código: void consider_Manual_Moveint xP, int yP ), anular cosiderSlewTo () y void Sidereal_rate ().
- Northern VS. Sur Hemisferios:el código también invierte el movimiento HACIA ADELANTE dependiendo del hemisferio en el que se encuentre. Esto se hace en una parte del código, donde me ocupo de las entradas táctiles. Es posible que deba revisar la sección de código.
- Engranaje en los ejes DEC y RA :Mi código funciona asumiendo que tanto el eje DEC como el RA usan un engranaje de 144 dientes. Este es el caso de Vixen Super Polaris. En caso de que tenga una configuración diferente, es posible que deba revisar algunas partes del código. Si tiene problemas para identificar esas partes del código, envíeme un mensaje e intentaré ayudarlo.
Planifique sus actividades: Ahora llegamos a un punto en el que necesitamos planificar nuestras actividades para construir realmente el sistema rDUINO Scope GoTo. Una estimación aproximada es que debería poder completar el sistema en 2-3 días considerando que tiene todo lo necesario (HW, herramientas y materiales). Me tomó alrededor de 4-5 meses completarlo, considerando que solo podía trabajar durante la noche (no todas las noches), y también necesitaba hacer mucha investigación. Ponerlo todo junto me tomó como:
- 1 día para construir el tablero Shield y poner en marcha el sistema
- 1 día para empacar todo en una caja
- 1 día para fijar motores y poleas al soporte
PASO 2 Materiales
Ahora, como sabemos cómo funciona básicamente el programa, debe planificar sus adquisiciones y obtener los materiales necesarios.
Lista de materiales :La mayoría de los materiales que utilicé se compran a proveedores chinos en Internet. Pocos de ellos, sin embargo, decidí comprar localmente principalmente porque se consideraba bueno tenerlos y quería evitar retrasos:GPS, Bluetooth y Joystick. Me costó aproximadamente $ 190 USD para obtener todo esto, por lo que es realmente un costo bajo en comparación con lo caro que es comprar dicho sistema a los fabricantes. Puede encontrar la lista de materiales junto con sus precios y dónde puede comprarlos en el sitio web del proyecto:http://rduinoscope.co.nf/rDUINO_step2.html, pero la lista también está disponible en este sitio web en la sección "COMPONENTES" .
Si puede encontrarlos más baratos o entregarlos más rápido, le sugiero que lo haga.
Además, dependiendo de su diseño, es posible que necesite 40 pines. cable con conectores para el TFT, algunos pernos de plástico para sujetar el joystick, cable USB para asegurar que el Arduino Due aún sea programable cuando está incluido en la caja, ventilador y otros.
Si no los tiene en casa (como yo no los tenía), también debería comprar algunos materiales de soldadura, soldadura, pinzas, multímetro digital y otros.
Software que necesitará :Una parte importante de la construcción de su rDUINOScope es descargar e instalar el IDE de Arduino y todo el software relacionado (controladores, definiciones de placa y bibliotecas). Siga la lista a continuación para realizar la instalación necesaria en su computadora:
- Vaya al sitio web de Arduino y descargue el IDE:https://www.arduino.cc/en/Main/Software. Instale el software:una vez que el software esté instalado, también instalará los controladores necesarios para que su computadora reconozca la placa Arduino cuando esté conectada.
- Ejecute el IDE de Arduino y navegue hasta: Herramientas -> Tablero -> Administrador de tableros , una vez allí, descargue e instale la definición de placa Arduino Due “Arduino SAM Boards (ARM Cortex-M3 de 32 bits)”;
- Descargue el paquete de bibliotecas que utilicé como parte del programa y cópielo y péguelo en la carpeta "bibliotecas" de su instalación de Arduino IDE. (NOTA:"bibliotecas" es una carpeta en su computadora, pero también es una carpeta dentro del PAQUETE COMPLETO disponible en el sitio web del proyecto: http://rduinoscope.co.nf/downloads.php , así que lo que debe hacer es descargar el paquete, cambiar el nombre de la extensión a .ZIP, abrirla y copiar el contenido de la carpeta "_libraries" del ZIP a la carpeta "libraries" en su computadora.)
- Reinicie el IDE y abra el archivo del programa principal - "_02_Boiana_EQ.ino". Notará que se abrirán 4 archivos más en pestañas separadas. Esos son archivos de soporte que se ocupan de diferentes partes del software.
Ahora debería poder compilar el código y cargarlo en la placa Arduino Due después de conectar Arduino a su computadora.
Nota: En caso de que no sepa cómo funciona el IDE de Arduino y qué se debe hacer para programar Arduino, consulte el sitio web y los tutoriales:https://www.arduino.cc/en/Tutorial/HomePage
PASO 3 Ensamblar
Para obtener instrucciones más detalladas, visite el sitio web del proyecto:http://rduinoscope.co.nf/rDUINO_step3.html
Ahora es el momento de crear el tablero Shield. Una placa Shield es una placa con pines que se apilan en la parte superior de la placa ArduinoDUE. Algunos de los componentes deben estar en esa placa y algunos están mejor colocados en la caja del gabinete. Mi división es así:
- Soporte de placa protectora:ambas unidades DRV8825, reloj RTC3231, módulo Bluetooth HC-05, altavoz piezoeléctrico, conector para 12V y distribución de pines para los componentes restantes;
- Los componentes montados en la caja son:Módulo GPS NEO 6M - RX para que la antena siempre pueda apuntar hacia el cielo, sensor de temperatura DHT22 pegado fuera de la caja a través de un orificio, Joystick PS2, la pantalla TFT y todos los interruptores (ON / Interruptor de apagado y el interruptor de modo día / noche). Además, he perforado agujeros para los conectores de las unidades de motor, el conector de la fuente de alimentación de 12 V y un puerto de cable USB que va al puerto nativo ArduinoDUE para permitir actualizaciones de software sin abrir la caja.
Cómo conectar componentes a la placa ARDUINO DUE:
Componente ... Pin de hardware ... Pin 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
Orador
- Altavoz piezoeléctrico .... 2
PS2
- Joystick de PS2 .... VRx .... A1
- Joystick de PS2 .... VRy .... A0
Declinación DRV8825
- DEC DRV8825 .... PASO .... 6
- DEC DRV8825 .... DIR .... 7
- DEC DRV8825 .... M0 .... 10
- DEC DRV8825 .... M1 .... 9
- DEC DRV8825 .... M2 .... 8
- DEC DRV8825 .... RESET DEC DRV8825 .... SLEEP
Right Ascention DRV8825
- RA DRV8825 .... PASO .... 4
- RA DRV8825 .... DIR .... 5
- 3V
- RA DRV8825 .... M0 .... 11
- RA DRV8825 .... M1 .... 13
- RA DRV8825 .... M2 .... 12
- RA DRV8825 .... RESET RA DRV8825 .... SLEEP
Pantalla TFT
- usar con TFT Shield .... pines (22-53) + SPI
- Día / noche .... Cambio de modo .... A3
Bien ... Ahora estamos listos para ensamblar la placa protectora. Obtenga un prototipo de PCB y evalúe cómo cortarlo, de modo que pueda contener todos los componentes para tener algo de espacio para el cableado y soldar los pines de tal manera que pueda apilarse encima de Arduino. Tenga en cuenta que debe soldar todos los pines utilizados por Arduino y conectarlos a los componentes en la placa Shield o a un conector en esta placa Shield para que los componentes colocados en la caja también se puedan conectar.
Incluyo algunas fotos del proceso a continuación:
Una vez que terminé, conecté la placa y probé el escudo. ¡No estaba funcionando! :( Revisé el cableado y resultó que había creado un puente entre 2 conexiones y tuve que arreglarlo. Tenga en cuenta que a partir de este momento comencé a verificar cada soldadura en busca de problemas, ya que realmente tuve la suerte de no quemar mi Arduino o cualquier otra cosa con el cableado incorrecto. NB:¡asegúrese de comprobar todas las conexiones! Asegúrese de seguir el siguiente diagrama de cableado para el DRV8825 y los variadores de motor, ya que es importante.
¡Asegúrese de utilizar un adaptador de corriente adecuado (12 V, 1,6 A) y conecte los accionamientos del motor antes de que se encienda la alimentación! NB:¡Nunca conecte unidades de motor cuando el DRV8825 esté bajo carga, ya que podría quemar los controladores!
Ahora que todos los componentes están soldados en su lugar, le sugiero que también conecte las unidades del motor, cargue el software en la placa Arduino y pruebe toda la configuración. Debería funcionar sin problemas en este punto.
Ahora debería poder jugar con el software y familiarizarse con la interfaz de usuario. Para ayudar con la interfaz, he creado una página de GUÍA DEL USUARIO en el sitio web del proyecto:http://rduinoscope.co.nf/guide.html
Tu configuración debería verse así:
PASO 4 Ponlo en caja
Una vez que la placa protectora esté lista, tome la caja y comience a colocar todos los componentes restantes y planifique dónde necesita perforar agujeros y qué forma y tamaño. La mejor manera de hacer agujeros es con una pequeña navaja (al menos para mí). Realmente no importa si es un agujero redondo o cuadrado. Puedes tallarlo fácilmente con un pequeño cuchillo afilado.
La única excepción es para la pantalla donde realmente necesita un agujero largo, uniforme y cuadrado. Pedí ayuda y mi padre lo hizo en sus máquinas de corte.
Una vez que esté satisfecho con el diseño y lo considere factible, comience a cortar los agujeros. Es un proceso largo y crea algo de lío, pero no debería llevarte más de 2 a 3 horas. A veces utilicé taladros cuando tenía que hacer agujeros en círculos, por ejemplo:conector de fuente de alimentación de 12 V, conectores de motor RA y DEC.
Prepare su pistola de pegamento caliente y comience a pegar los componentes en caliente a la caja como se muestra a continuación:
Ahora todo está conectado y empaquetado, excepto el componente en la parte frontal de la caja. Decidí poner allí la pantalla TFT, el joystick de PS2 y el interruptor de modo día / noche. Cuando llegué a la pantalla TFT, creé una conexión de cable plano simple con conectores macho y hembra y la enganché a la pantalla. ¡Sin embargo, esto no funcionó! La razón es que los pines se reflejaron y, como tal, la pantalla TFT ya no puede funcionar. Por lo tanto, decidí resolver algunas conversiones complicadas de 2D a 3D y resolver los conectores que tenía con el cable plano para resolver el problema
Historia larga, corta: No es una ciencia espacial, pero me dio momentos difíciles hasta que encuentre una solución. Una solución desagradable, pero funcionó y sigue funcionando un año después. A continuación puede ver lo que quiero decir.
Básicamente, lo que ves aquí es:
- Cable plano
- Conectores hembra de 40 pines
- pines para soldar en una PCB cortados para formar una matriz (2 x 20 pines)
¡Funcionó a las mil maravillas y me permitió completar la caja!
PASO 5 El monte ecuatorial alemán
Ahora, por mucho que quiera compartir con ustedes cómo conectar los accionamientos del motor a su soporte, no puedo. La verdad es que cualquier fabricante crea su propio diseño y como tal, no existe una solución que funcione para todos.
Utilizo Vixen Super Polaris de los años 80 y el método siguiente funciona. Necesito recordarle que las decisiones que tomó en el PASO 1 donde necesitabas cambiar los valores en el código ahora afectará nuestro trabajo. A continuación puede ver mi configuración de poleas y correas.
Compré 2 juegos para mi configuración. Simplemente no estaba seguro de cómo funcionaría y, por lo tanto, compré un juego con reducción 1:4 y un juego con reducción 1:3. El tamaño de la correa también debe ser diferente porque la reducción afecta la distancia entre ambas poleas. Admito que con una buena planificación y diseño puedes decidir por adelantado cómo proceder y ahorrar algo de dinero, pero tenía prisa. ¡Necesitaba hacerlo funcionar!
Después de tener las correas, las poleas y el soporte frente a mí, decidí que el mejor enfoque para mí sería usar una reducción de 1:4 porque todo parecía encajar perfectamente en el soporte y comencé a trabajar en la carcasa del motor. Después de medio día, pude pensar en esto:
Probé toda la configuración y tuve que hacer algunos cambios en el software (actualizar los valores de las variables a 4 en la fila 35) para que represente mi decisión de diseño final. Lo probé de nuevo y todo funcionó como un encanto.
Tuve que esperar una buena noche estrellada para probarlo correctamente, pero hasta que esperé, ¡me di cuenta de que algo no estaba del todo bien!
Tenía el mejor sistema GOTO de control de telescopio, mucho mejor de lo que puedo comprar con mi presupuesto de afición, pero no se veía bien. ¡Necesitaba algunos toques finales, algo que luego me enorgulleció de mi rDUINOScope!
¡Finalmente, mi rDUINOScope Vixen SP Ferrari se ve como yo creo que debería verse!
Archivos
_READ_ME.txt:Descripción de la versión final v.2.1 Boiana EQ junto con algunas preguntas frecuentes
_READ_ME.txt_02_Boiana_EQ.ino:Archivo Arduino principal
_02_Boiana_EQ.inographic_screens.ino:ARCHIVO DE GRÁFICOS - vinculado al archivo principal
graphic_screens.inotouch_inputs.ino:ARCHIVO DE ENTRADAS TÁCTILES - vinculado al archivo principal
touch_inputs.inoBT.ino:COMUNICACIÓN BLUETOOTH - vinculado al archivo principal
BT.inoregular_updates.ino:ACTUALIZACIONES DE HORA - vinculado al archivo principal
regular_updates.ino
Código
- Fragmento de código n. ° 1
- Fragmento de código n. ° 3
Fragmento de código n. ° 1 Texto sin formato
// AQUÍ VAYA LA INFORMACIÓN DE MONTAJE, ENGRANAJES Y DIRECCIÓN .// ... se usa para calcular la relación HourAngle a microSteps // ACTUALIZA ESTA PARTE de acuerdo con tu CONFIGURACIÓN // --------- ------------------------------------ // NB:RA y DEC utilizan la misma relación de transmisión (144 diente en mi caso)! // ------------------------------------------ ---- int GUSANO =144; int REDUCTOR =4; // Reducción de marcha 1:4int DRIVE_STP =200; // La unidad paso a paso tiene 200 pasos por revolución en MICROSteps =16; // Usaré el modo de micropasos 1/16 para conducir sidéreo; también determina la velocidad MÁS BAJA.
Fragmento de código n. ° 3 C / C ++
if (SLEW_RA_microsteps> RA_microSteps) {digitalWrite (RA_DIR, STP_BACK); escritura digital (RA_STP, ALTA); escritura digital (RA_STP, BAJA); RA_microSteps + =RA_mode_steps;} else {digitalWrite (RA_DIR, STP_FWD); escritura digital (RA_STP, ALTA); escritura digital (RA_STP, BAJA); RA_microSteps - =RA_mode_steps;}
Github
https://github.com/dEskoG/rDUINOScopehttps://github.com/dEskoG/rDUINOScopeEsquemas
Cómo cablear motores paso a paso y DRV8825 y conectarlos a Arduino DUE Cómo cablear todos los sensores y conectarse a Arduino DUEProceso de manufactura