Spisu treści:

Lampa śledząca ISS: 5 kroków (ze zdjęciami)
Lampa śledząca ISS: 5 kroków (ze zdjęciami)

Wideo: Lampa śledząca ISS: 5 kroków (ze zdjęciami)

Wideo: Lampa śledząca ISS: 5 kroków (ze zdjęciami)
Wideo: Kamera-LAMPA ze śledzeniem i identyfikacją osoby. 2024, Lipiec
Anonim
Lampa śledząca ISS
Lampa śledząca ISS
Lampa śledząca ISS
Lampa śledząca ISS

Przez większość czasu zastanawiam się, gdzie ISS patrzy w niebo. Aby odpowiedzieć na to pytanie, stworzyłem obiekt fizyczny, aby dokładnie wiedzieć, gdzie jest ISS w czasie rzeczywistym.

Lampa śledząca ISS to lampa podłączona do Internetu, która stale śledzi ISS i wyświetla jej lokalizację na powierzchni Ziemi (drukowana w 3D).

Bonus: lampa wyświetla również słoneczną stronę Ziemi za pomocą Neopikseli!??

Tak więc w tej instrukcji zobaczymy różne kroki, aby zbudować tę lampę w oparciu o WEMOS D1 Mini, silnik krokowy, silnik serwo, laser i części 3D.

Buduję sam, z wyjątkiem Ziemi wydrukowanej w 3D, która została zakupiona na Aliexpress.

Oprogramowanie:

  • Kod oparty na Arduino
  • Lokalizacja ISS API: Otwórz powiadomienie - Aktualna lokalizacja ISS (autor: Nathan Bergey)
  • Analiza danych: Biblioteka ArduinoJson (by Benoit Blanchon)

CAD i części:

  • Ziemia Drukowana 3D o średnicy 18cm (kupiona na Aliexpress: tutaj)
  • Drukowane w 3D wsporniki silnika - zaprojektowane w Fusion 360 i wydrukowane w Prusa i3 MK2S
  • Miedziana rura
  • Podstawa betonowa, wykonana we francuskich wikingach

Sprzęt:

  • Mikrokontroler: Wemos D1 Mini (zintegrowana antena wifi)
  • Serwo EMAX ES3352 MG
  • Silnik krokowy 28byj-48 (z płytą sterownika ULN2003)
  • 10 Neopikseli LED
  • Laser o długości fali 405 nm
  • Wyłącznik krańcowy
  • Zasilanie 5V 3A

Krok 1: Modelowanie części w Fusion 360 i drukowanie

Modelowanie części w Fusion 360 i druku
Modelowanie części w Fusion 360 i druku
Modelowanie części w Fusion 360 i druku
Modelowanie części w Fusion 360 i druku
Modelowanie części w Fusion 360 i druku
Modelowanie części w Fusion 360 i druku

Aby zamontować cały sprzęt, stworzymy bazę montażową rdzenia na częściach 3D. Części są dostępne na Thingiverse tutaj.

Składa się z 3 części:

1) długość geograficzna krokowa wsparcia

Ta część jest przeznaczona do montażu silnika krokowego, WEMOS, paska Neopixels i miedzianej rurki

2) Przełącznik wsparcia

Ta część jest przeznaczona do montażu wyłącznika krańcowego (służy do wskazania stepperowi szerokości geograficznej -0°/-180°). Jest przykręcony na górze steppera

3) Szerokość geograficzna serwomechanizmu wsparcia

Ta część jest przeznaczona do montażu serwomotoru. Serwo pomocnicze jest zamontowane na silniku krokowym

Wszystkie części zostały wydrukowane na Prusa I3 MK2S, z czarnym filamentem PETG

Krok 2: Okablowanie i montaż

Okablowanie i montaż
Okablowanie i montaż
Okablowanie i montaż
Okablowanie i montaż

Ten obwód będzie miał wejście zasilania 5V 3A (aby użyć tego samego zasilania dla sterownika krokowego, lasera, Neopikseli i WEMOS)

Poniższym szkicem musimy przylutować zasilacz bezpośrednio do powyższych elementów równolegle:

  • Sterownik krokowy
  • Laser
  • Pasek Neopikseli (Uwaga: w rzeczywistości jest 10 Neopikseli, a nie 8, jak pokazuje szkic)
  • WEMOS

Następnie musimy połączyć różne elementy z WEMOS:

1) Sterownik krokowy po tej liście:

  • IN1->D5
  • IN2->D6
  • IN3->D7
  • IN4->D8

2) serwosilnik następujący:

Pin serwomechanizmu danych -> D1

3) Pasek Neopixels następujący:

Pin Neopiksela danych -> D2

4) wyłącznik krańcowy następujący:

Dwa piny przełącznika do GND i D3

Podłącz wyłącznik krańcowy w taki sposób, aby obwód był otwarty/uszkodzony po naciśnięciu wyłącznika (aby obwód był zamknięty, gdy nic na niego nie naciska). Ma to na celu uniknięcie błędnego wykładu z powodu szczytu napięcia.

Krok 3: Kod Arduino - uzyskanie pozycji ISS w czasie rzeczywistym

Aby sterować dwoma silnikami, aby osiągnąć pozycję ISS, musimy uzyskać pozycję ISS w czasie rzeczywistym:

  • W tym celu najpierw użyjemy API z Open Notify Here
  • Następnie musimy przeanalizować dane, aby uzyskać prostą wartość lokalizacji ISS za pomocą Parsing data: ArduinoJson Library (by Benoit Blanchon)

#include <ESP8266WiFi.h #include <ESP8266HTTPClient.h #include <ArduinoJson.h // Parametry WiFi const char* ssid = "XXXXX"; const char* hasło = "XXXXX"; void setup() { Serial.begin(115200); WiFi.begin(SSid, hasło); while (WiFi.status()!= WL_CONNECTED) { delay(1000); Serial.println("Łączę…"); } }

Ten program łączy NodeMCU z Wi-Fi, a następnie łączy się z API, pobiera dane i drukuje je przez port szeregowy.

pusta pętla () {

if (WiFi.status() == WL_CONNECTED) // Sprawdź stan Wi-Fi {HTTPClient http; //Obiekt klasy HTTPClient http.begin("https://api.open-notify.org/iss-now.json"); int httpCode = http. GET(); //Sprawdź kod zwracany if (httpCode >0) { // Parsowanie const size_t bufferSize = JSON_OBJECT_SIZE(2) + JSON_OBJECT_SIZE(3) + 100; DynamicJsonBuffer jsonBuffer(rozmiarbufora); JsonObject& root = jsonBuffer.parseObject(http.getString()); // Parametry const char* wiadomość = root["wiadomość"]; const char* lon = root["iss_position"]["długość geograficzna"]; const char* lat = root["iss_position"]["szerokość geograficzna"]; // Wyjście do monitora szeregowego Serial.print("Komunikat:"); Serial.println(wiadomość); Serial.print("Długość: "); Serial.println(lon); Serial.print("Szerokość geograficzna: "); Serial.println(lat); } http.end(); //Zamknij połączenie } delay(50000); }

Krok 4: Ostateczny kod Arduino

Poniższy kod Arduino określa lokalizację ISS, aby przesunąć laser we właściwe miejsce na powierzchni Ziemi, a także ustala pozycję słońca, aby oświetlić odpowiednie Neopiksele, aby oświetlić powierzchnię Ziemi dotkniętą przez słońce.

Bonus 1: Gdy lampa jest włączona, podczas fazy inicjalizacji, laser wskaże pozycję lampy (id: pozycja, w której znajduje się router)

Bonus 2: Gdy ISS znajduje się obok lokalizacji lampy (+/- 2° długości i +/- 2° szerokości), wszystkie Neopiksele delikatnie mrugną

Krok 5: Ciesz się swoim trackerem ISS

Zrobiłeś lampę śledzącą ISS, ciesz się!

Konkurs autorski po raz pierwszy
Konkurs autorski po raz pierwszy
Konkurs autorski po raz pierwszy
Konkurs autorski po raz pierwszy

I nagroda w Konkursie Autorskim Pierwszy raz

Zalecana: