Mục lục:

Đèn theo dõi ISS: 5 bước (có hình ảnh)
Đèn theo dõi ISS: 5 bước (có hình ảnh)

Video: Đèn theo dõi ISS: 5 bước (có hình ảnh)

Video: Đèn theo dõi ISS: 5 bước (có hình ảnh)
Video: Hành trình phóng Tàu vũ trụ lên Quỹ đạo Trái Đất - Trạm Vũ trụ Quốc Tế ISS 2024, Tháng mười một
Anonim
Đèn theo dõi ISS
Đèn theo dõi ISS
Đèn theo dõi ISS
Đèn theo dõi ISS

Hầu hết thời gian, tôi tự hỏi ISS đang nhìn lên bầu trời ở đâu. Để trả lời câu hỏi này, tôi đã tạo một đối tượng vật lý để biết chính xác ISS ở đâu trong thời gian thực.

Đèn theo dõi ISS là đèn được kết nối Internet liên tục theo dõi ISS và hiển thị vị trí của nó trên bề mặt Trái đất (in ở dạng 3D).

Phần thưởng: đèn cũng hiển thị mặt đầy nắng của Trái đất với Neopixels! ??

Vì vậy, trong Tài liệu hướng dẫn này, chúng ta sẽ xem các bước khác nhau để chế tạo đèn này dựa trên WEMOS D1 Mini, động cơ bước, động cơ servo, laser và các bộ phận 3D.

Tôi tự tay xây dựng tất cả, ngoại trừ Trái đất in 3D, được mua trên Aliexpress.

Phần mềm:

  • Mã dựa trên Arduino
  • Vị trí API ISS: Thông báo mở - Vị trí hiện tại của ISS (bởi Nathan Bergey)
  • Phân tích dữ liệu: Thư viện ArduinoJson (bởi Benoit Blanchon)

CAD & Các bộ phận:

  • Trái đất in 3D đường kính 18cm (mua trên Aliexpress: tại đây)
  • Hỗ trợ động cơ in 3D - được thiết kế với Fusion 360 và được in bằng Prusa i3 MK2S
  • Ống đồng
  • Cơ sở bê tông, được làm bằng người Viking Pháp

Phần cứng:

  • Bộ vi điều khiển: Wemos D1 Mini (tích hợp ăng ten wifi)
  • Servo EMAX ES3352 MG
  • Động cơ bước 28byj-48 (với bảng điều khiển ULN2003)
  • Đèn LED 10 NeoPixels
  • Laser bước sóng 405 nm
  • Công tắc giới hạn
  • Nguồn điện 5V 3A

Bước 1: Tạo mô hình các bộ phận trong Fusion 360 và in

Các bộ phận tạo mô hình trong Fusion 360 và In ấn
Các bộ phận tạo mô hình trong Fusion 360 và In ấn
Các bộ phận tạo mô hình trong Fusion 360 và In ấn
Các bộ phận tạo mô hình trong Fusion 360 và In ấn
Các bộ phận tạo mô hình trong Fusion 360 và In ấn
Các bộ phận tạo mô hình trong Fusion 360 và In ấn

Để gắn kết tất cả phần cứng, chúng tôi sẽ tạo cơ sở lắp ráp cốt lõi trên các bộ phận 3D. Các bộ phận có sẵn trên Thingiverse tại đây.

Có 3 phần:

1) Kinh độ bước hỗ trợ

Bộ phận này được chế tạo để gắn động cơ bước, WEMOS, dải Neopixels và ống đồng

2) Công tắc hỗ trợ

Bộ phận này được chế tạo để lắp công tắc hành trình (sử dụng để chỉ cho người bước vĩ độ -0 ° / -180 °). Nó được vặn trên đầu của bước

3) Latitude Servo hỗ trợ

Bộ phận này được chế tạo để gắn động cơ servo. Servo hỗ trợ được gắn trên động cơ bước

Tất cả các bộ phận được in trên Prusa I3 MK2S, với dây tóc PETG màu đen

Bước 2: Nối dây và lắp ráp

Hệ thống dây điện và lắp ráp
Hệ thống dây điện và lắp ráp
Hệ thống dây điện và lắp ráp
Hệ thống dây điện và lắp ráp

Mạch này sẽ có đầu vào nguồn 5V 3A (để sử dụng cùng một nguồn cung cấp cho trình điều khiển bước, laser, Neopixels và WEMOS)

