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 ก่อเกิดอันตรายต่ออากาศยาน