Se sei interessato esattamente dove si trova attualmente la ISS (Stazione Spaziale Internazionale), questo progetto fa per te.
All'interno del dispositivo sono presenti due motori passo-passo che controllano la posizione del laser. Inoltre è implementata l'illuminazione di quella parte della Terra su cui cadono i raggi del sole.
Strumenti e materiali:
Terra -3D stampata con un diametro di 18 cm;
-3D stampante;
-Tubo rame;
-Piastrella in calcestruzzo;
-Wemos D1 Mini modulo con Wi-Fi;
- Servoazionamento EMAX ES3352 MG;
-Passo motore 28BYJ-48 con scheda driver ULN2003;
-10 LED NeoPixels;
-Laser con una lunghezza d'onda di 405 nm;
- Finecorsa;
- Alimentazione 5V 3A;
Fase 1: stampa 3D
Per assemblare tutta l'attrezzatura è necessario stampare i dettagli del telaio. È possibile scaricare file per la stampa qui.
La cornice ha tre parti:
-base - per il montaggio di un motore passo-passo, WEMOS, nastro Neopixels e tubo di rame.
- la parte centrale per l'installazione del finecorsa;
- La parte superiore è per il montaggio di un servomotore.
Fase due: connettiti e costruisci
Per l'alimentazione, verrà fornita una tensione di 5 V 3 A. L'alimentazione viene fornita dal connettore allo step driver, al laser, ai LED e al modulo Wemos.
Successivamente è necessario effettuare una connessione a Wemos:
1) Step driver
IN1-> D5
IN2-> D6
IN3-> D7
IN4-> D8
2) Servomotore
Pin servo dati -> D1
3) LED
Neopixels Pin -> D2
4) Finecorsa
Due pin di commutazione su GND e D3
Terzo passaggio: codice
Affinché due motori si muovano in modo sincrono con l'ISS, è necessario ottenere la posizione dell'ISS in tempo reale:
Per fare ciò, utilizzeremo prima l'API da Apri notifica qui
Quindi è necessario analizzare i dati per ottenere il valore della posizione ISS utilizzando l'analisi dei dati: Libreria ArduinoJson
#include 0) {// Analisi
const size_t bufferSize = JSON_OBJECT_SIZE (2) + JSON_OBJECT_SIZE (3) + 100;
DynamicJsonBuffer jsonBuffer (bufferSize);
JsonObject & root = jsonBuffer.parseObject (http.getString ()); // Parametri
const char * message = root ["message"];
const char * lon = root ["iss_position"] ["longitudine"];
const char * lat = root ["iss_position"] ["latitude"]; // Uscita su monitor seriale
Serial.print ("Messaggio:");
Serial.println (messaggio);
Serial.print ("Longitudine:");
Serial.println (lon);
Serial.print ("Latitude:");
Serial.println (lat);
}
http.end (); // Chiudi connessione
}
ritardo (50000);
}
Codice seguente Arduino consente di ottenere la posizione dell'ISS per spostare il laser nella posizione desiderata sulla superficie terrestre e ottenere la posizione del Sole per illuminare i corrispondenti LED sulla superficie terrestre, illuminati dal Sole.
ISS_Tracker_Final.ino
È tutto pronto.