Archive

Archive for 29/10/2025

ฝึกการเขียนโปรแกรม ด้วย Robo MIND ภาค #3

เป็นการเขียนเรื่องการโปรแกรมต่อเนื่องในรอบ 10 ปีเนื่องจากยังเห็นมียอดผู้เข้ามาดูในเรื่อง RoboMind อย่างต่อเนื่องมีเวลาก็อยากจะเขียนเพิ่ม เผื่อมีผู้ที่อ่านเพิ่มเติม ในส่วนนี้จะเป็นตัวอย่างการเขียนโปรแกรมในหัวข้อสั้น ๆ และตัวอย่างโปรแกรม

โจทย์ : ต้องการให้หุ่นยนต์ เดินไปข้างหน้าจากจุดเริ่มต้นเมื่อถึงผนังและเดินต่อไม่ได้ ให้ เลี้ยวซ้าย หรือขวาแล้วเดินต่อถ้าไปไม่ได้ให้ เลี้ยวซ้ายหรือขวา แล้วเดินวนซ้ำไปเรื่อย ๆ ไม่มีหยูด

สำหรับผม ก็จะเขียนง่ายๆ ด้วยโครงสร้าง Repeat ก่อน แล้วเดินหน้าไป หนึ่งเสต็ปก่อน แล้วจะทำซ้ำไปเรื่อย ๆ จะแบบนี้จะเห็นภาพก่อนว่า เมื่อหุ่นเดินหน้าไป ก็จะชนเข้ากับผนัง ตัวอย่าง Code เป็นแบบนี้

repeat {
    forward (1)
}

เมื่อสั่งทำงาน หรือ Run จะพบว่า เจ้าหุ่นเดินทางไปในทิศทางที่มัน หันไปอยู่ไปเรื่อยๆ จยจะพบผนังแล้วก็หยุดเพราะไปไม่ได้ เราจะต้อง ดังนั้นเรามีคำสัง frontIsObstacle เอาไว้ตรวจสอบว่าข้างหน้าเรามีอะไรขวางไหม แล้วเราจะหมุนหุ่นไป หนึ่งครั้งด้วยคำสั่ง right แล้ว วนซ้ำไปเรื่อย ๆ แบบนี้

repeat{

     if(frontIsObstacle)  { # ตรวจดูว่าด้านหน้าไปได้ไหมถ้ามี ให้หมุนขวา
            
           right

      }else { #ถ้าไม่มีก็ สั่งเดิน 1 ครั้ง

            forward(1)

       }

}

ใน Video เป็นการ Run code ด้านบนนะครับ ลองดูการทำงาน หุ่นเราฉลาดขึ้นอีกนิส คือเมื่อเตินต่อไม่ได้ ก็หมุนขวาครั้งหนึ่ง แล้วก็ ตรวจสอบใหม่ ถ้าว่างก็เดินหน้า ไปเรื่อย ๆ แต่ถ้าเราดู Videoไปเรื่อย ๆ จะพบว่า เขาจะไปวนอยู่ที่หนึ่งไปต่อไปได้แล้ว ลองมาช่วยกันหาวิธีที่จะให้หุ่น เราหันซ้าย บ้าง หันขวาบ้าง จะได้ไม่เป็น pattern เดิม ลองทำกันดูนะครับ ครั้งหน้าจะมาเพิ่มเติม ข้อมูลคำสั่งเพิ่มเติม ที่ link

s.teerapong@gmail.com

ความล้า ของ Servo ก่อเกิดอันตรายต่ออากาศยาน

Servo เป็นหัวใจของระบบควบคุมการบิน ไม่ว่าจะเป็น Elevator, Aileron, Rudder หรือ Throttle หาก servo ตัวใดเริ่มเสื่อมสภาพ ความแม่นยำและความเร็วในการตอบสนองจะลดลงทันที การตรวจพบตั้งแต่ระยะต้นจึงเป็นสิ่งจำเป็นมาก

สัญญาณเตือนว่า Servo เริ่มล้า

1.เสียงผิดปกติ (Unusual Noise) – หากมีเสียงหอนหรือครืดเบา ๆ แม้ไม่มีการขยับโหลด อาจเกิดจากเฟืองเริ่มสึกหรือแกนหมุนหลวม

2.การตอบสนองช้า (Slow Response) – Servo ใช้เวลานานขึ้นกว่าจะขยับถึงตำแหน่งที่สั่ง เทียบกับ servo ตัวใหม่

3.ตำแหน่งไม่คงที่ (Jitter / Hunting) – Servo ขยับเองเล็กน้อยแม้ไม่ได้รับสัญญาณ เปลี่ยนค่า PWM ไปมา ±2–5 µs อย่างไม่เสถียร

4.อุณหภูมิสูงผิดปกติ (Overheating) – ขณะทำงานต่อเนื่อง Servo อุ่นหรือร้อนกว่าปกติ แม้โหลดเท่าเดิม แสดงถึงการสูญเสียประสิทธิภาพของมอเตอร์หรือเกียร์

5.เฟืองมีระยะฟรี (Gear Backlash) – เมื่อขยับปลายคันบังคับด้วยมือแล้วพบว่ามีช่องว่าง (play) มากกว่า 1–2° ให้สงสัยว่าเฟืองเริ่มสึก

6.กระแสไฟสูงกว่าปกติ (High Current Draw) – ใช้เครื่องวัดกระแส (servo tester + power meter) หากกระแสสูงกว่าค่าเฉลี่ย 20–30% แสดงถึงแรงเสียดทานหรือความฝืด

วิธีตรวจสอบหลังจากเปลี่ยนหรือซ่อมทำ

วัด PWM feedback (ถ้ามี telemetry): ตรวจสอบความต่างระหว่าง “commanded vs actual angle”

ตรวจสอบ load path: ตรวจดู linkage และ ball link ว่ามีการคลอนหรือรูขยายตัวหรือไม่

บันทึกชั่วโมงการใช้งาน: ควรกำหนดรอบการเปลี่ยน เช่น ทุก 150–200 ชั่วโมง หรือหลัง flight mission 500 ครั้ง แล้วแต่ภาระงาน

Servo ที่ดู “ยังดี” จากภายนอก อาจเริ่มล้าภายในโดยที่เรามองไม่เห็น การตรวจเช็กเชิงป้องกัน (Preventive Inspection) เป็นแนวทางที่ช่วยป้องกันการสูญเสียทั้งอากาศยานและภารกิจ
“เปลี่ยนก่อนพัง ดีกว่าซ่อมหลังตก”

© LEADING EDGE UNMANNED SYSTEM — Preventive Maintenance Culture, Not Just Repair Culture.