บันทึกการสร้างแท่นยึดกล้องดูดาวด้วยฮาร์มอนิกไดรฟ์แบบคัสตอมและ ESP32
(svendewaerhert.com)- ผู้เขียนสร้างแท่นยึดกล้องดูดาวแบบคัสตอมโดยใช้ ฮาร์มอนิกไดรฟ์ (harmonic drive) และ ไมโครคอนโทรลเลอร์ ESP32
- เนื่องจาก แท่นติดตามเชิงพาณิชย์ ที่มีอยู่เดิมมีราคาสูงมาก จึงเลือกออกแบบและสร้างเองแบบ DIY
- อธิบายกระบวนการออกแบบทั้งหมดอย่างละเอียด ตั้งแต่ การออกแบบและผลิต PCB, การทำโมเดล 3D ด้วย FreeCAD ไปจนถึงการคัดเลือกชิ้นส่วนประกอบ
- ต้นทุนรวมในการผลิตอยู่ที่ราว 1,700 ยูโร และเมื่อคำนวณเป็นต้นทุนต่อ 1 เครื่อง ก็ยัง แข่งขันกับผลิตภัณฑ์เชิงพาณิชย์ได้
- แชร์ประสบการณ์ด้านประสิทธิภาพการถ่ายภาพดาราศาสตร์จริงและการปรับปรุงต่าง ๆ ผ่านการผสานแท่นที่สร้างเองเข้ากับ เฟิร์มแวร์ OnStepX
จุดเริ่มต้นใหม่
เมื่อหลายปีก่อน ผู้เขียนได้รับแรงบันดาลใจจาก ช่อง YouTube เกี่ยวกับการถ่ายภาพดาราศาสตร์ จนเริ่มสนใจงานอดิเรกนี้ โดยลองถ่ายเนบิวลานายพรานด้วยวิธีถ่ายภาพหลายร้อยใบด้วยเวลารับแสงสั้น ๆ บนขาตั้งกล้อง แล้วนำไปซ้อนภาพด้วยซอฟต์แวร์ Siril แต่ต่อมาก็รู้สึกถึง ความจำเป็นของอุปกรณ์ติดตาม จึงซื้อ Move Shoot Move tracker มาใช้ อย่างไรก็ตาม ความยากในการหาวัตถุเป้าหมายและการตั้งแนวแกนขั้วฟ้า รวมถึงผลลัพธ์ที่ยังไม่ดีพอ ทำให้เริ่มสนใจการสร้างแท่นกล้องดูดาวอย่างจริงจังมากขึ้น
การต่อยอดประสบการณ์ทำ PCB
ในปี 2024 ผู้เขียนบังเอิญเจอวิดีโอ YouTube เกี่ยวกับ การออกแบบ PCB แบบคัสตอม และได้เรียนรู้วิธีใช้ PCB สำหรับการผลิตจริง ที่เรียบร้อยและประหยัด แทนการต่อวงจรบนเบรดบอร์ดแบบไม่เป็นระเบียบเหมือนเดิม โปรเจ็กต์แรกคือการสร้างเทอร์โมสแตตอัจฉริยะโดยใช้ ESP32, จอ e-paper และเซ็นเซอร์ BME680 จากประสบการณ์นี้ ผู้เขียนจึงตัดสินใจนำทักษะการออกแบบและผลิต PCB ไปใช้กับแท่นกล้องดูดาวด้วยตนเอง
การศึกษาจริงจังและการใช้ทรัพยากรจากชุมชน
แนวคิดการออกแบบมุ่งเน้นไปที่ การเลือกใช้ฮาร์มอนิกไดรฟ์ โดยใช้โอเพนซอร์สจาก AliExpress และชุมชน DIY หลายแห่ง (HEMY, HrEM, DHEM, DIY EQ Mount V2 เป็นต้น) เป็นข้อมูลอ้างอิง และใช้เวลาอย่างมากในการศึกษาทั้ง การเลือกชิ้นส่วนและโครงสร้างกลไก นอกจากนี้ยังค้นคว้าข้อมูลจากโอเพนซอร์สและชุมชนเกี่ยวกับสเต็ปเปอร์/เซอร์โวมอเตอร์, การควบคุม FOC, SimpleFOC และแนวทางการพัฒนาต่าง ๆ
การตัดสินใจด้านการออกแบบและโครงสร้าง
- แกน RA (แกนศูนย์สูตร) : เซอร์โวมอเตอร์ 42AIM15 + ฮาร์มอนิกไดรฟ์ Type 17 (อัตราทด 100:1)
- แกน DEC (แกนเดคลิเนชัน) : MKS Servo042D stepper + ฮาร์มอนิกไดรฟ์ Type 14 (อัตราทด 100:1)
- แท่นและโครงครอบ: ใช้แผ่น Arca Swiss และรองรับการใช้งานร่วมกับ Move Shoot Move wedge
- โหมดการทำงาน: GEM (ศูนย์สูตร) หรือ ALTAZ (แนวราบ-แนวตั้ง)
- ไมโครคอนโทรลเลอร์: ESP32-S3
- พลังงาน: USB-C PD สูงสุด 24V/4A
- การควบคุมมอเตอร์: step/dir/en, ULN2003 + MODBUS, CANBUS
- การขยายระบบ: เปิดขา GPIO ที่เหลือออกมาใช้งานภายนอก
การออกแบบนี้ช่วยลดความซับซ้อนและเพิ่มความแม่นยำในการติดตามผ่านคุณลักษณะของไมโครสเต็ปและการควบคุมเซอร์โวของมอเตอร์แต่ละตัว อีกทั้งยังใช้ CANBUS เพื่อเปลี่ยนค่าไมโครสเต็ปแบบไดนามิก ทำให้ได้ สมดุลระหว่างการ slew ความเร็วสูง (การย้ายตำแหน่ง) และการติดตามอย่างแม่นยำ
การออกแบบ PCB และการเอาชนะปัญหา
- ออกแบบ PCB รูปครึ่งวงกลม ด้วย KiCad ให้พอดีกับเคสอย่างลงตัว
- ใช้โมดูล ESP32-S3 แบบไม่มีเสาอากาศเพื่อเพิ่มอิสระในการจัดวาง และเลือกวงจรรับไฟ USB-C (สูงสุด 24V)
- ใช้วงจรโอเพนซอร์ส PicoPD และชิป AP33772 พร้อมเลือกคอนเน็กเตอร์ตระกูล JST PH เพื่อให้ได้ การเชื่อมต่อขนาดเล็กแต่รองรับกระแสได้ดี
- ระหว่างการเปลี่ยน IC ครั้งแรก เคยเจอ ข้อผิดพลาดในการต่อ I2C และอาการทำงานผิดปกติ แต่แก้ไขได้ในเวอร์ชันที่ 2 ด้วยการตรวจสอบอย่างรอบคอบและเพิ่ม test point หลายจุด
การเชื่อมต่อกับเฟิร์มแวร์ OnStepX
นำ เฟิร์มแวร์โอเพนซอร์ส OnStepX มาใช้เพื่อรองรับการควบคุมกล้องดูดาวและการสื่อสารผ่าน WiFi ในช่วงแรกพบปัญหาด้านเสถียรภาพ โดย ESP32 ทำงานหนักเกินไปเมื่อมีการ slew ในช่วงเริ่มต้น (การเคลื่อนย้ายไปยังจุดเป้าหมายอย่างรวดเร็ว) แต่สามารถแก้ไขได้ด้วย การลดความเร็ว slew และเปลี่ยนเป็นโหมด WiFi client ผู้เขียนเพิ่มเพียงไฟล์ pin layout ที่สอดคล้องกับ OnStepX และโค้ดสำหรับควบคุมไมโครสเต็ปแบบไดนามิก ก็สามารถ ผสานรวมได้สำเร็จโดยแทบไม่ต้องแก้ไขอย่างอื่น
กระบวนการผลิตและประกอบ
ทั้งการผลิต PCB และการกัดโลหะด้วย CNC ทำผ่าน JLCPCB ทั้งหมด ผู้เขียนเลือกอย่างกล้าหาญด้วยการสั่งงาน CNC จากแบบ CAD โดยตรง โดยไม่พิมพ์ทดสอบ 3D ล่วงหน้า และได้ความแม่นยำของชิ้นส่วนที่น่าพอใจ อย่างไรก็ตาม มีข้อผิดพลาดในการออกแบบฝาครอบแกนศูนย์สูตร ซึ่งแก้ได้ง่ายด้วยการใช้สเปเซอร์ ชิ้นส่วนทั้งหมดสามารถประกอบได้ด้วยการต๊าปเกลียว M3/M4 และยึดด้วยสกรูเท่านั้น อีกทั้งยังลดต้นทุนการผลิตด้วยการ ต๊าปเกลียวด้วยมือเองโดยตรง
ประสบการณ์ใช้งานจริง
ผู้เขียนสะสมประสบการณ์ภาคสนามจากการลองผิดลองถูกมากมาย ทั้ง การตั้งแนวแกนขั้วฟ้า การตั้งค่าอุปกรณ์ และการตั้งค่าซอฟต์แวร์ (INDI, KStars, Ekos, PHD2) ช่วงใช้งานแรกมักถ่ายล้มเหลวจากปัญหาเล็กใหญ่หลายอย่าง แต่เมื่อปรับระบบจนเสถียรแล้ว ก็ทำได้ถึง ความแม่นยำระดับ 1~2 อาร์กวินาที ซึ่งเพียงพอสำหรับการเปิดรับแสง 30 วินาทีด้วยเลนส์ 600 มม. ผู้เขียนใช้ Siril สำหรับการรวมภาพ และกำลังเดินหน้าสู่เป้าหมายเพิ่มเติม เช่น การรวมภาพหลายคืน
ต้นทุนการสร้างและความคุ้มค่า
ต้นทุนรวมอยู่ที่ประมาณ 1,700 ยูโร (= รวมเครื่องมือ ฮาร์ดแวร์ และชิ้นส่วนสำหรับการทดลอง/วิจัยล่วงหน้า) หากคำนวณเป็นต้นทุนต่อเครื่อง จะอยู่ที่ราว 800 ยูโร ผู้เขียนยืนยันว่ามีความคุ้มค่าสูงเมื่อเทียบกับ แท่น GOTO เชิงพาณิชย์ (1,200~4,000 ยูโร) แต่ก็ให้ความสำคัญกับประสบการณ์การสร้างด้วยตัวเองมากยิ่งกว่า
ราคาย่อยตามรายการ (สรุปรายการหลัก)
- ฮาร์มอนิกไดรฟ์ (2 ชิ้น): 144 ยูโร
- MKS และเซอร์โวมอเตอร์ (อย่างละ 2 ชิ้น): 73~216 ยูโร
- ชิ้นส่วน CNC: 215 ยูโร
- PCB, คอนเน็กเตอร์, สกรู, เครื่องมือ และอื่น ๆ
บทสรุปและความรู้สึก
ผู้เขียนเน้นว่าประสบการณ์จากการลงมือสร้างเอง กระบวนการแก้ปัญหา และการได้ผ่านวงจรครบทั้งการออกแบบ-ผลิต-ตรวจสอบ มอบความรู้สึกสำเร็จที่ มีความหมายมากกว่าการซื้อผลิตภัณฑ์สำเร็จรูป ความล้มเหลวของ PCB Version 1 ยังสอนให้เห็นถึงความสำคัญของการตรวจสอบอย่างรอบคอบด้วย ตลอดกระบวนการ ผู้เขียนได้บทเรียนหลากหลายจากการใช้ FreeCAD, การพัฒนาทักษะ KiCad, การนำโอเพนซอร์สมาใช้ และการพัฒนาฮาร์ดแวร์โดยรวม อีกทั้งยังพิสูจน์ว่า แท่นกล้องดูดาว DIY ก็เป็นโปรเจ็กต์ที่คนทั่วไปทำได้ ด้วยความช่วยเหลือจาก เฟิร์มแวร์ OnStepX และทรัพยากรจากชุมชน
การได้สร้างแท่นสำหรับติดตามดวงดาวด้วยตัวเอง และเข้าใจมันได้อย่างถ่องแท้—คือความภูมิใจที่มีคุณค่าอย่างแท้จริง
1 ความคิดเห็น
ความเห็นจาก Hacker News
อธิบายว่าสายเคเบิลจากแหล่งจ่ายไฟ USB-C ทำตัวเป็นตัวเหนี่ยวนำ จึงเกิดโครงสร้างแบบ LC filter ที่ทำงานคล้ายตัวกรองความถี่ต่ำ ทำให้จำเป็นต้องมีคาปาซิเตอร์บนบอร์ด เมื่อมอเตอร์ดึงกระแสสูงแบบฉับพลัน กระแสจะไหลผ่านตัวเหนี่ยวนำได้ไม่ทันตามคุณสมบัติของมัน คาปาซิเตอร์จึงจ่ายกระแสแทนไปก่อน แล้วหลังจากนั้นตัวเหนี่ยวนำจึงค่อย ๆ ส่งกระแสตามมา
เป็นโปรเจ็กต์และคำอธิบายที่ยอดเยี่ยมมาก จังหวะก็เหมาะสุด ๆ ฉันหลงใหลดาราศาสตร์สมัครเล่นมาตั้งแต่อายุ 13 ปี มีทั้งกล้องโทรทรรศน์หลายตัว และใช้เวลามากมายดูท้องฟ้ายามค่ำคืนกับครอบครัว ไม่นานมานี้ฉันเอา SCT 10 นิ้วกับ Newtonian 4 นิ้วออกมาให้ลูกชายวัย 7 ขวบดูดวงจันทร์กับดาวเสาร์ พ่อแม่ของฉันก็ได้ดูด้วย เลยเป็นช่วงเวลาที่มีความหมายมาก SCT 10 นิ้วยังติดอยู่กับแท่นยึดแบบ fork รุ่นเก่าที่ไม่มีฟังก์ชัน GOTO ฉันก็เคยศึกษาข้อดีของ GOTO อยู่บ้าง แต่ยังไม่ตัดสินใจซื้อเพราะยังสนุกกับการหาดาวด้วยตัวเอง ตอนนี้ซื้อกล้องระบายความร้อนเฉพาะทาง ZWO 585MC มาแล้วเหมือนกัน แต่ก็เคยเสียเวลาไปมากกับการหาดาวไม่เจอ Telrad อย่างเดียวไม่พอ เลยคิดเหมือนกันว่าจะทำเมาท์จากผู้ผลิตภายนอกขึ้นมาเองด้วยความรู้ด้าน 3D printer และอิเล็กทรอนิกส์ และก็เคยคิดจะเปลี่ยนมอเตอร์เป็น NEMA 17 stepper ด้วย ระหว่างหาข้อมูลก็ไปเจอโปรเจ็กต์ PiFinder ดูเหมือนจะเป็นสมดุลที่ลงตัวระหว่างระบบอัตโนมัติกับการนำทางแบบแมนนวล https://www.pifinder.io/, และยิ่งมั่นใจว่าความก้าวหน้าของการพิมพ์ 3 มิติและการผลิต PCB จะช่วยแก้ปัญหาได้อีกมากในไม่ช้า
สำหรับโปรเจ็กต์สุดเจ๋งนี้ มีเรื่องหนึ่งเกี่ยวกับ trace บนวงจรที่อยากพูดถึง คือมีการบอกว่าทำ trace กว้างเกินไปเพื่อรองรับ 24V แต่จริง ๆ แล้วแรงดันยิ่งสูง กระแสยิ่งต่ำ จึงอาจทำให้แคบลงได้โดยไม่เป็นไร ความกว้างของ trace ควรตัดสินจากกระแส ส่วนระยะห่างระหว่าง trace ต่างหากที่เป็นเรื่องต้องระวังตามระดับแรงดัน
ยกคำจากบล็อกมา: "ตอนขยับกล้องโทรทรรศน์ไปยังเป้าหมาย จำนวน pulse ที่ส่งไปยังมอเตอร์จะมากขึ้น และเป็นภาระเกินไปสำหรับ ESP32 ตัวเล็ก" ฉันเองก็ทำงานที่ต้องควบคุม stepper motor ให้เร็วและแม่นยำ โดยยอมให้ pulse ตกหรือ glitch แม้แต่นิดเดียวไม่ได้ แกน MCU อย่างเดียวมีขีดจำกัด เลยใช้ตัวจับเวลา + DMA ในการควบคุม สุดท้ายก็ใช้ฟีเจอร์ ACT (Advanced Control Timer) ของ MCU STM32G4 ซึ่งทำให้สร้าง arbitrary waveform ได้ง่ายด้วย DMA เพียงอย่างเดียว ดังนั้นไม่ว่าแกนประมวลผลจะโอเวอร์โหลดหรืออยู่ในโหมดสลีป ตัวจับเวลาก็ไม่โดนกระทบ ช่วงนี้ก็กำลังพิจารณา PIO ของ RP2350 อยู่เหมือนกัน บน ESP32 มี MCPWM ก็จริง แต่ถ้าจะทำโปรไฟล์เร่ง-ลดความเร็วที่ซับซ้อนแบบไม่พึ่งแกนเลย 100% ก็ต้องใช้ตัวจับเวลาแบบเป็นขั้น ๆ หรือใช้อินเทอร์รัปต์ ซึ่งสุดท้ายก็กลับไปพึ่งแกนอยู่ดีและมีโอกาสเกิด glitch ได้ ACT ของ ST ทำให้มอเตอร์แต่ละตัวมีตัวจับเวลาแยกอิสระ จึงเขียนง่าย แค่ต้องอ่าน datasheet ให้ดี ส่วน driver IC เฉพาะทางอย่าง Trimanic ก็เป็นทางเลือกได้ แต่ความซับซ้อนฝั่งซอฟต์แวร์กลับสูงกว่าวิธีของฉันอีก
ฉันใช้ freeCAD มา 3 ปีแล้ว และพอเห็นสิ่งที่โปรเจ็กต์นี้สร้างขึ้นมาก็ทึ่งจริง ๆ ฉันชอบ freeCAD แต่ก็แทบไม่เคยเจอซอฟต์แวร์ไหนที่ทั้งดื้อและชวนหงุดหงิดได้เท่านี้มาก่อน
ฉันสนใจมากกับโปรเจ็กต์ที่ใช้เมาท์กล้องโทรทรรศน์วัดเชิงแม่นยำด้วยตัวเอง เช่น ทำ astrometry ของดาวเคราะห์ด้วยตัวเอง ความรู้สึกเหมือนได้เดินตามรอยนักดาราศาสตร์ยุคก่อนอย่าง Kepler ที่คำนวณวงโคจรดาวเคราะห์จากการสังเกตจริง
เป็นโปรเจ็กต์ที่ยอดเยี่ยมมาก ดูเหมือนว่าตอนออกแบบ PCB อาจไม่ได้ใส่คาปาซิเตอร์ ตัวต้านทาน ฯลฯ ที่เหมาะสมครบถ้วน ทำให้ไมโครคอนโทรลเลอร์เสถียรไม่พอ เลยสงสัยว่าปกติทุกคนตัดสินใจกันอย่างไรว่าต้องมีชิ้นส่วนอะไรบ้าง เช่น decoupling capacitor ควรอ่าน datasheet แล้วใส่ตามทั้งหมดเลยหรือไม่
สิ่งที่ประทับใจเป็นพิเศษคือการสั่งทำชิ้นส่วนโลหะ CNC ฉันเองก็เป็นมือใหม่ด้านการออกแบบ CAD และอยากเรียนรู้บ้าง
เป็นโปรเจ็กต์ที่เจ๋งมาก ฉันสงสัยว่าค่า PCB ที่แพงนั้นเกิดจากงานประกอบหรือเปล่า เพราะถ้าอ้างอิง JLCPCB บอร์ด 2 ชั้น ขนาดไม่เกิน 100mm ผิว HASL และตัวเลือกพื้นฐานอื่น ๆ ปกติราคาถูกอยู่แล้ว เลยอยากรู้ว่าร่องสำหรับแผ่นยึดคอนเน็กเตอร์ USB มีค่าใช้จ่ายเพิ่มไหม สั่งประกอบทีละกี่แผ่น สัดส่วนการเลือกชิ้นส่วนจาก standard/extended library เป็นอย่างไร ถ้าบัดกรีเฉพาะคอนเน็กเตอร์เองราคาจะต่างแค่ไหน และจริงไหมที่ถ้ามีชิ้นส่วนจาก extended library แม้แต่ตัวเดียว ค่าหยิบวางประกอบของทุกชิ้นก็จะเพิ่มแบบแยกรายการ ทำให้การลดจำนวนชนิดชิ้นส่วนคือกุญแจหลักในการลดต้นทุน
โปรเจ็กต์นี้น่าประทับใจมาก ฉันเองก็เคยอยากซื้อเมาท์ harmonic drive ขนาดใหญ่ให้กล้องของฉัน แต่ติดที่ราคาสูงเกินเอื้อม ระหว่างใช้เครื่องมือ EKOS/Kstars/INDI ก็เจอการลองผิดลองถูกเยอะเหมือนกัน ถ้าต้องการควบคุมอุปกรณ์ indi จาก Python ฉันมีโค้ดที่เขียนไว้ https://github.com/dahlend/contindi