[POP-XT] Picking Robot EP.04 Turn 90 degree

ตอนที่  4  ฟังก์ชั่นเลี้ยว  90  องศาเมื่อเจอทางแยก

สำหรับทางแยกที่เป็นลักษณะ 3 แยก การเลี้ยว 90 องศาก็ใช้หลักการเหมือนการเดินตรงข้ามทางแยก

การเลี้ยวขวา 90 องศา

จากรูปมองเหตุการณ์เป็น 4 ขั้นตอนดังนี้

1. เมื่อหุ่นยนต์เดินตามเส้นไปเรื่อยๆ แล้วเซนเซอร์ A3 เจอทางแยก

2. ให้หุ่นยนต์เดินตรงไปข้างหน้าจนตัวหุ่นยนต์อยู่คร่อมจุดตัดทางแยกพอดี

3. หมุนตัวไปทางขวา โดยถ้าเซนเซอร์ A1 ยังเจอสีขาวอยู่ให้หมุนทางขวาไปเรื่อยๆ

4. เมื่อเซนเซอร์ A1 เจอสีดำก็ให้หมุนตัวทางขวาต่อไปอีกจนกว่า เซนเซอร์ A1 จะเจอสีขาวอีกครั้ง ซึ่งก็จะเป็นการไปคร่อมเส้นด้านขวาพอดี

จากรูปนำมาเขียนเป็นฟังก์ชั่นสำหรับการเลี้ยวขวา 90 องศาได้ดังนี้

 

 

ถ้าดูการทำงานของฟังก์ชั่น เมื่อเทียบกับฟังก์ชั่น FFF() สำหรับการเดินหน้าก่อนหน้านี้จะเห็นว่ามีส่วนที่คล้ายคลึงกันมาก โดยส่วนหลัก ๆ คือการที่หุ่นยนต์เคลื่อนที่ตามเส้นไปเรื่อยๆ จะหลุดจากลูปของการเคลื่อนที่ตามเส้นก็ต่อเมื่อ เซนเซอร์ A3 เจอสีดำเท่านั้นและเมื่อหลุดจากลูปมาแล้ว ก็ทำงานตาม 4 ขั้นตอนที่บอกไป จนจบฟังก์ชั่น หุ่นยนต์ก็จะเลี้ยวขวา 90 องศาได้อย่างสมบูรณ์

การเลี้ยวซ้าย 90 องศา

การเลี้ยวซ้ายก็จะมีลักษณะเดียวกันกับการเลี้ยวขวา แต่เปลี่ยนการตรวจจับเซนเซอร์เป็นคนละรูปแบบดังนี้

 

  นำมาเขียนเป็นฟังก์ชั่นสำหรับเดินตามเส้นเจอแยกแล้วเลี้ยวซ้ายได้ดังนี้



 

ตัวอย่างให้หุ่นยนต์เคลื่อนที่ตามเส้นทางที่กำหนด 

สามารถเรียกฟังก์ชั่นเลี้ยวซ้าย เลี้ยวขวา เดินตรงของหุ่นยนต์มาใช้ได้ ยกตัวอย่างสนามง่ายๆ ดังรูป

 การเรียกใช้งานฟังก์ชั่นทั้งหมด กำหนดไว้ที่ void setup() เนื่องจาก ไม่ต้องการให้โปรแกรมทำงานอย่างต่อเนื่อง หลังจากที่ทำขั้นตอนการเดินต่าง ๆ เสร็จแล้วก็ปิดท้ายด้วยคำสั่ง ao() เพื่อหยุดการทำงานของมอเตอร์นั่นเอง

 

Facebook Comments