Jeśli jesteś zainteresowany tym, gdzie dokładnie znajduje się ISS (Międzynarodowa Stacja Kosmiczna), ten projekt jest dla Ciebie.
Wewnątrz urządzenia znajdują się dwa silniki krokowe, które kontrolują pozycję lasera. Wprowadzono także oświetlenie tej części Ziemi, na którą padają promienie słoneczne.
Narzędzia i materiały:
- Ziemia z nadrukiem 3D o średnicy 18 cm;
Drukarka 3D;
-Rurka miedziana;
-Beton płytki;
-Wemos D1 Mini moduł z Wi-Fi;
- Serwonapęd EMAX ES3352 MG;
-Step silnik 28BYJ-48 z płytą sterownika ULN2003;
-10 diod LED NeoPixels;
-Laser o długości fali 405 nm;
- Wyłącznik krańcowy;
- Zasilacz 5V 3A;
Krok pierwszy: Drukowanie 3D
Aby zmontować cały sprzęt, musisz wydrukować szczegóły ramy. Możesz pobrać pliki do drukowania tutaj.
Rama składa się z trzech części:
-base - do montażu silnika krokowego, WEMOS, taśmy Neopixels i rurki miedzianej.
- środkowa część do zainstalowania wyłącznika krańcowego;
- Górna część służy do montażu siłownika.
Krok drugi: Połącz i zbuduj
Do zasilania dostarczane będzie napięcie 5V 3A. Zasilanie jest dostarczane ze złącza do sterownika krokowego, lasera, diod LED i modułu Wemos.
Następnie musisz nawiązać połączenie z Wemos:
1) Sterownik krokowy
IN1-> D5
IN2-> D6
IN3-> D7
IN4-> D8
2) Silnik serwo
Pin serwo danych -> D1
3) diody LED
Pin Neopixels -> D2
4) Wyłącznik krańcowy
Dwa piny przełącznika na GND i D3
Krok trzeci: kod
Aby dwa silniki poruszały się synchronicznie z ISS, musisz uzyskać pozycję ISS w czasie rzeczywistym:
Aby to zrobić, najpierw użyjemy interfejsu API od Otwórz powiadom tutaj
Następnie musisz przeanalizować dane, aby uzyskać wartość lokalizacji ISS za pomocą analizy danych: Biblioteka ArduinoJson
#include 0) {// Analiza składni
const size_t bufferSize = JSON_OBJECT_SIZE (2) + JSON_OBJECT_SIZE (3) + 100;
DynamicJsonBuffer jsonBuffer (bufferSize);
JsonObject & root = jsonBuffer.parseObject (http.getString ()); // Parametry
const char * message = root ["message"];
const char * lon = root ["iss_position"] [„longitude”];
const char * lat = root ["iss_position"] [„latitude”]; // Wyjście na monitor szeregowy
Serial.print („Wiadomość:”);
Serial.println (komunikat);
Serial.print („Longitude:”);
Serial.println (lon);
Serial.print („Latitude:”);
Serial.println (lat);
}
http.end (); // Zamknij połączenie
}
opóźnienie (50000);
}
Następujący kod Arduino pozwala uzyskać położenie ISS w celu przesunięcia lasera w pożądane miejsce na powierzchni Ziemi i uzyskanie położenia Słońca w celu oświetlenia odpowiednich diod LED na powierzchni Ziemi, oświetlonych przez Słońce.
ISS_Tracker_Final.ino
Wszystko jest gotowe.