195 คำถามทา้ ยการทดลอง ใหผ้ ู้เรียนออกแบบโปรแกรมโดยมีเงื่อนไขดังน้ี 1. ใหผ้ เู้ รียนเลอื กอปุ กรณ์ควบคุมอยา่ งใดอยา่ งหน่งึ ตามความถนัดในการเขยี นโปรแกรม 2. ใหเ้ ขียนโปรแกรมควบคมุ โดยใช้อปุ กรณ์ท่ีเลอื กให้มอเตอรห์ มุนไปข้างหน้า 5 วินาทแี ลว้ หยดุ หมุน 3. ใหเ้ ขียนโปรแกรมควบคุมโดยใช้อปุ กรณ์ทเ่ี ลือกใหม้ อเตอรห์ มนุ ไปข้างหลงั 5 วินาทีแลว้ หยดุ หมุน 4. ให้เขยี นโปรแกรมควบคมุ โดยใช้อปุ กรณ์ที่เลือกให้มอเตอรห์ มนุ ไปข้างขวา 5 วนิ าทแี ลว้ หยดุ หมุน 5. ใหเ้ ขียนโปรแกรมควบคมุ โดยใช้อุปกรณ์ท่ีเลอื กใหม้ อเตอรห์ มนุ ไปขา้ งซ้าย 5 วินาทีแลว้ หยุด หมนุ 6. โปรแกรมวนทำงานรอรับการกดสวติ ช์ป่มุ กดตามข้อ 2 ถงึ ข้อ 5 ตอ่ เนื่องตลอดเวลา 7. ให้เขียนคำสั่งทส่ี มบูรณล์ งในตารางคำสง่ั คำสัง่ ในการควบคมุ …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………
196 คำส่ังในการควบคุม (ต่อ) …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………
197 ใบงานท่ี 7 เรือ่ ง การเขยี นโปรแกรมควบคมุ การทำงานของหุ่นยนต์ขนาดเลก็ วัตถุประสงค์ 1. เพอ่ื ใหผ้ ู้เรยี นมีความรู้ในการเขยี นโปรแกรมควบคมุ การทำงานของหุ่นยนต์ขนาดเล็กได้ 2. เพ่อื ใหผ้ ู้เรยี นสามารถต่อวงจรควบคมุ การทำงานของหนุ่ ยนต์ขนาดเลก็ ได้ บทนำ ในการควบคุมมอเตอร์แบบอัตโนมัติ สิ่งสำคัญที่ใช้ควบคุมแบบอัตโนมัติคือเซ็นเซอร์ในการ ตรวจจับ ซึ่งในการควบคุมนี้จะใช้เซ็นเซอร์ในการตรวจจับเส้น โดยลักษณะของเซ็นเซอร์แสดงดังรูปที่ 7.1 การ ทำงานของเซ็นเซอร์จะใชก้ ารสะท้อนกลับของแสงและตรวจสอบจบั เสน้ ท่สี ะท้อนกลบั มาใช้สำหรับควบคุม การทำงานของมอเตอร์ รูปท่ี 7.1 เซน็ เซอรส์ ำหรับตรวจจับเสน้ รูปท่ี 7.2 รายละเอยี ดขาเซน็ เซอร์สำหรับตรวจจับเส้น
198 อุปกรณ์การทดลอง 2 ตวั 1. มอเตอร์เกยี ร์แรงดันไฟฟ้ากระแสตรง 5 โวลต์ 1 อนั 2. บอรด์ ไมโครคอนโทรลเลอร์อาดยุ โน่ 2 อัน 3. เซน็ เซอร์ตรวจจบั เส้น 1 อัน 4. รางถ่านขนาด AA จำนวน 4 กอ้ น 1 อัน 5. บอร์ดขบั มอเตอร์ขนาดเล็กดว้ ยพัลส์ 4 ตวั 6. สวติ ช์แบบปุ่มกด 4 ตวั 7. ตวั ความต้านทานขนาด 1 กิโลโอห์ม 2 อนั 8. ลอ้ หนุ่ ยนต์ 1 อัน 9. ลอ้ ลาก 1 แผง 10. แผงต่อวงจร 11. สายตอ่ วงจร 12. สายยเู อสบี ขน้ั ตอนการทดลอง 1. เตรยี มวัสดแุ ละอุปกรณ์ใหพ้ ร้อม 2. ตรวจสอบสภาพต่าง ๆ ของอุปกรณ์ เช่น ลักษณะการทำงาน ความเรยี บรอ้ ย 3. ใหอ้ อกแบบและประกอบห่นุ ยนต์ตามรูปท่ี 7.3 รปู ที่ 7.4 และ รปู ท่ี 7.5 รปู ที่ 7.3 การประกอบอปุ กรณ์ดา้ นบน
199 รูปท่ี 7.4 การประกอบอุปกรณ์ด้านล่าง รูปท่ี 7.5 การประกอบอุปกรณด์ า้ นขา้ ง 4. ต่อวงจรตามรูปท่ี 7.6 แล้วทำการทดลองให้เปน็ ไปตามที่กำหนด
200 รปู ท่ี 7.6 การต่อวงจรควบคุมหุ่นยนต์แบบอัตโนมัติ 5. ออกแบบสนามสำหรบั ทดลองการเคล่ือนที่ของหนุ่ ยนต์ แสดงดังรูปท่ี 7.7 รปู ท่ี 7.7 รูปสนามสำหรับทดสอบห่นุ ยนต์
201 6. ทำการออกแบบโปรแกรมในการควบคมุ แล้วเขยี นคำสัง่ ของโปรแกรมท่ีสมบูรณ์ ลงในตาราง คำสงั่ และอัพโหลดโปรแกรมลงบอรด์ ไมโครคอนโทรลเลอรอ์ าดยุ โนท่ ดสอบการทำงาน และ สรปุ ผลการทดลอง คำสงั่ ในการควบคมุ ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………………………
202 สรุปผลการทดลอง ………………………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………………………………
203 คำถามท้ายการทดลอง ใหผ้ ู้เรยี นออกแบบโปรแกรมโดยมเี งือ่ นไขดังนี้ 1. ใหเ้ ขียนโปรแกรมควบคมุ โดยใช้เซน็ เซอรใ์ นการจบั วตั ถเุ พ่อื จับสีดำ โดยใหห้ นุ่ ยนตว์ ่งิ ถอยหลงั ตามเส้นสดี ำ 2. ให้โปรแกรมวนทำงานรอรบั การกดสวติ ชป์ ุม่ กดตามข้อ 1 ต่อเนือ่ งตลอดเวลา 3. ให้เขยี นคำสงั่ ทส่ี มบรู ณล์ งในตารางคำสัง่ คำส่ังในการควบคุม …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………..…………………………………
204 คำสัง่ ในการควบคมุ (ต่อ) …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………
205 ใบประเมินผลการปฏิบตั งิ าน วิชา ห่นุ ยนต์เบ้ืองต้น จำนวน 3 ชั่วโมง ช่ืองาน การเขยี นโปรแกรมควบคุมการทำงานของหนุ่ ยนต์เบ้อื งตน้ ลำดบั ที่ การประเมนิ ผล คะแนนเต็ม คะแนนท่ีได้ หมายเหตุ 1 กระบวนการปฏิบัติงาน 20 1.1 การปฏบิ ัตงิ านตามขั้นตอนที่กำหนดให้ 20 2 ผลการปฏบิ ตั ิงาน 60 2.1 ได้ขอ้ มูลครบถ้วนและถูกตอ้ ง 30 2.2 รูปภาพชดั เจน 30 3 กิจนสิ ัยในการปฏบิ ัติงาน 20 3.1 ส่งงานตรงต่อเวลา 10 3.2 ปฏบิ ัตงิ านด้วยความเรยี บร้อย 10 รวม 100 ชื่อ-สกลุ ………………………………………….ผ้เู รียน ลงชอ่ื …………………………………………ผู้สอน (……………………………………….) (…………………………………………) …….……/…………/…………
206 บรรณานุกรม ชชั วาล กาญหาญ. (1 พฤษภาคม 2560). บลูทธู คอื อะไร. https://sites.google.com/site/ kruchatchawalthoen/blu-thuth-khux-xari. ชัยวัฒน์ ลม้ิ พรจติ รวไิ ล. คมู่ อื นกั อเิ ล็กทรอนกิ ส์. กรงุ เทพมหานคร : ซีเอด็ ยเู คช่นั , 2538. ดอนสนั ปงผาบ . การเขียนโปรแกรมภาษาซใี นงานควบคุม. กรงุ เทพมหานคร : สมาคมส่งเสรมิ เทคโนโลยี(ไทย-ญีป่ นุ่ ), 2546. เทพพิทัย กำเพช็ ร และ วริ ิยะ กองรัตน์. 2555. เครอื่ งวดั อุณหภมู แิ บบไร้สาย. กรงุ เทพฯ : สถาบันเทคโนโลยพี ระจอมเกล้าเจา้ คณุ ทหารลาดกระบัง. บริษัท คอมโพแม็ก จำกดั . อัลตราโซนิค. [ออนไลน์]. เขา้ ถงึ ได้จาก : http://www.compomax.co.th/product/ultrasonic-theory/. สบื ค้นวนั ที่ 24 พฤศจิกายน 2557. บริษทั ไพรมสั จำกัด. โมดลู รีเลย.์ [ออนไลน์]. เข้าถึงไดจ้ าก : http://www.pm.co.th/index.php?lay=show&ac=article&Id= 539363487&Ntype=8. สบื ค้นวนั ท่ี 24 พฤศจิกายน 2557. ประสบสขุ ศรสี ว่างวงศ์. คอมพิวเตอร์เบื้องต้นและเทคนิคการออกแบบโปรแกรม. มหาสารคาม : สถาบันราชภฏั มหาสารคาม, 2537. เอกชยั มะการ. 2552. เรยี นรู้เขา้ ใจใช้งานไมโครคอนโทรลเลอรด์ ้วย Arduino. กรงุ เทพฯ : บรษิ ทั อีทีที จำกดั . Norman S. Nise. Control Systems Engineering. 3 ed. U.S.A. : John Wiley & Sons, 2000. Paolo Coletti, Basic Computer course book. 8 ed : Free University of Bolzano Bozen, 2016.
207 Refurbished laptops. USB [Online], Available HTTP : http://www.refurbished-laptops. biz/ laptop-ports.html. 2005. Hans-Petter Halvorsen, Introduction to LabVIEW. Department of Electrical Engineering Telemark University College, 2014.
208 แบบทดสอบหลงั เรียน หนว่ ยที่ 6 เรือ่ ง การเขยี นโปรแกรมควบคมุ การทำงานของห่นุ ยนตเ์ บ้ืองตน้ เวลา 45 นาที ------------------------------------------------------------------------- จงเลอื กคำตอบทส่ี ดุ เพียงข้อเดยี ว 1. บอรด์ ไมโครคอนโทรลเลอร์อาดยุ โน่ใช้ไมโครคอนโทรลเลอร์ตระกลู อะไร ก. ARA ข. PIC ค. ARR ง. AVR 2. ข้อใดเปน็ ข้อดขี องบอร์ดไมโครคอนโทรลเลอร์อาดยุ โน่ ก. เปดิ เผยดา้ นฮาร์ดแวรแ์ ละซอฟแวร์ ข. คนใช้จำนวนมาก ค. หาไดง้ ่าย ง. เขยี นโปรแกรมซับซ้อนไม่ได้ 3. ในการเขียนโปรแกรมโครงสร้างของโปรแกรมในการควบคุมไมโครคอลโทรลเลอร์จะมกี ี่สว่ น ก. 4 สว่ น ข. 3 สว่ น ค. 2 ส่วน ง. 1 ส่วน 4. ส่วนประกอบทใี่ ชส้ ำหรบั ตั้งค่าเรียกส่วนนนั้ ว่า ก. void loop ( ) ข. void setup ( ) ค. void temp ( ) ง. void looper( ) 5. ส่วนประกอบทใ่ี ช้สำหรบั การเขียนโปรแกรมและมีการวนทำงานตลอดเวลาเรยี กสว่ นนั้นวา่ ก. void loop ( ) ข. void setup ( ) ค. void temp ( ) ง. void looper( )
209 6. จากคำส่ัง #define LED 13 หมายถงึ อะไร ก. กำหนดคา่ ให้ LED เทา่ กับ 13 ข. กำหนดค่าให้ LED ตำแหนง่ ที่ 13 ค. ประกาศตวั แปรช่ือ LED เท่ากับ 13 ง. ประกาศตวั แปรชอ่ื LED ตำแหน่งที่ 13 7. คำสง่ั ข้นึ ตน้ ในการเรยี กใชไ้ ลบราร่ีเปน็ คำส่งั ใด ก. #void< > ข. #include< > ค. #define< > ง. #setup< > 8. คำสงั่ ชนดิ ใดเปน็ การต้งั การเป็นอนิ พุตและเอาต์พตุ ก. pinMode( ) ข. digitalWrite( ) ค. digitalRead( ) ง. delay( ) 9. คำสง่ั ชนิดใดเปน็ การสง่ ค่าออกทางเอาต์พุต ก. digitalRead( ) ข. digitalWrite( ) ค. pinMode( ) ง. delay( ) 10. คำสงั่ ชนิดใดเป็นการอ่านคา่ มาจากอนิ พุต ก. digitalRead( ) ข. digitalWrite( ) ค. pinMode( ) ง. delay( )
210 11. คำสัง่ ชนดิ ใดเป็นการตงั้ ค่าการหนว่ งเวลา ก. delay( ) ข. digitalWrite( ) ค. digitalRead( ) ง. pinMode( ) 12. การหนว่ งเวลาค่าท่ีกำหนดมหี นว่ ยเปน็ อะไร ก. วนิ าที ข. มลิ ลิวนิ าที ค. ไมโครวนิ าที ง. นาโนวินาที 13. คำสงั่ ชนดิ ใดเป็นการอา่ นคา่ สัญญาณแอนะล็อกจากอนิ พตุ ก. analogRead( ) ข. analogWrite( ) ค. digitalWrite( ) ง. digitaRead( ) 14. คำส่ังชนดิ ใดเปน็ การส่งค่าแอนะลอ็ กไปยงั เอาต์พตุ ก. analogRead( ) ข. analogWrite( ) ค. digitalWrite( ) ง. digitalRead( ) 15. ในการประกาศตวั แปรเปน็ ชนิดตวั เลขจำนวนเตม็ จะต้องใช้คำส่งั ใด ก. float ข. char ค. int ง. byte 16. ในการประกาศตัวแปรเปน็ ตัวเลขทศนยิ มจะต้องใชค้ ำสั่งใด ก. byte ข. int ค. char ง. float
211 17. ในการประกาศตัวแปรเป็นชนิดบิตจะต้องใชค้ ำสัง่ ใด ก. float ข. char ค. int ง. byte โปรแกรม ใชต้ อบคำถามข้อ 18-20 void setup() { pinMode(13, 1 ); } void loop() { digitalWrite(13, 2 ); delay(1000); digitalWrite(13, 3 ); delay(1000); } 18. จากโปรแกรมตำแหน่งหมายเลข 1 เปน็ คำสงั่ ใด ก. HIGH ข. LOW ค. INPUT ง. OUTPUT 19. จากโปรแกรมตำแหนง่ หมายเลข 2 เป็นคำสัง่ ใด ก. LOW ข. HIGH ค. OUTPUT ง. INPUT
212 20. จากโปรแกรมตำแหนง่ หมายเลข 2 เปน็ คำสั่งใด ก. LOW ข. HIGH ค. OUTPUT ง. INPUT รูปใชต้ อบคำถามข้อ 21 – 23 21. จากรปู ตำแหนง่ ที่ 1 มีหนา้ ท่ีอะไร ก. ปุ่มสำหรับการอัพโหลดโปรแกรม ข. ปุ่มสำหรบั การเปิดจอมอนเิ ตอร์ในการสื่อสารในพอรต์ ค. เปน็ ปมุ่ สำหรบั การตรวจสอบคำสั่งในโปรแกรม ง. ปุ่มสำหรบั เปดิ โปรแกรมทม่ี ีการบนั ทึกไว้ 22. จากรูปตำแหน่งที่ 2 มหี นา้ ท่ีอะไร ก. เปน็ ปุ่มสำหรบั การตรวจสอบคำส่งั ในโปรแกรม ข. ปมุ่ สำหรับการเปดิ จอมอนเิ ตอรใ์ นการสื่อสารในพอรต์ ค. ปมุ่ สำหรบั การอัพโหลดโปรแกรม ง. ปุ่มสำหรับเปดิ โปรแกรมทมี่ กี ารบันทึกไว้ 23. จากรปู ตำแหนง่ ที่ 2 มีหน้าที่อะไร ก. ปุม่ สำหรับการเปิดจอมอนเิ ตอรใ์ นการส่ือสารในพอรต์ ข. เป็นปมุ่ สำหรับการตรวจสอบคำสั่งในโปรแกรม ค. ปุ่มสำหรับการอัพโหลดโปรแกรม ง. ปมุ่ สำหรบั เปิดโปรแกรมทมี่ ีการบนั ทึกไว้
213 24. การตอ่ สวติ ชใ์ นการควบคุมโดยขาของสวติ ช์จะตอ่ อย่กู บั แหล่งจ่ายไฟบวกเสมอเป็นการต่อลกั ษณะใด ก. Pull down ข. Pull up ค. Pull setup ง. Pull drop 25. การตอ่ สวติ ชใ์ นการควบคมุ โดยขาของสวติ ช์จะต่ออยู่กับแหลง่ จา่ ยไฟลบเสมอเปน็ การตอ่ ลักษณะใด ก. Pull down ข. Pull up ค. Pull setup ง. Pull drop โปรแกรมใช้ตอบคำถามข้อท่ี 26 - 30
214 26. จากโปรแกรมตำแหน่งที่ 1 จะเปน็ คำส่งั อะไร จ. INPUT ฉ. digitalRead ช. LOW ซ. 2 27. จากโปรแกรมตำแหนง่ ที่ 2 จะเป็นคำสั่งอะไร ก. INPUT ข. digitalRead ค. LOW ง. 2 28. จากโปรแกรมตำแหนง่ ที่ 3 จะเป็นคำส่ังอะไร ก. INPUT ข. digitalRead ค. LOW ง. 2 29. จากโปรแกรมตำแหนง่ ที่ 4 จะเป็นคำส่ังอะไร ก. INPUT ข. digitalRead ค. LOW ง. 2 30. จากโปรแกรมตำแหน่งท่ี 5 จะเปน็ คำสั่งอะไร ก. INPUT ข. digitalRead ค. LOW ง. 2
215 ข้อแนะนำการเตรียมสอื่ การสอน เตรยี มเคร่อื งมืออุปกรณ์ในการใช้ส่ือ 1. เครอ่ื งคอมพิวเตอร์ พร้อมโปรแกรม Microsoft PowerPoint 2017 ขนึ้ ไป 2. เครอ่ื งฉายโปรเจคเตอร์และจอรบั ภาพมขี นาดเหมาะสมกับหอ้ งเรยี นจำนวน 20-40 คน 3. สอ่ื ภาพประกอบ วิธกี ารใช้งานสอ่ื การสอน วิธใี ช้ส่อื Power Point และภาพเคลื่อนไหว 1. นำคอมพิวเตอรต์ อ่ เขา้ กับเคร่อื งฉายโปรเจกเตอร์ 2. เปิดโปรเจกเตอรแ์ ละคอมพวิ เตอร์ ตรวจสอบสัญญาณ 3. เปิดโปรแกรมที่ใช้ Microsoft PowerPoint 4. เปดิ ไฟลท์ จี่ ะใชป้ ระกอบการสอน หน่วยท่ี 1 เร่อื งเครอ่ื งเลอ่ื ยกลและงานเลื่อย 5. ทำการคล๊ิกเมาส์ หรือ Pointer (ถ้ามี) เพอื่ นำเสนอประกอบการสอน จนจบ 6. ปดิ โปรเจกเตอร์ ปดิ โปรแกรม ปดิ คอมพวิ เตอร์ ขอ้ ควรระวงั รอใหโ้ ปรเจกเตอรเ์ ยน็ กอ่ นคอ่ ยดึงปลั๊กออกโดยสังเกตจากพัดลมหยุดหมุน
216 ตัวอย่างสื่อนำเสนอ หนว่ ยท่ี 6 เร่อื ง การเขยี นโปรแกรมควบคมุ การทำงานของหุ่นยนต์เบ้ืองตน้
217 ภาคผนวก 1. เฉลยแบบฝึกหัดท้ายหนว่ ย 2. เฉลยใบงาน 3. เกณฑ์การใหค้ ะแนนภาคปฏบิ ตั ิ 4. เฉลยแบบทดสอบก่อนเรียน 5. เฉลยแบบทดสอบหลังเรยี น 6. แบบสังเกตพฤติกรรมการเรียนรูร้ ายบคุ คล 7. แบบสงั เกตพฤตกิ รรมการเข้าร่วมกิจกรรมกล่มุ 8. แบบประเมนิ การนำเสนอผลงานรายบคุ คล 9. แบบประเมินคณุ ลกั ษณะอนั พึงประสงค์
218 เฉลยแบบฝกึ หัดทา้ ยหนว่ ย หน่วยท่ี 6 เรื่อง การเขยี นโปรแกรมควบคุมการทำงานของหุ่นยนต์เบอ้ื งตน้ ------------------------------------------------------------------------- จงตอบคำถามให้ถูกตอ้ ง 1. จงใหค้ วามหมายของบอร์ดไมโครคอนโทรลเลอร์อาดยุ โนอ่ ย่างละเอยี ด ตอบ เป็นบอร์ดไมโครคอนโทรเลอร์ตระกูล AVR ที่มีการพัฒนาทั้งด้านฮาร์ดแวร์และซอฟแวร์แบบ เปิดเผยข้อมูล (Open source) โดยตัวฮาร์ดแวร์ใช้งานง่ายและราคาไม่แพง ด้านซอฟแวร์จะเป็น คำสัง่ ทงี่ ่ายต่อการใชง้ านสามารถพัฒนาไดต้ ง้ั แตเ่ รม่ิ ตน้ จนถึงซับซ้อนได้ 2. จงบอกสว่ นประกอบโครงสรา้ งของการเขยี นโปรแกรมควบคุมบอร์ดไมโครคอนโทรลเลอร์อาดยุ โน่ ตอบ ในการเขยี นโปรแกรมควบคมุ บอรด์ ไมโครคอนโทรลเลอรอ์ าดยุ โน่ โครงสร้างของโปรแกรม ประกอบไปดว้ ยส่วนหลักจำนวน 2 สว่ น ส่วนของ void setup เป็นสว่ นในการตงั้ ค่าต่าง ๆ ในการเขียนโปรแกรม เชน่ การตัง้ คา่ ขาเป็น อินพุต หรือเอาทพ์ ุต เปน็ ตน้ ส่วนของ void loop เป็นส่วนใชส้ ำหรับการเขยี นโปรแกรมควบคุมโดยจะเปน็ การวนทำคำส่งั ซำ้ ตลอดเวลา 3. จงบอกลักษณะของการประกาศตวั แปรชนดิ Byte ตอบ ไบต์(byte) เปน็ ตวั แปรท่ีเปน็ ตัวเลข ขนาด 8 บิต โดยตัวเลขอยู่ในชว่ ง 0 – 255 4. จงบอกลักษณะของการประกาศตวั แปรชนดิ int ตอบ int ย่อมาจาก Integers เป็นตัวแปรสำหรับเก็บข้อมูลที่เป็นข้อมูลตัวเลขจำนวนเต็มมีค่าอยู่ ในชว่ ง 32,767 ถึง -32,768 5. จงบอกลักษณะของการประกาศตวั แปรชนดิ long ตอบ long ยอ่ มาจาก long integers เปน็ ตัวแปรชนิดตวั เลขจำนวนเต็ม ขนาด 32 บิต มคี ่าอยู่ ในชว่ ง 2,147,483,647 ถึง -2,147,483,648 6. จงบอกลักษณะของการประกาศตวั แปรชนิด float ตอบ float เป็นตวั แปรชนิดตวั เลขขนาด 32 บิต ทีแ่ สดงค่าเปน็ จดุ ทศนิยม ท่มี ีคา่ อยู่ในชว่ ง 3.4028235 ×1038 ถึง -3.4028235 ×1038
219 7. จงบอกลักษณะของการประกาศตวั แปรชนิด char ตอบ Char เป็นตวั แปรประเภทขอ้ มลู ทใ่ี ช้สำหรับเกบ็ ตัวอักษรจำนวนหนึง่ ตัวอักษรใน ASCII 8. จงบอกลักษณะของการประกาศตัวแปรชนดิ arrays ตอบ อาร์เรย์(arrays) คือ ชุดของตัวแปรที่มีการเรียกใช้ที่มจี ำนวนคา่ ต่างกัน ค่าท่ีประกาศก่อนจะถูก นำไปใชเ้ ปน็ ตัวแรก 9. จงบอกลักษณะของคำสั่ง if ตอบ คำส่ัง if เป็นคำส่ังท่ีใชส้ ำหรบั กำหนดเง่ือนไขโดยการนำหลกั การทางคณิตศาสตรเ์ ข้ามาช่วย ดว้ ยการใชต้ ัวดำเนนิ การเข้ามากำหนดเงื่อนไข 10. จงบอกลักษณะของคำสงั่ if - else ตอบ คำสง่ั if-else เป็นคำส่ังทใี่ ช้ให้การกำหนดเงื่อนไขและสามารถเลือกเงือ่ นไขได้ 11. จงบอกลักษณะของคำสง่ั while ตอบ คำสง่ั while เป็นคำสง่ั ทีใ่ ชใ้ นการกำหนดเงื่อนไข และตรวจสอบเง่ือนไขในการทำงานว่าเปน็ ไป ตามทก่ี ำหนดหรือไม่ 12. จงบอกลักษณะของคำสั่ง do…while ตอบ คำส่งั do…while เป็นคำสั่งทใี่ ชใ้ นการกำหนดเง่ือนไข จะทำงานตามชุดคำส่งั ที่ 1 แตเ่ ม่อื ตรวจสอบว่าชดุ คำสั่งที่ 1 ไมเ่ ป็นความจริงกจ็ ะขา้ มไปทำชุดคำสงั่ ท่ี 2 ตอ่ ไป 13. จงบอกลักษณะของคำส่งั for ตอบ คำสง่ั for เป็นคำสงั่ วนซ้ำเพื่อตรวจสอบเงื่อนไข จะหยุดทำงานเมื่อเงื่อนไขเป็นจรงิ 14. จงบอกลักษณะของคำสั่ง Series ตอบ คำสั่ง Series เป็นคำสั่งที่ใช้ในการติดต่อกับพอร์ตเพือ่ แสดงข้อมูลที่มีการส่ือสารในการรับและ การสง่ ข้อมลู ในตัวโปรแกรม
220 เฉลย ใบงานท่ี 2 เรอื่ ง การเขียนโปรแกรมควบคุมหลอดแอลอีดี วตั ถุประสงค์ 1. เพ่ือให้ผเู้ รียนมีความร้ใู นการเขียนโปรแกรมควบคมุ หลอดแอลอีดี 2. เพอ่ื ใหผ้ เู้ รยี นสามารถต่อวงจรการควบคุมหลอดแอลอีดีได้ บทนำ การเขียนโปรแกรมควบคุมหลอดอแอลอีดี จะใชบ้ อรด์ ไมโครคอลโทรลเลอรอ์ าดยุ โน่ รนุ่ UNO R3 โดยการทำงาน บอร์ดไมโครโทรลเลอร์อาดุยโน่ จะส่งสัญญาณออกไปยังเอาท์พตุ เพ่ือใช้ในการควบคุมการ ตดิ ดบั ของหลอดแอลอีดี ซึง่ คำสั่งทใี่ ชใ้ นการใชง้ านมดี งั นี้ คำสั่ง pinMode(ขาท่ใี ชง้ าน,สถานะ) เปน็ คำส่งั ท่ีใช้สำหรับตัง้ ค่าให้เป็นอินพตุ หรอื เอาท์พตุ คำส่ัง digitalWrite(ขาทใ่ี ช้งาน,สถานะ) เป็นคำส่งั ที่ใช้สำหรบั การสง่ ค่าไปยงั เอาทพ์ ุต คำสัง่ delay(เวลาหนว่ ยเปน็ มิลลวิ ินาที) คำสงั่ delay( ) เปน็ คำสง่ั ที่ใชส้ ำหรบั การหนว่ งเวลาใน การทำงาน ซึ่งคำสั่งดังกล่าวจะเป็นการนำไปใช้ในการประยุกต์ใช้ในการเขียนโปรแกรมควบคุมบอร์ ดไมโคร คอลโทรลเลอร์ในการควบคมุ หลอดแอลอดี ีต่อไป อุปกรณ์การทดลอง 1 อนั 1. บอรด์ ไมโครคอนโทรลเลอร์อาดุยโน่ 2 หลอด 2. หลอดแอลอีดี 2 ตวั 3. ตวั ความตา้ นทานขนาด 220 โอห์ม 1 แผง 4. แผงตอ่ วงจร 5. สายต่อวงจร 6. สายยเู อสบี ขน้ั ตอนการทดลอง 1. เตรียมวสั ดุและอุปกรณ์ให้พร้อม 2. ตรวจสอบสภาพต่าง ๆ ของอุปกรณ์ เชน่ ลักษณะการทำงาน ความเรยี บรอ้ ย 3. ตอ่ วงจรตามรูปที่ 2.1 แล้วทำการทดลองให้เป็นไปตามทกี่ ำหนด
221 รปู ที่ 2.1 การต่อวงจรควบคุมหลอดแอลอดี ี 4. ทำการออกแบบโปรแกรมในการควบคุมใหเ้ ขยี นโปรแกรมควบคุมหลอดแอลอดี โี ดยให้มีการ ติด 2 วินาที และดับ 1 วินาที สลับกันทำงานตลอดเวลา และให้เขียนคำสั่งของโปรแกรมที่สมบูรณ์ ลงใน ตารางคำส่ัง และอัพโหลดโปรแกรมลงบอร์ดไมโครคอนโทรลเลอร์อาดุยโน่ทดสอบการทำงาน และสรุปผล การทดลอง คำสงั่ ในการควบคมุ void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(2000); digitalWrite(13, LOW); delay(1000); }
222 สรปุ ผลการทดลอง จ า ก ก า ร ท ด ล อ ง เ ป ็ น ก า ร เ ข ี ย น โ ป ร แ ก ร ม ค ว บ ค ุ ม แ อ ล อ ี ด ี ด ้ ว ย ก า ร ส ั ่ ง ต ร ง จ า ก บ อ ร์ ด ไมโครคอนโทรลเลอร์อาดุยโน่และจากควบคมุ ผ่านปุ่มกด โดยการควบคุมโดยตรงจะมเี ป็นการส่ังให้หลอด แอลอีดีตดิ สว่าง 2 วนิ าที และดับ 1 วินาที การทำงานจะวนทำเชน่ น้ไี ปตลอด
223 คำถามท้ายการทดลอง ให้ผ้เู รยี นออกแบบโปรแกรมโดยมีเงอ่ื นไขดังน้ี 7. กำหนดใหข้ า 12 ของบอร์ดอาดุยโน่ต่อกบั หลอดแอลอีดสี ีแดง 8. กำหนดใหข้ า 13 ของบอร์ดอาดุยโน่ต่อกบั หลอดแอลอีดสี ีเขียว 9. ให้เขียนโปรแกรมในการควบคุมโดยให้หลอดสแี ดงติด 3 วนิ าที และดับ 1 วินาที 10. ลำดับถัดมาใหห้ ลอดสเี ขยี วติด 4 วินาที และดบั 1 วินาที 11. โปรแกรมวนทำงานตามข้อ 3 และข้อ 4 ตอ่ เน่ืองตลอดเวลา 12. ใหเ้ ขยี นคำสง่ั ที่สมบูรณล์ งในตารางคำสั่ง คำส่งั ในการควบคุม void setup() { pinMode(12, OUTPUT); pinMode(13, OUTPUT); } void loop() { digitalWrite(12, HIGH); delay(3000); digitalWrite(12, LOW); delay(1000); digitalWrite(13, HIGH); delay(4000); digitalWrite(13, LOW); delay(1000); }
224 ใบงานที่ 3 เรอ่ื ง การเขยี นโปรแกรมปมุ่ กดควบคมุ หลอดแอลอีดี วตั ถปุ ระสงค์ 1. ผเู้ รียนสามารถใช้คำสั่งในการเขยี นโปรแกรมใชง้ านไดถ้ ูกตอ้ ง 2. ผเู้ รียนสามารถประยกุ ต์การเขียนโปรแกรมใช้งานไดถ้ ูกต้อง บทนำ การเขียนโปรแกรมปุ่มกดควบคมุ หลอดอแอลอดี ี จะใช้บอร์ดไมโครคอลโทรลเลอรอ์ าดยุ โน่ รนุ่ UNO R3 โดยการทำงานบอร์ดไมโครโทรลเลอร์อาดุยโน่ จะรบั สญั ญาณแอนาล็อกจากปมุ่ กดไปควบคมุ เอาท์พุตเพ่อื ใช้ในการควบคุมการตดิ ดับของหลอดแอลอดี ี ซ่งึ คำสง่ั ท่ีใชใ้ นการใช้งานมีดังน้ี คำส่ัง pinMode(ขาท่ีใช้งาน,สถานะ) เป็นคำส่ังทใ่ี ช้สำหรับตัง้ คา่ ให้เป็นอินพตุ หรอื เอาท์พุต คำสั่ง digitalWrite(ขาที่ใชง้ าน,สถานะ) เป็นคำสงั่ ทีใ่ ช้สำหรบั การสง่ ค่าไปยังเอาท์พตุ คำสั่ง digitalRead(ขาทีใ่ ชง้ าน) เปน็ คำสั่งทใ่ี ชส้ ำหรับการอ่านคา่ จากอินพุต คำสง่ั analogRead(ขาท่ีใช้งาน) เป็นคำสง่ั ท่ีใช้สำหรับการอ่านคา่ จากอนิ พตุ คำส่ัง analogWrite(ขาทใี่ ชง้ าน) เปน็ คำสัง่ ทใ่ี ช้ในการสง่ คา่ ท่ีเป็นสัญญาณแอนะล็อก ในการต่อสวิตชแ์ บบปมุ่ กดจะมีลักษณะการต่อ 2 แบบ คอื การตอ่ แบบ pull up เป็นลักษณะการเชื่อมต่อกบั สัญญาณท่ีเปน็ ไฟบวกตลอดเวลา แตเ่ มอื่ มกี ารกดป่มุ สวติ ช์จะเปลยี่ นเปน็ สัญญาณไฟลบ การตอ่ แบบ pull down เปน็ ลกั ษณะการเชื่อมต่อกับสญั ญาณท่ีเปน็ ไฟลบ ตลอดเวลา แต่เม่ือมีการกดปุ่มสวิตช์จะเปลีย่ นเป็นสญั ญาณไฟบวก VCC VCC R S MCU MCU S R GND GND Pull-Up Pull-Down รปู ท่ี 3.1 การต่อ pull up และ pull down
225 อุปกรณ์การทดลอง 1 อนั 1. บอรด์ ไมโครคอนโทรลเลอรอ์ าดยุ โน่ 2 หลอด 2. หลอดแอลอดี ี 2 ตวั 3. ตวั ความต้านทานขนาด 220 โอห์ม 2 ตวั 4. ตวั ความต้านทานขนาด 1 กิโลโอหม์ 2 ตวั 5. สวิตช์ปมุ่ กด 1 แผง 6. แผงต่อวงจร 7. สายตอ่ วงจร 8. สายยเู อสบี ขน้ั ตอนการทดลอง 1. เตรียมวัสดแุ ละอุปกรณ์ให้พร้อม 2. ตรวจสอบสภาพต่าง ๆ ของอุปกรณ์ เชน่ ลกั ษณะการทำงาน ความเรียบร้อย 3. ต่อวงจรตามรปู ที่ 3.2 โดยกำหนดให้ ขาท่ี 1 เปน็ ขาสำหรบั รบั สญั ญาณอนิ พตุ จากสวติ ช์ ป่มุ กด และใหข้ าที่ 13 เป็นขาเอาต์พตุ สำหรบั ควบคุมหลอดแอลอดี ี รปู ที่ 3.2 การต่อวงจรปุม่ กดควบคมุ หลอดแอลอีดี 4. ทำการออกแบบโปรแกรมในการควบคุม ให้เขียนโปรแกรมปุ่มกดควบคุมหลอดแอลอดี ี โดย เม่ือ
226 มีการกดปุ่มจะทำให้หลอดแอลอีดีติดและเมื่อปล่อยมือจากปุ่มกดหลอดแอลอีดีจะดับ และให้เขียนคำส่ัง ของโปรแกรมที่สมบูรณ์ ลงในตารางคำสัง่ และอัพโหลดโปรแกรมลงบอร์ดไมโครคอนโทรลเลอรอ์ าดุยโน่ ทดสอบการทำงาน และสรปุ ผลการทดลอง คำสัง่ ในการควบคุม int button = 0; // ประกาศตัวแปรชนิดตัวเลขจำนวนเต็มโดยให้มคี ่าเริ่มต้นท่ี 0 void setup() { pinMode(1, INPUT); // รบั ค่า pinMode(13, OUTPUT); // หลอด LED } void loop() { button = digitalRead(1); //ต้งั ค่าให้ตวั แปรชือ่ button รับค่าสัญญาณดิจิทัล จากขา 1 if (button == LOW) //ตรวจสอบว่าตวั แปร button ถ้ามคี ่าเท่ากับ HIGH (1) ให้ทำตามเงอื่ นไขใน วงเล็บปีกกา { digitalWrite(13, HIGH); } else //ถา้ ตรวจแปร button มคี า่ ไม่เทา่ กับ HIGH (1) ใหท้ ำตามเงื่อนไขในวงเล็บปีกกา { digitalWrite(13, LOW); } } สรุปผลการทดลอง จากการทดลองเป็นการเขียนโปรแกรมสวิตช์ปุ่มกดควบคุมหลอดแอลอีดี โดยการทำงานเมื่อทำ การเขียนโปรแกรมและต่อวงจรควบคุมและตรวจสอบความถูกต้องเป็นที่เรียบร้อย ทำการอัพ โหลดโปรแกรมลงบอร์ดไมโครคอนโทรลเลอร์ ทดลองการทำงานโดยเมือ่ กดสวิตช์ปุ่มกดจะทำให้ หลอดแอลอดี ตี ดิ และเม่อื ปลอ่ ยมือจะทำให้หลอดแอลอดี ดี ับ และวนทำงานตลอดไป
227 คำถามทา้ ยการทดลอง ใหผ้ ้เู รยี นออกแบบโปรแกรมโดยมเี งอ่ื นไขดังน้ี 1. กำหนดให้ขา 1 ของบอรด์ อาดุยโน่ รับสญั ญาณจากสวิตชป์ ุ่มกดท่ี 1 2. กำหนดให้ขา 2 ของบอรด์ อาดุยโน่ รบั สญั ญาณจากสวิตช์ปุ่มกดที่ 2 3. กำหนดใหข้ า 12 ของบอร์ดอาดุยโน่ต่อกับหลอดแอลอดี ีสีเขยี ว 4. กำหนดใหข้ า 13 ของบอร์ดอาดยุ โน่ตอ่ กับหลอดแอลอดี ีสีแดง 5. ให้เขียนโปรแกรมในการควบคุมโดยเมื่อกดปุ่มกดท่ี 1 ทำใหห้ ลอดแอลอดี ีสเี ขียวติด และเมื่อปลอ่ ยมอื หลอดแอลอีดสี ีเขียวจะดบั 6. ใหเ้ ขยี นโปรแกรมในการควบคมุ โดยเมอ่ื กดปุ่มกดที่ 2 ทำใหห้ ลอดแอลอีดสี แี ดงติด และเม่ือปล่อยมือหลอดแอลอีดสี ีแดงจะดบั 7. โปรแกรมวนทำงานรอรับการกดสวติ ช์ปุ่มกดตามข้อ 5 และขอ้ 6 ต่อเนื่อง ตลอดเวลา 8. ใหเ้ ขียนคำสั่งที่สมบูรณ์ลงในตารางคำสัง่ คำสงั่ ในการควบคมุ int button1 = 0; int button2 = 0; void setup() { pinMode(1, INPUT); // รับค่า pinMode(2, INPUT); // รับคา่ pinMode(12, OUTPUT); // หลอด LED pinMode(13, OUTPUT); // หลอด LED } void loop() { button1 = digitalRead(1); button2 = digitalRead(2); if (button1 == LOW) { digitalWrite(12, HIGH);
228 } if (button2 == LOW) { digitalWrite(13, HIGH); } else { digitalWrite(12, LOW); digitalWrite(13, LOW); } }
229 ใบงานท่ี 4 เรอ่ื ง การควบคุมทิศทางหนุ่ ยนตข์ นาดเล็ก วตั ถุประสงค์ 1. เพ่ือใหผ้ ู้เรยี นมีความรู้ในการเขียนโปรแกรมควบคมุ ทิศทางหุ่นยนตข์ นาดเล็ก 2. เพ่ือใหผ้ เู้ รยี นสามารถตอ่ วงจรการควบคุมทิศทางหนุ่ ยนต์ขนาดเลก็ ได้ บทนำ การควบคุมด้วยไมโครคอนโทรลเลอร์เป็นทางเลือกที่นิยมมากในปัจจุบันเพราะสามารถควบคุม ด้วยการเขียนโปรแกรมในการควบคุมสามารถแก้ไขได้ด้วยปรับปรุงโปรแกรม โดยในการควบคุมด้วย ไมโครคอนโทรลเลอร์น้ี จะใชไ้ มโครคอนโทรลเลอร์อาดุยโนเ่ ป็นตวั ควบคุมผ่านบอร์ดขับมอเตอร์ที่ใช้กำเนิด พัลสใ์ นการควบคุมมอเตอร์ บอร์ดที่ใช้ขับมอเตอร์จะเป็นบอร์ดขนาดเล็กสร้างสัญญาณพัลส์ (PWM) MX1508 พัลส์ (Pulse Width Modulation, PWM) เป็นสัญญาณรูปคลื่นสี่เหลี่ยมที่ใช้ในการควบคุมความเร็วของมอเตอร์ ลักษณะของคล่นื พัลส์แสดงดังรปู ท่ี 5.1 โดยเม่ือมีการการปรับค่าของพัลสใ์ หม้ ีค่าความกว้างมากมอเตอร์ก็ จะหมุนเรว็ และในทางตรงกันข้ามถา้ ปรับคา่ ความกวา้ งของพลั ส์ในแคบมอเตอร์ก็จะหมนุ ช้า ลักษณะของ บอร์ดขบั มอเตอรข์ นาดเลก็ แสดงดงั รูปที่ 3.20 รูปท่ี 4.1 รปู คลืน่ สัญญาณพัลส์ส่ีเหล่ยี ม
230 รปู ที่ 4.2 บอรด์ ขับมอเตอร์ขนาดเล็กด้วยพัลส์ MX1508 ท่มี า : https://www.arduitronics.com/product/ อปุ กรณ์การทดลอง 2 ตวั 1. มอเตอร์แรงดนั ไฟฟา้ กระแสตรง 5 โวลต์ 1 อัน 2. บอรด์ ไมโครคอนโทรลเลอร์อาดุยโน่ 1 อัน 3. บอรด์ ขับมอเตอรข์ นาดเล็กด้วยพลั ส์ 2 ตวั 4. สวติ ช์แบบปมุ่ กด 2 ตวั 5. ตัวความต้านทานขนาด 1 กิโลโอหม์ 1 แผง 6. แผงต่อวงจร 7. สายตอ่ วงจร 8. สายยูเอสบี ขนั้ ตอนการทดลอง กิจกรรมที่ 1 การควบคุมมอเตอร์เลี้ยวซา้ ยด้วยสวติ ชป์ ุม่ กด 1. เตรยี มวัสดแุ ละอุปกรณ์ให้พร้อม 2. ตรวจสอบสภาพต่าง ๆ ของอุปกรณ์ เช่น ลกั ษณะการทำงาน ความเรียบรอ้ ย 3. ตอ่ วงจรตามรปู ท่ี 4.1 แลว้ ทำการทดลองใหเ้ ป็นไปตามท่ีกำหนด
231 รปู ท่ี 4.3 การต่อวงจรควบคุมมอเตอรใ์ นการเลยี้ ว 4. ทำการออกแบบโปรแกรมในการควบคมุ แล้วเขยี นคำสัง่ ของโปรแกรมท่ีสมบูรณ์ ลงในตาราง คำสงั่ และอพั โหลดโปรแกรมลงบอร์ดไมโครคอนโทรลเลอร์อาดยุ โนท่ ดสอบการทำงาน และ สรุปผลการทดลอง คำสั่งในการควบคมุ // ประกาศตวั แปรชอ่ื buttonPin ให้มีคา่ เท่ากับ 1 // ประกาศตวั แปรชือ่ buttonPin ใหม้ ีค่าเทา่ กับ 1 const int buttonPin1 = 1; // ประกาศตัวแปรช่ือ buttonState ให้มีคา่ เท่ากับ 0 const int buttonPin2 = 2; // ประกาศตัวแปรชื่อ buttonState ให้มคี ่าเทา่ กบั 0 int buttonState1 = 0; //ตั้งค่าตัวแปร ledPin มสี ถานะเปน็ เอาต์พตุ int buttonState2 = 0; //ตงั้ ค่าตวั แปร ledPin มีสถานะเปน็ เอาต์พตุ void setup() //ตั้งคา่ ตวั แปร ledPin มสี ถานะเป็นเอาต์พตุ { pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT);
232 pinMode(13, OUTPUT); //ตัง้ ค่าตัวแปร ledPin มีสถานะเปน็ เอาต์พตุ pinMode(buttonPin1, INPUT); //ตัง้ ค่าตวั แปร buttonPin1 มสี ถานะเปน็ อินพุต pinMode(buttonPin2, INPUT); //ตง้ั คา่ ตวั แปร buttonPin2 มีสถานะเปน็ อนิ พุต } void loop() { buttonState1 = digitalRead(buttonPin1); //อ่านค่าสถานะจากตัวแปร buttonPin1 if (buttonState1 == HIGH) //ตรวจสอบสถานะตวั แปร buttonState { digitalWrite(10,LOW); //ส่งค่าให้ตัวแปร ledPin มีสถานะเปน็ HIGH digitalWrite(11,LOW); digitalWrite(12,HIGH); //สง่ คา่ ใหต้ วั แปร ledPin มีสถานะเป็น HIGH digitalWrite(13,LOW); } if (buttonState1==LOW) { digitalWrite(10,LOW); digitalWrite(11,LOW); //สง่ ค่าใหต้ วั แปร ledPin มีสถานะเป็น LOW digitalWrite(12,LOW); digitalWrite(13,LOW); //สง่ คา่ ใหต้ วั แปร ledPin มีสถานะเปน็ LOW } } กจิ กรรมที่ 2 การควบคมุ มอเตอร์เล้ียวขวาด้วยสวติ ชป์ ่มุ กด 1. เตรียมวสั ดแุ ละอปุ กรณ์ใหพ้ ร้อม 2. ตรวจสอบสภาพต่าง ๆ ของอุปกรณ์ เชน่ ลกั ษณะการทำงาน ความเรียบรอ้ ย 3. ต่อวงจรตามรปู ท่ี 4.4 แล้วทำการทดลองใหเ้ ปน็ ไปตามทกี่ ำหนด
233 รปู ท่ี 4.4 การต่อวงจรควบคุมมอเตอรใ์ นการขวา 4. ทำการออกแบบโปรแกรมในการควบคุมแล้วเขยี นคำสงั่ ของโปรแกรมที่สมบูรณ์ ลงในตาราง คำสงั่ และอัพโหลดโปรแกรมลงบอร์ดไมโครคอนโทรลเลอร์อาดุยโนท่ ดสอบการทำงาน และสรุปผล การทดลอง คำสงั่ ในการควบคุม // ประกาศตวั แปรชอ่ื buttonPin ให้มีค่าเทา่ กับ 1 // ประกาศตวั แปรชอื่ buttonPin ใหม้ ีค่าเท่ากบั 1 const int buttonPin1 = 1; // ประกาศตัวแปรชอื่ buttonState ให้มีคา่ เท่ากับ 0 // ประกาศตัวแปรชื่อ buttonState ให้มีค่าเทา่ กบั 0 const int buttonPin2 = 2; //ต้ังค่าตัวแปร ledPin มสี ถานะเป็นเอาต์พตุ int buttonState1 = 0; int buttonState2 = 0; void setup() { pinMode(10, OUTPUT);
234 pinMode(11, OUTPUT); //ตง้ั ค่าตัวแปร ledPin มีสถานะเปน็ เอาตพ์ ุต pinMode(12, OUTPUT); //ตั้งคา่ ตวั แปร ledPin มีสถานะเป็นเอาต์พุต pinMode(13, OUTPUT); //ตง้ั ค่าตัวแปร ledPin มสี ถานะเป็นเอาต์พุต pinMode(buttonPin1, INPUT); //ตง้ั คา่ ตวั แปร buttonPin1 มีสถานะเป็นอนิ พตุ pinMode(buttonPin2, INPUT); //ตง้ั คา่ ตวั แปร buttonPin2 มีสถานะเป็นอินพุต } void loop() { buttonState2 = digitalRead(buttonPin2); //อ่านคา่ สถานะจากตัวแปร buttonPin2 if (buttonState2 == HIGH) //ตรวจสอบสถานะตัวแปร buttonState { digitalWrite(10,HIGH); //ส่งค่าใหต้ วั แปร ledPin มสี ถานะเปน็ HIGH digitalWrite(11,LOW); digitalWrite(12,LOW); //สง่ คา่ ให้ตัวแปร ledPin มสี ถานะเป็น HIGH digitalWrite(13,LOW); } if (buttonState2 == LOW) { digitalWrite(10,LOW); digitalWrite(11,LOW); //สง่ ค่าใหต้ วั แปร ledPin มีสถานะเปน็ LOW digitalWrite(12,LOW); digitalWrite(13,LOW); //ส่งค่าใหต้ วั แปร ledPin มสี ถานะเปน็ LOW } }
235 สรปุ ผลการทดลอง จากการทดลองเปน็ การเขียนโปรแกรมควบคุมหุ่นยนต์ในการบังคบั เลย้ี วและบังคับทิศทางในการ บังคับเลี้ยวแบ่งเป็น 2 แบบคือบังคับเลี้ยวซ้าย มอเตอร์ทางด้านซ้ายจะหยุดทำงานมอเตอร์ ดา้ นขวาจะหมนุ และการบงั คบั เล้ียวขวา มอเตอร์ทางด้านขวาจะหยุดทำงาน มอเตอรด์ า้ นซ้ายจะ หมุน และในการบงั คบั ทศิ ทางจะมี 4 ทิศทาง คือ เดินหน้า ถอยหลัง เล้ยี วซ้ายและเลี้ยวขวา
236 คำถามท้ายการทดลอง ให้ผเู้ รียนออกแบบโปรแกรมโดยมีเงื่อนไขดังน้ี 1. กำหนดให้ขา 1 ของบอรด์ อาดยุ โน่ รับสัญญาณจากสวติ ชป์ ุม่ กดท่ี 1 2. กำหนดใหข้ า 2 ของบอร์ดอาดยุ โน่ รับสัญญาณจากสวิตชป์ ุ่มกดท่ี 2 3. เมอ่ื กดสวิตช์ป่มุ กดที่ 1 ให้มอเตอรด์ า้ นขวาและมอเตอรด์ า้ นซ้ายหมนุ นาน 3 วนิ าที แลว้ หยุดหมุน 4. เมอื่ กดสวติ ชป์ ุ่มกดท่ี 2 ให้มอเตอร์ดา้ นขวาและมอเตอร์ดา้ นซา้ ยหมุนนาน 5 วนิ าที แล้วหยุดหมนุ 5. โปรแกรมวนทำงานรอรบั การกดสวิตชป์ มุ่ กดตามข้อ 3 และข้อ 4 ต่อเน่ือง ตลอดเวลา 6. ใหเ้ ขยี นคำส่งั ท่ีสมบรู ณ์ลงในตารางคำสั่ง คำส่ังในการควบคมุ const int buttonPin1 = 1; // ประกาศตวั แปรช่ือ buttonPin ให้มคี า่ เทา่ กบั 1 const int buttonPin2 = 2; // ประกาศตวั แปรชื่อ buttonPin ให้มคี า่ เทา่ กับ 1 int buttonState1 = 0; // ประกาศตวั แปรชอื่ buttonState ใหม้ ีคา่ เทา่ กับ 0 int buttonState2 = 0; // ประกาศตัวแปรชื่อ buttonState ให้มคี า่ เทา่ กบั 0 void setup() { pinMode(10, OUTPUT); //ตง้ั ค่าตัวแปร ledPin มสี ถานะเป็นเอาต์พตุ pinMode(11, OUTPUT); //ต้ังคา่ ตวั แปร ledPin มสี ถานะเป็นเอาต์พตุ pinMode(12, OUTPUT); //ต้งั คา่ ตวั แปร ledPin มีสถานะเปน็ เอาต์พตุ pinMode(13, OUTPUT); //ตง้ั ค่าตัวแปร ledPin มีสถานะเป็นเอาตพ์ ตุ pinMode(buttonPin1, INPUT); //ตงั้ คา่ ตวั แปร buttonPin1 มสี ถานะเป็นอนิ พุต pinMode(buttonPin2, INPUT); //ตงั้ ค่าตัวแปร buttonPin2 มีสถานะเปน็ อินพุต } void loop() { buttonState1 = digitalRead(buttonPin1); //อ่านค่าสถานะจากตวั แปร buttonPin1 buttonState2 = digitalRead(buttonPin2); //อา่ นคา่ สถานะจากตัวแปร buttonPin2 if (buttonState1 == HIGH) //ตรวจสอบสถานะตวั แปร buttonState
237 { digitalWrite(10,HIGH); //สง่ ค่าใหต้ ัวแปร ledPin มีสถานะเปน็ HIGH digitalWrite(11,LOW); digitalWrite(12,LOW); //ส่งคา่ ให้ตวั แปร ledPin มสี ถานะเปน็ HIGH digitalWrite(13,LOW); delay(3000); } if (buttonState2 == HIGH) //ตรวจสอบสถานะตวั แปร buttonState { digitalWrite(10,LOW); //สง่ ค่าให้ตัวแปร ledPin มสี ถานะเป็น HIGH digitalWrite(11,LOW); digitalWrite(12,HIGH); //ส่งค่าใหต้ ัวแปร ledPin มสี ถานะเป็น HIGH digitalWrite(13,LOW); delay(5000); } if (buttonState1==LOW && buttonState2 == LOW) { digitalWrite(10,LOW); digitalWrite(11,LOW); //ส่งค่าให้ตัวแปร ledPin มสี ถานะเปน็ LOW digitalWrite(12,LOW); digitalWrite(13,LOW); //ส่งค่าใหต้ วั แปร ledPin มสี ถานะเป็น LOW } }
238 ใบงานท่ี 5 เรอื่ ง การควบคมุ หุ่นยนต์แบบควบคมุ ดว้ ยมือ วตั ถปุ ระสงค์ 1. เพ่ือใหผ้ เู้ รยี นมีความรู้ในการเขียนโปรแกรมควบคุมหนุ่ ยนตแ์ บบควบคมุ ดว้ ยมือได้ 2. เพือ่ ใหผ้ ้เู รียนสามารถตอ่ วงจรควบคุมหุ่นยนต์แบบควบคุมดว้ ยมอื ได้ บทนำ การควบคุมมอเตอร์ด้วยมือจะเป็นการนำสวิตช์มาใช้ในการควบทิศทางของมอเตอร์โดยจะใช้การ ควบคุม 2 แบบ ซ่งึ มีรายละเอียดดงั ตอ่ ไปน้ี 1. วงจรการควบคมุ มอเตอร์ด้วยมอื แบบสวิตชป์ ุ่มกด 2. วงจรการควบคมุ ดว้ ยมือแบบไม่มีสาย ในการควบคุมด้วยมือแบบไม่มีสายจะใช้โมดูลของบลูทูธในการเชื่อม ต่อร่วมกับบอร์ด ไมโครคอนโทรลเลอร์อาดุยโน่ โดยโมดูลบลูทูธแสดงดังรูปที่ 6.1 จะเป็นรุ่น HC06 และในการใช้งาน จะตอ้ งมแี อปพลเิ คชนั ท่ีติดต้ังในสมาร์ทโฟนระบบแอนดรอยด์สำหรบั ใช้งานในการควบคุม รูปท่ี 5.1 โมดลู บลูทธู รนุ่ HC06 ท่ีมา : https://www.amazon.com/
239 อุปกรณ์การทดลอง 2 ตวั 1. มอเตอร์เกียร์แรงดันไฟฟ้ากระแสตรง 5 โวลต์ 1 อัน 2. บอร์ดไมโครคอนโทรลเลอร์อาดยุ โน่ 1 อนั 3. รางถ่านขนาด AA จำนวน 4 กอ้ น 1 อนั 4. บอรด์ ขบั มอเตอร์ขนาดเล็กด้วยพลั ส์ 4 ตวั 5. สวติ ช์แบบปมุ่ กด 4 ตวั 6. ตัวความตา้ นทานขนาด 1 กโิ ลโอหม์ 2 อัน 7. ล้อหุ่นยนต์ 1 อนั 8. ล้อลาก 1 แผง 9. แผงตอ่ วงจร 10. สายต่อวงจร 11. สายยูเอสบี ข้ันตอนการทดลอง 1. เตรียมวสั ดุและอปุ กรณ์ให้พร้อม 2. ตรวจสอบสภาพตา่ ง ๆ ของอุปกรณ์ เช่น ลักษณะการทำงาน ความเรยี บรอ้ ย 3. ใหอ้ อกแบบและประกอบห่นุ ยนต์ตามรปู ที่ 5.2 และรปู ท่ี 5.3 รูปท่ี 5.2 การประกอบอปุ กรณด์ ้านบน
240 รปู ท่ี 5.3 การประกอบอุปกรณ์ดา้ นล่าง 4. ต่อวงจรตามรปู ที่ 5.4 โดยกำหนดให้สวิตช์ทำงานเดินหน้า ถอยหลัง เลี้ยวซา้ ยและเล้ยี วขวา แลว้ ทำการทดลองใหเ้ ป็นไปตามทีก่ ำหนด รปู ท่ี 5.4 การต่อวงจรควบคุมหนุ่ ยนต์ด้วยมือ
241 5. ทำการออกแบบโปรแกรมในการควบคมุ แล้วเขยี นคำสงั่ ของโปรแกรมทส่ี มบูรณ์ ลงในตาราง คำสั่งและอพั โหลดโปรแกรมลงบอร์ดไมโครคอนโทรลเลอรอ์ าดุยโนท่ ดสอบการทำงาน และ สรุปผลการทดลอง คำสัง่ ในการควบคุม const int buttonPin1 = 1; const int buttonPin2 = 2; const int buttonPin3 = 3; const int buttonPin4 = 4; int buttonState1 = 0; int buttonState2 = 0; int buttonState3 = 0; int buttonState4 = 0; void setup() { pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT); pinMode(buttonPin1, INPUT); pinMode(buttonPin2, INPUT); pinMode(buttonPin3, INPUT); pinMode(buttonPin4, INPUT); } void loop() { buttonState1 = digitalRead(buttonPin1); buttonState2 = digitalRead(buttonPin2); buttonState3 = digitalRead(buttonPin3); buttonState4 = digitalRead(buttonPin4); if (buttonState1 == HIGH) //เดนิ หนา้ { digitalWrite(10,HIGH); digitalWrite(11,LOW); digitalWrite(12,HIGH);
242 digitalWrite(13,LOW); } if (buttonState2 == HIGH) //เดินหนา้ { digitalWrite(10,LOW); digitalWrite(11,HIGH); digitalWrite(12,LOW); digitalWrite(13,HIGH); } if (buttonState3 == HIGH) //เล้ียวซ้าย { digitalWrite(10,LOW); digitalWrite(11,LOW); digitalWrite(12,HIGH); digitalWrite(13,LOW); } if (buttonState4 == HIGH) //เลี้ยวขวา { digitalWrite(10,HIGH); digitalWrite(11,LOW); digitalWrite(12,LOW); digitalWrite(13,LOW); } if ( buttonState1 == LOW && buttonState2 == LOW && buttonState3 == LOW && buttonState4 == LOW ) { digitalWrite(10,LOW); digitalWrite(11,LOW); digitalWrite(12,LOW); digitalWrite(13,LOW); } }
243 สรุปผลการทดลอง จากการทดลองเป็นการเขียนโปรแกรมควบคุมหุ่นยนต์ในการบังคับ ทิศทางโดยเมื่อกดสวิตช์ เดินหน้าจะทำให้หุ่นยนต์วิ่งไปข้างหน้า เมื่อกดสวิตช์ถอยหลัง ทำให้หุ่นยนต์วิ่งถอยหลัง เมื่อกด สวติ ชเ์ ลี้ยวขวาทำให้หนุ่ ยน์เลย้ี วขวาและเม่อื กดสวิตชเ์ ลย้ี วซา้ ยทำใหห้ ุ่นยนต์เลยี้ วซา้ ย
244 คำถามทา้ ยการทดลอง ใหผ้ เู้ รียนออกแบบโปรแกรมโดยมเี ง่ือนไขดังนี้ 1. กำหนดใหข้ า 1 ของบอรด์ อาดยุ โน่ รับสญั ญาณจากสวิตชป์ มุ่ กดท่ี 1 2. กำหนดให้ขา 2 ของบอร์ดอาดุยโน่ รบั สญั ญาณจากสวิตชป์ มุ่ กดที่ 2 3. กำหนดให้ขา 1 ของบอร์ดอาดุยโน่ รบั สัญญาณจากสวิตชป์ ่มุ กดที่ 3 4. กำหนดให้ขา 2 ของบอร์ดอาดยุ โน่ รบั สัญญาณจากสวติ ชป์ ุ่มกดที่ 4 5. เมอื่ กดสวติ ช์ปุ่มกดที่ 1 ให้มอเตอรท์ ้งั ขวาและซ้ายหมนุ ไปข้างหน้านาน 5 วนิ าที แลว้ หยุด หมนุ 6. เมื่อกดสวิตช์ปมุ่ กดท่ี 2 ให้มอเตอรท์ ้ังขวาและซ้ายหมนุ ไปข้างหลังนาน 5 วนิ าที แล้ว หยุดหมุน 7. เมอ่ื กดสวิตช์ป่มุ กดที่ 3 ให้มอเตอรด์ า้ นขวาและมอเตอร์ด้านซ้ายหมนุ นาน 5 วินาทีแลว้ หยดุ หมนุ 8. เมื่อกดสวติ ช์ปมุ่ กดท่ี 2 ให้มอเตอรด์ ้านขวาและมอเตอรด์ า้ นซ้ายหมุนนาน 5 วินาทแี ลว้ หยุด หมนุ 9. โปรแกรมวนทำงานรอรบั การกดสวติ ชป์ ุ่มกดตามข้อ 5 ถงึ ข้อ 8 ตอ่ เน่ืองตลอดเวลา 10. ให้เขยี นคำสงั่ ทีส่ มบูรณ์ลงในตารางคำสง่ั คำสั่งในการควบคุม const int buttonPin1 = 1; const int buttonPin2 = 2; const int buttonPin3 = 3; const int buttonPin4 = 4; int buttonState1 = 0; int buttonState2 = 0; int buttonState3 = 0; int buttonState4 = 0; void setup() { pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT);
Search
Read the Text Version
- 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
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298