หน่วยที่ 12 arduino...

45
เอกสารประกอบการเรียน วิชาไมโครคอนโทรลเลอร์ (2105-2105) 508 หน่วยที12 การประยุกต์ใช้งาน Arduino ในรูปแบบหุ่นยนต์อัตโนมัติ เรียบเรียงโดยครูบุญเกิด สนธิพันธ์ หน่วยที12 การประยุกต์ใช้งาน Arduino ในรูปแบบหุ่นยนต์อัตโนมัติ สาระสาคัญ จากการศึกษาและปฏิบัติการทดลองใช้งานไมโครคอนโทรลเลอร์ Arduino นักเรียนสามารถ นาหลักการของการทางาน การใช้งานซอฟต์แวร์ การต่อวงจร การใช้ชุดคาสั่งและรูปแบบการเขียน โปรแกรมควบคุม มาใช้ในการประยุกต์ใช้งานไมโครคอนโทรลเลอร์ ซึ่งขอนาเสนอการประยุกต์ใช้งานใน รูปแบบหุ่นยนต์อัตโนมัติ ซึ่งจะเกี่ยวกับอุปกรณ์โครงสร้างของหุ่นยนต์ที่ใช้การเคลื่อนที่แบบล้อ อุปกรณ์ เซ็นเซอร์ วงจรขับมอเตอร์แบบใช้ไอซี H-Bridge การใช้ชุดคาสั่งและรูปแบบการเขียนโปรแกรมควบคุม ทิศทางการหมุนและความเร็วการหมุนของมอเตอร์ตามเงื่อนไขการทางานของเซ็นเซอร์ตรวจจับการสะท้อน แสงเพื่อตรวจจับเส้น โดยใช้ชุดหุ่นยนต์ i-Duino Robot ที่ออกแบบและพัฒนาสาหรับใช้ศึกษาและ ปฏิบัติการทดลองใช้งานไมโครคอนโทรลเลอร์ Arduino สาระการเรียนรู12.1 ความหมายของหุ่นยนต์อัตโนมัติ 12.2 โครงสร้างของหุ่นยนต์อัตโนมัติ 12.3 การควบคุมการเคลื่อนที่ของหุ่นยนต์ 12.4 การตรวจจับเส้นเพื่อการควบคุมการเคลื่อนที่ของหุ่นยนต์

Upload: others

Post on 06-Sep-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 508

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต

สาระส าคญ

จากการศกษาและปฏบตการทดลองใชงานไมโครคอนโทรลเลอร Arduino นกเรยนสามารถน าหลกการของการท างาน การใชงานซอฟตแวร การตอวงจร การใชชดค าสงและรปแบบการเขยนโปรแกรมควบคม มาใชในการประยกตใชงานไมโครคอนโทรลเลอร ซงขอน าเสนอการประยกตใชงานในรปแบบหนยนตอตโนมต ซงจะเกยวกบอปกรณโครงสรางของหนยนตทใชการเคลอนทแบบลอ อปกรณเซนเซอร วงจรขบมอเตอรแบบใชไอซ H-Bridge การใชชดค าสงและรปแบบการเขยนโปรแกรมควบคมทศทางการหมนและความเรวการหมนของมอเตอรตามเงอนไขการท างานของเซนเซอรตรวจจบการสะทอนแสงเพอตรวจจบเสน โดยใชชดหนยนต i-Duino Robot ทออกแบบและพฒนาส าหรบใชศกษาและปฏบตการทดลองใชงานไมโครคอนโทรลเลอร Arduino

สาระการเรยนร

12.1 ความหมายของหนยนตอตโนมต 12.2 โครงสรางของหนยนตอตโนมต 12.3 การควบคมการเคลอนทของหนยนต 12.4 การตรวจจบเสนเพอการควบคมการเคลอนทของหนยนต

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 509

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

จดประสงคการเรยนร

จดประสงคทวไป

1. เพอใหนกเรยนมความรและความเขาใจเกยวกบหนยนตอตโนมต 2. เพอใหนกเรยนมความรและเขาใจการควบคมการเคลอนทของหนยนต 3. เพอใหนกเรยนมความรและเขาใจการอานคาจากเซนเซอรเพอควบคมการเคลอนทของหนยนต

จดประสงคเชงพฤตกรรม นกเรยนสามารถ

1. บอกความหมายของหนยนตอตโนมตได 2. บอกสวนประกอบโครงสรางของหนยนตอตโนมตได 3. บอกหนาทสวนประกอบโครงสรางของหนยนตอตโนมตได 4. อธบายวธการควบคมการเคลอนทของหนยนตแบบใชลอได 5. อธบายหลกการท างานของเซนเซอรตรวจจบแสงสะทอนส าหรบใชตรวจจบเสนได 6. อธบายหลกการควบคมการเคลอนทของหนยนตแบบเคลอนทในกรอบทก าหนดได 7. อธบายหลกการควบคมการเคลอนทของหนยนตแบบเคลอนทตามเสนได 8. ประกอบอปกรณโครงสรางของหนยนตอตโนมตตามแบบทก าหนดใหได 9. ตอวงจรควบคมหนยนตอตโนมตตามแบบทก าหนดใหได 10. เขยนโปรแกรมควบคมการเคลอนทของหนยนตอตโนมตแบบเคลอนทในกรอบทก าหนดได 11. เขยนโปรแกรมควบคมการเคลอนทของหนยนตอตโนมตแบบเคลอนทตามเสนได

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 510

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

ผงความคดเนอหาหนวยท 12

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 511

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

หนวยท 12

การประยกตใชงาน Arduino ในรปแบบ

หนยนตอตโนมต

ปจจบนไมโครคอนโทรลเลอรถกน ามาใชในระบบควบคมอตโนมตหลายลกษณะงาน ทงในเครองใชไฟฟาในชวตประจ าวน ในอปกรณดานการสอสาร ในอปกรณดานการแพทย ในอปกรณดานการทหาร ในอปกรณระบบควบคมเครองจกรในอตสาหกรรม และในอปกรณดานระบบการเกษตร คาดวาในอนาคตจะมนวตกรรมทใชไมโครคอนโทรลเลอรในระบบควบคมถกพฒนาขนอกมาก ทงนเนองจากไมโครคอนโทรลเลอรมโครงสรางเหมอนกบระบบคอมพวเตอร และไดรบการพฒนาใหมขดความสามารถทตอบสนองกบความตองการใชงาน มการผลต พฒนาบอรดส าเรจรปเพอใหสะดวกตอการใชงาน รวมทงดานการพฒนาโปรแกรมกมซอฟตแวรส าเรจรปทสามารถน ามาใชงานโดยไมตองเสยคาลขสทธ หรอเรยกวาเปนโอเพนซอรส (Open Source) เราจงสามารถน าไมโครคอนโทรลเลอรมาประยกตใชงานไดหลายรปแบบ ในหนวยการเรยนนขอน าเสนอการประยกตใชงานไมโครคอนโทรลเลอร Arduino ในรปแบบหนยนตอตโนมต โดยใชชดหนยนตแบบเคลอนทดวยลอ เรยกวา i-Duino Robot

12.1 ความหมายของหนยนตอตโนมต หนยนตอตโนมต (Autonomous robots) เปนหนยนตทสามารถท างานไดเองตามค าสงโปรแกรมทก าหนดไว โดยไมมการควบคมจากมนษย ซงหนยนตตองสามารถรบร คด และกระท าภารกจ ตามทก าหนดไวในค าสงโปรแกรมได ในเวปไซด www. https://th.wikipedia.org ไดอางถง ศาสตราจารย George A. Bekey แหงมหาวทยาลยเซาเทรนแคลฟอรเนย ไดใหนยามหนยนตวาเปน "เครองจกรทสามารถ รบร คด และกระท า" (A machine that senses, thinks, and acts)

หนยนต (Robot) ถอก าเนดจากจนตนาการของมนษย ในสมยอดตกาลในยคทหนยนตยงไมไดเกดขนในโลกมนษยกจนตนาการไววา ถามอะไรซกอยางมาท างานแทนมนษยกดมาก จงเกดค าวา โรบอท (Robot) ขน ค าวาโรบอท มาจากค าวา Robota ในภาษาเชกแปลวาท างานเยยงทาส ซงเกดขนในละครเวทเรอง ราสซม ยนเวอรแซล โรบอท (Rassum’s Universal Robots) ในป ค.ศ. 1920 หรอป พ.ศ. 2463 แตงโดยนกแตงละครชาวเชกชอ นายคาเวล คาเปก (Kavel Capek) โดยเนอเรองวาดวยมนษยไดประดษฐ

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 512

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

เครองจกรมาท างานเปนทาสมนษย ตอมาเครองจกรเหลานนกมความคดเหมอนมนษย จงลกขนมาตอตานไมยอมเปนทาสรบใชเหมอนสมยกอน ค าวาโรบอทจงเปนทรจก ตอมาในป ค.ศ. 1944 หรอป พ.ศ. 2487 นกเขยนนยายวทยาศาสตรชอ ไอแซก อะซมอฟ (Isaac Asimov) ไดเขยนนยายสนวทยาศาสตรเรอง รนอะราว (Run around) ซงไดน าค าวาโรบอทมาใช และตอมาไดถกรวบรวมไวในนยายวทยาศาสตรทโดงดงชอ ไอโรบอท (I – Robot) ท าใหนกวทยาศาสตรไดรจกค าวา โรบอท ครงแรกผานทางนยายวทยาศาสตร โรบอทจงเปนทสนใจและถกน ามาใชงานอยางแพรหลายเปนแนวคดและจนตนาการในการประดษฐและสรางหนยนตในเวลาตอมา หนยนตทเปนตวเปนตนเกดขนในชวงป ค.ศ. 1940 - ค.ศ. 1950 ไดมการสรางหนยนตทชอวา เอลซ เดอะ โทลทอส (Elsie the tortoise) ประดษฐขนโดย เกรย วอลเตอร (Grey Walter) เปนการน ามอเตอรไฟฟามาประกอบเปนเครองจกรทเคลอนทไดดวยลอและในเวลาชวงเดยวกนนเอง ไดมการสรางหนยนตเคลอนทตวแรกชอ ชาคคย (Shakey) ทเคลอนทดวยลอเหมอนกน แต ชาคคย จะเหนอกวาคอสามารถคดเองไดและมเซนเซอรชวยตดสนใจในการเคลอนท พฒนาโดยสถาบนวจยเทคโนโลยสแตนฟอรด (Stanford Research Institute: SRI) นอกเหนอจากหนยนตทเปนลอแลว ในป ค.ศ. 1960 ไดมการพฒนาหนยนตเดนดวยขาตวแรกทมขนาดใหญทชอวา เจนเนอรล อเลกทรกวอลกงทรก (General Electric Walking Truck) มน าหนกมากถง 3000 ปอนด สามารถเดนไดดวย 4 ขา ดวยความเรว 4 ไมล/ชวโมง ซงมการใชคอมพวเตอรในการค านวณการขยบขา พฒนาโดยวศวกรของบรษทเจนเนอรล อเลกทรก (General Electric) ชอ ราฟท มเซอร (Ralph Moser) ท าใหทวโลกรสกตนตวในหนยนตอยางมาก หลงจากทไดเรมมการประดษฐหนยนตขนมาใหทวโลกตนตวแลว ในแวดวงอตสาหกรรมกไดเรมมความคดทจะเพมแรงงานขนโดยไมตองอาศยแรงงานของมนษยจงมการคดคนสรางหนยนตทใชในงานอตสาหกรรมตวแรกชอ ยนเมท (Unimates) พฒนาและสรางโดย จอรจ เดอโวล (George Devol) และ โจอ เอนกลเบรเกอร (Joe Engleberger) ในชวงป ค.ศ. 1950-1960 ท าใหเกดหนยนตทางอตสาหกรรมตวแรกเกดขนในโลก และพฒนาตอเนองมาจนถงปจจบน (เรยบเรยงจากชยวฒน ฟองสนธ. 2558. หนา 2-3) หนยนตอตโนมตสามารถแบงไดหลายแบบ หากแบงตามโครงสรางการท างานของหนยนตจะแบงหนยนตได 2 แบบ ดงน คอ 12.1.1 หนยนตทท างานโดยตงอยกบท

หนยนตทท างานโดยตงอยกบท หมายถง หนยนตมกลไกทสามารถเคลอนไหวได แตไม สามารถเคลอนทยายต าแหนงของตวเองแบบอตโนมตได ตวอยางเชน แขนกลหนยนต หนยนตผาตด ซงจะมน าหนกมากและใชพลงงานจากแหลงจายภายนอก หนยนตประเภทนจะมการก าหนดขอบเขตในการเคลอนไหวเฉพาะพนท

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 513

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

12.1.2 หนยนตทท างานโดยมการเคลอนท หนยนตทท างานโดยมการเคลอนท หมายถง หนยนตทสามารถเคลอนยายต าแหนงของ

ตวเองไดหรอเคลอนทไปสถานทตางๆ ไดดวยตวเองแบบอตโนมต เชน หนยนตส ารวจ หนยนตขนถายสนคา หนยนตตรวจการ หนยนตประเภทนจะออกแบบใหมระบบเคลอนท และมแหลงจายพลงงานในตวเองโดยมน าหนกไมมาก เพอไมใหเปนอปสรรคในการเคลอนทยงเทคโนโลยทนสมยมากขน รปแบบของหนยนตกจะมหลายแบบมากขน

12.2 โครงสรางของหนยนตอตโนมต สวนประกอบของโครงสรางหนยนตโดยทวไปประกอบดวยอปกรณพนฐาน ไดแก ตวโครงสรางหนยนต, ชดขบเคลอนทางกลไก, ชดสมองกล, ชดเซนเซอร และแหลงจายพลงงาน แสดงสวนประกอบโครงสรางหนยนตดงรปท 12.1

โครงสรางหนยนตอตโนมต

ตวโครงสรางหนยนต

ชดขบเคลอนกลไก

ชดสมองกล

ชดเซนเซอร

แหลงจายพลงงาน

รปท 12.1 โครงสรางของหนยนต

12.2.1 ตวโครงสรางหนยนต คอ สวนโครงสรางรปรางหนยนตส าหรบเชอมตอและจบยด อปกรณตาง ๆ ของหนยนต

12.2.2 ชดขบเคลอนกลไก คอ กลไกทสามารถเคลอนทไดตามการท างานของหนยนต 12.2.3 ชดสมองกล คอ สวนควบคมการท างานของหนยนต ทอาจเปนระบบคอมพวเตอร

ระบบไมโครคอนโทรลเลอร หรอระบบโปรแกรมเมเบลลอจกคอนโทรล 12.2.4 ชดเซนเซอร คอ สวนรบรทเปนเซนเซอรตรวจจบสภาพแวดลอมตาง ๆ เชน 12.2.5 แหลงจายพลงงาน คอ แหลงจายพลงงานของหนยนต โดยทวไปอาจเปนแบตเตอร หรอแหลงจายพลงงานแบบไฟฟากระแสตรง

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 514

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

ส าหรบหนยนต i-Duino Robot จะมสวนประกอบของโครงสรางดงน

(ข) แผนฐานหนยนตและชดมอเตอรลอ

(ค) เซนเซอรตรวจจบแสงสะทอน

(ง) แผงวงจร i-Duino Robot

(ก) หนยนต i-Duino Robot (จ) แบตเตอรร

รปท 12.2 หนยนต i-Duino Robot และสวนประกอบ

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 515

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

12.3 การควบคมการเคลอนทของหนยนต หนยนต i-Duino Robot เปนหนยนตแบบเคลอนทดวยลอ ควบคมทศทางการเคลอนทไดดงน 12.3.1 หนยนตเคลอนทเดนหนา (Forward) มอเตอรทง 2 ตวจะหมนเดนหนาในทศทาง เดยวกนและท LED แสดงผล ไดแก LED_A และ LED_B จะแสดงสเขยวทง 2 ดวง ดงรปท 12.3

รปท 12.3 ทศทางการหมนของมอเตอร หนยนต i-Duino Robot เคลอนทไปขางหนา

12.3.2 หนยนตเคลอนทถอยหลง (Backward) มอเตอรทง 2 ตวจะหมนถอยหลงในทศทางเดยวกนและท LED แสดงผล ไดแก LED_A และ LED_B จะแสดงสแดงทง 2 ดวง ดงรปท 12.4

รปท 12.4 ทศทางการหมนของมอเตอร หนยนต i-Duino Robot เคลอนทถอยหลง

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 516

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

12.3.3 หนยนตเคลอนทเลยวซาย (Turn Left) มอเตอร A จะหยดหมน สวนมอเตอร B จะหมนเดนหนา และท LED แสดงผล ไดแก LED_A จะดบ LED_B จะแสดงสเขยว ดงรปท 12.5

รปท 12.5 ทศทางการหมนของมอเตอร หนยนต i-Duino Robot เคลอนทเลยวซาย

12.3.4 หนยนตเคลอนทเลยวขวา (Turn Right) มอเตอร A จะหมนเดนหนา สวนมอเตอร B จะหยดหมน และท LED แสดงผล ไดแก LED_A จะแสดงสเขยว LED_B จะดบ ดงรปท 12.6

รปท 12.6 ทศทางการหมนของมอเตอร หนยนต i-Duino Robot เคลอนทเลยวขวา

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 517

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

12.3.5 หนยนตเคลอนทหมนซาย (Spin Left) มอเตอร A จะหมนถอยหลง สวนมอเตอร B จะหมนเดนหนา และท LED แสดงผล ไดแก LED_A จะแสดงสแดง LED_B จะแสดงสเขยว ดงรปท 12.7

รปท 12.7 ทศทางการหมนของมอเตอร หนยนต i-Duino Robot เคลอนทหมนซาย

12.3.6 หนยนตเคลอนทหมนขวา (Spin Right) มอเตอร A จะหมนเดนหนา สวนมอเตอร B จะหมนถอยหลง และท LED แสดงผล ไดแก LED_A จะแสดงสเขยว LED_B จะแสดงสแดง ดงรปท 12.8

รปท 12.8 ทศทางการหมนของมอเตอร หนยนต i-Duino Robot เคลอนทหมนขวา

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 518

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

12.3.7 หนยนตหยดเคลอนท (Stop) มอเตอรทง 2 ตวจะหยดหมน และท LED แสดงผล ทง 2 ดวงจะดบ ดงรปท 12.9

รปท 12.9 ทศทางการหมนของมอเตอร หนยนต i-Duino Robot หยดเคลอนท

การเขยนโปรแกรมควบคมใหหนยนตเคลอนท แสดงดงตวอยางโปรแกรม 12.1 ตวอยางโปรแกรม 12.1

1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21

#include <motor.h> //Include Library motor.h #define SW1 2 void setup() { pinMode(SW1,INPUT); pinMode(EN1,OUTPUT); pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); pinMode(EN2,OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT); } void loop() { if(digitalRead(SW1)==LOW) { FW(255,255); delay(5000); //i-Duino Robot move Forward BW(127,127); delay(5000); //i-Duino Robot move Backward TL(0,178); delay(5000); //i-Duino Robot move Turn Left TR(178,0); delay(5000); //i-Duino Robot move Turn Right SL(76,76); delay(5000); //i-Duino Robot move Spin Left SR(76,76); delay(5000); //i-Duino Robot move Spin Right STOP(); delay(5000); //i-Duino Robot Stop } }

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 519

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

12.4 การตรวจจบเสนเพอควบคมการเคลอนทของหนยนต

ในการควบคมทศทางการเคลอนทของหนยนต i-Duino Robot ใชเซนเซอรตรวจจบแสงสะทอนแบบอนฟราเรดหรอเซนเซอรตรวจจบแสงสะทอน ส าหรบตรวจจบเสนสด าของสนามทพนสขาว คาแสงสะทอนของเสนสด า ซงจะไดคาแตกตางกน ระหวาง 0 ถง 1023 โดยสามารถใชตวอยางโปรแกรม 10.8 ในเนอหาหนวยท 10 เพออานคาแสงสะทอนมาแสดงผลบนจอ LCD Module ซงคาแสงสะทอนทอานไดจากพนสขาวมคาประมาณ 700 ถง 900 และคาแสงสะทอนทอานไดจากเสนสด ามคาประมาณ 100 ถง 300 จากนนน าคาทอานไดมาหาคาอางองส าหรบก าหนดเปนเงอนไข

คาแสงสะทอนอางอง (ref) = (คาแสงสะทอนจากพนสขาว + คาแสงสะทอนจากเสนสด า) 2

ตวอยาง อานคาแสงสะทอนจากพนสขาวได = 950 คาแสงสะทอนจากเสนสด า = 250 คาแสงสะทอนอางอง (ref) = (950+250)/2 = 600

อยางไรกตาม การใชงานจรงอาจก าหนดคาแสงสะทอนอางองใหกวางกวานได เชน 500 หรอ 700 โดยใชคาแสงสะทอนอางองใหอยในชวงระหวางกงกลางของ 250 ถง 950 แตไมควรใชคาใกลกบ 250 หรอ 950 มากเกนไป เพราะจะท าใหเซนเซอรตรวจจบแสงสะทอนแยกไมไดวาเสนสด า หรอพนสขาว ดงนน หลกการพนฐานของหนยนตอตโนมตทเคลอนทตามเสนสด า คอ การควบคมใหหนยนตเคลอนทโดยทเซนเซอรตรวจจบแสงสะทอนทตดตงกบตวหนยนตดานซายและดานขวาเปนเซนเซอรตรวจจบพนสขาวและเสนสด า ขอน าเสนอการตรวจจบเสนเพอควบคมการเคลอนทของหนยนต 2 แบบ ดงน 12.4.1 ใชเซนเซอรตรวจจบแสงสะทอน 2 ตว ซงจะมเงอนไขการท างาน 4 เงอนไข ดงน

12.4.1.1 หนยนตเคลอนทอยในแนวเสนสด า 12.4.1.2 หนยนตเคลอนทเบยงไปดานขวา 12.4.1.3 หนยนตเคลอนทเบยงไปดานซาย 12.4.1.4 หนยนตเคลอนทพบเสนตด

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 520

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

12.4.1.1 หนยนตเคลอนทอยในแนวเสนสด า

เปนกรณทหนยนตเคลอนทเดนหนาหรอถอยหลงอยางตอเนอง โดยทเซนเซอรตรวจจบแสงสะทอนทง 2 ตว ตรวจจบพนสนามสขาวหรอครอมเสนสด า แสดงดงรปท 12.10 การควบคมหนยนตตามเงอนไขน คอ ใหหนยนตเคลอนทตรงไปขางหนาหรอถอยหลงอยางตอเนองดวยคาหนวงเวลาสน ๆ

left>ref เซนเซอรตรวจจบดานซายพบพนสขาว

right>ref เซนเซอรตรวจจบดานขวาพบพนสขาว

(ก) การท างานของเซนเซอรตรวจจบแสงสะทอน

(ข) หนยนตเคลอนทอยในแนวเสนสด า

รปท 12.10 การเคลอนทของหนยนตอยในแนวเสนสด า

ผลการท างานของเซนเซอรตรวจจบ

left>ref right>ref

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 521

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

12.4.1.2 หนยนตเคลอนทเบยงดานขวา

เปนกรณทหนยนตเคลอนทเดนหนาแตไมตรงเสน โดยเบยงไปทางดานขวา ท าใหเซนเซอรตรวจจบแสงสะทอนดานซาย ตรวจจบเจอเสนสด า แสดงดงรปท 12.11 การควบคมหนยนตตามเงอนไขน คอ ใหตวหนยนตเลยวซายดวยคาหนวงเวลาสน ๆ เพอใหหนยนตเคลอนทกลบไปอยในแนวเสนสด าเหมอนเดม

left<ref เซนเซอรตรวจจบดานซายพบเสนสด า

right>ref เซนเซอรตรวจจบดานขวาพบพนสขาว

(ก) การท างานของเซนเซอรตรวจจบแสงสะทอน

(ข) หนยนตเคลอนทเบยงดานขวา

รปท 12.11 หนยนตเคลอนทเบยงดานขวา

ผลการท างานของเซนเซอรตรวจจบ

left<ref right>ref

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 522

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

12.4.1.3 หนยนตเคลอนทเบยงดานซาย

เปนกรณทหนยนตเคลอนทเดนหนาแตไมตรงเสน โดยเบยงไปทางดานซาย ท าใหเซนเซอรตรวจจบแสงสะทอนดานขวาตรวจจบเจอเสนสด า แสดงดงรปท 12.12 การควบคมหนยนตตามเงอนไขน คอ ใหตวหนยนตเลยวขวา ดวยคาหนวงเวลาสน ๆ เพอใหหนยนตเคลอนทกลบไปอยในแนวเสนสด าเหมอนเดม

left>ref เซนเซอรตรวจจบดานซายพบพนสขาว

right<ref เซนเซอรตรวจจบดานขวาพบพนเสนสด า

(ก) การท างานของเซนเซอรตรวจจบแสงสะทอน

(ข) หนยนตเคลอนทเบยงดานซาย

รปท 12.12 หนยนตเคลอนทเบยงดานซาย

ผลการท างานของเซนเซอรตรวจจบ

left>ref right<ref

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 523

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

12.4.1.4 หนยนตเคลอนทพบเสนตด

เปนกรณทหนยนตเคลอนทเดนหนาและตรวจพบเสนตดสด า ซงอาจเปนเสนทท าไวเพอใหหนยนตหยดการเคลอนท หรออาจเปนเสนทใหหนยนตตรวจสอบเพอการท าภารกจตาง ๆ ท าใหเซนเซอรตรวจจบแสงสะทอนทง 2 เซนเซอรตรวจจบเจอเสนสด า แสดงดงรปท 12.13 การควบคมหนยนตตามเงอนไขน คอ ใหตวหนยนตหยดท าภารกจ หรอท าภารกจอน ๆ ตามทก าหนด

Left<ref เซนเซอรตรวจจบดานซายพบเสนสด า

right<ref เซนเซอรตรวจจบดานขวาพบพนเสนสด า

(ก) การท างานของเซนเซอรตรวจจบแสงสะทอน

(ข) หนยนตเคลอนพบเสนตด

รปท 12.13 หนยนตเคลอนทพบเสนตด

ผลการท างานของเซนเซอรตรวจจบ

Left<ref right<ref

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 524

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

12.4.2 ใชเซนเซอรตรวจจบแสงสะทอน 3 ตว ซงจะมเงอนไขการท างาน 6 เงอนไข ดงน

12.4.2.1 หนยนตเคลอนทอยในแนวเสนสด า

เปนกรณทหนยนตเคลอนทเดนหนาหรอถอยหลงอยางตอเนอง โดยทเซนเซอรตรวจจบแสงสะทอนตวกลางจะอยบนเสนสด า สวนเซนเซอรตรวจจบดานซายและดานขวาจะตรวจจบพนสนามสขาว แสดงดงรปท 12.14 การควบคมหนยนตตามเงอนไขน คอ ใหหนยนตเคลอนทตรงไปขางหนาหรอถอยหลงอยางตอเนองดวยคาหนวงเวลาสน ๆ

left>ref เซนเซอรตรวจจบดานซาย

พบพนสขาว

mid<ref เซนเซอรตรวจจบตวกลาง

พบเสนสด า

right>ref เซนเซอรตรวจจบดาน

ขวาพบพนสขาว

(ข) การท างานของเซนเซอรตรวจจบแสงสะทอน

(ข) หนยนตเคลอนทอยในแนวเสนสด า

รปท 12.14 การเคลอนทของหนยนตอยในแนวเสนสด า

ผลการท างานของเซนเซอรตรวจจบ

left>ref right>ref mid<ref

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 525

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

12.4.2.2 หนยนตเคลอนทเบยงดานขวา

เปนกรณทหนยนตเคลอนทเดนหนาแตไมตรงเสน โดยเบยงไปทางดานขวา ท าใหเซนเซอรตรวจจบแสงสะทอนดานซาย ตรวจจบเจอเสนสด า แสดงดงรปท 12.15 การควบคมหนยนตตามเงอนไขน คอ ใหตวหนยนตเลยวซายดวยคาหนวงเวลาสน ๆ เพอใหหนยนตเคลอนทกลบไปอยในแนวเสนสด าเหมอนเดม

left<ref เซนเซอรตรวจจบดานซาย

พบเสนสด า

mid>ref เซนเซอรตรวจจบตวกลาง

พบพนสขาว

right>ref เซนเซอรตรวจจบดานขวา

พบพนสขาว

(ก) การท างานของเซนเซอรตรวจจบแสงสะทอน

(ข) หนยนตเคลอนทเบยงดานขวา

รปท 12.15 หนยนตเคลอนทเบยงดานขวา

ผลการท างานของเซนเซอรตรวจจบ

left<ref right>ref mid>ref

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 526

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

12.4.2.3 หนยนตเคลอนทเบยงดานซาย

เปนกรณทหนยนตเคลอนทเดนหนาแตไมตรงเสน โดยเบยงไปทางดานซาย ท าใหเซนเซอรตรวจจบแสงสะทอนดานขวาตรวจจบเจอเสนสด า แสดงดงรปท 12.16 การควบคมหนยนตตามเงอนไขน คอ ใหตวหนยนตเลยวขวา ดวยคาหนวงเวลาสน ๆ เพอใหหนยนตเคลอนทกลบไปอยในแนวเสนสด าเหมอนเดม

left>ref เซนเซอรตรวจจบดานซาย

พบพนสขาว

mid>ref เซนเซอรตรวจจบตวกลาง

พบพนสขาว

right<ref เซนเซอรตรวจจบดานขวา

พบเสนสด า

(ก) การท างานของเซนเซอรตรวจจบแสงสะทอน

(ข) หนยนตเคลอนทเบยงดานซาย

รปท 12.16 หนยนตเคลอนทเบยงดานซาย

ผลการท างานของเซนเซอรตรวจจบ

left>ref right<ref mid>ref

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 527

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

12.4.2.4 หนยนตเคลอนทพบเสนตดดานขวา

เปนกรณทหนยนตเคลอนทเดนหนาและตรวจพบเสนตดดานขวา อาจเปนเสนทางแยกหรอเปนเสนทท าไวเพอใหหนยนตตรวจสอบเพอการท าภารกจตาง ๆ ซงเซนเซอรตรวจจบแสงสะทอนดานซายพบพนสขาว และเซนเซอรตรวจจบแสงสะทอน 2 ตว คอตวกลางและตวดานขวาพบเสนสด า แสดงดงรปท 12.17 การควบคมหนยนตตามเงอนไขน คอ อาจใหตวหนยนตหยดเคลอนแลวเลยวขวา เพอท าภารกจอน ๆ ตามทก าหนด

left>ref เซนเซอรตรวจจบดานซาย

พบพนสขาว

mid<ref เซนเซอรตรวจจบตวกลาง

พบเสนสด า

right<ref เซนเซอรตรวจจบดานขวา

พบเสนสด า

(ก) การท างานของเซนเซอรตรวจจบแสงสะทอน

(ข) หนยนตเคลอนพบเสนตดดานขวา

รปท 12.17 หนยนตเคลอนทพบเสนตดดานขวา

ผลการท างานของเซนเซอรตรวจจบ

left>ref right<ref mid<ref

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 528

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

12.4.2.5 หนยนตเคลอนทพบเสนตดดานซาย

เปนกรณทหนยนตเคลอนทเดนหนาและตรวจพบเสนตดดานซาย อาจเปนเสนทางแยกหรอเปนเสนทท าไวเพอใหหนยนตตรวจสอบเพอการท าภารกจตาง ๆ ซงเซนเซอรตรวจจบแสงสะทอนดานขวาพบพนสขาว และเซนเซอรตรวจจบแสงสะทอน 2 ตว คอตวกลางและตวดานซายพบเสนสด า แสดงดงรปท 12.18 การควบคมหนยนตตามเงอนไขน คอ อาจใหตวหนยนตหยดเคลอนแลวเลยวซาย เพอท าภารกจอน ๆ ตามทก าหนด

left<ref เซนเซอรตรวจจบดานซาย

พบเสนสด า

mid<ref เซนเซอรตรวจจบตวกลาง

พบเสนสด า

right>ref เซนเซอรตรวจจบดานขวา

พบพนสขาว

(ก) การท างานของเซนเซอรตรวจจบแสงสะทอน

(ข) หนยนตเคลอนพบเสนตดดานซาย

รปท 12.18 หนยนตเคลอนทพบเสนตดดานซาย

ผลการท างานของเซนเซอรตรวจจบ

left<ref right>ref mid<ref

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 529

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

12.4.2.6 หนยนตเคลอนทพบเสนตด

เปนกรณทหนยนตเคลอนทเดนหนาและตรวจพบเสนตดสด า ซงอาจเปนเสนทท าไวเพอใหหนยนตหยดการเคลอนท หรออาจเปนเสนทใหหนยนตตรวจสอบเพอการท าภารกจตาง ๆ ท าใหเซนเซอรตรวจจบแสงสะทอนทง 3 เซนเซอรตรวจจบเจอเสนสด า แสดงดงรปท 12.19 การควบคมหนยนตตามเงอนไขน คอ ใหตวหนยนตหยดท าภารกจ หรอท าภารกจอน ๆ ตามทก าหนด

left<ref เซนเซอรตรวจจบดานซาย

พบเสนสด า

mid<ref เซนเซอรตรวจจบตวกลาง

พบเสนสด า

right<ref เซนเซอรตรวจจบดานขวา

พบเสนสด า

(ก) การท างานของเซนเซอรตรวจจบแสงสะทอน

(ข) หนยนตเคลอนพบเสนตด

รปท 12.19 หนยนตเคลอนทพบเสนตด

ผลการท างานของเซนเซอรตรวจจบ

left<ref right<ref mid<ref

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 530

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

สรปเนอหาสาระส าคญ

การประยกตใชงานไมโครคอนโทรลเลอรในรปแบบหนยนตอตโนมตนน ไมโครคอนโทรลเลอรจะท าหนาทเปนระบบสมองกล (Embedded System) ทรบขอมลจากเซนเซอรหรอเซนเซอรตรวจจบตาง ๆ มาประมวลผลแลวสงขอมลใหกบวงจรควบคมการขบเคลอนกลไก เพอท างานหรอท าภารกจทก าหนด ซงจะตองมชดค าสงโปรแกรมส าหรบรบคาจากเซนเซอร (Input) ประมวลผล (Process) และควบคมสงงาน (Output) ส าหรบหนยนตทใชในการศกษาและปฏบตการทดลองน เปนพนฐานทใหนกเรยนเขาใจกระบวนการท างานของเซนเซอรตรวจจบแสงสะทอน การประมวลผลของไมโครคอนโทรลเลอร Arduinoตามค าสงเงอนไขของโปรแกรม เพอน าไปควบคมสงงานวงจรขบมอเตอรใหมอเตอรหมนตามทศทางและมความเรวของการหมนตามทก าหนด ซงในหนยนตอตโนมตทใชงานจรงหรอในเครองจกรอตสาหกรรมจะมกระบวนการท างานทซบซอนมากกวา เนองจากมเซนเซอรหลายแบบ หลายชนด มอปกรณและวงจรทตองควบคมสงงานหลายรปแบบ ไมโครคอนโทรลเลอรกตองสามารถท างานทซบซอนได รวมถงการพฒนาโปรแกรมกจะซบซอนตามไปดวย ดงนนในการน าความรไปใชกบงานจรง นกเรยนตองหมนศกษาหาความรเพมเตมดวยตวเอง และตองปฏบตงานอยางจรงจง มความตงใจ อดทน รอบคอบ และรบผดชอบงานในหนาท

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 531

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

บรรณานกรม ชยวฒน ฟองสนธ. เอกสารประกอบการสอนวชาหนยนตเบองตน, แผนกวชาชางอเลกทรอนกส วทยาลยเทคนคพระนครศรอยธยา, 2558. เดชฤทธ มณธรรม. คมภรการใชงานหนยนต (ROBOT). ซเอดยเคชน, กรงเทพฯ, 2559. อนโนเวตฟ เอกเพอรเมนต. Electronic 123 : คมอความรอเลกทรอนกสเบองตน. อนโนเวตฟ เอกเพอรเมนต. กรงเทพฯ. อนโนเวตฟ เอกเพอรเมนต. POP-BOT XT คมอการสรางและพฒนาโปรแกรมควบคมหนยนตอตโนมต ดวยภาษา C/C++ กบ Arduino. อนโนเวตฟเอกเพอรเมนต, กรงเทพฯ. เอกชย มะการ. เรยนร เขาใจ ใชงานไมโครคอนโทรลเลอรตระกล AVR ดวย Arduino. อทท, กรงเทพฯ, 2552. หนยนตอตโนมต (Autonomous robots). [ออนไลน]. เขาถงไดจาก : www.https://th.wikipedia.org (30 มกราคม 2560).

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 532

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

แบบฝกหดหนวยท 12 ค าชแจง 1. แบบฝกหดมทงหมด 2 ตอน ประกอบดวยตอนท 1 และตอนท 2 (20 คะแนน) 2. แบบฝกหดตอนท 1 เปนค าถามแบบจบค มทงหมด 20 ขอ (10 คะแนน) 3. แบบฝกหดตอนท 2 เปนค าถามแบบเลอกตอบ มทงหมด 10 ขอ (10 คะแนน) ตอนท 1 ค าชแจง ใหนกเรยนจบคขอความทเปนคณสมบตและการท างานของหนยนตอตโนมตทสมพนธกน และเขยนตวอกษร a-t ลงหนาขอความในแตละขอ

คณสมบตและการท างานของหนยนตอตโนมต 1. เปนหนยนตทรบร คด และกระท าดวยตนเอง a. ADC = 700-900 2. ท าหนาทรบขอมลจากเซนเซอร ประมวลผล และควบคมสงงาน b. หนยนตหมนซาย

3. ท าหนาทตรวจจบสภาพแวดลอม เชน อณหภม ความชน วตถ เปนตน c. หนยนตเบยงขวา

4. เปนแหลงจายพลงงานใหกบหนยนตทเคลอนทได d. หนยนตเลยวขวา 5. เปนหนยนตประเภททสามารถเคลอนทได e. ADC = 100-300

6. หนยนตเคลอนทเดนหนา (Forward) หรอเคลอนทถอยหลง (Backward)

f. คาแสงสะทอนอางอง = 550

7. มอเตอรดานซายหมนเดนหนา และมอเตอรดานขวาหมนถอยหลง g. หนยนตอตโนมต

8. มอเตอรดานซายหมนถอยหลง และมอเตอรดานขวาหมนเดนหนา h. Sensor>ref 9. มอเตอรดานซายหยดหมน และมอเตอรดานขวาหมนถอยหลง i. สมองกล

10. มอเตอรดานขวาหมนเดนหนา และมอเตอรดานซายหยดหมน j. left>ref, right>ref 11. คาแสงสะทอนของพนสขาว k. หนยนตพบเสนตด

12. คาแสงสะทอนของพนสด า l. หนยนตหมนขวา

13. คาแสงสะทอน (ADC) = 800 และคาแสงสะทอน (ADC) = 300 m. หนยนตเบยงขวา 14. เซนเซอรตรวจจบแสงสะทอนตรวจจบพบพนสขาว n. เซนเซอร

15. เซนเซอรตรวจจบแสงสะทอนดานซายของหนยนตพบเสนสด า และ เซนเซอรตรวจจบแสงสะทอนดานขวาพบพนสขาว

o. มอเตอรหมนทาง เดยวกน

16. เซนเซอรตรวจจบแสงสะทอนตรวจจบพบเสนสด า p. หนยนตเลยวซาย

17. left<ref, mid<ref, right<ref q. Sensor<ref 18. หนยนตเคลอนทอยในแนวเสนสด า r. หนยนตส ารวจ

19. left>ref, mid>ref, right<ref s. แบตเตอร

20. left<ref, mid>ref, right>ref t. หนยนตเบยงซาย

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 533

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

ตอนท 2 ค าชแจง ใหนกเรยนท าเครองหมายกากบาท (X) ลงบนค าตอบทถกตองทสด 1. ขอใดไมใชหนยนตอตโนมต ก. หนยนตส ารวจทเคลอนทดวยโปรแกรม ข. แขนกลทท างานดวยสมองกล ค. หนยนตรถทวงตามเสนสด า ง. หนยนตรถแบบบงคบดวยคลนวทย 2. ขอใดเปนสวนประกอบทส าคญของหนยนตอตโนมต ก. ระบบสมองกล ข. ลอหนยนต ค. สายไฟตอวงจร ง. ตวจบยดมอเตอร 3. ขอใดเปนหนาทของเซนเซอร ก. เปนสวตชทควบคมได ข. เปนตวตรวจจบ ค. เปนตวประมวลผลสญญาณ ง. เปนอปกรณควบคมความเรวมอเตอร 4. ขอใดไมใชเซนเซอร ก. Tact Switch ข. LED Infrared ค. Photo Transistor ง. Relay 5. เซนเซอรตรวจจบเสนของหนยนต i-Duino UNO ใชหลกการใด ก. Reflector Infrared ข. Capacitive Sensor ค. Resistive Sensor ง. Photo Transistor

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 534

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

6. ขอใดเปนการควบคมใหหนยนตเลยวซาย ก. มอเตอรดานซายและดานขวาหมนเดนหนา ข. มอเตอรดานซายและดานขวาหมนถอยหลง ค. มอเตอรดานซายหมนเดนหนาและมอเตอรดานขวาหมนถอยหลง ง. มอเตอรดานซายหยดหมนและมอเตอรดานขวาหมนเดนหนา 7. ขอใดเปนการควบคมใหหนยนตหมนทางขวา ก. มอเตอรดานซายและดานขวาหมนเดนหนา ข. มอเตอรดานซายและดานขวาหมนถอยหลง ค. มอเตอรดานซายหมนเดนหนาและมอเตอรดานขวาหมนถอยหลง ง. มอเตอรดานซายหยดหมนและมอเตอรดานขวาหมนเดนหนา 8. ขอใดเปนการท างานของเซนเซอรเมอหนยนตเคลอนทเบยงทางขวา ก. left>ref และ right>ref ข. left<ref และ right>ref ค. left<ref และ right<ref ง. left>ref และ right<ref 9. ขอใดเปนการท างานของเซนเซอรเมอหนยนตเคลอนทเบยงทางซาย ก. left>ref และ right>ref ข. left<ref และ right>ref ค. left<ref และ right<ref ง. left>ref และ right<ref 10. ขอใดเปนการท างานของเซนเซอรเมอหนยนตเคลอนพบเสนตดดานซาย ก. left>ref mid<ref right>ref ข. left>ref mid>ref right>ref ค. left<ref mid<ref right>ref ง. left>ref mid>ref right>ref

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 535

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

ใบปฏบตงานท 12 หนวยท 12

ชอวชา ไมโครคอนโทรลเลอร รหสวชา 2105-2105 จ านวน 6 ชวโมง เรอง การเขยนโปรแกรมควบคมหนยนตอตโนมต

ค าชแจง ใหนกเรยนแบงกลมตามความสมครใจ กลมละ 2 คน และท าการฝกตามใบปฏบตงานท 12 เรอง การเขยนโปรแกรมควบคมหนยนตอตโนมต

จดประสงคเชงพฤตกรรม 1. ประกอบหนยนตอตโนมตตามแบบทก าหนดใหได 2. ตอวงจรควบคมหนยนตอตโนมตตามแบบทก าหนดใหได 3. ทดสอบการท างานของหนยนตอตโนมตได 4. เขยนโปรแกรมควบคมการเคลอนทของหนยนตอตโนมตแบบเคลอนทในกรอบทก าหนดได 5. เขยนโปรแกรมควบคมการเคลอนทของหนยนตอตโนมตแบบเคลอนทตามเสนได

อปกรณประกอบการปฏบตงาน 1. เครองคอมพวเตอรพรอมซอฟตแวร Arduino IDE จ านวน 1 เครอง 2. ชดหนยนต i-Duino Robot จ านวน 1 ชด 3. สนามหนยนต จ านวน 1 ชด 4. สาย mini-USB แบบขวตอ Type-A, Type-B mini จ านวน 1 เสน

เครองมอส าหรบการปฏบตงาน 1. ชดไขควง จ านวน 1 ชด 2. คมจบ, คมตด จ านวน 1 ชด

ขอควรระวง 1. การตอแหลงจายกบแผงวงจร i-Duino Robot ตองตรวจสอบขวใหถกตอง หากผดขวจะท าใหไมโครคอนโทรลเลอรเสยหายได 2. การตอสาย mini-USB กบบอรด Arduino UNO และการตอวงจรตองตอใหแนน หากไมแนนจะท าใหการทดลองผดพลาดได 3. หากมขอสงสยใหสอบถามครผสอน

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 536

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

ขนตอนการปฏบตงาน ปฏบตงานท 11.1 การประกอบและทดสอบหนยนตอตโนมต i-Duino Robot

1. เตรยมอปกรณและเครองมอประกอบการปฏบตงานตามรายการทก าหนดให 2. ประกอบแผนรองและถาดแบตเตอร กบชดแผนฐานและมอเตอรลอ ของหนยนตดงรปท 12.20

(ก) ถาดแบตเตอร

(ข) ชดแผนฐานและมอเตอรลอ (ค) ชดแผนฐานและมอเตอรลอทประกอบเขาดวยกน

รปท 12.20 การประกอบถาดแบตเตอรกบฐานและชดมอเตอรลอ

3. ประกอบเสายดแผนวงจร i-Duino Uno กบแผนฐานดวยสกร และใสแบตเตอรลงในถาด

(ก) เสายดแผนวงจร

(ข) แบตเตอร (ค) ชดโครงสรางหนยนต i-Duino Robot

รปท 12.21 ชดโครงสรางของ i-Duino Robot

ยดถาดกบแผนรองดวยสกร

ยดสกรกบเสาจากดานลางแผนฐาน

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 537

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

4. ประกอบแผนวงจร i-Duino Robot กบชดโครงสรางของหนยนต ยดดวยสกรใหแนน

(ก) สกรส าหรบยดแผนวงจรกบเสา

(ข) แผนวงจร i-Duino Robot (ค) ประกอบแผนวงจรกบชดโครงสรางหนยนต

รปท 12.22 การประกอบแผนวงจรกบชดโครงสรางหนยนต

5. ตอสายมอเตอรกบขวตอ Motor_A และขวตอ Motor_B ตอสายเซนเซอรตรวจจบแสงสะทอนอนฟราเรดกบขวตอ AN0 และ AN1 และตอสายแบตเตอรกบขวตอ DC Jack กบแผนวงจรดงรปท 12.23

รปท 12.23 หนยนต i-Duino Robot

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 538

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

6. เชอมตอสาย mini-USB กบหนยนตและเครองคอมพวเตอร 7. เปดใชงานซอฟตแวร Arduino IDE และตงคาการเชอมตอใหสมบรณ สรางไฟลสเกตชชอ Lab12_1a และเขยนค าสงภาษาซตามค าสงโปรแกรม Lab12_1a

โปรแกรม Lab12_1a 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

#include <LiquidCrystal_I2C.h> #define SW1 2 #define sensorL 0 #define sensorR 1 unsigned int left, right; LiquidCrystal_I2C lcd(0x27,16,2); void setup() { pinMode(SW1,INPUT); lcd.begin(); lcd.backlight(); lcd.setCursor(1,0); lcd.print("i-Duino Robot"); lcd.setCursor(0,1); lcd.print("Electronics ATC"); } void loop() { if(digitalRead(SW1)==LOW) { lcd.clear(); while(1) { left =analogRead(sensorL); //Read Analog from SensorL right=analogRead(sensorR); //Read Analog from SensorR delay(10); lcd.setCursor(0,0); lcd.print("left ="); lcd.setCursor(9,0); lcd.print(left); lcd.setCursor(0,1); lcd.print("right="); lcd.setCursor(9,1); lcd.print(right); } } }

ค าอธบายโปรแกรม : โปรแกรมทดสอบการแสดงผลของจอ LCD Module ใหแสดงขอความ “i-Duino Robot” บรรทดท 1 และแสดงขอความ “Electronics ATC” บรรทดท 2 และเมอกด SW1 จะเปนการทดสอบการอานคาจากเซนเซอรตรวจจบแสงสะทอนอนฟราเรด ดานซายและดานขวามาแสดงคาบนจอ LCD Module ใหทดลองน าหนยนตไปวางบนพนทดสอบใหเซนเซอรตรวจจบอยบนพนสขาว และเสนสด า

8. ท าการคอมไพล และอปโหลดไฟลสเกตชลงแผงวงจร i-Duino Robot 9. เลอน Power Switch ON เพอจายแรงดนไฟเลยงวงจร สงเกตการท างานของหนยนต ผลการทดลอง :

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 539

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

10. บนทกคาแสงสะทอนจากพนสขาว คาแสงสะทอนจากเสนสด า และค านวณคาแสงสะทอนอางอง (ref)

คาแสงสะทอนจากพนสขาว = คาแสงสะทอนจากเสนสด า = ค านวณคาแสงสะทอนอางอง (ref) = = 11. สรางไฟลสเกตชชอ Lab12_1b และเขยนค าสงภาษาซตามค าสงโปรแกรม Lab12_1b

โปรแกรม Lab12_1b 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21

#include <motor.h> #define SW1 2 void setup() { pinMode(SW1,INPUT); pinMode(EN1,OUTPUT); pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); pinMode(EN2,OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT); } void loop() { if(digitalRead(SW1)==LOW) { FW(127,127); delay(5000); //Forward BW(200,200); delay(5000); //Backward TL(0,255); delay(5000); //Turn Left TR(255,0); delay(5000); //Turn Right SL(130,130); delay(5000); //Spin Left SR(255,255); delay(5000); //Spin Left STOP(); delay(5000); //Stop } }

อธบายโปรแกรม : เปนการทดสอบการเคลอนทของหนยนต ใหเคลอนทเดนหนา ถอยหลง เลยวซาย เลยวขวา หมนซาย หมนขวา และหยด โดยใชงานไฟลไลบราร motor.h

12. ท าการคอมไพล และอปโหลดไฟลสเกตชลงแผงวงจร i-Duino Robot 13. เลอน Power Switch ON เพอจายแรงดนไฟเลยงวงจร สงเกตการท างานของหนยนต ผลการทดลอง :

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 540

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

งานทมอบหมายหลงปฏบตงานท 12.1 1. ศกษาชดค าสงโปรแกรมและเขยนโปรแกรม เปนหนยนต Alarm Robot : หนยนตสงเสยงรอง

เมอถกยกขนจากพน ตามเงอนไขในตาราง 12.1 และบนทกค าสงทงหมดลงในตาราง (5 คะแนน)

ตาราง 12.1 การท างานงานหนยนต Alram Robot การท างานของหนยนตเมอวางบนพน การท างานของหนยนตเมอถกยกขนจากพน

จอ LCD Module การสงเสยง จอ LCD Module การสงเสยง “Alarm OFF” ไมดง “Alarm ON” สงเสยง Beep

ค าสง :

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 541

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

ปฏบตงานท 12.2 หนยนตเคลอนทและหยดทเสนสด า 1. สรางไฟลสเกตชชอ Lab12_2 และเขยนค าสงภาษาซตามค าสงโปรแกรม Lab12_2 โปรแกรม Lab12_2

1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

#include <motor.h> #include <LiquidCrystal_I2C.h> #define SW1 2 #define sensorL 0 #define sensorR 1 unsigned int ref=600, left, right; LiquidCrystal_I2C lcd(0x27,16,2); void setup() { pinMode(SW1,INPUT); pinMode(EN1,OUTPUT); pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); pinMode(EN2,OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT); lcd.begin(); lcd.backlight(); lcd.setCursor(1,0); lcd.print("i-Duino Robot"); lcd.setCursor(0,1); lcd.print("Electronics ATC"); } void loop() { if(digitalRead(SW1)==LOW) { lcd.clear(); while(1) { left =analogRead(sensorL); //Read Analog from SensorL right=analogRead(sensorR); //Read Analog from SensorR delay(10); lcd.setCursor(0,0); lcd.print("left ="); lcd.setCursor(9,0); lcd.print(left); lcd.setCursor(0,1); lcd.print("right="); lcd.setCursor(9,1); lcd.print(right); if(left>ref&&right>ref) //On white floor { FW(100,100); delay(1); } else //On black line STOP(); } } }

