Tabla de contenido:

Buscador de planetas Raspberry Pi: 14 pasos (con imágenes)
Buscador de planetas Raspberry Pi: 14 pasos (con imágenes)

Video: Buscador de planetas Raspberry Pi: 14 pasos (con imágenes)

Video: Buscador de planetas Raspberry Pi: 14 pasos (con imágenes)
Video: Raspberry Pi, Curso para principiantes 2024, Mes de julio
Anonim
Image
Image
Que necesitas
Que necesitas

Fuera del Centro de Ciencias de mi ciudad hay una gran estructura de metal que podría girar y señalar dónde estaban los planetas en el cielo. Nunca lo vi funcionar, pero siempre pensé que sería mágico saber dónde estaban realmente estos otros mundos inalcanzables en relación con mi pequeño yo.

Cuando pasé junto a esta exposición muerta hace mucho tiempo, pensé: "Apuesto a que podría hacer eso", ¡y así lo hice!

Esta es una guía sobre cómo hacer el Buscador de planetas (con la Luna) para que usted también sepa dónde buscar cuando se sienta asombrado por el espacio.

Paso 1: lo que necesita

Que necesitas
Que necesitas

1 x Raspberry Pi (versión 3 o superior para wifi integrado)

1 x pantalla LCD (16 x 2) (como esta)

2 x motores paso a paso con controladores (28-BYJ48) (como estos)

3 x pulsadores (como estos)

2 x acopladores de brida (como estos)

1 x botón de brújula (como este)

8 tornillos y tuercas M3

Piezas impresas en 3D para la caja y el telescopio

Paso 2: Coordenadas planetarias

Coordenadas planetarias
Coordenadas planetarias

Hay algunas formas diferentes de describir dónde se encuentran los objetos astronómicos en el cielo.

Para nosotros, el que tiene más sentido utilizar es el Sistema de coordenadas horizontales como se muestra en la imagen de arriba. Esta imagen es de la página de Wikipedia vinculada aquí:

en.wikipedia.org/wiki/Horizontal_coordinat…

El sistema de coordenadas horizontales le da un ángulo desde el norte (el acimut) y hacia arriba desde el horizonte (la altitud), por lo que es diferente según el lugar del mundo desde el que mire. Por lo tanto, nuestro buscador de planetas debe tener en cuenta la ubicación y tener alguna forma de encontrar el Norte para ser una referencia.

En lugar de intentar calcular la altitud y el azimut que cambian con la hora y la ubicación, utilizaremos la conexión wifi a bordo de la Raspberry Pi para buscar estos datos de la NASA. Realizan un seguimiento de este tipo de cosas para que no tengamos que hacerlo;)

Paso 3: acceder a los datos del planeta

Obtenemos nuestros datos del Laboratorio de Propulsión a Chorro de la NASA (JPL):

Para acceder a estos datos, utilizamos una biblioteca llamada AstroQuery, que es un conjunto de herramientas para consultar formularios web y bases de datos astronómicos. La documentación de esta biblioteca se encuentra aquí:

Si este es su primer proyecto de Raspberry Pi, comience siguiendo esta guía de configuración:

Si está usando Raspbian en su Raspberry Pi (lo estará si siguió la guía anterior), entonces ya tiene python3 instalado, asegúrese de tener instalada la versión más reciente (estoy usando la versión 3.7.3). Necesitamos usar esto para obtener pip. Abra una terminal y escriba lo siguiente:

sudo apt instalar python3-pip

Luego podemos usar pip para instalar la versión mejorada de astroquery.

pip3 install --pre --upgrade astroquery

Antes de continuar con el resto de este proyecto, intente acceder a estos datos con un simple script de Python para asegurarse de que todas las dependencias correctas se hayan instalado correctamente.

de astroquery.jplhorizons import Horizons

marte = Horizontes (id = 499, ubicación = '000', épocas = Ninguno, id_type = 'cuerpo mayor') eph = mars.ephemerides () print (eph)

¡Esto debería mostrarte los detalles de la ubicación de Marte!

Puede verificar si estos datos son correctos usando este sitio para buscar posiciones de planetas en vivo:

