Archive
ฝึกการเขียนโปรแกรม ด้วย Robo MIND ภาค #3 ว่าด้วยเรื่องการ สุ่ม (Random)
ในการโปรแกรม เราจะมี Function หรือ ตัวแปรหนึ่งเพื่อเป็น กลไกในการทำให้เกิดทางเลือกที่ สุ่มค่าขึ้นมา ในที่นี้ เรามี คำสั่งหนึ่งชื่อว่า flipCoin ที่จะให้ค่าสุม เป็น True หรือ Fale โดยมีความน่าจะเป็นในการให้ค่าเท่าๆ กัน 50/50
ในบทความนี้ เราจะทำโปรแกรมต่อจากคราวที่แล้วและใส่ flipCoin เพื่อให้เราไม่ต้องหมุนขวาทางเดียว ถ้าจำตัวอย่างที่แล้วไม่ได้แนะนำให้ไปอ่านดูก่อนมาต่อที่นี่นะครัยโดยไปตาม link นี้ แล้วกลับมาต่อที่นี่กัน
ก็จะเพิ่มเติมจากเติมว่าหากตรวจแล้วพบว่าด้านหน้ามีผนัง เราจะสุมหัน ไม่ซ้ายก็ขวา เช็คไปเรื่อย ๆ จนกว่าจะพบว่าด้านหน้าเดินต่อได้จึงเดิน เราจึงเพิ่มเติมที่ code เราได้ว่า จากเดิม
repeat{
if(frontIsObstacle) { # ตรวจดูว่าด้านหน้าไปได้ไหมถ้ามี ให้หมุนขวา
right
}else { #ถ้าไม่มีก็ สั่งเดิน 1 ครั้ง
forward(1)
}
}
เมื่อเพิ่มเข้า ไปผมจะเขียนดังนี้
repeat{
if(frontIsObstacle) { # ตรวจดูว่าด้านหน้าไปได้ไหมถ้ามี ให้ สุ่ม
if(flipCoin){
right
}else{
left
}
}else { #ถ้าไม่มีก็ สั่งเดิน 1 ครั้ง
forward(1)
}
}
มาดูผลการเพิ่ม code เขาไปในโปรแกรม จะได้ดังนี้ครับ
ซึ่งเราก็จะเห็นว่า code ที่เพิ่มเขาไปนั้นทำให้ พฤติกรรมของ หุ่นเปลี่ยนไป มีความสามารถหาทางที่ไม่มีอะไรขวางกันอกกไปได้ แต่เป็นแบบไม่ฉลาดนัก เพราะเขาก็จะหมุ่นหนีทางตันไปเรื่อย ๆ หนีออกได้แต่ เป็นแบบสุ่ม
ถ้าหากเราต้องทำให้หุ่นเราฉลาดกว่านี้ พวกเราลองคิดเพิ่มเติมดูนะครับว่าจะทำอย่างไร เอาไว้ต่อบทหน้านะครับ
ต่อไป: ฝึกการเขียนโปรแกรม ด้วย Robo MIND ภาค #4 คำสั่งตรวจจับสิ่งรอบตัวหุ่นยนต์ / Sensing the environment
s.teerapong@gmail.com
ภาคสนามกับ Multimeter: ตรวจสุขภาพ Servo ด้วยเครื่องมือ

หลายคนมองว่า “การตรวจสุขภาพ Servo” ต้องใช้เครื่องมือแพง แต่จริง ๆ แล้ว Multimeter ธรรมดาราคาไม่เกิน 300 บาท ก็เพียงพอที่จะช่วยคุณรู้ว่า Servo ยังแข็งแรงหรือกำลังล้า
ก่อนขึ้นบิน ให้ตั้ง Multimeter วัดโหมด DC Voltage แล้วต่อปลายวัดขนานกับสายไฟ Servo (5V และ GND) จากนั้นขยับ servo เต็มช่วงซ้าย–ขวา ถ้าแรงดันตกเกิน 0.3–0.5V ระหว่างหมุน แสดงว่า Power Rail หรือ BEC ของคุณเริ่มอ่อนแรง หรือ servo ตัวนั้นกินไฟเกินปกติ
ต่อมา ตั้งโหมด Current (กระแส) แล้วต่ออนุกรมเข้ากับสายไฟ servo เพื่อดูค่ากระแสที่ใช้ขณะ servo ทำงานปกติ
–หากกระแสสูงกว่า 1.5–2A ต่อเนื่อง แสดงว่ามีแรงเสียดทานหรือ gear ฝืด
–ถ้ามีกระแส spike สูงช่วงต้นแล้วลดลง แสดงว่า servo ยังปกติ
–แต่ถ้า spike นานเกิน 2 วินาที แสดงว่าเริ่มล้า
เทคนิคเล็ก ๆ นี้อาจใช้เวลาไม่ถึง 2 นาที แต่ช่วยป้องกันการสูญเสียทั้งเครื่องและภารกิจได้จริง
..
..
“เครื่องมือไม่ได้ทำให้ดูเป็นมืออาชีพ แต่การใช้มันอย่างเข้าใจต่างหาก” — Leading Edge Unmanned Systems
..
ต่อเนื่องจาก >> ความล้า ของ Servo ก่อเกิดอันตรายต่ออากาศยาน
ฝึกการเขียนโปรแกรม ด้วย 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) เป็นแนวทางที่ช่วยป้องกันการสูญเสียทั้งอากาศยานและภารกิจ
“เปลี่ยนก่อนพัง ดีกว่าซ่อมหลังตก”
พัฒนาคนเพื่อพัฒนาระบบอากาศยานไร้นักบิน
ในยุคที่เทคโนโลยีอากาศยานไร้นักบิน (UAV) เข้ามามีบทบาทสำคัญในภารกิจด้านความมั่นคง การลาดตระเวน การกู้ภัย และงานภาคสนามต่าง ๆ “บุคลากร” คือหัวใจสำคัญที่จะทำให้ระบบเหล่านี้ทำงานได้อย่างมีประสิทธิภาพ การอบรมและถ่ายทอดองค์ความรู้จากผู้เชี่ยวชาญสู่ผู้ใช้งาน คือขั้นตอนสำคัญของการพัฒนาให้ยั่งยืน ในภาพคือบรรยากาศการฝึกอบรมที่เต็มไปด้วยความตั้งใจ การแลกเปลี่ยน และการซักถามเชิงเทคนิค เพื่อสร้างความเข้าใจร่วมกันระหว่างทีมพัฒนาและผู้ปฏิบัติการจริงในสนาม
การพัฒนา “คน” ไม่ได้จบที่การสอนให้ใช้เครื่อง เราควรปลูกฝังความเข้าใจในระบบ การคิดเชิงวิเคราะห์ และการปฏิบัติอย่างปลอดภัย เมื่อความรู้ถูกถ่ายทอดอย่างถูกทิศถูกทาง ระบบก็จะถูกใช้อย่างเต็มประสิทธิภาพ และนี่คือรากฐานของระบบ UAV ที่มั่นคงและยั่งยืนของประเทศไทย
“การพัฒนาคน… คือหัวใจของพัฒนาเทคโนโลยี”

