หากคุณสนใจว่าสถานีอวกาศนานาชาติ (ISS) ตั้งอยู่ที่ไหนในเวลานี้โครงการนี้เหมาะสำหรับคุณ
ภายในอุปกรณ์นั้นมีมอเตอร์สองตัวที่ควบคุมตำแหน่งของเลเซอร์ การส่องสว่างของส่วนนั้นของโลกที่มีการตกกระทบของดวงอาทิตย์
เครื่องมือและวัสดุ:
-3D พิมพ์โลกที่มีขนาดเส้นผ่าศูนย์กลาง 18 ซม.;
เครื่องพิมพ์ 3D;
- หลอดไส้;
- กระเบื้องคอนกรีต
-Wemos D1 Mini module พร้อม Wi-Fi;
- ไดรฟ์เซอร์โว EMAX ES3352 MG
- เครื่องยนต์สเต็ป 28BYJ-48 พร้อมบอร์ดควบคุม ULN2003;
-10 LEDs NeoPixels;
- เลเซอร์ที่มีความยาวคลื่น 405 นาโนเมตร
- ลิมิตสวิตช์
- แหล่งจ่ายไฟ 5V 3A;
ขั้นตอนที่หนึ่ง: การพิมพ์ 3D
ในการประกอบอุปกรณ์ทั้งหมดที่คุณต้องพิมพ์รายละเอียดของเฟรม คุณสามารถดาวน์โหลดไฟล์เพื่อพิมพ์ ที่นี่.
เฟรมมีสามส่วน:
-base - สำหรับการติดตั้งสเต็ปเปอร์มอเตอร์, WEMOS, เทป Neopixels และท่อทองแดง
- ส่วนตรงกลางสำหรับการติดตั้งสวิตช์ จำกัด
- ส่วนบนใช้สำหรับติดตั้งเซอร์โวมอเตอร์
ขั้นตอนที่สอง: เชื่อมต่อและสร้าง
สำหรับกำลังไฟจะจ่ายแรงดัน 5V 5V กำลังไฟจากขั้วต่อไปยังไดร์เวอร์ step, laser, LEDs และโมดูล Wemos
ต่อไปคุณต้องทำการเชื่อมต่อกับ Wemos:
1) ไดรเวอร์ขั้นตอน
IN1-> D5
IN2-> D6
IN3-> D7
IN4-> D8
2) เซอร์โวมอเตอร์
Data Servo Pin -> D1
3) ไฟ LED
Neopixels Pin -> D2
4) ลิมิตสวิตช์
หมุดสวิทช์สองตัวบน GND และ D3
ขั้นตอนที่สาม: รหัส
เพื่อให้เอ็นจิ้นสองตัวเคลื่อนที่พร้อมกันกับสถานีอวกาศนานาชาติคุณจะต้องรับตำแหน่งสถานีอวกาศนานาชาติแบบเรียลไทม์:
ในการทำเช่นนี้เราจะใช้ API จาก เปิดการแจ้งเตือนที่นี่
จากนั้นคุณต้องวิเคราะห์ข้อมูลเพื่อรับค่าตำแหน่ง ISS โดยใช้การวิเคราะห์ข้อมูล: ArduinoJson Library
#include 0) {// การแยกวิเคราะห์
const size_t bufferSize = JSON_OBJECT_SIZE (2) + JSON_OBJECT_SIZE (3) + 100;
DynamicJsonBuffer jsonBuffer (bufferSize);
JsonObject & root = jsonBuffer.parseObject (http.getString ()); // พารามิเตอร์
const char * message = root ["message"];
const char * lon = root ["iss_position"] ["ลองจิจูด"];
const char * lat = root ["iss_position"] ["ละติจูด"]; // เอาท์พุทไปยังจอภาพแบบอนุกรม
Serial.print ("ข้อความ:");
Serial.println (ข้อความ);
Serial.print ("ลองจิจูด:");
อนุกรม. println (โหลน);
Serial.print ("Latitude:");
อนุกรม. println (lat);
}
http.end (); // ปิดการเชื่อมต่อ
}
ความล่าช้า (50,000)
}
รหัสต่อไปนี้ Arduino ช่วยให้คุณได้รับตำแหน่งของสถานีอวกาศนานาชาติเพื่อย้ายเลเซอร์ไปยังตำแหน่งที่ต้องการบนพื้นผิวโลกและรับตำแหน่งของดวงอาทิตย์เพื่อส่องสว่างไฟ LED ที่เกี่ยวข้องบนพื้นผิวโลกซึ่งส่องสว่างโดยดวงอาทิตย์
ISS_Tracker_Final.ino
ทุกอย่างพร้อมแล้ว