Para desglosar un poco esta consulta, la identificación es el número asociado con Marte en los datos del JPL, las épocas es el momento del que queremos los datos (Ninguno significa ahora) e id_type está preguntando por los cuerpos principales del sistema solar. La ubicación está establecida actualmente en el Reino Unido, ya que '000' es el código de ubicación del observatorio en Greenwich. Otras ubicaciones se pueden encontrar aquí:

Solución de problemas:

Si recibe el error: No hay módulo llamado 'keyring.util.escape'

prueba el siguiente comando en la terminal:

instalación de pip3 --upgrade keyrings.alt

Paso 4: Código

Adjunto a este paso está el script de Python completo utilizado en este proyecto.

Para encontrar los datos correctos para su ubicación, vaya a la función getPlanetInfo y cambie la ubicación usando la lista de observatorios en el paso anterior.

def getPlanetInfo (planeta):

obj = Horizontes (id = planeta, ubicación = '000', épocas = Ninguno, id_type = 'cuerpo mayor') eph = obj.ephemerides () return eph

Paso 5: Conexión del hardware

Hardware de conexión
Hardware de conexión
Hardware de conexión
Hardware de conexión
Hardware de conexión
Hardware de conexión

Usando placas de prueba y cables de puente, conecte dos motores paso a paso, la pantalla LCD y tres botones como se muestra en el diagrama de circuito anterior.

Para saber qué número de pines tiene su Raspberry Pi, vaya al terminal y escriba

pinout

Esto debería mostrarle la imagen de arriba completa con números GPIO y números de placa. Estamos usando números de placa para definir qué pines se usan en el código, por lo que haré referencia a los números entre paréntesis.

Como ayuda para el diagrama del circuito, aquí están los pines que están conectados a cada parte:

1er motor paso a paso - 7, 11, 13, 15

2do motor paso a paso - 40, 38, 36, 32

Botón1 - 33

Botón2 - 37

Botón3 - 35

Pantalla LCD: 26, 24, 22, 18, 16, 12

Cuando todo esto esté conectado, ejecute el script de Python

python3 planetFinder.py

y debería ver que la pantalla muestra el texto de configuración y los botones deben mover los motores paso a paso.

Paso 6: diseño de la carcasa

Diseñando el caso
Diseñando el caso
Diseñando el caso
Diseñando el caso
Diseñando el caso
Diseñando el caso

El estuche fue diseñado para ser impreso en 3D fácilmente. Se descompone en partes separadas que luego se pegan una vez que los componentes electrónicos se han asegurado en su lugar.

Los orificios tienen el tamaño de los botones que usé y los pernos M3.

Imprimí el telescopio en partes y las pegué juntas más tarde para evitar demasiada estructura de soporte.

Los archivos STL se adjuntan a este paso.

Paso 7: prueba de las impresiones

Probando las impresiones
Probando las impresiones
Probando las impresiones
Probando las impresiones
Probando las impresiones
Probando las impresiones
Probando las impresiones
Probando las impresiones

Una vez que todo esté impreso, asegúrese de que todo encaje perfectamente antes de pegar.

Coloque los botones en su lugar y asegure la pantalla y los motores paso a paso con pernos M3 y déle a todo un buen movimiento. Lime los bordes ásperos y desarma todo nuevamente antes del siguiente paso.

Paso 8: extensión del motor paso a paso

Extensión del motor paso a paso
Extensión del motor paso a paso
Extensión del motor paso a paso
Extensión del motor paso a paso
Extensión del motor paso a paso
Extensión del motor paso a paso

El motor paso a paso que controlará el ángulo de elevación del telescopio se colocará sobre la carcasa principal y necesita algo de holgura en los cables para poder girar. Los cables deben extenderse cortándolos entre el paso a paso y su placa de controlador y soldando una nueva longitud de cable en el medio.

Inserté el nuevo cable en la torre de soporte con un trozo de hilo para ayudar a pasarlo, ya que el cable que estoy usando es bastante rígido y se atasca. Una vez atravesado, se puede soldar al motor paso a paso, asegurándose de realizar un seguimiento de qué color está conectado para volver a colocar los correctos en el otro extremo. ¡No olvide agregar termorretráctil a los cables!

Una vez soldado, ejecute el script de Python para comprobar que todo sigue funcionando, luego empuje los cables hacia abajo del tubo hasta que el motor paso a paso esté en posición. Luego se puede unir a la carcasa del motor paso a paso con pernos y tuercas M3 antes de pegar la parte posterior de la carcasa.

Paso 9: Monte los botones y la pantalla LCD

Botones de montaje y pantalla LCD
Botones de montaje y pantalla LCD
Botones de montaje y pantalla LCD
Botones de montaje y pantalla LCD
Botones de montaje y pantalla LCD
Botones de montaje y pantalla LCD
Botones de montaje y pantalla LCD
Botones de montaje y pantalla LCD

Inserte los botones y apriete las tuercas para asegurarlos en su lugar antes de soldar. Me gusta usar un cable de tierra común que se extiende entre ellos para mayor pulcritud.

Asegure la pantalla LCD con tornillos y tuercas M3. La pantalla LCD quiere un potenciómetro en uno de sus pines que también soldé en esta etapa.

¡Prueba el código de nuevo! Asegúrese de que todo siga funcionando antes de pegar todo, ya que es mucho más fácil de arreglar en esta etapa.

Paso 10: Agregar bridas

Agregar bridas
Agregar bridas
Agregar bridas
Agregar bridas
Agregar bridas
Agregar bridas
Agregar bridas
Agregar bridas

Para conectar las piezas impresas en 3D a los motores paso a paso, utilizamos un acoplamiento de brida de 5 mm que encaja en la parte superior del extremo del motor paso a paso y se mantiene en su lugar mediante pequeños tornillos.

Una brida está pegada a la base de la torre giratoria y la otra al telescopio.

Fijar el telescopio al motor en la parte superior de la torre giratoria es simple, ya que hay mucho espacio para acceder a los pequeños tornillos que lo sujetan en su lugar. La otra brida es más difícil de asegurar, pero hay suficiente espacio entre la caja principal y la base de la torre giratoria para colocar una pequeña llave Allen y apretar el tornillo.

¡Prueba nuevamente!

Ahora todo debería estar funcionando como estará en su estado final. Si no es así, ahora es el momento de corregir los errores y asegurarse de que las conexiones sean seguras. Asegúrese de que los cables expuestos no se toquen entre sí, recorra con cinta aislante y repare cualquier lugar que pueda causar un problema.

Paso 11: Ejecutar en el inicio

En lugar de ejecutar el código manualmente cada vez que queremos encontrar un planeta, queremos que esto se ejecute como una exhibición independiente, por lo que lo configuraremos para que ejecute nuestro código cada vez que se encienda la Raspberry Pi.

En la terminal, escriba

crontab -e

En el archivo que se abre, agregue lo siguiente al final del archivo, seguido de una nueva línea.

@reboot python3 /home/pi/PlanetFinder/planetFinder.py &

Tengo mi código guardado en una carpeta llamada PlanetFinder, por lo que /home/pi/PlanetFinder/planetFinder.py es la ubicación de mi archivo. Si el tuyo está guardado en otro lugar, asegúrate de cambiarlo aquí.

El & al final es importante ya que permite que el código se ejecute en segundo plano, por lo que no detiene otros procesos que también ocurren en el arranque.

Paso 12: ¡Péguelo todo junto

¡Pégalo todo junto!
¡Pégalo todo junto!
¡Pégalo todo junto!
¡Pégalo todo junto!

Todo lo que no esté pegado en su lugar ahora debería estar fijo.

Finalmente, agregue la pequeña brújula en el medio de la base giratoria.

Paso 13: uso

Uso
Uso

Cuando el Planet Finder se enciende, le pedirá al usuario que ajuste el eje vertical. Presionando los botones arriba y abajo moverá el telescopio, intente nivelarlo, apuntando hacia la derecha, luego presione el botón OK (en la parte inferior).

Luego se le pedirá al usuario que ajuste la rotación, use los botones para girar el telescopio hasta que apunte al norte de acuerdo con la pequeña brújula, luego presione ok.

Ahora puede recorrer los planetas usando los botones arriba / abajo y seleccionar uno que le gustaría encontrar con el botón Aceptar. Mostrará la altitud y el azimut del planeta, luego irá y señalará durante unos segundos antes de volverse hacia el norte.

Paso 14: terminado

Finalizado
Finalizado

¡Todo listo!

Disfruta sabiendo dónde están todos los planetas:)

Desafío espacial
Desafío espacial
Desafío espacial
Desafío espacial

Primer premio en el Space Challenge

Recomendado: