สารบัญ:

ไฟติดตาม ISS: 5 ขั้นตอน (พร้อมรูปภาพ)
ไฟติดตาม ISS: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ไฟติดตาม ISS: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ไฟติดตาม ISS: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: การต่อสายไฟตู้คอนซูมเมอร์ยูนิต 2024, พฤศจิกายน
Anonim
ไฟติดตาม ISS
ไฟติดตาม ISS
ไฟติดตาม ISS
ไฟติดตาม ISS

ส่วนใหญ่ฉันสงสัยว่าสถานีอวกาศนานาชาติกำลังมองขึ้นไปบนท้องฟ้าอยู่ที่ไหน เพื่อตอบคำถามนี้ ฉันได้สร้างวัตถุทางกายภาพเพื่อให้รู้ว่าสถานีอวกาศนานาชาติอยู่ที่ไหนในแบบเรียลไทม์

ISS Tracking Lamp เป็นหลอดไฟที่เชื่อมต่ออินเทอร์เน็ตซึ่งติดตาม ISS อย่างต่อเนื่องและแสดงตำแหน่งบนพื้นผิวโลก (พิมพ์ในแบบ 3 มิติ)

โบนัส: หลอดไฟยังแสดงด้านที่มีแดดของโลกด้วย Neopixels!??

ดังนั้น ในคำแนะนำนี้ เราจะเห็นขั้นตอนต่างๆ ในการสร้างหลอดไฟนี้โดยใช้ WEMOS D1 Mini, สเต็ปเปอร์มอเตอร์, เซอร์โวมอเตอร์, เลเซอร์ และชิ้นส่วน 3 มิติ

ฉันสร้างทั้งหมดด้วยตัวเอง ยกเว้น Earth ที่พิมพ์ 3 มิติซึ่งซื้อใน Aliexpress

ซอฟต์แวร์:

  • รหัสที่ใช้ Arduino
  • ตำแหน่ง API ISS: เปิดการแจ้งเตือน - ตำแหน่งปัจจุบันของ ISS (โดย Nathan Bergey)
  • การแยกวิเคราะห์ข้อมูล: ArduinoJson Library (โดย Benoit Blanchon)

CAD และอะไหล่:

  • 3D พิมพ์ Earth เส้นผ่านศูนย์กลาง 18 ซม. (ซื้อใน Aliexpress: ที่นี่)
  • รองรับมอเตอร์พิมพ์ 3 มิติ - ออกแบบด้วย Fusion 360 และพิมพ์ด้วย Prusa i3 MK2S
  • ท่อทองแดง
  • ฐานคอนกรีตทำด้วยไวกิ้งฝรั่งเศส

ฮาร์ดแวร์:

  • ไมโครคอนโทรลเลอร์: Wemos D1 Mini (รวมเสาอากาศ wifi)
  • เซอร์โว EMAX ES3352 MG
  • Stepper Motor 28byj-48 (พร้อมบอร์ดไดรเวอร์ ULN2003)
  • 10 NeoPixels LED
  • เลเซอร์ความยาวคลื่น 405 นาโนเมตร
  • ลิมิตสวิตช์
  • แหล่งจ่ายไฟ 5V 3A

ขั้นตอนที่ 1: การสร้างแบบจำลองชิ้นส่วนใน Fusion 360 และการพิมพ์

การสร้างแบบจำลองชิ้นส่วนใน Fusion 360 และการพิมพ์
การสร้างแบบจำลองชิ้นส่วนใน Fusion 360 และการพิมพ์
การสร้างแบบจำลองชิ้นส่วนใน Fusion 360 และการพิมพ์
การสร้างแบบจำลองชิ้นส่วนใน Fusion 360 และการพิมพ์
การสร้างแบบจำลองชิ้นส่วนใน Fusion 360 และการพิมพ์
การสร้างแบบจำลองชิ้นส่วนใน Fusion 360 และการพิมพ์

ในการติดตั้งฮาร์ดแวร์ทั้งหมด เราจะสร้างฐานการประกอบหลักบนชิ้นส่วน 3 มิติ ชิ้นส่วนต่างๆ มีอยู่ใน Thingiverse ที่นี่

มี 3 ส่วน:

1) การสนับสนุน Stepper ลองจิจูด

ส่วนนี้ทำขึ้นสำหรับติดตั้งสเต็ปเปอร์มอเตอร์, WEMOS, แถบ Neopixels และท่อทองแดง

2) สวิตช์สนับสนุน

ส่วนนี้ทำขึ้นสำหรับติดตั้งลิมิตสวิตช์ (ใช้เพื่อระบุละติจูด -0°/-180° ให้สเต็ปเปอร์) มันเมาที่ด้านบนของสเต็ป

3) รองรับ Latitude ของเซอร์โว

ส่วนนี้ทำขึ้นสำหรับการติดตั้งเซอร์โวมอเตอร์ Support Servo ติดตั้งอยู่บนสเต็ปเปอร์มอเตอร์

ชิ้นส่วนทั้งหมดพิมพ์บน Prusa I3 MK2S พร้อมเส้นใย PETG สีดำ

ขั้นตอนที่ 2: การเดินสายไฟและการประกอบ

การเดินสายไฟและการประกอบ
การเดินสายไฟและการประกอบ
การเดินสายไฟและการประกอบ
การเดินสายไฟและการประกอบ

วงจรนี้จะมีอินพุตไฟ 5V 3A (เพื่อใช้แหล่งจ่ายไฟเดียวกันสำหรับไดรเวอร์ stepper, เลเซอร์, Neopixels และ WEMOS)

ใน Sketch ต่อไปนี้ เราจำเป็นต้องประสานแหล่งจ่ายไฟโดยตรงกับองค์ประกอบด้านบนแบบขนาน:

  • ไดร์เวอร์สเต็ปเปอร์
  • เลเซอร์
  • แถบ Neopixels (หมายเหตุ: ในความเป็นจริงมี 10 Neopixels ไม่ใช่ 8 ตามภาพสเก็ตช์)
  • WEMOS

ต่อไป เราจำเป็นต้องเชื่อมต่อองค์ประกอบต่างๆ กับ WEMOS:

1) ไดรเวอร์ stepper ตามรายการนี้:

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

2) เซอร์โวมอเตอร์ดังต่อไปนี้:

ดาต้าเซอร์โวพิน -> D1

3) แถบ Neopixels ต่อไปนี้:

พินข้อมูล Neopixels -> D2

4) ลิมิตสวิตช์ดังต่อไปนี้:

สองพินของสวิตช์ไปที่ GND และ D3

เชื่อมต่อลิมิตสวิตช์ในลักษณะที่วงจรเปิด/แตกเมื่อเรากดสวิตช์ (เพื่อให้วงจรปิดเมื่อไม่มีอะไรดัน) นี่คือเพื่อหลีกเลี่ยงการบรรยายที่ไม่ถูกต้องเนื่องจากแรงดันไฟฟ้าสูงสุด

ขั้นตอนที่ 3: รหัส Arduino - รับตำแหน่ง ISS แบบเรียลไทม์

ในการขับเคลื่อนมอเตอร์ทั้งสองให้ไปถึงตำแหน่งของ ISS เราจำเป็นต้องได้รับตำแหน่งของ ISS แบบเรียลไทม์:

  • ก่อนอื่นเราจะใช้ API จาก Open Notify Here
  • จากนั้น เราต้องแยกวิเคราะห์ข้อมูลเพื่อให้ได้ค่าง่าย ๆ ของตำแหน่ง ISS โดยใช้ Parsing data: ArduinoJson Library (by Benoit Blanchon)

#include <ESP8266WiFi.h #include <ESP8266HTTPClient.h #include <ArduinoJson.h // พารามิเตอร์ WiFi const char* ssid = "XXXXX"; รหัสผ่าน const char* = "XXXXX"; การตั้งค่าเป็นโมฆะ () { Serial.begin (115200); WiFi.begin(ssid, รหัสผ่าน); ในขณะที่ (WiFi.status ()!= WL_CONNECTED) { ล่าช้า (1000); Serial.println("กำลังเชื่อมต่อ…"); } }

โปรแกรมนี้เชื่อมต่อ NodeMCU กับ WiFi จากนั้นเชื่อมต่อกับ API รับข้อมูลและพิมพ์โดยซีเรียล

วงเป็นโมฆะ () {

if (WiFi.status() == WL_CONNECTED) // ตรวจสอบสถานะ WiFi {HTTPClient http; //วัตถุของคลาส HTTPClient http.begin("https://api.open-notify.org/iss-now.json"); int httpCode = http. GET(); // ตรวจสอบโค้ดที่ส่งคืนหาก (httpCode >0) { // การแยกวิเคราะห์ const size_t bufferSize = JSON_OBJECT_SIZE(2) + JSON_OBJECT_SIZE(3) + 100; DynamicJsonBuffer jsonBuffer (ขนาดบัฟเฟอร์); JsonObject& root = jsonBuffer.parseObject(http.getString()); // พารามิเตอร์ const char* message = root["message"]; const char* lon = root["iss_position"]["longitude"]; const char* lat = root["iss_position"]["latitude"]; // ส่งออกไปยังจอภาพอนุกรม Serial.print("ข้อความ:"); Serial.println (ข้อความ); Serial.print("ลองจิจูด: "); Serial.println (ลอน); Serial.print("ละติจูด: "); Serial.println(lat); } http.end(); // ปิดการเชื่อมต่อ } ล่าช้า (50000); }

ขั้นตอนที่ 4: รหัส Arduino สุดท้าย

รหัส Arduino ต่อไปนี้รับตำแหน่ง ISS เพื่อย้ายเลเซอร์ไปยังตำแหน่งที่ถูกต้องบนพื้นผิวโลก และรับตำแหน่งของดวงอาทิตย์เพื่อให้แสง Neopixels ที่เกี่ยวข้องสว่างขึ้นเพื่อให้พื้นผิวโลกสัมผัสกับดวงอาทิตย์

โบนัส 1: เมื่อเปิดหลอดไฟ ในระหว่างขั้นตอนการเริ่มต้น เลเซอร์จะชี้ตำแหน่งของหลอดไฟ (id: ตำแหน่งที่เราเตอร์อยู่)

โบนัส 2: เมื่อ ISS อยู่ถัดจากตำแหน่งหลอดไฟ (ยาว +/- 2° และ +/-2° lat.) Neopixels ทั้งหมดจะกะพริบเบา ๆ

ขั้นตอนที่ 5: เพลิดเพลินกับ ISS Tracker ของคุณ

คุณได้สร้างโคมไฟติดตาม ISS แล้วสนุกได้เลย!

การประกวดผู้แต่งครั้งแรก
การประกวดผู้แต่งครั้งแรก
การประกวดผู้แต่งครั้งแรก
การประกวดผู้แต่งครั้งแรก

รางวัลที่หนึ่งในการประกวดผู้แต่งครั้งแรก

แนะนำ: