2 การเขียนและการประยกุ ต์ใช้งานโปรแกรม Arduino zz ในกรณที ต่ี องการซอื้ เปน จ�ำ นวนมาก เพอื่ ใชในการสอน การฝกอบรม การสง เสรมิ การขาย หรอื เปน ของขวัญพิเศษ เปน ตน กรณุ าตดิ ตอ สอบถามราคาพเิ ศษไดท ่ี ฝา ยขาย บรษิ ทั ซเี อด็ ยเู คชน่ั จ�ำ กดั (มหาชน) เลขท่ี 1858/87-90 ถนนบางนา-ตราด แขวงบางนา เขตบางนา กรุงเทพฯ 10260 โทรศัพท 0-2826-8222 โทรสาร 0-2826-8356-9 zz หากมคี ำ�แนะน�ำ หรอื ติชม สามารถติดตอ ไดที่ comment@se–ed.com การเขยี นและการประยกุ ต์ใช้งานโปรแกรม Arduino โดย ประภาส พุ่มพวง ราคา 180 บาท สงวนลขิ สิทธ์ติ ามกฎหมาย โดย ประภาส พ่มุ พวง ห้ามคัดลอก ลอกเลียน ดัดแปลง ทำ�ซ�ำ้ จดั พมิ พ์ หรือกระท�ำ อน่ื ใด โดยวธิ ีการใดๆ ในรูปแบบใดๆ ไมว่ ่าสว่ นหนึง่ ส่วนใดของหนงั สอื เล่มน้ี เพ่ือเผยแพร่ในส่อื ทุกประเภท หรอื เพอื่ วตั ถปุ ระสงค์ใดๆ นอกจากจะได้รับอนุญาต 4 1 0 - 5 3 4 - 2 1 6 0 1 6 6 7 8 9 0 5 4 3 2 1 ขอมูลท างบรรณานุกรมของหอสมุดแหงชาติ ประภาส พมุ่ พวง. การเขียนและการประยุกต์ใช้งานโปรแกรม Arduino. --กรุงเทพฯ : ซเี อด็ ย เูคช่นั , 2561. 216 หนา . 1. ไมโครคอนโทรลเลอร.์ 2. โปรแกรมคอมพิวเตอร์ I. ช่ือเรอื่ ง. 004.64 ISBN : 978-616-08-3144-9 จดั พิมพและจดั จ�ำ หนายโดย เลขที่ 1858/87-90 ถนนบ างนา-ตราด แขวงบ างนา เขตบางนา กรงุ เทพฯ 10260 โทรศัพท 0-2826-8000 พมิ พที่ บรษิ ัท วี.พรน้ิ ท์ (1991) จำ�กดั เลขท่ี 23/71-72 หมู่ 1 ซอยเทียนทะเล 10 ถนนบางขนุ เทียน-ชายทะเล แขวงแสมด�ำ เขตบางขุนเทียน กรุงเทพฯ 10140 โทรศัพท์ 0-2451-3010 นายวชิ ยั กาญจนพัฒนา ผพู้ ิมพผ์ ู้โฆษณา พ.ศ. 2561
Arduinoสารบัญ 3 คำ�น�ำ หนังสือ การเขียนและการประยุกต์ใช้งานโปรแกรม Arduino เล่มน้ี เป็นหนังสือท่ี เขียนข้ึนมาเพอ่ื เป็นแนวทางในการเรียนแบบใช้โครงงานเป็นฐาน ซ่ึงใช้ประกอบการเรียน ส�ำหรับนักเรียนนักศึกษาต้ังแต่ระดับมัธยมศึกษาในการประยุกต์ใช้เพื่อจัดท�ำโครงงานหรือ การแข่งขันหุ่นยนต์ ส่วนระดับอาชีวศึกษาใช้ประกอบการจัดท�ำโครงงาน นวัตกรรมและ ส่ิงประดิษฐ์ และระดับปริญญาตรีใช้ประกอบการจัดท�ำโครงงานเพือ่ การวิจัยในการศึกษา โดยหนงั สอื เลม่ นมี้ จี ดุ ประสงค์ เพือ่ เผยแพรค่ วามรู้ในการเขยี นโปรแกรมดว้ ยค�ำสง่ั ทง่ี า่ ยเพื่อ ควบคุมอปุ กรณต์ ่างๆ ด้วยบอรด์ ไมโครคอนโทรลเลอร์อาร์ดุยโน่ (Arduino) รว่ มกับอปุ กรณ์ ต่อพว่ งชนดิ ตา่ งๆ จนถงึ การพฒั นาและประยุกต์ใชง้ าน โดยการรวบรวมจากเอกสารอ้างองิ และประสบการณจ์ ากผจู้ ัดท�ำที่ไดป้ ฏิบตั ิมา หนังสือเล่มนีป้ ระกอบดว้ ยบทน�ำ โปรแกรมอารด์ ุยโน่ ไอดีอี การเขยี นโปรแกรม การ จ�ำลองการท�ำงาน การประยกุ ต์ใช้งาน การประยุกต์ใช้โปรแกรมแลบววิ และการประยกุ ต์ ใช้โปรแกรมแอปอินเวนเตอร์ 2 หากหนงั สอื เลม่ นม้ี ีข้อผดิ พลาดหรอื ข้อบกพร่องประการใด ผจู้ ัดท�ำขอน้อมรบั ความผิดพลาดน้ีไว้เพียงผูเ้ ดียว ประภาส พุ่มพวง
Arduinoสารบัญ 5 สารบัญ บทท่ี 1 บทน�ำ......................................................................................7 1.1 ทีม่ าของอารด์ ุยโน.่ ...................................................................................................... 7 1.2 แนะน�ำบอร์ดอาร์ดุยโน่............................................................................................... 8 1.3 ส่วนประกอบของบอร์ดอาร์ดุยโน.่...........................................................................15 1.4 การน�ำไปใชง้ าน.........................................................................................................16 บทท่ี 2 โปรแกรมอาร์ดยุ โน่ ไอดีอ.ี...................................................21 2.1 การดาวน์โหลดและการตดิ ตง้ั โปรแกรม................................................................21 2.2 เมนูการใชง้ านเบือ้ งต้น.............................................................................................28 2.3 การเชอ่ื มต่อกบั บอร์ดไมโครคอนโทรลเลอร์..........................................................30 2.4 การป้อนโปรแกรมลงบอรด์ ไมโครคอนโทรลเลอร์.................................................32 บทที่ 3 การเขยี นโปรแกรม...............................................................39 3.1 โครงสรา้ งโปรแกรม..................................................................................................39 3.2 ค�ำสง่ั ...........................................................................................................................39 3.3 โครงสรา้ งเงื่อนไข.....................................................................................................46 3.4 ค�ำสัง่ ในการตดิ ต่อกับพอร์ต.....................................................................................52 3.5 ค�ำสง่ั ในการจัดการจอแอลซดี .ี.................................................................................54 3.6 การสรา้ งโปรแกรมย่อย............................................................................................55
6 การเขยี นและการประยกุ ต์ใชง้ านโปรแกรม Arduino บทท่ี 4 การจ�ำลองการท�ำงาน...........................................................59 4.1 จ�ำลองการท�ำงานโดยโปรแกรมฟริตซงิ (Fritzing Program)............................59 4.2 จ�ำลองการท�ำงานโดยโปรแกรม 123 Circuit.......................................................70 บทที่ 5 การประยุกต์ใช้งาน..............................................................81 5.1 ตวั อยา่ งการใช้งาน....................................................................................................84 5.2 ตวั อย่างโครงงาน....................................................................................................134 บทท่ี 6 การประยกุ ต์ใช้โปรแกรมแลบวิว.......................................159 6.1 โปรแกรมแลบวิว.....................................................................................................159 บทท่ี 7 การประยกุ ต์ใช้โปรแกรมแอปอินเวนเตอร์ 2....................175 7.1 การเขยี นแอปพลเิ คชันควบคมุ การเปดิ -ปดิ หลอดแอลอดี ี................................175 7.2 การเขียนแอปพลเิ คชันแสดงคา่ อุณหภูมิ.............................................................196 7.3 การเขียนแอปพลเิ คชนั ควบคมุ การเปิด-ปดิ หลอดแอลอีดี ผา่ นระบบออนไลน์...................................................................................................207 บรรณานกุ รม...............................................................................................................215
Ar1duinoบทน�ำ บทท่ี 1 : บทน�ำ 7 1.1 ที่มาของอารด์ ยุ โน่ อารด์ ยุ โนเ่ ปน็ บอรด์ ทส่ี รา้ งขนึ้ โดย แมสสโิ ม บนั ซิ (Massimo Banzi) เปน็ บอรด์ ไมโคร คอนโทรลเลอรท์ ม่ี รี าคาตน้ ทนุ ตำ่� ทชี่ ว่ ยใหน้ กั โปรแกรมมอื ใหม่ใช้ในการเขยี นโปรแกรมในการ ควบคุมในอุตสาหกรรมอิเลก็ ทรอนกิ ส์ บอรด์ อาร์ดยุ โน่สามารถเช่ือมต่อกับชนดิ ของมอเตอร์ เซนเซอรแ์ ละอปุ กรณอ์ นื่ ๆ โดยบอรด์ อารด์ ยุ โนจ่ ะใชภ้ าษาในการเขยี นทงี่ า่ ยตอ่ การเรยี นรู้ การ เขยี นโปรแกรมสามารถน�ำมาใช้ในการพฒั นางานใหมๆ่ โดยสามารถสรา้ งการแสดงผลการ โต้ตอบหรอื ควบคมุ ห่นุ ยนต์เคลอ่ื นทีห่ รอื อะไรอีกหลายอย่างที่สามารถจินตนาการได้ Arduino (อา่ นวา่ อา-ด-ู อ-ิ โน่ หรอื อา-ดยุ -โน)่ เปน็ บอรด์ ไมโครคอนโทรลเลอรต์ ระกลู AVR ดงั แสดงในรปู ท่ี 1.1 ทม่ี กี ารพฒั นาทงั้ ดา้ นฮารด์ แวรแ์ ละซอฟตแ์ วรแ์ บบเปดิ เผยขอ้ มลู (Open Source) โดยตวั ฮาร์ดแวร์ใช้งานงา่ ยและราคาถูก ส่วนดา้ นซอฟต์แวรจ์ ะเปน็ ค�ำสั่ง ที่ไมซ่ บั ซอ้ นสามารถพฒั นาไดง้ า่ ย ดงั นน้ั จงึ เหมาะส�ำหรบั ผเู้ รม่ิ ตน้ พฒั นาจนไปถงึ การพฒั นา แบบข้นั สงู ผู้ใช้งานสามารถพัฒนาต่อรว่ มกบั อปุ กรณ์ในการงานไดอ้ ยา่ งง่าย รูปที่ 1.1 แสดงบอรด์ ไมโครคอนโทรลเลอร์อารด์ ุยโน่ ร่นุ UNO ท่ีมา : http://www.elec2you.com
8 การเขยี นและการประยกุ ต์ใช้งานโปรแกรม Arduino 1.2 แนะน�ำบอรด์ อารด์ ยุ โน่ ววิ ฒั นาการของบอรด์ อารด์ ยุ โนเ่ กดิ ขนึ้ ครงั้ แรกเมือ่ ปี พ.ศ. 2548 (ค.ศ. 2005) เปน็ ตน้ มาและมีการพัฒนาเรอ่ื ยมาจนถึงปัจจุบัน ดังแสดงในรูปท่ี 1.2 บอร์ดอาร์ดุยโน่มีหลายรุ่น หลายชนิด ถูกออกแบบมาใหเ้ หมาะสมกับการใช้งาน รปู ที่ 1.2 แสดงวิวัฒนาการของบอรด์ อารด์ ยุ โน่ ท่มี า : http://www.ayt-makerspace.com
บทที่ 1 : บทน�ำ 9 จากรปู ที่ 1.2 สามารถอธบิ ายชนดิ ของบอรด์ อารด์ ยุ โน่ในแตล่ ะประเภททนี่ ยิ มใช้ไดด้ งั น้ี 1. บอรด์ อารด์ ยุ โนร่ นุ่ UNO R3 เปน็ บอรด์ อารด์ ยุ โนท่ ี่ไดร้ บั ความนยิ มมากทส่ี ดุ เนือ่ งจาก ราคาไมแ่ พง ใช้ในการสรา้ งโครงงาน (Project) ทมี่ ขี นาดไม่ใหญม่ ากและมไี ลบรารี (Library) ต่างๆ ทพี่ ัฒนาขึ้นมาสนบั สนนุ อยา่ งมากมาย ดังแสดงในรูปที่ 1.3 รปู ท่ี 1.3 แสดงบอร์ดอารด์ ยุ โน่ รุน่ UNO R3 ท่มี า : http://www.elec2you.com 2. บอรด์ อารด์ ยุ โน่ รนุ่ UNO SMD เปน็ บอรด์ ทมี่ คี ณุ สมบตั แิ ละการท�ำงานเหมอื นกบั บอร์ดอาร์ดุยโน่รุ่น UNO R3 แต่จะแตกต่างกับที่ลักษณะของของไมโครคอนโทรลเลอร์ ที่ใชแ้ บบ Package SMD สว่ นของบอร์ดไมโครคอนโทรลเลอร์ รุน่ UNO R3 จะเปน็ แบบ Package DIP ดังแสดงในรปู ท่ี 1.4 รูปท่ี 1.4 แสดงบอร์ดอารด์ ุยโน่ รุ่น UNO SMD ท่มี า : https://www.arduinoall.com/
10 การเขียนและการประยุกต์ใชง้ านโปรแกรม Arduino 3. บอรด์ อาร์ดุยโน่ รุ่น Mega 2560 R3 เปน็ บอรด์ อาร์ดยุ โนท่ ่อี อกแบบมาลักษณะ คล้ายกบั บอรด์ อารด์ ุยโน่ ร่นุ UNO แตจ่ ะมีอินพุตและเอาต์พุตมากกวา่ เพือ่ ใช้ในการเชื่อม ตอ่ อปุ กรณ์หลายๆ อุปกรณเ์ ข้าด้วยกัน ดังแสดงในรูปท่ี 1.5 รูปที่ 1.5 แสดงบอร์ดอารด์ ยุ โน่ รุ่น MEGA 2560 ท่ีมา : https://www.arduitronics.com/ 4. บอรด์ อารด์ ยุ โน่ รนุ่ DUE เปน็ บอรด์ อารด์ ยุ โนท่ เี่ ปลย่ี นชปิ ของไมโครคอนโทรลเลอร์ ใหม่ โดยใช้ตระกูล AVR เบอร์ AT91SAM3X8E ท�ำให้การประมวลผลเร็วขึ้น ลักษณะ ดังแสดงในรปู ท่ี 1.6 รปู ท่ี 1.6 แสดงบอรด์ อาร์ดุยโน่ รุน่ DUE ทีม่ า : https://www.arduitronics.com/
บทที่ 1 : บทน�ำ 11 5. บอร์ดอาร์ดุยโน่ รุ่น Leonardo การใช้งานจะมีลักษณะคล้ายกับบอร์ดอาร์ดุย โน่รุ่น UNO R3 แต่ชนิดของไมโครคอนโทรลเลอรเ์ ปน็ แบบ ATmega32U4 ท�ำให้มีพอรต์ ยเู อสบมี ขี นาดเลก็ และจะตอ้ งมไี ดรเวอรส์ �ำหรบั ยเู อสบตี า่ งจากบอรด์ อารด์ ยุ โน่ รนุ่ UNO R3 ลกั ษณะของบอรด์ ดงั แสดงในรปู ที่ 1.7 รูปที่ 1.7 แสดงบอร์ดอารด์ ยุ โน่ รนุ่ LEONARDO ทมี่ า : https://www.arduitronics.com/ 6. บอรด์ อาร์ดยุ โน่ รนุ่ Pro Mini 328 ขนาด 3.3 โวลต์ เปน็ บอรด์ อารด์ ุยโน่ขนาด เล็กท่ีใช้ตัวไมโครคอนโทรลเลอร์ รุ่น ATmega 328 แต่ที่ตัวบอร์ดจะมีแหล่งจ่ายแรงดัน ไฟฟา้ กระแสตรงขนาด 3.3 โวลต์เทา่ นน้ั และสญั ญาณแรงดันที่ออกจากขาสญั ญาณก็จะให้ แรงดัน 3.3 โวลตเ์ ชน่ เดยี วกนั ลกั ษณะดงั แสดงในรปู ที่ 1.8 รูปที่ 1.8 แสดงบอร์ดอารด์ ุยโน่ รนุ่ Pro Mini 328 ขนาด 3.3 โวลต์ ทีม่ า : https://www.seeedstudio.com/
12 การเขยี นและการประยุกต์ใช้งานโปรแกรม Arduino 7. บอร์ดอารด์ ุยโน่ ร่นุ Pro Mini 328 ขนาด 5 โวลต์ เป็นบอร์ดอาร์ดุยโน่ขนาดเลก็ ทใ่ี ชต้ วั ไมโครคอนโทรลเลอร์ รนุ่ ATmega 328 แตท่ ตี่ วั บอรด์ จะมแี หลง่ จา่ ยแรงดนั ไฟฟา้ กระแส ตรงขนาด 5 โวลตเ์ ทา่ นน้ั และสญั ญาณแรงดนั ทอี่ อกจากขาสญั ญาณกจ็ ะใหแ้ รงดนั 5 โวลต์ เชน่ เดียวกนั ลักษณะดงั แสดงในรูปท่ี 1.9 รูปท่ี 1.9 แสดงบอรด์ อารด์ ุยโน่ รนุ่ Pro Mini 328 ขนาด 5 โวลต์ ที่มา : https://electrocrea.com/products/ คณุ สมบัตติ า่ งๆ ของบอร์ดอาร์ดยุ โน่แตล่ ะรนุ่ มีรายละเอียด ดงั แสดงในรปู ที่ 1.10 รปู ที่ 1.10 แสดงตารางคณุ สมบตั ติ า่ งๆ ของบอรด์ อารด์ ยุ โน่แต่ละร่นุ ทีม่ า : http://www.elecproject.com
บทท่ี 1 : บทน�ำ 13 ในหนงั สอื เลม่ นจี้ ะกลา่ วถงึ การใชง้ านของบอรด์ อารด์ ยุ โน่ รนุ่ UNO ทเ่ี ปน็ บอรด์ ทน่ี ยิ ม ใชก้ นั อยา่ งแพรห่ ลาย และมอี ปุ กรณเ์ ชอ่ื มตอ่ มากมายใหน้ �ำไปใชแ้ ละพฒั นาการใชง้ านตอ่ ไป โดยส่วนประกอบของบอรด์ อารด์ ุยโน่ รนุ่ UNO ดังแสดงในรปู ที่ 1.11 จะประกอบไปด้วยขา การใชง้ านทเ่ี ปน็ อนิ พตุ และเอาตพ์ ตุ จ�ำนวน 14 ขา (D0-D13) ซงึ่ ขน้ึ อยกู่ บั การสง่ั ใชง้ านและ มขี าท่เี ป็นสญั ญาณแอนะล็อกจ�ำนวน 6 ขา (A0-A5) และมแี หลง่ จา่ ยแรงดันไฟฟา้ กระแส ตรงขนาด 3.3 โวลต์ และ 5 โวลต์ เพอื่ เช่อื มตอ่ ไปใชง้ าน และแรงดนั ท่จี ่ายให้กบั บอรด์ ใช้ งานอยู่ในชว่ ง 7–12 โวลต์ เป็นแรงดันไฟฟ้ากระแสตรง รูปท่ี 1.11 โครงสรา้ งของบอรด์ อาร์ดยุ โน่ รุน่ UNO ทีม่ า : http://bigdanzblog.wordpress.com ในการพัฒนาบอร์ดไมโครคอนโทรลเลอร์อาร์ดุยโน่สามารถใช้การต่อรวมกับอุปกรณ์ เสรมิ ตา่ งๆ โดยผพู้ ฒั นาสามารถตอ่ วงจรควบคมุ จากภายนอกเพอื่ เปน็ ตวั เชอ่ื มตอ่ เขา้ มาทข่ี า อนิ พตุ หรอื เอาต์พตุ ของบอร์ดได้โดยตรง ตวั อยา่ งดงั แสดงในรูปที่ 1.12 นอกจากใช้ในการ พฒั นาแลว้ ยงั สามารถตอ่ อปุ กรณเ์ สรมิ ชนดิ ตา่ งๆ เชน่ โมดลู บลู ทธู โมดลู ไวไฟ (WiFi) โมดลู จเี อสเอ็ม โมดลู รเี ลย์ และโมดูลอนิ เทอร์เนต็ เปน็ ต้น ลักษณะการตอ่ ดงั แสดงในรปู ที่ 1.13
14 การเขยี นและการประยกุ ต์ใชง้ านโปรแกรม Arduino รูปท่ี 1.12 แสดงการควบคมุ หลอดแอลอดี ี รปู ท่ี 1.13 แสดงอุปกรณต์ ่อพ่วง ท่มี า : https://www.makers-hut.com/product/ ขอ้ ดีของบอร์ดอารด์ ยุ โน่ 1. ค�ำสัง่ ในการพัฒนาไม่ซับซอ้ น 2. มกี ลุ่มทีเ่ ป็นผู้พัฒนา (Arduino Community) มากมาย 3. ฮาร์ดแวรแ์ ละซอฟต์แวร์ไม่มีลิขสทิ ธ์ิ 4. มรี าคาถกู 5. สามารถพัฒนาโปรแกรมได้หลายระบบปฏิบตั ิการ
บทที่ 1 : บทน�ำ 15 1.3 สว่ นประกอบของบอรด์ อาร์ดยุ โน่ ในการพัฒนาการเชอื่ มต่อกับอุปกรณ์ภายนอกจะเลือกใช้บอร์ดไมโครคอนโทรลเลอร์ อารด์ ยุ โน่ รุ่น UNO โดยมสี ว่ นประกอบดงั แสดงในรูปท่ี 1.14 19 28 3 7 4 56 รปู ที่ 1.14 สว่ นประกอบของบอรด์ อารด์ ุยโน่ รุน่ UNO จากรปู มรี ายละเอียดสว่ นประกอบเบ้ืองต้นดังน้ี 1. ป่มุ ส�ำหรบั รเี ซต็ (Reset) 2. ชอ่ งส�ำหรับเสยี บสายยเู อสบี (USB) 3. ไมโครคอนโทรลเลอร์ชนดิ Atmega16U2 4. ช่องเสียบส�ำหรบั แรงดนั ไฟฟา้ กระแสตรง 7-12 โวลต์ 5. ช่องเสยี บขาแหล่งจ่ายแรงดันไฟฟา้ กระแสตรง 3.3 โวลต์, 5 โวลต์ และกราวด์ (GND) 6. ช่องเสียบขาอนิ พุตสัญญาณแอนะลอ็ ก (Analog) 7. ไมโครคอนโทรลเลอร์ Atmega328 8. ขาพอร์ต ICSP ส�ำหรบั ยเู อสบอี ินเตอรเ์ ฟส (USB Interface) 9. ช่องเสยี บขาอนิ พุตหรือเอาตพ์ ตุ
Search
Read the Text Version
- 1 - 16
Pages: