İçindekiler:

ISS Takip Lambası: 5 Adım (Resimli)
ISS Takip Lambası: 5 Adım (Resimli)

Video: ISS Takip Lambası: 5 Adım (Resimli)

Video: ISS Takip Lambası: 5 Adım (Resimli)
Video: Adım at para kazan hîlesi ( Arapların taktiği 😅 ) 2024, Kasım
Anonim
ISS Takip Lambası
ISS Takip Lambası
ISS Takip Lambası
ISS Takip Lambası

Çoğu zaman, ISS'nin gökyüzüne nereye baktığını merak ediyorum. Bu soruyu cevaplamak için, ISS'nin gerçek zamanlı olarak tam olarak nerede olduğunu bilmek için fiziksel bir nesne yaptım.

ISS İzleme Lambası, ISS'yi sürekli izleyen ve Dünya yüzeyinde konumunu gösteren (3D olarak basılmış) İnternet bağlantılı bir lambadır.

Bonus: Lamba ayrıca Neopiksellerle Dünyanın güneşli tarafını da gösteriyor!??

Bu nedenle, bu Talimatlarda, bu lambayı WEMOS D1 Mini, step motor, servo motor, lazer ve 3D parçalara dayalı olarak oluşturmak için farklı adımları göreceğiz.

Aliexpress'ten satın alınan 3D baskılı Dünya dışında her şeyi kendim yapıyorum.

Yazılım:

  • Arduino tabanlı kod
  • API ISS Konumu: Açık Bildirim - ISS'nin Mevcut Konumu (Nathan Bergey tarafından)
  • Ayrıştırma verileri: ArduinoJson Kütüphanesi (Benoit Blanchon tarafından)

CAD ve Parçaları:

  • 18cm çapında 3D Baskılı Toprak (Aliexpress'ten satın alındı: burada)
  • 3D baskılı motor destekleri - Fusion 360 ile tasarlandı ve Prusa i3 MK2S ile basıldı
  • Bakır boru
  • Fransız Vikingleri ile yapılan beton taban

Donanım:

  • Mikrodenetleyici: Wemos D1 Mini (wifi anten entegre)
  • Servo EMAX ES3352 MG
  • Step Motor 28byj-48 (ULN2003 sürücü kartı ile)
  • 10 NeoPiksel LED
  • 405 nm dalga boyunda lazer
  • Limit anahtarı
  • 5V 3A Güç Kaynağı

Adım 1: Parçaları Fusion 360'ta Modelleme ve Yazdırma

Fusion 360'ta Parçaları Modelleme ve Baskı
Fusion 360'ta Parçaları Modelleme ve Baskı
Fusion 360 ve Baskıda Parçaları Modelleme
Fusion 360 ve Baskıda Parçaları Modelleme
Fusion 360'ta Parçaları Modelleme ve Baskı
Fusion 360'ta Parçaları Modelleme ve Baskı

Tüm donanımı monte etmek için çekirdek montaj tabanını 3B parçalar üzerinde oluşturacağız. Parçalar burada Thingiverse'de mevcuttur.

3 kısım vardır:

1) Destek Step Boylamı

Bu parça step motoru, WEMOS'u, Neopiksel şeridi ve bakır boruyu monte etmek için yapılmıştır.

2) Destek Anahtarı

Bu parça, limit anahtarının montajı için yapılmıştır (step cihazına -0°/-180° enlemini belirtmek için kullanın). Stepper'ın üstüne vidalanmış

3) Destek Servo Latitude

Bu parça servo motorun montajı için yapılmıştır. Destek Servosu, step motora monte edilmiştir.

Tüm parçalar siyah PETG filamentli Prusa I3 MK2S üzerine basılmıştır.

Adım 2: Kablolama ve Montaj

Kablolama ve Montaj
Kablolama ve Montaj
Kablolama ve Montaj
Kablolama ve Montaj

Bu devre 5V 3A güç girişine sahip olacaktır (aynı beslemeyi step sürücü, lazer, Neopikseller ve WEMOS için kullanmak için)

Aşağıdaki Sketch ile, güç kaynağını doğrudan yukarıdaki elemanlara paralel olarak lehimlememiz gerekiyor:

  • Step Sürücü
  • Lazer
  • Neopiksel şeridi (Not: gerçekte 10 Neopiksel vardır, çizimde gösterildiği gibi 8 değil)
  • WEMOS

Ardından, farklı öğeleri WEMOS'a bağlamamız gerekiyor:

1) Bu listeyi takip eden step sürücü:

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

2) Aşağıdaki servo motor:

Veri Servo Pimi -> D1

3) Neopiksel şeridi aşağıdaki gibidir:

Veri Neopiksel Pimi -> D2

4) Aşağıdaki limit anahtarı:

GND ve D3'e geçişin iki pimi

Limit şalterini, şaltere bastığımızda devre açılacak/kırılacak şekilde (böylece üzerine hiçbir şey basıldığında devre kapalı olacak şekilde) bağlayın. Bu, voltaj tepe noktası nedeniyle herhangi bir yanlış anlatımı önlemek içindir.

Adım 3: Arduino Kodu - ISS Konumunu Gerçek Zamanlı Olarak Alma

ISS'nin konumuna ulaşmak için iki motoru sürmek için ISS'nin konumunu gerçek zamanlı olarak almamız gerekir:

  • Bunun için önce Buraya Bildir'i Aç'tan API'yi kullanacağız.
  • Ardından, Parsing data: ArduinoJson Library (by Benoit Blanchon) yardımıyla ISS konumunun basit değerini elde etmek için verileri ayrıştırmamız gerekiyor.

#include <ESP8266WiFi.h #include <ESP8266HTTPClient.h #include <ArduinoJson.h // WiFi Parametreleri const char* ssid = "XXXXX"; const char* şifre = "XXXXX"; geçersiz kurulum() { Serial.begin(115200); WiFi.begin(ssid, şifre); while (WiFi.status()!= WL_CONNECTED) { gecikme(1000); Serial.println("Bağlanıyor…"); } }

Bu program NodeMCU'yu WiFi'ye bağlar, ardından API'ye bağlanır, verileri alır ve seri olarak yazdırır.

boşluk döngüsü () {

if (WiFi.status() == WL_CONNECTED) // WiFi Durumunu Kontrol Et {HTTPClient http; // HTTPClient sınıfının nesnesi http.begin("https://api.open-notify.org/iss-now.json"); int httpKodu = http. GET(); //dönen kodu kontrol edin if (httpCode >0) { // Parsing const size_t bufferSize = JSON_OBJECT_SIZE(2) + JSON_OBJECT_SIZE(3) + 100; DynamicJsonBuffer jsonBuffer(bufferSize); JsonObject& root = jsonBuffer.parseObject(http.getString()); // Parametreler const char* mesaj = kök["mesaj"]; const char* lon = kök["iss_position"]["boylam"]; const char* lat = kök["iss_position"]["enlem"]; // Seri monitöre çıktı Serial.print("Mesaj:"); Serial.println(mesaj); Serial.print("Boylam: "); Seri.println(lon); Serial.print("Enlem: "); Seri.println(lat); } http.end(); //Bağlantıyı kapat } gecikme(50000); }

Adım 4: Son Arduino Kodu

Aşağıdaki Arduino kodu, lazeri Dünya yüzeyinde doğru yere hareket ettirmek için ISS konumunu ve Güneş'in Dünya'nın temasını aydınlatmak için ilgili Neopikselleri aydınlatmak için güneşin konumunu alır.

Bonus 1: Lamba açıldığında, başlatma aşamasında, lazer lambanın konumunu işaret edecektir (id: yönlendiricinin bulunduğu konum)

Bonus 2: ISS, lamba konumunun yanında (+/- 2° uzunluğunda ve +/-2° enlem.) olduğunda, tüm Neopikseller hafifçe göz kırpacaktır.

Adım 5: ISS Tracker'ınızın Keyfini Çıkarın

Bir ISS Takip Lambası yaptınız, keyfini çıkarın!

İlk Kez Yazar Yarışması
İlk Kez Yazar Yarışması
İlk Kez Yazar Yarışması
İlk Kez Yazar Yarışması

İlk Kez Yazar Yarışmasında Birincilik Ödülü

Önerilen: