หุ่นยนต์ POP-BOT-XT เมื่อติดตั้งเข้ากับ Gripper แบบจับแล้วหมุน จะมีรูปร่างหน้าตาดังรูปครับ
POPBOT XT With Gripper
การติดตั้งเซนเซอร์สำหรับหุ่นยนต์ตัวนี้จะใช้สำหรับเคลื่อนที่ตามเส้น 2 ตัวและใช้ตัวจับกระป๋องหรือขวดน้ำอีก 1 ตัวดังรูป
โดยการติดตั้งเซนเซอร์สำหรับตรวจจับกระป๋องต้องเจาะแขนจับให้ใส่เซนเซอร์เข้าไปด้วย ระหว่างเดินเข้าหากระป๋องจะได้ตรวจสอบกระป๋องเจอ และยังสามารถเขียนโปรแกรมให้แยกแยะสีของกระป๋อง (บางสี) ได้ด้วย ดังรูป
การเชื่อมต่อสายเซนเซอร์
เซนเซอร์ด้านซ้ายเข้ากับช่อง A0 เซนเซอร์ด้านขวาเข้ากับช่อง A1 เซนเซอร์จับกระป๋องต่อเข้ากับช่อง A2 โดยเซนเซอร์ทั้งหมดใช้แผงวงจรตรวจจับการสะท้อนแสงอินฟราเรดรุ่น ZX-03 ทางด้านแขนจับจะต้องควบคุมด้วยเซอร์โวมอเตอร์ถึง 2 ตัว เพื่อจะหนีบกระป๋อง สามารถเขียนเป็นฟังก์ชันง่าย ๆ สำหรับหนีบและจับกระป๋องดังนี้
ฟังก์ชั่น servo_open() จะใช้สำหรับเปิดแขนจับออก
void servo_open(){ servo(2,80); sleep(400); servo(1,140); sleep(400); servo(1,-1); servo(2,-1); }
ฟังก์ชั่น servo_close() จะใช้เพื่อหนีบแล้วหมุนกระป๋อง
void servo_close(){ servo(1,0); sleep(1000); servo(2,0); sleep(1000); servo(1,-1); servo(2,-1); }
จากทั้งสองฟังก์ชันจะเห็นว่า เมื่อทำงานเสร็จแล้วจะใช้คำสั่ง servo(1,-1) หรือ servo(2,-1) เพื่อให้เซอร์โวหยุดทำงานและไม่กินกำลังไฟฟ้า เมื่อวางกระป๋องหรือหนีบกระป๋องเสร็จเรียบร้อยหุ่นยนต์จะต้องหมุนตัวกลับ 180 องศา สามารถสร้างเป็นฟังก์ชั่น R180() ดังนี้
void R180(){ while(analog(1)>500){sr(50);} while(analog(1)<500){sr(50);} }
โดยฟังก์ชัน R180() จะให้หุ่นยนต์หมุนตัวไปทางขวาเรื่อย ๆ ถ้ายังไม่เจอเส้นสีดำ เมื่อเจอเส้นสีดำแล้วก็หมุนตัวต่อจนหลุดจากเส้นสีดำนั่นเอง เมื่อรวมรายละเอียดทั้งหมดก็หลายเป็นโปรแกรมดังนี้ครับ
การทำงานของโปรแกรม
โปรแกรมนี้จะใช้ตัวแปร i ในการนับทางแยกเมื่อเจอทางแยกแล้วตรวจพบว่าตัวแปร i มีค่าเป็น 1 จะเข้าสู่โหมดหนีบกระป๋อง โดยจะเดินตรงไปเรื่อยๆ จนเซนเซอร์ A2 เจอกระป๋อง จากนั้นหนีบแล้วถอยหลังหมุนตัวกลับ เดินตามเส้นต่อไป เมื่อเจอแยกอีกครั้ง i จะมีค่าเป็น 2 จะเป็นการวางกระป๋อง และหมุนตัวกลับ ณ ที่นี้จะสั่งให้ i เป็น 0 อีกครั้งเพื่อเริ่มต้นกระบวนการใหม่
ผลลัพธ์ที่ได้ ก็จะเป็นตามไฟล์วีดิโอที่แนบมานี้นะครับ