ชื่อโปรเจกต์: Realtime Planet Tracking System and Trajectory Prediction (ระบบติดตามดาวเคราะห์ Realtime และการทำนายแนววิถี)
บทความหลัก:
เกริ่นนำสักนิด
โปรเจกต์นี้พี่ตั้งใจจะทำระบบที่สามารถติดตามพวกวัตถุท้องฟ้า (อย่างเช่นพวกดาวเคราะห์) ให้แม่นยำใช้ได้เลยล่ะ เราจะใช้อัลกอริทึมเฟี้ยวๆ มาคำนวณผ่านหน่วยประมวลผล แล้วก็สั่งงานชุด [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) ตัวสุดท้ายเลยน้อง

รายละเอียดทางเทคนิคเพิ่มเติม (ฉบับเจาะลึก)
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) สบายๆ สำหรับสายถ่ายภาพดาราศาสตร์เลยล่ะ สู้งานนะน้อง!