ZX-LineTracker Robo-CIRLCE3S 1
ZX-LineTracker Robo-CIRCLE3S การเชื่อมตอตัวตรวจจับ ตอสายจากจุดตอ L1 ของ ZX-LineTracker เขากับจุดตอ IN0 ตอสายจากจุดตอ C ของ ZX-LineTracker เขากับจุดตอ IN1 ตอสายจากจุดตอ R1 ของ ZX-LineTracker เขากับจุดตอ IN2 ตอสายจากจุตตอ X ของ ZX-LineTracker เขากับจุดตอ IN3
การตอสายมอเตอร ตอสายมอเตอรดานซายเขากับจุดตอ MOTOR-A ตอสายมอเตอรดานขวาเขากับจุดตอ MOTOR-B
2ZX-LineTracker Robo-CIRLCE3S
ขั้นตอนการพัฒนาโปรแกรม 1.สรางโปรแกรมยอยจากบล็อก Procedure 1.1 เคลื่อนที่ไปขางหนา : fd
1.2 เคลือนที ่ ่ถอยหลัง : bk
1.3 เลียวซ ้ าย : tl
1.4 เลียวขวา ้ : tr
2. sensor4 บล็อกคําสังพิ ่ เศษ : อานคาตัวตรวจจับทุกชองในคราวเดียว โดยปกติแลวการเขียนโปรแกรมเคลื่อนที่ตามเสน จะตรวจสอบเงื่อนไขโดยใชคําสัง่ in หรือ sensor เพื่อตรวจสอบการทํางานของตัวตรวจจับแตละตัววาเปนจริงหรือไม (อาทิ ตรวจพบเสนหรือ ไมพบ ถาพบเสนแลวทําอะไร หรือถาไมพบเสน ตองทําอะไร) แตในกรณีนี้จะใชการอานคาจาก sensor4 โดย sensor4 เปนคําสังอ ่ านคาจากจุดตอตรวจจับทั้งหมดทุกชองของ i-BOX3S ในครั้งเดียว แลวแสดงผลออกมาวา คาทีอ่ านไดเปนอยางไร
ZX-LineTracker Robo-CIRLCE3S 3
(1) คลิกเลือกไปยังกลุม Procedure (สีมวง)
(2) คลิกเลือกบล็อกเริ่มตนโปรแกรม แลวลากมาวาง บนพื้นที่เขียนโปรแกรม จะเกิดบล็อกใหมชือ่ proc1
(3) ดับเบิลคลิกที่บล็อก proc1 เพื่อเปลียนชือเป ่ น fd
(4) จากนันคลิ ้ กเลือกกลุม Action เลือกและลากบล็อก this way กับ on มาวางตอกัน จะไดโปรแกรมยอย fd
หากสังเกตทีช่ องกลุมคําสัง่ Procedure ในหมวด user จะเห็นบล็อกคําสั่ง fd ซึงนํ ่ าไปใชงานไดทันที
(5) หากตองการยุบบล็อกคําสังของโปรแกรมเพื ่ อ่ ชวยใหโปรแกรมโดยรวมดูกระทัดรัดขึน้ และเพิมพื ่ นที ้ ่ ในการเขียนโปรแกรม ทําไดโดยลาก เมาสเลือกบล็อก คํ าสั่ งที่ต องการยุบ จากนั้นคลิ กที่เมนู Project > Compress Procedure Blocks
บล็อกของโปรแกรมยอยจะถูกยุบรวม เหลือเปน บล็อกรูปสีเหลี ่ ่ยมขาวหลามตัด fd ดังรูป
4ZX-LineTracker Robo-CIRLCE3S
3. อานคาจากตัวตรวจจับและการตีความ กรณีที่ 1 sensor4 อานคาเปน 0
หมายถึง ตัวตรวจจับพบสีดํา หมายถึง ตัวตรวจจับพบสีขาว
ตําแหนงของตัวตรวจจับที่แสดงในรูปเปนภาพทีมองจากด ่ านบน
กรณีที่ 2 sensor4 อานคาเปน 1
กรณีที่ 3 sensor 4 อานคาเปน 2
กรณีที่ 4 sensor4 อานคาเปน 3
กรณีที่ 5 sensor4 อานคาเปน 4
ZX-LineTracker Robo-CIRLCE3S 5
กรณีที่ 6 sensor4 อานคาเปน 5
กรณีที่ 7 sensor4 อานคาเปน 6
กรณีที่ 8 sensor4 อานคาเปน 7
กรณี ที่ 9 ML และ MR พบเส นสี ดํา ไม วาจะพบในลักษณะใดก็ตาม sensor4 อานคาไดตั้งแต 8 ขึนไป ้
6ZX-LineTracker Robo-CIRLCE3S
4. ตัวอยางโปรแกรมตรวจจับเสนและทางแยก
การเคลือนที ่ ตามเส ่ นในแตละสนามไมควรตรวจสอบเงือนไขในการเคลื ่ อนที ่ เพี ่ ยงครังเดี ้ ยว ในแต ละกรณี ดังนันจึ ้ งควรเริมการทํ ่ างานของโปรแกรมดวยคําสัง่ LOOP หรือคําสังวนทํ ่ าซําเพื ้ อให ่ เกิดการ ตรวจสอบเงือนไขของการเคลื ่ อนที ่ ตามเส ่ นอยางตอเนือง ่ จนกวาจะพบบล็อกคําสังให ่ หยุดวนทํางานซํา้ จากนันจึ ้ งใชบล็อกคําสัง่ sensor4 อานคาจากตัวตรวจจับทังหมด ้ แลวสงคามาเก็บทีตั่ วแปร group คาของตัวแปร group จะนํามาเปรียบเทียบกับเงื่อนไขที่กําหนดไวดังนี้ 1. เงือนไขที ่ ่ 1 : ถาตัวแปร group มีคามากกวา 7 นั่นคือ เอาตพุต ML และ MR ของ ZXLineTracker แจงวาพบสีดํา นันหมายวคามว ่ า เกิดการตรวจพบทางแยกทุกรูปแบบ ทั้งแยกตัว L, สาม แยก และสี่แยก หยุดเคลือนที ่ )่ และหยุดการวนซํา้ สิงที ่ ต่ องทํา : มอเตอร A และ B หยุดหมุน (หุนยนต
ZX-LineTracker Robo-CIRLCE3S 7
2. เงื่อนไขที่ 2 : ถาตัวแปร group เทากับ 1 นั่นคือ ตัวตรวจจับ L1 พบสีดํา เลี้ยวซายจนกวาตัวตรวจจับขวา R1 พบสีขาว สิงที ่ ต่ องทํา : กําหนดใหหุนยนต 3. เงือนไขที ่ ่ 3 : ถาตัวแปร group มีคาเทากับ 3 นั่นคือ ตัวตรวจจับ C และ L1 พบสีดํา เลียวซ ้ ายจนกวาตัวตรวจจับซาย L1 พบสีขาว สิงที ่ ต่ องทํา : กําหนดใหหุนยนต 4. เงือนไขที ่ ่ 4 : ถาตัวแปร group มีคาเทากับ 4 นั่นคือ ตัวตรวจจับ R1 พบสีดํา สิงที ่ ต่ องทํา : กําหนดใหหุนยนต เลียวขวาจนกว ้ าตัวตรวจจับขวา R1 พบสีขาว 5. เงื่อนไขที่ 5 : ถาตัวแปร group มีคาเทากับ 6 นั่นคือ ตัวตรวจจับ C และ R1 พบสีดํา เลี้ยวขวาจนกวาตัวตรวจจับขวา R1 พบสีขาว สิงที ่ ต่ องทํา : กําหนดใหหุนยนต 6. เงือนไขอื ่ ่นๆ นอกจากนี้ กําหนดใหหุนยนต เคลื่อนที่ตรงไปขางหนา
5. สรางโปรแกรมยอย r-90 เพือเลี ่ ยวขวาเมื ้ ่อพบแยกทางขวา 5.1 ตัวอยางบล็อกโปรแกรม
5.2 อธิบายโปรแกรม การเลี้ยวขวาที่แยกทางขวา มีขันตอนดั ้ งนี้ (5.2.1) กําหนดใหหุนยนต เคลื่อนที่ไปขางหนา จนกวาตัวตรวจจับจะพนจากเสนตัดสีดํา หนวงเวลาเพิม่ เล็กนอยเพื่อชวยใหเลียวได ้ พอดี (5.2.2) สั่งเลี้ยวขวาจนกวาตัวตรวจจับขวาสุด (MR) พบเสนสีดํา (5.2.3) สังเลี ่ ยวขวาต ้ อไป จนกวาตัวตรวจจับขวา สุด (MR) จะพบสีขาว (5.2.4) สังเลี ่ ยวขวาต ้ อไป จนกวาตัวตรวจจับขวา (R1) จะพบเสนสี ดํา เพื่ อให ตั วหุนคร อมเสนพอดี จากนั้นสั่งหยุด
ใชบล็อก Procedure สรางบล็อก r-90 จากนั้นลากบล็อกคําสังต ่ างๆ มาวางตอ กัน แลวยุบรวมกันเปนบล็อก r-90
8ZX-LineTracker Robo-CIRLCE3S
6. สรางโปรแกรมยอย l-90 เพือเลี ่ ยวซ ้ ายเมื่อพบแยกทางซาย 6.1 ตัวอยางบล็อกโปรแกรม
6.2 อธิบายโปรแกรม การเลียวซ ้ ายที่แยกทางซาย มีขั้นตอนดังนี้ (6.2.1) กํ าหนดใหหุนยนตเคลื่อนที่ไปขางหนา จนกว าตัวตรวจจับจะพนจากเสนตัดสีดํา หนวง เวลาเพิมเล็ ่ กนอยเพือช ่ วยใหเลียวได ้ พอดี (6.2.2) สังเลี ่ ยวซ ้ ายจนกวาตัวตรวจจับซายสุด (ML) พบเสนสีดํา (6.2.3) สั่งเลี้ยวซายตอไป จนกวาตัวตรวจจับซาย สุด (ML) จะพบสีขาว (6.2.4) สั่งเลี้ยวซายตอไป จนกวาตัวตรวจจับซาย (L1) จะพบเสนสีดํา เพื่อใหตัวหุนครอมเสนพอดี จากนั้นสั่งหยุด
ใชบล็อก Procedure สรางบล็อก l-90 (แอล-90) จากนันลากบล็ ้ อกคําสังต ่ างๆ มาวางตอกัน แลว ยุบรวมกันเปนบล็อก l-90 (แอล-90)
7. ตัวอยางโปรแกรมเลียวขวาบริ ้ เวณสามหรือสีแยก ่ ใชในกรณีทีหุ่ นยนต เคลือนที ่ ถอยหลั ่ งตามเสนลงมาพบทางแยก แลวตองการเลี้ยวขวาเพื่อไปทําภาระกิจตอ ดังรูป
ZX-LineTracker Robo-CIRLCE3S 9
7.1 ตัวอยางโปรแกรม
7.2 อธิบายโปรแกรม (7.2.1) กําหนดใหหุนยนตเคลื่อนที่ไปขางหนา จนกวาตัวตรวจจับจะพนจากเสนตัดสีดํา หนวงเวลาเพิมเล็ ่ ก นอยเพือช ่ วยใหเลียวได ้ พอดี (7.2.2) สั่งเลี้ยวขวาจนกวาตัวตรวจจับขวา (R1) พบเสนสีดํา (7.2.3) สังเลี ่ ยวขวาต ้ อไป จนกวาตัวตรวจจับขวา (R1) จะพบสีขาว (7.2.4) สั่งเลี้ยวขวาตอไป จนกวาตัวตรวจจับซาย (L1) จะพบสีขาว จากนั้นสั่งหยุด
ในการกําหนดใหหุนยนต เคลือนที ่ ไปข ่ างหนาจนตัวตรวจ ใชบล็อก Procedure สรางบล็อก r-3 จับพนเสนตัดนั้น เปนการสั่งแบบมีเงื่อนไข หุนยนต จึง จากนันลากบล็ ้ อกคําสังต ่ างๆ มาวางตอ เคลือนที ่ ่เพียงเพื่อใหตัวตรวจจับพนเสนตัดเพียงเล็กนอย กัน แลวยุบรวมกันเปนบล็อก r-3 เพือให ่ การเลียวของหุ ้ นยนต ในขอ (7.2.2) และ (7.2.3) โดย ตัวรวจจับซาย (L1) ของหุนยนต ยังคงจับเสนสีดําของทาง เสนทางเดิมอยู จึงไมสามารถสั่งใหหุนยนต เคลือนที ่ ่ตาม เสนตอไดทันที จะตองสังเลี ่ ยวให ้ ตัวตรวจจับทางซายหลุด จากการจับเสนบนเสนทางเดิมกอน จากนันจึ ้ งจะเคลือนที ่ ่ ตามเสนตอไป
10ZX-LineTracker Robo-CIRLCE3S
8. ตัวอยางโปรแกรมเคลือนที ่ ่ขามเสนตัด/สีแยก ่ 8.1 ตัวอยางโปรแกรม
ใช บล็อก Procedure สราง บล็อก f_cross จากนั้นลาก บล็อกคําสั่งตางๆ มาวางตอ กัน แลวยุบรวมกันเปนบล็อก f_cross
8.2 อธิบายโปรแกรม จุดมุงหมายของโปรแกรมนี้คือ กําหนดใหหุนยนต เคลือนที ่ ่ ไปขางหนาเมื่อพบทางแยกหรือเสนตัด จุดที่ตองใหความสนใจคือ ตองปรับคาหนวงเวลาเพื่อใหหุนยนต เคลือนที ่ พ่ นเสนไดพอดี หาก หนวงเวลามากเกินไป หุนยนต อาจเคลือนที ่ ข่ ามทางแยกแลวเลยไป มากกวาทีต่ องการ แตถาหนวงเวลานอยเกินไปหุนยนต อาจเคลือนที ่ ่ ไมพนเสนตัดหรือทางแยกได อี กวิ ธีหนึ่งที่ทําไดและแมนยําคือ การเคลื่อนที่ขามเสนตัด โดยใชตัวตรวจจับเสนตรวจสอบวา พนเสนตัดหรือไม ถายังไมพน ตองควบคุมใหหุนยนต เคลือนที ่ ไปข ่ างหนาตอไป แตถาพนแลวก็ให หยุดและทําคําสังอื ่ ่นตอไป
9. ตัวอยางโปรแกรมถอยหลังจนพบเสนตัด/ทางแยก 9.1 ตัวอยางโปรแกรม
9.2 อธิบายโปรแกรม ใชหลักการเดียวกับโปรแกรมเคลือนที ่ ข่ ามเสน ตัด (f_cross) แตเปนการเคลือนที ่ ถอยหลั ่ ง และมีการนํา ตัวตรวจจับเสนมาใชตรวจสอบวา เคลือนที ่ ถอยหลั ่ งมา จนถึงเสนตัดแลวหรือไม การทํางานของโปรแกรมมีลําดับดังนี้
ใชบล็อก Procedure สรางบล็อก b_cross จากนันลากบล็ ้ อกคําสังต ่ างๆ มาวางตอกัน แลวยุบรวมกันเปนบล็อก b_cross
(9.2.1) เคลือนที ่ ถอยหลั ่ ง โดยมีคาหนวงเวลาการ เดินเทากับ 60 (0.6 วินาที) โดยเวลาทีหน ่ วงจะตองทําให หุนยนต เคลือนที ่ ถอยหลั ่ งพนจากกรอบสีเหลี ่ ยมสี ่ ดําพอดี โดยผูใช งานสามารถปรับเปลียนเพื ่ อหาค ่ าทีเหมาะสมได ่ (9.2.2) กําหนดใหหุนยนต เคลือนที ่ ถอยหลั ่ งตอ เนืองไปอี ่ ก โดยมีเงือนไขกํ ่ าหนดวา ใหถอยหลังจนกวา sensor4 จะมีคามากกวา 8 (นันคื ่ อ ML และ MR พบเสน ตัด) จากนั้นสั่งหยุด
ZX-LineTracker Robo-CIRLCE3S 11
10. การเขียนโปรแกรมเพื่อปฏิบัติภารกิจในสนามแขงขัน 10.1 สนามแขงขันและการออกแบบโปรแกรม ในรูปที่ 1 เปนตัวอยางสนามทดสอบการเคลือนที ่ ่ ในการเขียนโปรแกรมเพือปฏิ ่ บัติภารกิจตอง แบงออกเปนสวนๆ ประกอบดวย 1. โปรแกรมยอย s1 คือ เคลื่อนที่จากจุด A ไปยังจุด B 2. โปรแกรมยอย s2 คือ เคลื่อนที่จากจุด B ไปยังจุด C 3. โปรแกรมยอย s3 คือ เคลื่อนที่จากจุด C ไปยังจุด A
รูปที่ 1 สนามทดสอบทีใช ่ เปนตัวอยางในการอธิบาย
12ZX-LineTracker Robo-CIRLCE3S
10.2 ตัวอยางโปรแกรม
10.2.1 โปรแกรมยอย S1 เปนโปรแกรมยอยสําหรับการเคลือนที ่ ่จากจุด A ไปยังจุด B มีขั้นตอนการทํางานดังนี้ (s1.1) เคลื่อนทีจากจุ ่ ดเริ่มตนดวยบล็อกคําสังที ่ ่สรางมาจากโปรแกรมยอย f_cross (s1.2) เคลื่อนทีตามเส ่ นดวยบล็อกคําสังที ่ สร ่ างมาจากโปรแกรมยอย track (s1.3) เมือพบทางแยกที ่ ่ 1 เลียวซ ้ าย 90 องศาดวยบล็อกคําสังที ่ สร ่ างมาจากโปรแกรมยอย l-90 (s1.4) เคลื่อนทีตามเส ่ นดวยบล็อกคําสังที ่ สร ่ างมาจากโปรแกรมยอย track (s1.5) พบทางแยกที่ 2 เลี้ยวขวา 90 องศาดวยบล็อกคําสังที ่ ่สรางมาจากโปรแกรมยอย r-90 (s1.6) เคลื่อนทีตามเส ่ นดวยบล็อกคําสังที ่ สร ่ างมาจากโปรแกรมยอย track (s1.7) เมือถึ ่ งจุด B เคลือนที ่ ข่ ามเสนตัดหรือทางแยกดวยบล็อกคําสังที ่ สร ่ างมาจากโปรแกรม ยอย f_cross
ZX-LineTracker Robo-CIRLCE3S 13
10.2.2 โปรแกรมยอย S2 มีขันตอนการทํ ้ างานดังนี้ (s2.1) เคลื่อนที่ตามเสนจากจุด B ดวยบล็อกคําสังที ่ ่สรางมาจากโปรแกรมยอย track (s2.2) พบทางแยกที่ 3 เลี้ยวขวา 90 องศาดวยบล็อกคําสังที ่ ่สรางมาจากโปรแกรมยอย r-90 (s2.3) เคลื่อนทีตามเส ่ นดวยบล็อกคําสังที ่ สร ่ างมาจากโปรแกรมยอย track (s2.4) พบทางแยกที่ 4 เลี้ยวซาย 90 องศาดวยบล็อกคําสังที ่ ่สรางมาจากโปรแกรมยอย l-90 (s2.5) เคลื่อนทีตามเส ่ นดวยบล็อกคําสังที ่ สร ่ างมาจากโปรแกรมยอย track (s2.6) เคลือนที ่ ข่ ามเสนตัดหรือทางแยกดวยบล็อกคําสังที ่ สร ่ างมาจากโปรแกรมยอย f_cross (s2.7) เคลือนที ่ ตามเส ่ นดวยบล็อกคําสังที ่ สร ่ างมาจากโปรแกรมยอย track เพือย ่ ายกระปอง ไปยังจุด C
10.2.3 โปรแกรมยอย S3 มีขันตอนการทํ ้ างานดังนี้ (s3.1) ถอยหลังออกจากจุด C ไปยังเสนตัดดวยบล็อกคําสั่งที่สรางมาจากโปรแกรมยอย b_cross เพื่อเตรียมเคลือนที ่ กลั ่ บไปยังจุดสินสุ ้ ดใหเร็วขึน้ (s3.2) ถอยหลังไปยังสามแยกดวยบล็อกคําสังที ่ สร ่ างมาจากโปรแกรมยอย b_cross อีกครัง้ (s3.3) เลี้ยวขวาบริเวณสามแยก ดวยบล็อกคําสังที ่ ่สรางมาจากโปรแกรมยอย r-3 (s3.4) เคลื่อนทีตามเส ่ นดวยบล็อกคําสังที ่ สร ่ างมาจากโปรแกรมยอย track (s3.5) เมื่อพบทางแยก 3 เลี้ยวขวา 90 องศาดวยบล็อกคําสังที ่ ่สราาจากโปรแกรมยอย r-90 (s3.6) เคลื่อนทีตามเส ่ นดวยบล็อกคําสังที ่ สร ่ างมาจากโปรแกรมยอย track (s3.7) เมื่อพบทางแยก เลี้ยวขวา 90 องศาดวยบล็อกคําสังที ่ ่สรางมาจากโปรแกรมยอย r-90 (s3.8) เคลื่อนทีตามเส ่ นดวยบล็อกคําสังที ่ สร ่ างมาจากโปรแกรมยอย track (s3.9) เมือพบสามแยก ่ ใหเลียวซ ้ าย 90 องศา ดวยบล็อกคําสังที ่ สร ่ างจากโปรแกรมยอย l-90 (s3.10) เคลือนที ่ ตามเส ่ นดวยบล็อกคําสังที ่ สร ่ างจากโปรแกรมยอย track เพือเข ่ าสูจุ ดสินสุ ้ ด สรางโปรแกรมยอยทั้งหมด แลวยุบรวมเปนบล็อกคําสัง่ s1, s2 และ s3 เก็บไวในกลุมบล็อก คําสัง่ Procedure
14ZX-LineTracker Robo-CIRLCE3S
10.3 ตัวอยางโปรแกรมหลัก หลังจากสรางบล็อกคําสังของโปรแกรมย ่ อยทั้งหมดเสร็จแลว ตอไปเปนการนําบล็อกคําสัง่ ของโปรแกรมยอยทั้งหมดมาใชงาน สรางเปนโปรแกรมหลักสําหรับการปฏิบัติภารกิจในสนามทด สอบ จะไดโปรแกรมหลักแสดงดังนี้
การทํางานของโปรแกรมเริมจากกํ ่ าหนดกําลังขับเคลือนของหุ ่ นยนต ดวยบล็อกคําสัง่ set power ในทีนี่ กํ้ าหนดไวที่ 2 จากนั้นลากบล็อกของโปรแกรมยอย s1 มาวางตามดวยบล็อกของโป แกรมยอย s2 และ s3 ตามลําดับ ปดทายดวยคําสังบล็ ่ อกคําสังหยุ ่ ดมอเตอร (brake)