Sadržaj:

ISS lampa za praćenje: 5 koraka (sa slikama)
ISS lampa za praćenje: 5 koraka (sa slikama)

Video: ISS lampa za praćenje: 5 koraka (sa slikama)

Video: ISS lampa za praćenje: 5 koraka (sa slikama)
Video: 5 NEVEROVATNIH LIFE HAKOVA #2 2024, Novembar
Anonim
ISS Lampa za praćenje
ISS Lampa za praćenje
ISS Lampa za praćenje
ISS Lampa za praćenje

Većinu vremena pitam se gdje ISS gleda u nebo. Da bih odgovorio na ovo pitanje, napravio sam fizički objekt da bih znao gdje se tačno nalazi ISS u stvarnom vremenu.

ISS Lampa za praćenje je svjetiljka povezana s internetom koja stalno prati ISS i prikazuje lokaciju na površini Zemlje (ispisano u 3D).

Bonus: lampa takođe prikazuje sunčanu stranu Zemlje sa neopikselima! ??

Dakle, u ovom uputstvu ćemo vidjeti različite korake za izgradnju ove lampe zasnovane na WEMOS D1 Mini, koračnom motoru, servo motoru, laseru i 3D dijelovima.

Gradim sam, osim 3D štampane Zemlje, kupljene na Aliexpressu.

Softver:

  • Kod zasnovan na Arduinu
  • API ISS lokacija: Open Notify - trenutna lokacija ISS -a (autor Nathan Bergey)
  • Raščlanjivanje podataka: ArduinoJson biblioteka (autor Benoit Blanchon)

CAD i dijelovi:

  • 3D štampana Zemlja promjera 18 cm (kupljeno na Aliexpressu: ovdje)
  • Nosači motora 3D štampani - dizajnirani sa Fusion 360 i štampani sa Prusa i3 MK2S
  • Bakrena cijev
  • Betonska podloga, izrađena od francuskih Vikinga

Hardver:

  • Mikrokontroler: Wemos D1 Mini (integrirana wifi antena)
  • Servo EMAX ES3352 MG
  • Koračni motor 28byj-48 (sa upravljačkom pločom ULN2003)
  • 10 NeoPixels LED
  • Laser talasne dužine 405 nm
  • Granični prekidač
  • Napajanje 5V 3A

Korak 1: Modeliranje dijelova u Fusion 360 i štampanje

Modeliranje dijelova u Fusion 360 i štampanje
Modeliranje dijelova u Fusion 360 i štampanje
Modeliranje dijelova u Fusion 360 i štampanje
Modeliranje dijelova u Fusion 360 i štampanje
Modeliranje dijelova u Fusion 360 i štampanje
Modeliranje dijelova u Fusion 360 i štampanje

Da bismo montirali sav hardver, stvorit ćemo osnovu za sastavljanje jezgre na 3D dijelovima. Dijelovi su dostupni na Thingiverse -u ovdje.

Postoje 3 dijela:

1) Geografska dužina koraka za podršku

Ovaj dio je napravljen za montažu koračnog motora, WEMOS -a, trake od neopiksela i bakrene cijevi

2) Prekidač za podršku

Ovaj dio je napravljen za ugradnju graničnog prekidača (upotrijebite za označavanje koraka geografske širine -0 °/-180 °). Zašrafljen je na vrh stepera

3) Servo Latitude za podršku

Ovaj dio je napravljen za montažu servo motora. Servo za podršku montiran je na koračni motor

Svi dijelovi su štampani na Prusa I3 MK2S, sa crnim PETG filamentom

Korak 2: Ožičenje i sastavljanje

Ožičenje i sastavljanje
Ožičenje i sastavljanje
Ožičenje i sastavljanje
Ožičenje i sastavljanje

Ovaj krug će imati ulaz 5V 3A (kako bi se koristilo isto napajanje za stepper driver, laser, neopiksele i WEMOS)

Na sljedećoj skici moramo paralelno lemiti napajanje direktno na gornje elemente:

  • Stepper Driver
  • Laser
  • Traka od neopiksela (Napomena: u stvarnosti postoji 10 neopiksela, a ne 8 kako prikazuje skica)
  • WEMOS

Zatim moramo povezati različite elemente s WEMOS -om:

1) Steper upravljački program koji slijedi ovu listu:

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

2) Servo motor slijedi:

Servo pin podataka -> D1

3) Neopikselna traka je sljedeća:

Podaci Neopikseli Pin -> D2

4) Krajnji prekidač je sljedeći:

Dva pina se prebacuju na GND i D3

Spojite krajnji prekidač na način da se krug otvori/prekine kada pritisnemo prekidač (tako da se krug zatvori kada ništa ne pritisne na njega). Ovo je kako bi se izbjeglo pogrešno predavanje zbog vrha napona.

Korak 3: Arduino kod - Dobivanje položaja ISS -a u stvarnom vremenu

Da bismo doveli dva motora do položaja ISS -a, moramo dobiti položaj ISS -a u stvarnom vremenu:

  • Za to ćemo prvo koristiti API iz Open Notify Here
  • Zatim moramo raščlaniti podatke da bismo dobili jednostavnu vrijednost lokacije ISS -a uz pomoć raščlanjivanja podataka: ArduinoJson Library (autor Benoit Blanchon)

#include <ESP8266WiFi.h #include <ESP8266HTTPClient.h #include <ArduinoJson.h // WiFi parametri const char* ssid = "XXXXX"; const char* lozinka = "XXXXX"; void setup () {Serial.begin (115200); WiFi.begin (ssid, lozinka); while (WiFi.status ()! = WL_CONNECTED) {kašnjenje (1000); Serial.println ("Povezivanje …"); }}

Ovaj program povezuje NodeMCU s WiFi mrežom, zatim se povezuje s API -jem, preuzima podatke i ispisuje ih serijski.

void loop () {{100} {101}

if (WiFi.status () == WL_CONNECTED) // Provjeri WiFi status {HTTPClient http; // Objekat klase HTTPClient http.begin ("https://api.open-notify.org/iss-now.json"); int httpCode = http. GET (); // Provjeravamo povratni kôd if (httpCode> 0) {// Raščlanjivanje 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* poruka = root ["poruka"]; const char* lon = root ["iss_position"] ["longitude"]; const char* lat = root ["iss_position"] ["geografska širina"]; // Izlaz na serijski monitor Serial.print ("Poruka:"); Serial.println (poruka); Serial.print ("Dužina:"); Serial.println (lon); Serial.print ("Latitude:"); Serial.println (lat); } http.end (); // Zatvaranje veze} kašnjenje (50000); }

Korak 4: Završni Arduino kod

Sljedeći Arduino kôd određuje lokaciju ISS -a za pomicanje lasera na pravo mjesto na Zemljinoj površini i dobijanje položaja Sunca da osvijetli dotične neopiksele kako bi osvijetlio površinu Zemlje dodirnutu suncem.

Bonus 1: Kada je lampa uključena, tokom faze inicijalizacije, laser će pokazati položaj lampe (id: položaj na kojem se nalazi ruter)

Bonus 2: Kada je ISS pored lokacije lampe (+/- 2 ° dužine i +/- 2 ° lat.), Svi neopikseli će lagano namignuti

Korak 5: Uživajte u svom ISS Tracker -u

Napravili ste ISS lampu za praćenje, uživajte!

Prvo takmičenje autora
Prvo takmičenje autora
Prvo takmičenje autora
Prvo takmičenje autora

Prva nagrada na Prvom takmičenju autora

Preporučuje se: