Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
La mayoría de las veces, me pregunto dónde está la ISS mirando al cielo. Para responder a esta pregunta, hice un objeto físico para saber exactamente dónde está la ISS en tiempo real.
La lámpara de seguimiento de la ISS es una lámpara conectada a Internet que rastrea constantemente la ISS y muestra su ubicación en la superficie de la Tierra (impresa en 3D).
Bono: la lámpara también muestra el lado soleado de la Tierra con Neopixels.
Entonces, en este Instructables, veremos los diferentes pasos para construir esta lámpara basada en WEMOS D1 Mini, motor paso a paso, servomotor, láser y piezas 3D.
Lo construyo yo solo, excepto la Tierra impresa en 3D, que se compró en Aliexpress.
Software:
- Código basado en Arduino
- Ubicación de API ISS: Notificación abierta - Ubicación actual de la ISS (por Nathan Bergey)
- Análisis de datos: Biblioteca ArduinoJson (por Benoit Blanchon)
CAD y piezas:
- Tierra impresa en 3D de 18 cm de diámetro (comprada en Aliexpress: aquí)
- Soportes de motor impresos en 3D: diseñados con Fusion 360 e impresos con Prusa i3 MK2S
- Tubo de cobre
- Base de hormigón, realizada con los vikingos franceses
Hardware:
- Microcontrolador: Wemos D1 Mini (antena wifi integrada)
- Servo EMAX ES3352 MG
- Motor paso a paso 28byj-48 (con la placa de controlador ULN2003)
- 10 NeoPixels LED
- Láser de longitud de onda de 405 nm
- Límite de cambio
- Fuente de alimentación 5V 3A
Paso 1: Modelado de piezas en Fusion 360 e impresión
Para montar todo el hardware, crearemos la base del ensamblaje central en piezas 3D. Las piezas están disponibles en Thingiverse aquí.
Hay 3 partes:
1) La longitud paso a paso de soporte
Esta pieza está hecha para montar el motor paso a paso, el WEMOS, la tira de Neopixels y el tubo de cobre.
2) El interruptor de soporte
Esta pieza está hecha para montar el interruptor de límite (usar para indicar al paso a paso la latitud -0 ° / -180 °). Está atornillado en la parte superior del paso a paso.
3) El soporte Servo Latitude
Esta pieza está hecha para montar el servomotor. El servo de soporte está montado en el motor paso a paso.
Todas las piezas fueron impresas en Prusa I3 MK2S, con filamento PETG negro
Paso 2: cableado y montaje
Este circuito tendrá una entrada de alimentación de 5V 3A (para poder utilizar la misma alimentación para el driver paso a paso, el láser, los Neopixels y el WEMOS)
Mediante el siguiente boceto, necesitamos soldar la fuente de alimentación directamente a los elementos de arriba en paralelo:
- Controlador paso a paso
- Láser
- Tira de Neopixels (NB: hay 10 Neopixels en realidad, no 8 como muestra el boceto)
- WEMOS
A continuación, necesitamos conectar los diferentes elementos al WEMOS:
1) El controlador paso a paso siguiendo esta lista:
- IN1-> D5
- IN2-> D6
- IN3-> D7
- IN4-> D8
2) El servomotor siguiente:
Pin del servo de datos -> D1
3) La tira de Neopixels sigue:
Pin de neopíxeles de datos -> D2
4) El interruptor de límite siguiente:
Los dos pines del interruptor a GND y D3
Conecte el interruptor de límite de manera que el circuito se abra / rompa cuando presionamos el interruptor (para que el circuito se cierre cuando nada lo presione). Esto es para evitar cualquier lectura incorrecta debido a un pico de voltaje.
Paso 3: Código Arduino - Obtener la posición ISS en tiempo real
Para impulsar los dos motores para alcanzar la posición de la ISS, necesitamos obtener la posición de la ISS en tiempo real:
- Para eso primero usaremos la API de Open Notify Here
- Luego, necesitamos analizar los datos para obtener un valor simple de la ubicación de ISS con la ayuda de Análisis de datos: Biblioteca ArduinoJson (por Benoit Blanchon)
#include <ESP8266WiFi.h #include <ESP8266HTTPClient.h #include <ArduinoJson.h // Parámetros de WiFi const char * ssid = "XXXXX"; const char * contraseña = "XXXXX"; configuración vacía () {Serial.begin (115200); WiFi.begin (ssid, contraseña); while (WiFi.status ()! = WL_CONNECTED) {retraso (1000); Serial.println ("Conectando …"); }}
Este programa conecta el NodeMCU al WiFi, luego se conecta a la API, obtiene los datos e imprímelos por serie.
bucle vacío () {
if (WiFi.status () == WL_CONNECTED) // Compruebe el estado de WiFi {HTTPClient http; // Objeto de clase HTTPClient http.begin ("https://api.open-notify.org/iss-now.json"); int httpCode = http. GET (); // Verifique el código de retorno if (httpCode> 0) {// Analizando const size_t bufferSize = JSON_OBJECT_SIZE (2) + JSON_OBJECT_SIZE (3) + 100; DynamicJsonBuffer jsonBuffer (tamaño de búfer); JsonObject & root = jsonBuffer.parseObject (http.getString ()); // Parámetros const char * message = root ["mensaje"]; const char * lon = root ["iss_position"] ["longitude"]; const char * lat = root ["iss_position"] ["latitud"]; // Salida al monitor serial Serial.print ("Mensaje:"); Serial.println (mensaje); Serial.print ("Longitud:"); Serial.println (lon); Serial.print ("Latitud:"); Serial.println (lat); } http.end (); // Cerrar conexión} delay (50000); }
Paso 4: Código Arduino final
El siguiente código de Arduino obtiene la ubicación de la ISS para mover el láser al lugar correcto en la superficie de la Tierra, y la posición del sol para iluminar los Neopixels en cuestión para iluminar la superficie del toque de la Tierra con el sol.
Bono 1: cuando la lámpara está encendida, durante la fase de inicialización, el láser apuntará la posición de la lámpara (id: la posición donde está el enrutador)
Bonificación 2: cuando la ISS está junto a la ubicación de la lámpara (+/- 2 ° de largo y +/- 2 ° de lat.), Todos los Neopixels parpadearán suavemente
Paso 5: disfrute de su rastreador ISS
Has hecho una lámpara de seguimiento ISS, ¡disfrútala!
Primer premio en el concurso de autores por primera vez