ค าอธบายโปรแกรม : โปรแกรมอานคาจากเซนเซอรตรวจจบแสงสะทอน เพอควบคมการเคลอนทของ หนยนต โดยก าหนดเงอนไขหากคาแสงสะทอนทอานไดมคานอยกวาคาแสงสะทอนอางอง (พบเสนสด า) ใหหนยนตหยด

2. ท าการคอมไพล และอปโหลดไฟลสเกตชลงแผงวงจร i-Duino Robot 3. เลอน Power Switch ON เพอจายแรงดนไฟเลยงวงจร น าหนยนตไปทดสอบกบพนสนาม

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 542

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

ผลการทดลอง :

งานทมอบหมายหลงปฏบตงานท 12.2 1. ศกษาชดค าสงโปรแกรมและเขยนโปรแกรมควบคมหนยนตใหเคลอนทอยในกรอบดงรป

(5 คะแนน)

รปท 12.24 สนามส าหรบทดสอบหนยนตเคลอนทในกรอบ

2. ทดสอบการท างานของหนยนต บนทกค าสงโปรแกรมลงในตาราง 12.2 ตาราง 12.2 โปรแกรมควบคมหนยนตใหเคลอนทในกรอบ

ค าสง :

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 543

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

ตาราง 12.2 (ตอ)

ค าสง :

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 544

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

ปฏบตงานท 12.3 การเขยนโปรแกรมควบคมหนยนตใหเคลอนทตามเสน เปนการควบคมใหหนยนตเคลอนทตามเสนสด าทก าหนด แสดงดงรป

รปท 12.25 สนามทดสอบหนยนตเคลอนทตามเสน

1. สรางไฟลสเกตชชอ Lab12_3 และเขยนค าสงภาษาซตามค าสงโปรแกรม Lab12_3 โปรแกรม Lab12_3

1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

#include <motor.h> #include <LiquidCrystal_I2C.h> #define SW1 2 #define sensorL 0 #define sensorR 1 unsigned int ref=600, left, right; LiquidCrystal_I2C lcd(0x27,16,2); void setup() { pinMode(SW1,INPUT); pinMode(EN1,OUTPUT); pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); pinMode(EN2,OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT); lcd.begin(); lcd.backlight(); lcd.setCursor(1,0); lcd.print("i-Duino Robot"); lcd.setCursor(0,1); lcd.print("Electronics ATC"); } void loop() { if(digitalRead(SW1)==LOW) { lcd.clear(); while(1) { left =analogRead(sensorL); right=analogRead(sensorR); delay(10); lcd.setCursor(0,0); lcd.print("left ="); lcd.setCursor(9,0); lcd.print(left); lcd.setCursor(0,1); lcd.print("right="); lcd.setCursor(9,1); lcd.print(right);

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 545

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

โปรแกรม Lab12_3 (ตอ) 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

if(left>ref && right>ref) //On white floor { FW(120,120); delay(1);} else if(left<ref && right>ref) //SensorL on black line { TL(0,80); delay(10); } else if(left>ref && right<ref) //SensorR on black line { TR(80,0); delay(10); } else { FW(120,120); delay(1);} } } }

ค าอธบายโปรแกรม : โปรแกรมอานคาจากเซนเซอรตรวจจบแสงสะทอน ควบคมหนยนตเคลอนทตามเสนสด า

2. ท าการคอมไพล และอปโหลดไฟลสเกตชลงแผงวงจร i-Duino Robot 3. เลอน Power Switch ON เพอจายแรงดนไฟเลยงวงจร ทดสอบหนยนตกบสนาม ผลการทดลอง :

งานทมอบหมายหลงปฏบตงานท 12.3 1. ศกษาชดค าสงโปรแกรมและเขยนโปรแกรมควบคมหนยนตเคลอนทตามเสน โดยเมอหนยนต

พบเสนตดใหหนยนตหยด ทดสอบการท างานของหนยนตและบนทกค าสงโปรแกรมทงหมดลงในตาราง (5 คะแนน)

รปท 12.26 สนามทดสอบหนยนตเคลอนทตามเสนแบบมเสนตด

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 546

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

ตาราง 12.3 โปรแกรมหนยนตเคลอนทตามเสนและหยดทเสนตด

ค าสง :

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 547

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

ตาราง 12.3 (ตอ)

ค าสง :

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 548

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

ปฏบตงานท 12.4 การเขยนโปรแกรมควบคมหนยนตใหเคลอนทตามเสน เปนการควบคมใหหนยนตเคลอนทตามเสนสด าทก าหนด แสดงดงรป

รปท 12.27 สนามทดสอบหนยนตเคลอนทตามเสน

1. สรางไฟลสเกตชชอ Lab12_4 และเขยนค าสงภาษาซตามค าสงโปรแกรม Lab12_4 โปรแกรม Lab12_4

1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

#include <motor.h> #include <LiquidCrystal_I2C.h> #define SW1 2 #define sensorL 0 #define sensorR 1 unsigned int ref=600, left, right; LiquidCrystal_I2C lcd(0x27,16,2); void setup() { pinMode(SW1,INPUT); pinMode(EN1,OUTPUT); pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); pinMode(EN2,OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT); lcd.begin(); lcd.backlight(); lcd.setCursor(1,0); lcd.print("i-Duino Robot"); lcd.setCursor(0,1); lcd.print("Electronics ATC"); } void loop() { if(digitalRead(SW1)==LOW) { lcd.clear(); while(1) { left =analogRead(sensorL); right=analogRead(sensorR); delay(10); lcd.setCursor(0,0); lcd.print("left ="); lcd.setCursor(9,0); lcd.print(left);

FINISH

START

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 549

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

โปรแกรม Lab12_4 (ตอ) 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48

lcd.setCursor(0,1); lcd.print("right="); lcd.setCursor(9,1); lcd.print(right); if(left>ref && right>ref) //On white floor { FW(120,120); delay(1);} else if(left<ref && right>ref) //SensorL on black line { TL(0,80); delay(10); } else if(left>ref && right<ref) //SensorR on black line { TR(80,0); delay(10); } else if(left<ref && right<ref) //SensorL, sensorR on black line { STOP(); } else { FW(120,120); delay(1);} } } }

ค าอธบายโปรแกรม : โปรแกรมอานคาจากเซนเซอรตรวจจบแสงสะทอน ควบคมหนยนตเคลอนทตามเสนสด า

2. ท าการคอมไพล และอปโหลดไฟลสเกตชลงแผงวงจร i-Duino Robot 3. เลอน Power Switch ON เพอจายแรงดนไฟเลยงวงจร ทดสอบหนยนตกบสนาม ผลการทดลอง :

งานทมอบหมายหลงปฏบตงานท 12.4 1. ศกษาชดค าสงโปรแกรมและเขยนโปรแกรมควบคมหนยนตเคลอนทตามเสน ใหวงตามเสน

ตงแตจด Start จนถงจดสนสด โดยใชเวลานอยทสด ทดสอบการท างานของหนยนตและบนทกค าสงโปรแกรมทงหมดลงในตาราง 12.4 (5 คะแนน)

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 550

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

ตาราง 12.4 โปรแกรมหนยนตเคลอนทตามเสน

ค าสง :

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 551

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

ตาราง 12.4 (ตอ)

ค าสง :

เอกสารประกอบการเรยน วชาไมโครคอนโทรลเลอร (2105-2105) 552

หนวยท 12 การประยกตใชงาน Arduino ในรปแบบหนยนตอตโนมต เรยบเรยงโดยครบญเกด สนธพนธ

สรปผลการปฏบตงาน