กลับไปหน้ารวมไฟล์
realtime-planet-tracking-system-and-trajectory-prediction-b6ec03.md

ชื่อโปรเจกต์: Realtime Planet Tracking System and Trajectory Prediction (ระบบติดตามดาวเคราะห์ Realtime และการทำนายแนววิถี)



RTPT - ตัวอย่างการทำงานจริง หล่อเท่เลยวัยรุ่น

บทความหลัก:



เกริ่นนำสักนิด

โปรเจกต์นี้พี่ตั้งใจจะทำระบบที่สามารถติดตามพวกวัตถุท้องฟ้า (อย่างเช่นพวกดาวเคราะห์) ให้แม่นยำใช้ได้เลยล่ะ เราจะใช้อัลกอริทึมเฟี้ยวๆ มาคำนวณผ่านหน่วยประมวลผล แล้วก็สั่งงานชุด [Servo](https://s.shopee.co.th/7fUgFAWSki) กลไกให้มันหันไปชี้ตำแหน่งดาวจริงๆ บนฟ้าให้ดูเลย! ส่วนเรื่อง Hardware ในโปรเจกต์นี้บอกเลยว่าเบสิกมากน้อง เพราะพี่เน้นหนักไปที่งาน Software เป็นหลัก อยากให้พวกเราเข้าใจเรื่องอัลกอริทึมและการเอาไปเขียน Code ใช้งานจริง (Implementation) ส่วนสภาพวงจรที่ดูรกๆ ของพี่ก็ทำใจหน่อยนะน้อง พี่เน้นใช้งาน ไม่เน้นสวยงาม 555

ไม่ใช่แค่ติดตามดาวนะเว้ย น้องจะได้วิชาติดตัวไปใช้กับโปรเจกต์อื่นด้วย:

  • การตามรอยดาวด้วย Kepler’s algorithms
  • ระบบพิกัดต่างๆ และการแปลงค่าไปมา
  • การเขียนโปรแกรม Pan-Tilt และการ Mapping ค่า Servo (ทั้งรุ่น 3.5 รอบ และ 180 องศา)
  • การเขียน Code Auto-calibration ให้เจ้า MPU9250
  • ใช้ Madwick/Mahony Filter เพื่อให้ค่าที่อ่านจาก MPU มันนิ่ง ไม่แกว่ง
  • แก้ค่า Yaw ด้วย P-controller ร่วมกับ MPU9250

เนื้อหาขั้นตอนมันเยอะเกินจะยัดลงหน้าเดียว พี่เลยแบ่งออกเป็นส่วนๆ ตามนี้ จัดไปวัยรุ่น:

  • ขั้นตอนที่ 1: คำนวณค่า Right Ascension, Declination แล้วแปลงเป็น Azimuth, Altitude [คำนวณด้วยกฎของ Kepler] โดยใช้ Osculating Elements
  • ขั้นตอนที่ 2: การต่อวงจร (การเชื่อมต่อ GPS Module U-BLOX NEO-6M หรือรุ่นใกล้เคียง, Pan-tilt Servo) และการทำ Servo Mapping หมายเหตุ: ถ้าพวกน้องไม่ใช้ MPU9250 ต้องตั้งเครื่องให้หันไปทางทิศเหนือเป๊ะๆ ก่อนเริ่มงานนะน้อง
  • ขั้นตอนที่ 3: ขั้นตอนนี้ใช้ MPU9250 มาช่วยหาทิศเหนือและตั้งค่าแนวเครื่อง (Alignment) แบบอัตโนมัติ ที่เจ๋งคือมันเป็น Dynamic เว้ยน้อง คือต่อให้น้องขยับเครื่อง (ค่า Yaw) หรือทิศทางเปลี่ยนไป มันจะรู้ตัวและแก้ค่า Error ให้เองแบบ Realtime เลยล่ะ
  • ขั้นตอนที่ 4: รวมร่าง Software และการทำนายแนววิถี (Trajectory Prediction) เชิญไปจัดกันได้ที่ Code [Arduino](https://s.shopee.co.th/7fUgFAWSki) ตัวสุดท้ายเลยน้อง
นี่ไงหน้าตา RTPT ของพี่ ใช้ Arduino Mega, MPU9250, U-BLOX GPS, Pan-Tilt Servos แล้วก็ติด Laser เพิ่มความหล่อ!



รายละเอียดทางเทคนิคเพิ่มเติม (ฉบับเจาะลึก)

Astronomical Computational Engine

โปรเจกต์นี้มีการใช้แบบจำลองทางคณิตศาสตร์ที่ซับซ้อน เพื่อติดตามและทำนายตำแหน่งของดาวเคราะห์ในระบบสุริยะของเรา

  • Keplerian Orbital Elements: ตัว Arduino จะเก็บค่าองค์ประกอบวงโคจรของดาวเคราะห์หลักๆ ไว้ แล้ว Firmware จะทำการคำนวณทางตรีโกณมิติ (Trigonometric calculations) แบบ Real-time เพื่อแปลงพารามิเตอร์เหล่านี้ให้กลายเป็นค่าพิกัด Altitude และ Azimuth ตามตำแหน่งที่น้องยืนอยู่จริงบนโลก
  • Trajectory Visualization: ข้อมูลจะถูกส่งไปที่แอปพลิเคชันบน PC (พี่เขียนด้วย Code::Blocks) เพื่อแสดงผลเป็นแผนที่วิถีโคจร 2D หรือ 3D ของระบบสุริยะ ซึ่งจะ Sync กับเวลาจริงเป๊ะๆ เลยน้อง

Hardware Pointer

  • Motorized Telescope Link: (ถ้าจะต่อยอดนะ) เจ้า Arduino สามารถสั่งงานฐานติดตั้งกล้องแบบ Alt-Az ที่มีมอเตอร์ เพื่อให้มันหันกล้องหรือกล้องโทรทรรศน์ไปตามพิกัดดาวเคราะห์ที่ทำนายไว้ได้เลย ช่วยให้ติดตามดาวได้แบบไม่ต้องใช้มือหมุน (Hands-free) สบายๆ สำหรับสายถ่ายภาพดาราศาสตร์เลยล่ะ สู้งานนะน้อง!

ข้อมูล Frontmatter ดั้งเดิม

title: "Realtime Planet Tracking System and Trajectory Prediction"
description: "This project aims to make a system that can effectively track celestial bodies (such as planets ) with a fair amount of accuracy."
author: "paulplusx"
category: "Sensors & Environment"
tags:
  - "astronomy"
  - "planet tracking"
  - "auto calibration"
  - "planets"
  - "real time"
views: 22505
likes: 8
price: 299
difficulty: "Intermediate"
components:
  - "1x Soldering Rework Station"
  - "1x SparkFun IMU Breakout - MPU-9250"
  - "1x U-BLOX GPS Receiver ( NEO-6M )"
  - "1x Pushbutton switch 12mm"
  - "1x Arduino Mega 2560"
  - "1x Rotary potentiometer (generic)"
  - "1x RobotGeek 180 Degree Robot Servo"
  - "1x Soldering iron (generic)"
  - "1x HS-785HB - Servo (3.5 Turns )"
tools: []
apps:
  - "1x Code::Blocks"
  - "1x Arduino IDE"
downloadableFiles:
  - "https://github.com/shubhampaul/Real_Time_Planet_Tracking_System/tree/master/RTPT"
  - "https://github.com/shubhampaul/Real_Time_Planet_Tracking_System/tree/master/RTPT"
documentationLinks: []
passwordHash: "d29335238f5a0bf8bf036100e8e67e617ea0b9f264d2a5e859cc155dfe4d104b"
encryptedPayload: "U2FsdGVkX1+fnKRZrDjnHP/lIEhXAyBuUiebgHfZOXJoR6JOpuNGu11j5bp+sBcIsxcZ2fB8pnHadSfzIAe0sZIdPcfZu2GFEp530KeDzmr1QDYdKXjHeUFYW6I/9ZTq"
seoDescription: "Realtime Planet Tracking System and Trajectory Prediction for tracking celestial bodies and planets with high accuracy."
videoLinks:
  - "https://www.youtube.com/embed/3GE2GkWsGKA"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/realtime-planet-tracking-system-and-trajectory-prediction-b6ec03_cover.jpg"
lang: "th"