ข้ามไปที่เนื้อหาหลัก

รูปแบบการเลี้ยวของหุ่นยนต์

          มอเตอร์ เป็นอุปกรณ์ที่เปรียบเสมือนกล้ามเนื้อของมนุษย์ กล่าวคือเมื่อร่างกายของมนุษย์รับข้อมูลจากตาหรือหูแล้ว สมองจะทำการตัดสินใจจะส่งสัญญาณผ่านระบบประสาทไปยังกล้ามเนื้อ โดยกล้ามเนื้อจะทำหน้าที่ควบคุมให้อวัยวะแขน ขา ทำงาน ในหุ่นยนต์ก็เช่นเดียวกัน มอเตอร์จะทำหน้าที่รับสัญญาณไฟฟ้าจากภาคควบคุม (Controller) โดยมอเตอร์จะควบคุมการทำงานของระบบแมคคานิคให้ทำงานตามที่สั่งการ
ภาพแสดง Servo motor

          การควบคุมให้หุ่นยนต์เคลื่อนที่เดินหน้าและถอยหลัง สามารถกำหนดได้ 2 วิธี คือ

          วิธีที่ 1 การควบคุมการเคลื่อนที่ด้วยเวลา ดังนี้



จากโปรแกรมมีฟังก์ชันที่เกี่ยวข้องกับการเขียนโปรแกรม คือ

OnFwd(Outputs Port, Power) คือ ฟังก์ชันที่ใช้ควบคุมให้มอเตอร์เดินหน้า (Outputs Port พอร์ตที่ติดต่อกับมอเตอร์, Power ค่าตั้งแต่ 0 ถึง 100 สามารถใส่เป็นค่าลบหากต้องการทิศตรงข้าม)
OnRev(Outputs Port, Power) คือ ฟังก์ชันที่ใช้ควบคุมให้มอเตอร์ถอยหลัง (Outputs Port พอร์ตที่ติดต่อกับมอเตอร์, Power ค่าตั้งแต่ 0 ถึง 100 สามารถใส่เป็นค่าลบหากต้องการทิศตรงข้าม)
Wait(milliseconds) คือ ฟังก์ชันที่ใช้สำหรับกำหนดเวลาในการทำงาน (Milliseconds เวลาเป็นมิลลิวินาที (วินาที x 1000))
Off(Outputs Port) คือ ฟังก์ชันที่ใช้ปิดการทำงานมอเตอร์ พร้อมกับหยุด (Outputs Port พอร์ตที่ติดต่อกับมอเตอร์)

          วิธีที่ 2 การควบคุมการเคลื่อนที่ด้วยองศาการหมุนของมอเตอร์



          มอเตอร์ของชุดหุ่นยนต์จะเป็น Servo motor ซึ่งมีเซนเซอร์อยู่ภายในแล้ว โดยเซนเซอร์จะใช้การวัดเป็นองศา 1 รอบการหมุนจะเท่ากับ 360 องศา



          เราสามารถดูค่าของเซนเซอร์ได้ที่เมนู View


1. เลือกไอคอน Motor degree
2. เลือกพอร์ตที่เชื่อมต่อกับเซนเซอร์
3. ลองดันมอเตอร์ไปกับพื้น
4. ดูค่าที่ได้รับที่หน้าจอ จะเป็นค่าของจำนวนองศาที่ล้อหมุน

สามารถเขียนโปรแกรมได้ดังนี้


จากโปรแกรมมีฟังก์ชันที่เกี่ยวข้องกับการเขียนโปรแกรม คือ

RotateMotor(Outputs Port,Power,Angle) (Outputs Port พอร์ตที่ติดต่อกับมอเตอร์ื, Power ค่าตั้งแต่ 0 ถึง 100 สามารถใส่เป็นค่าลบหากต้องการทิศตรงข้าม , Angle สามารถใส่เป็นค่าลบหากต้องการทิศทางตรงกันข้าม)

          นอกจากการควบคุมให้หุ่นยนต์เดินหน้าและถอยหลังแล้ว หุ่นยนต์จะมีการเคลื่อนที่ด้วยการเลี้ยว ซึ่งสามารถจำแนกลักษณะการเลี้ยวตามการควบคุมของมอเตอร์ได้ 5 รูปแบบ ดังนี้

แบบที่ 1 มอเตอร์ด้านเดียวหมุนไปข้างหน้า

ภาพแสดงการเลี้ยวแบบที่ 1 มอเตอร์ด้านเดียวหมุนไปข้างหน้า

แบบที่ 2 มอเตอร์ด้านเดียวหมุนถอยหลัง

ภาพแสดงการเลี้ยวแบบที่ 2 มอเตอร์ด้านเดียวหมุนถอยหลัง

แบบที่ 3 มอเตอร์ทั้งสองด้านหมุนพร้อมกันในทิศตรงกันข้าม
ภาพแสดงการเลี้ยวแบบที่ 3 มอเตอร์ด้านเดียวหมุนพร้อมกันในทิศตรงกันข้าม

แบบที่ 4 มอเตอร์ทั้งสองด้านหมุนพร้อมกันไปหน้าในทิศเดียวกันแต่กำลังต่างกัน

ภาพแสดงการเลี้ยวแบบที่ 4 มอเตอร์ด้านเดียวหมุนพร้อมกันไปหน้าในทิศเดียวกันแต่กำลังต่างกัน

แบบที่ 5 มอเตอร์ทั้งสองด้านหมุนพร้อมกันถอยหลังในทิศเดียวกันแต่กำลังต่างกัน

ภาพแสดงการเลี้ยวแบบที่ 5 มอเตอร์ด้านเดียวหมุนพร้อมกันถอยหลังในทิศเดียวกันแต่กำลังต่างกัน

          สิ่งที่สำคัญที่สุดในการเคลื่อนที่ไปทางซ้ายหรือขวาของหุ่นยนต์ คือ การควบคุมการจ่ายพลังงานของมอเตอร์ มอเตอร์ไฟฟ้าที่ใช้ในการสร้างหุ่นยนต์ส่วนใหญ่จะเป็นแบบมอเตอร์ไฟฟ้ากระแสตรง เนื่องจากสามารถควบคุมความเร็วในการหมุนและทิศทางของการหมุนได้ง่าย โดยใช้แหล่งจ่ายที่เป็นแบตเตอรี่ที่สามารถหาได้ไม่ยาก และต้องเลือกขนาดของความเร็วรอบและแรงบิดให้เหมาะสมกับงาน


ข้อเสนอแนะจากประสบการณ์
          รูปแบบการเลี้ยว 5 แบบที่ได้กล่าวมาข้างต้น จะทำงานได้มีประสิทธิภาพ เกิดจากการนำไปใช้ให้เหมาะสมกับสถานการณ์ เช่น เมื่อต้องการเลี้ยวในพื้นที่แคบ ควรเลือกใช้การเลี้ยวแบบที่ 3 มอเตอร์ทั้งสองด้านหมุนพร้อมกันในทิศตรงกันข้าม เพราะการเลี้ยวแบบนี้มอเตอร์ทั้งสองด้านจะทำงานพร้อมกันทำให้เกิดรัศมีการเลี้ยวที่สั้นที่สุด สามารถเลี้ยวได้รวดเร็วใช้เวลาสั้น ถ้ามีพื้นที่ค่อนข้างกว้าง อาจจะเลือกใช้แบบที่ 4 หรือแบบที่ 5 เพราะทั้งสองแบบมีรูปแบบการเลี้ยวที่คล้ายกับการเข้าโค้ง

ภาพแสดงการเปรียบเทียบรูปแบบการเลี้ยวในแบบที่ 1 และ 4



เอกสารอ้างอิง
ทีมงานสมาร์ทเลิร์นนิ่ง. (2549). เรียนรู้การสร้างหุ่นยนต์ Step by Step. กรุงเทพฯ: บริษัท ด่านสุทธาการพิมพ์ จำกัด.
Daniele Benedettelli. (2007). Programming LEGO NXT Robots using NXC. [n.p.]: [n.p.].
John C. Hansen. (2009). LEGO NXT power programming : robotics in C. 2nd ed. United States: Variant Press.
The LEGO Group. (2006). Quick Start Guide : Using The NXT with Robolab 2.9. [n.p.]: [n.p.].

โพสต์ยอดนิยมจากบล็อกนี้

หุ่นยนต์เคลื่อนที่ไปตามเส้นดำ