Theo Sketch sau, chúng ta cần hàn nguồn điện trực tiếp cho các phần tử trên song song:

  • Trình điều khiển bước
  • Tia laze
  • Dải Neopixels (NB: có 10 Neopixels trong thực tế, không phải 8 như bản phác thảo cho thấy)
  • WEMOS

Tiếp theo, chúng ta cần kết nối các phần tử khác nhau với WEMOS:

1) Trình điều khiển bước sau danh sách này:

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

2) Động cơ servo sau:

Pin Servo dữ liệu -> D1

3) Dải Neopixels sau:

Pin Neopixels dữ liệu -> D2

4) Công tắc giới hạn sau:

Hai chân của công tắc chuyển sang GND và D3

Kết nối công tắc hành trình theo cách mà mạch điện bị mở / đứt khi chúng ta ấn vào công tắc (do đó, mạch điện được đóng lại khi không có gì ấn vào nó). Điều này để tránh bất kỳ bài giảng sai nào do đỉnh điện áp.

Bước 3: Mã Arduino - Lấy vị trí ISS trong thời gian thực

Để điều khiển hai động cơ đến vị trí của ISS, chúng ta cần lấy vị trí của ISS trong thời gian thực:

  • Trước tiên, chúng tôi sẽ sử dụng API từ Open Notify Here
  • Sau đó, chúng ta cần phân tích cú pháp dữ liệu để có được giá trị đơn giản của vị trí ISS với sự trợ giúp của Phân tích dữ liệu: Thư viện ArduinoJson (bởi Benoit Blanchon)

#include <ESP8266WiFi.h #include <ESP8266HTTPClient.h #include <ArduinoJson.h // Tham số WiFi const char * ssid = "XXXXX"; const char * password = "XXXXX"; void setup () {Serial.begin (115200); WiFi.begin (ssid, mật khẩu); while (WiFi.status ()! = WL_CONNECTED) {delay (1000); Serial.println ("Đang kết nối…"); }}

Chương trình này kết nối NodeMCU với Wi-Fi, sau đó kết nối với API, lấy dữ liệu và in ra theo chuỗi.

void loop () {

if (WiFi.status () == WL_CONNECTED) // Kiểm tra trạng thái WiFi {HTTPClient http; // Đối tượng của lớp HTTPClient http.begin ("https://api.open-notify.org/iss-now.json"); int httpCode = http. GET (); // Kiểm tra mã trả về if (httpCode> 0) {// Phân tích cú pháp const size_t bufferSize = JSON_OBJECT_SIZE (2) + JSON_OBJECT_SIZE (3) + 100; DynamicJsonBuffer jsonBuffer (bufferSize); JsonObject & root = jsonBuffer.parseObject (http.getString ()); // Các tham số const char * message = root ["message"]; const char * lon = root ["Iss_position"] ["kinh độ"]; const char * lat = root ["eval_position"] ["vĩ độ"]; // Xuất ra màn hình nối tiếp Serial.print ("Message:"); Serial.println (tin nhắn); Serial.print ("Kinh độ:"); Serial.println (lon); Serial.print ("Vĩ độ:"); Serial.println (lat); } http.end (); // Đóng kết nối} delay (50000); }

Bước 4: Mã Arduino cuối cùng

Đoạn mã Arduino sau đây lấy vị trí của ISS để di chuyển tia laser đến đúng vị trí trên bề mặt Trái đất và nhận vị trí của mặt trời để làm sáng các Neopixel liên quan để làm sáng bề mặt Trái đất do mặt trời tiếp xúc.

Phần thưởng 1: Khi đèn được bật, trong giai đoạn khởi tạo, tia laser sẽ chỉ vị trí của đèn (id: vị trí đặt bộ định tuyến)

Phần thưởng 2: Khi ISS ở cạnh vị trí đèn (dài +/- 2 ° và vĩ độ +/- 2 °), tất cả các Neopixel sẽ nháy mắt nhẹ nhàng

Bước 5: Tận hưởng Trình theo dõi ISS của bạn

Bạn đã làm một Đèn theo dõi ISS, hãy tận hưởng!

Cuộc thi tác giả lần đầu tiên
Cuộc thi tác giả lần đầu tiên
Cuộc thi tác giả lần đầu tiên
Cuộc thi tác giả lần đầu tiên

Giải nhất cuộc thi Tác giả lần thứ nhất

Đề xuất: