POP-BOT_Gripper

Page 1

  1

POP-BOT Application :

  1. รายการชิ้นสวนของชุดกลไกแขนจับ (Gripper kit)

1 : แผนบานพับ (hinge mount) 4 : แขนเชือมต ่ อมือจับ (gripper link) 7 : สกรู 3 มม. ยาว 1.25 นิ้ว 10 : คันชัก (control arm) 13 : บูตทองเหลือง 16 : ตัวยึดเซอรโวมอเตอร 19 : เสารอง 3 มม. ยาว 1.25 นิ้ว

2 : สลัก (dowel pin) 5 : ทอโลหะ #4 ยาว 1 นิว้ 8 : นอต 3 มม. 11 : เซอรโวมอเตอร 14 : เทปโฟม 17 : สกรู 3 มม. ยาว 3/8 นิว้

3 : เพลตเชื่อมตอ (linkage plate) 6 : แผนมือจับ (gripper plate) 9 : สปริง 12 : ลวดบังคับ (actuator rod) 15 : สกรู 3 มม. ยาว 1/4 นิว้ 18 : นอตล็อก 3 มม.


  2

รูปที่ 1 แสดงแนวทางในการประกอบชินส ้ วนตางๆ ของกลไกแขนจับ โดยอางอิงหมายเลขของชินส ้ วน ตรงกับรายการชินส ้ วนทังหมด ้

2. ขั้นตอนการประกอบ (1) นําทอโลหะใสลงไปในรองของแขนเชือมต ่ อมือจับฝงที  ่ลาดตํากว ่ า จากนันนํ ้ าแผนมือจับประกบ ยึดแลวใชสกรูและนอตขันยึด สังเกตแนวเอียงมีลักษณะดังรูป โดยทําเหมือนกันสองชุดในลักษณะ กลับกระจกกัน


  3

(2) ตัดเทปโฟมความยาวพอเหมาะ ติดลงบนแผนมือจับดานใน เพือช ่ วยใหการจับวัตถุกระชับขึน้

(3) ใสทอโลหะลงในรองทีเหลื ่ อของแขนเชือมต ่ อมือจับ แลวนําแผนเพลตเชือมต ่ อประกบบนลาง ยึด เขาดวยกันโดยสกรูและนอต การหันแผนเพลตเชือมต ่ อเพื่อประกอบเขาดวยกันมีทิศทางที่ตองระวัง ดูไดจากรูปในขั้นที่ 3.1 และ 3.3


  4

(4) นําแทงคันชักประกบยึดที่ดานบนของแขนจับ แลวใชสกรูขันยึด จากนั้นนําบูตทองเหลืองยึดเขา กับปลายของคันชักและล็อกใหแนนดวยแทงยางเล็กๆ สีดํา

(5) จะไดสวนของกลไกมือจับ ดังรูป ทดลองขยับมือจับใหมีการกางออกและหนีบเขา จะตองทําได อยางเปนอิสระ ไมติดขัด (6) นําฉากโลหะ 5x2 รู (มีในชุด POP-BOT) 2 ชินยึ ้ ดเขากับแผนบานพับ (ชินส ้ วนหมายเลข 1) ดวยสกรู และนอต 3 มม. ทีรู่ ที่ 4 ของฉากโลหะ จากนันนํ ้ าสปริงเสียบเขากับกานทียื่ นออกมาของแผ ่ นบานพับ


  5

(7) นับจากขั้นตอนนี้เปนการสรางโครงหุนยนตของ POP-BOT ใหม เพื่อใหรองรับกับการติดตังกล ้ ไกแขนจับ นําชุดเฟองขับมอเตอรยึดเขากับแผนฐานดวยสกรู 3x6 มม. (สันสุ ้ ด) ยึดจากดานลางขึ้นมา ดังรูป

(8) นําแผนบานพับจากขั้นตอนที่ (6) ยึดเขากับดานหนาของฐานหุนยนต 


  6

(9) นํากลไลมือจับที่ทําไวตังแต ้ ขั้นตอนที่ (5) ยึดเขากับฐานหุนยนต โดยใชสลัก (ชินส ้ วนหมายเลข 2) สอดเขาไปในชองของแผนบานพับ จากนันยื ้ ดสปริงใหเสียบเขากับแผนเพลตเชือมต ่ อแผนบนของ กลไลมือจับ ในขันตอนนี ้ ควรใช ้ คีมชวยในการยืดและยึดสปริงใหติดเขากับกลไกดังรูปขันตอนที ้ ่ 9.2

(10) นําฉากโลหะขนาด 2x2 รู (มีในชุด POP-BOT แลว) จํานวน 2 ชินมาประกบยึ ้ ดดวยสกรูและขัน ดวยนอต ทํา 2 ชุดเหมือนกัน จากนั้นยึดเขากับดานขางของเซอรโวมอเตอร ดังรูป


  7

(11) นําเซอรโวมอเตอรที่ยึดฉากโลหะแลว ยึดเขากับฐานหุนยนตในอีกดานหนึ่งของหุนยนต  ซึ่งอยู คนละฝงกั  บกลไกมือจับ

(12) ถอดกานหมุนของเซอรโวมอเตอรออกมา ใชคัตเตอรหรือสวานควานรูของเซอรโวมอเตอรให กวางประมาณ 2.5 มิลลิเมตร จากนันนํ ้ าลวดทองเหลือง (ลวดบังคับ-ชิ้นสวนหมายเลข 12) มาพับแบง ครึ่ง ดานปลายดัดโคงประมาณ 45 องศา ดังรูป สอดลวดเขาไปในรูที่ควานไวแลวของกานหมุนของ เซอรโวมอเตอร


  8

(13) สอดปลายของลวดเขาทีบู่ ตทองเหลือง แลวใชสกรูที่ใหมากับชุดของบูตทองเหลืองขันยึด แตยัง ไมตองขันใหแนน จากนั้นสวมกานหมุนของเซอรโวมอเตอรเขากับแกนหมุน แลวปรับใหแกนหมุน ของเซอรโวมอเตอรมาอยูในตํ  าแหนงซายสุด จะเห็นวา ทีตํ่ าแหนงนีแผ ้ นมือจับทังสองแผ ้ นจะแนวติด กัน จากนั้นใชสกรูทีมากั ่ บเซอรโวมอเตอรขันยึดกานหมุนใหแนน

(14) ปรับระยะแขนจับใหพอดีจากนั้นขันสกรูยึดลวดทองเหลืองใหแนน


  9

(15) เตรียมเสารองโลหะ เสารองพลาสติก และสกรู 3x35 มม. ดังรูปไวสองชุด

(16) รอยสกรู 3x35 มม. จากดานลางของแผนฐานในตําแหนงดังรูปผานเสารองพลาสติก และยึดดวย เสารองโลหะ

(17) นํากลองรองกะบะถานและสกรูหัวตัด 3x6 มม. ขันยึดกลองรองเขากับปลายของเสารองโลหะ


  10

(18) นําบอรดควบคุมติดตังลงในกล ้ องรองกะบะถานบนโครงหุนยนต  POP-BOT ตอสายของชุดเฟอง ขับมอเตอรไฟตรง, เซอรโวมอเตอร และตัวตรวจจับตางๆ ก็จะไดหุนยนต  POP-BOT Gripper พรอม สําหรับการเขียนโปรแกรมเพือทดสอบการทํ ่ างาน


  11

3. ตัวอยางกิจกรรมการใชงานกลไกแขนจับ (gripper) กับหุนยนต  POP-BOT ในกิ จกรรมนี้เปนการแนะนําตัวอยางการพัฒนาโปรแกรมเพื่อเคลื่ อนยายวัตถุ (กระปอง) จากจุด A ไปยังจุด B ในสนามทดสอบตามรูป A

B

START

3.1 การเชื่อมตอทางฮารดแวรเพิ่มเติมสําหรับ POP-BOT  ตอเซอรโวมอเตอรเขากับจุดตอ SERVO PORT 7  ตอแผงวงจรตรวจจับแสงสะทอน ZX-03

หรือ ZX-03R ทางซายเขากับจุดตอพอรต 17/A3

 ตอแผงวงจรตรวจจับแสงสะทอน ZX-03

หรือ ZX-03R ทางขวาเขากับจุดตอพอรต 15/A1

3.2 ขั้นตอน (1) สรางไฟลชือ่ RobotGripper และพิมพโปรแกรมภาษา C ตามที่แสดงในโปรแกรมที่ 1 (2) คอมไพลและอัปโหลดไปยังหุนยนต  POP-BOT ทีติ่ ดตังกลไกแขนจั ้ บและตัวตรวจจับเสน ไวเรียบรอยแลว


  12

#include <popbot.h> #include <Smotor.h> #define POW 60 #define SERVO_ACTIVE 10 #define SERVO_OFF 180 #define Ref 500 Smotor myservo; int left; int right; void forward(unsigned int time) { motor(1,POW); motor(2,POW); sleep(time); } void backward(unsigned int time) { motor(1,-POW); motor(2,-POW); sleep(time); } void turn_left(unsigned int time) { motor(1,-POW); motor(2,POW); sleep(time); } void turn_right(unsigned int time) { motor(1,POW); motor(2,-POW); sleep(time); } void pause() { motor_stop(ALL); } void cross_right() { while(1) { left = analog(3); right = analog(1); if(left>Ref && right>Ref)

// ผนวกไลบรารี POP-BOT // ผนวกไลบรารีเพือใช ่ งานเซอรโวมอเตอรสําหรับกิจกรรมนี้ // กําหนดกําลังขับมอเตอรที่ 60% // กําหนดตําแหนงการหนีบกระปองที่ 10 // กําหนดตําแหนงการปลอยกระปองที่ 180 // คาอางอิงในการแยกแยะเสนสีดํากับพืนสี ้ ขาว // ประกาศตัวแปรออปเจ็กตในการควบคุมเซอรโวมอเตอร // ประกาศตัวแปรเก็บคาจากเซนเซอรตรวจจับเสนทางดานซาย // ประกาศตัวแปรเก็บคาจากเซนเซอรตรวจจับเสนทางดานขวา // หุนยนต  เคลื่อนที่ไปขางหนา

// หุนยนต  เคลื่อนที่ไปขางหลัง

// หุนยนต  เคลื่อนที่หมุนตัวเลียวซ ้ าย

// หุนยนต  เคลื่อนที่หมุนตัวเลียวขวา ้

// หยุดการเคลื่อนที่ของหุนยนต  // หุนยนต  พบแยกเสนตัด กําหนดใหเลี้ยวขวา

โปรแกรมที่ 1 ไฟล RobotGripper.pde สําหรับควบคุมหุนยนต POP-BOT ใหเคลื่อนทีตามเส ่ นเพื่อ เคลือนย ่ ายวัตถุจากจุดหนึงไปยั ่ งจุดทีกํ่ าหนด (มีตอ)


  13

{ forward(1); } if(left<Ref && right>Ref) { turn_left(5); } if(left>Ref && right<Ref) { turn_right(5); } if(left<Ref && right<Ref) { forward(50); turn_right(400); break; }

} } void cross_pass() { while(1) { left = analog(3); right = analog(1); if(left>Ref && right>Ref) { forward(1); } if(left<Ref && right>Ref) { turn_left(10); } if(left>Ref && right<Ref) { turn_right(10); } if(left<Ref && right<Ref) { forward(100); break; } } } void cross_left() { while(1) { left = analog(3); right = analog(1);

// หุนยนต  พบแยกเสนตัดใหเคลื่อนที่ผานขามเสนตัดไป

// หุนยนต  พบแยกเสนตัด กําหนดใหเลี้ยวซาย

โปรแกรมที่ 1 ไฟล RobotGripper.pde สําหรับควบคุมหุนยนต POP-BOT ใหเคลื่อนทีตามเส ่ นเพื่อ เคลือนย ่ ายวัตถุจากจุดหนึงไปยั ่ งจุดทีกํ่ าหนด (มีตอ)


  14

if(left>Ref && right>Ref) { forward(1); } if(left<Ref && right>Ref) { turn_left(10); } if(left>Ref && right<Ref) { turn_right(10); } if(left<Ref && right<Ref) { forward(30); turn_left(850); break; }

} } void cross_stop() { while(1) { left = analog(3); right = analog(1); if(left>Ref && right>Ref) { forward(1); } if(left<Ref && right>Ref) { turn_left(10); } if(left>Ref && right<Ref) { turn_right(10); } if(left<Ref && right<Ref) { backward(50); pause(); break; } } } void uturn() { backward(200); turn_right(700); }

// หุนยนต  พบแยกเสนตัดใหหยุด

// หยุดและถอยหลังเมื่อพบจุดตัด

// กลับตัวหุนยนต 

โปรแกรมที่ 1 ไฟล RobotGripper.pde สําหรับควบคุมหุนยนต POP-BOT ใหเคลื่อนทีตามเส ่ นเพื่อ เคลือนย ่ ายวัตถุจากจุดหนึงไปยั ่ งจุดทีกํ่ าหนด (มีตอ)


  15

void sleepServo(unsigned int tm) // หนวงเวลาพรอมกับสงพัลสกระตุนเซอรโวมอเตอรใหรักษาตําแหนง { unsigned int count,i; unsigned int freq=2; if(tm<freq) { myservo.refresh(); delay(tm); } else { count=tm/freq; for(i=0;i<count;i++) { myservo.refresh(); delay(freq); } } } void setup() { myservo.attach(7); // กําหนดเปดการใชงานเซอรโวมอเตอรชอง 7 myservo.write(SERVO_OFF); // กําหนดใหตําแหนงเริ่มตนคลิปเปอรกางแขนจับ sleepServo(2000); // หนวงเวลาพรอมๆกับการสั่งใหเซอรโวมอเตอรทํางาน while(in(2)==1); // รอจนกระทังมี ่ การกดสวิตชทีตํ่ าแหนง Di2 } void loop() { cross_pass(); // หุนยนต  พบแยกเสนตัดที่ 1 ใหผานขามเสนตัดไป cross_stop(); // หุนยนต  พบแยกเสนตัดที่ 2 ใหหยุดเพือเตรี ่ ยมหนีบกระปองที่จุด A sleepServo(1000); // หนวงเวลาพรอมๆกับการสังให ่ เซอรโวมอเตอรทํางานประมาณ 1 วินาที myservo.write(SERVO_ACTIVE); // สังให ่ เซอรโวมอเตอรเปลี่ยนตําแหนงมาหนีบกระปอง sleepServo(2000); // หนวงเวลาพรอมๆกับการสังให ่ เซอรโวมอเตอรทํางานประมาณ 2 วินาที uturn(); cross_left(); cross_pass(); cross_left(); cross_stop(); myservo.write(SERVO_OFF); sleepServo(2000); while(1);

// ถอยหลังเล็กนอยและหมุนกลับตัวเพื่อจําเดินทางไปยังจุด B // หุนยนต  พบแยกเสนตัดที่ 3 ใหหมุนตัวเลียวซ ้ าย // หุนยนต  พบแยกเสนตัดที่ 4 ใหผานขามเสนตัดไป // หุนยนต  พบแยกเสนตัดที่ 5 ใหหมุนตัวเลียวซ ้ าย // หุนยนต  พบแยกเสนตัดที่ 6 ใหหยุดเพือเตรี ่ ยมปลอยกระปองที่จุด B // สังให ่ เซอรโวมอเตอรเปลี่ยนตําแหนงปลอยกระปอง // หนวงเวลาพรอมๆ กับการขับเซอรโวมอเตอรใหทํางาน 2 วินาที // หยุดโปรแกรมไวทีจุ่ ดนี้

}

โปรแกรมที่ 1 ไฟล RobotGripper.pde สําหรับควบคุมหุนยนต POP-BOT ใหเคลื่อนทีตามเส ่ นเพื่อ เคลือนย ่ ายวัตถุจากจุดหนึงไปยั ่ งจุดทีกํ่ าหนด (จบ)


  16

(3) กดสวิตชที่ตําแหนง Di2 เพื่อปลอยตัวหุนยนตออกจากจุด START สังเกตการทํางานของ หุนยนต  POP-BOT Gripper หลังจากโปรแกรมเริ่มทํางานประมาณ 2 วินาที บอรดควบคุมจะทําการขับเซอรโว มอเตอรของกลไกแขนจับเพือให ่ กางมือจับออก จากนันหุ ้ นยนต  เคลือนที ่ ตามเส ่ น ไปจนพบจุดตัดที่ 1 หุนยนต  จะเคลื่อนที่ขามจุดตัดหรือทางแยกไป จนกระทั่งพบจุดตัดที่สอง ซึ่งก็คือ จุด A หุนยน  ก็จะ หนีบวัตถุและยกขึ้น จากนั้นเคลื่อนทีตามเส ่ นมายังจุด B แลววางวัตถุลง


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.