หุ่นยนต์และมนุษย์มีหลักการทำงานที่เหมือนกัน คือ หน่วยรับข้อมูลเข้า (Input Unit) หน่วยประมวลผล (Process Unit) และหน่วยแสดงผล (Output Unit) ดังนั้นการที่หุ่นยนต์จะเคลื่อนที่ไปให้ตรงเป้าหมาย หุ่นยนต์จะต้องมีอุปกรณ์ที่จะตรวจสอบตำแหน่งและส่งข้อมูลที่ได้ไปยังหน่วยประมวลผล เพื่อให้มอเตอร์ทำการแสดงผลโดยการไปยังเป้าหมายต่อไป อุปกรณ์พื้นฐานที่ใช้ในการตรวจสอบตำแหน่งนั้น คือ เซนเซอร์แสง (Light Sensor)

หุ่นยนต์ใช้เซนเซอร์แสงเปรียบเสมือนตาของมนุษย์ โดยมีเส้นสีดำเป็นทางเดินไปหาเป้าหมาย หุ่นยนต์จะต้องตรวจสอบว่าขณะที่เคลื่อนที่หุ่นยนต์ยังอยู่บนเส้นดำหรือไม่ เราสามารถนำเซนเซอร์แสงมาใช้กับการเดินของหุ่นยนต์

การเดินตามเส้นของหุ่นยนต์ โดยใช้เซนเซอร์ 1 ตัวมีวิธีการว่า เราจะต้องให้หุ่นยนต์ตรวจสอบเส้นดำเป็นช่วงๆ เพื่อไม่ให้หลุดจากเส้นดำที่กำหนด การตรวจสอบเส้นดำเป็นช่วงๆ มีวิธีการดังภาพ


วิธีการทำงานมีขั้นตอนดังนี้
1. เมื่อเซ็นเซอร์แสงวัดค่าแสงได้สีดำ หุ่นยนต์จะเลี้ยวออกออกจากเส้นดำ
2. เมื่อเซ็นเซอร์แสงวัดค่าแสงได้สีขาว (ไม่ใช่สีดำ) หุ่นยนต์เคลื่อนที่กลับไปหาเส้นดำ




ตัวอย่างโปรแกรม



เมื่อนำโปรแกรมไปใช้จริงจะต้อ…

การใช้เซนเซอร์แสงตรวจสอบเส้นดำ

เซนเซอร์แสงเป็นอุปกรณ์ที่ทำหน้าที่เปลี่ยนค่าแสงให้กลายเป็นสัญญาณไฟฟ้า ทำหน้าที่เป็นเสมือนตาของหุ่นยนต์ เซนเซอร์ตรวจจับแสงจะช่วยให้หุ่นยนต์แยกแยะระหว่างแสงสว่างและความมืด สามารถอ่านความเข้มแสงในห้องและวัดความเข้มของแสงสีของพื้นผิว



          การรับรู้ของตามนุษย์ต่อสีเมื่อเปรียบเทียบกับเซนเซอร์แสง



          การแสดงค่าแสงของเซนเซอร์แสง สามารถทำได้โดยเปิด NXT Controller ไปที่เมนู View



          หากเลือก Reflected Light จะทำให้เซนเซอร์แสงฉายแสงสีแดงไปกระทบวัตถุและวัดแสงที่สะท้อนกลับมาเราสามารถใช้ในการตรวจสอบค่าของแสงที่สะท้อนจากวัตถุได้



          แต่ถ้าเลือกวิธีการวัดค่าแสงแบบ Ambient Light จะไม่มีการฉายแสงสีแดงออกมาจากเซนเซอร์แสง โดยเซนเซอร์แสงจะวัดแสงที่เกิดจากการสะท้อนแสงจากวัตถุโดยรอบเท่านั้น

          ค่าของแสงที่ได้จากการวัดของเซนเซอร์แสงจะเริ่มต้นตั้งแต่ 0% ซึ่งหมายถึงดำสนิทหรือมืด ถึง 100% ซึ่งหมายถึงสว่างมากหรือขาว โดยสามารถแสดงค่าของแสงได้ดังภาพ



วิธีการนำค่าแสงที่วัดได้ไปใช้ในการเขียนโปรแกรมให้หุ่นยนต์ตรวจสอบเส้นสีดำ มีดังนี้
ขั้นที่ 1 นำเซนเซอร์แสงที่ติดตั้งกับหุ่นยนต์…

ตราประจำโรงเรียนสิรินธร จังหวัดสุรินทร์ แบบโรงเรียนมาตรฐานสากล

ทำเสร็จนานแล้วครับ นำไปใช้ได้เลย @อนุญาต