uKit Explore Tutorial คมู่ ือฉบบั ภาษาไทย
หนังสอื uKit Explore Tutorial คู่มอื ฉบบั ภาษาไทย พิมพ์คร้ังที่ 1 จำนวน 500 เลม่ พ.ศ. 2563 พิมพ์ท่โี รงพมิ พ์ จดั ทำและจดั จำหนา่ ยโดย บริษัท เอสวโี อเอ จำกัด (มหาชน) 131 ถนน ราษฎรบ์ รู ณะ แขวง ราษฎรบ์ ูรณะ เขตราษฎร์บรู ณะ กรงุ เทพมหานคร 10140 โทร 02-849-2523 อีเมล [email protected] เว็บไซต์ http://www.svoa.co.th *สงวนลิขสทิ ธิ์ ตาม พ.ร.บ. ลขิ สิทธ์ิ (ฉบบั เพม่ิ เติม) พ.ศ. 2558 ไมอ่ นุญาตใหค้ ดั ลอก ทำซ้ำ และ ดัดแปลง ส่วนหนึ่งสว่ นใดของหนังสือฉบับน้ี นอกจากจะไดร้ ับอนุญาตเป็นลายลักษณ์อักษรจากเจ้าของ ลขิ สิทธิ์เท่าน้ัน
สารบญั บทที่ 1 ความรู้เก่ียวกบั uKit Explore ............................................................................1 1.1 ชดุ อปุ กรณ์ uKit Explore..............................................................................................................2 1.2 บอรด์ uKit Explore......................................................................................................................4 1.3 uKit Servo ....................................................................................................................................6 1.4 เซนเซอร์ตรวจวดั ระดบั สเี ทา (Grayscale Sensor)........................................................................8 1.5 เซนเซอร์อินฟราเรด (Infrared Sensor).........................................................................................9 1.6 เซนเซอร์อลั ตราโซนิก (Ultrasonic Sensor)..................................................................................9 1.7 เซนเซอร์แบบสมั ผสั (Touch Sensor) ........................................................................................ 10 1.8 โมดลู แอลอดี ี (LED)..................................................................................................................... 10 บทที่ 2 ความรูเ้ บ้อื งต้นเกีย่ วกบั Arduino .....................................................................11 2.1 ซอฟตแ์ วร์ uKit Explore Blockly.............................................................................................. 12 2.2 ซอฟตแ์ วร์ Arduino IDE ............................................................................................................. 18 2.3 การเช่อื มตอ่ สายไฟกับอปุ กรณ์ .................................................................................................... 24 บทท่ี 3 การเขยี นโปรแกรมภาษาซสี ำหรบั Arduino .....................................................25 3.1 โครงสร้างพน้ื ฐาน ........................................................................................................................ 26 3.2 ตัวดำเนนิ การ .............................................................................................................................. 27 3.3 ตวั แปร ........................................................................................................................................ 28 3.4 ฟงั กช์ นั ........................................................................................................................................ 29 บทท่ี 4 การใชง้ านพื้นฐานของบอร์ด uKit Explore......................................................30 4.1 การใชง้ านพอรต์ อนกุ รม (Serial Port) ........................................................................................ 31 4.2 ไฟแอลอดี ี.................................................................................................................................... 34 4.3 ลำโพงบซั เซอร์............................................................................................................................. 36 4.4 ไจโรสโคป.................................................................................................................................... 38 4.5 การใชง้ านของตัวรับสัญญาณอินฟราเรด ..................................................................................... 41 บทที่ 5 การใชง้ านโมดลู เซนเซอร์และตวั ขบั เรา้ .............................................................45 5.1 การเชอ่ื มตอ่ กบั บอรด์ uKit Explore........................................................................................... 46 5.2 ควบคุมมอเตอร์........................................................................................................................... 47
5.3 ควบคุมเซอรโ์ วมอเตอร์.................................................................................................................53 5.4 Touch Sensor ...........................................................................................................................64 5.5 การใชง้ านเซนเซอรอ์ ินฟราเรด .....................................................................................................67 5.6 การใชง้ านเซนเซอรต์ รวจวัดระดับสเี ทา ........................................................................................74 5.7 การใชง้ านเซนเซอรอ์ ลั ตราโซนกิ ...................................................................................................80 5.8 โมดลู บลทู ูธ ..................................................................................................................................87 5.9 ไจโรสโคป.....................................................................................................................................93 5.10 Integrated Applications ..................................................................................................... 101 บทที่ 6 วงจรไฟฟา้ เบ้ืองตน้ .........................................................................................116 6.1 วงจรไฟฟ้า................................................................................................................................. 117 6.2 ความรูเ้ บื้องตน้ เกีย่ วกับบอรด์ ทดลอง (Introduction to Breadboards) ................................. 122 6.3 Light Control on a Breadboard.......................................................................................... 125 6.4 ปมุ่ ควบคุมบนบอร์ดทดลอง (breadboard).............................................................................. 135 6.5 การประยกุ ตใ์ ช้อินฟราเรดบนบอรด์ ทดลอง............................................................................... 145 6.6 การประยกุ ต์ใช้เซนเซอร์สำหรบั วัดอุณหภูมแิ ละความชนื้ ในอากาศ............................................ 151 6.7 การประยุกตใ์ ช้ Tilt Switches ................................................................................................. 157 6.8 การประยกุ ตใ์ ช้ 4-Digit LED Displays..................................................................................... 160 6.9 การประยกุ ต์ใช้ LED แบบ Dot Matrices................................................................................. 178 6.10 การประยกุ ต์ใช้ Photoresistors............................................................................................. 194 บทที่ 7 การบัดกรวี งจร (อปุ กรณ์เสรมิ )........................................................................215 7.1 ความรู้ทว่ั ไปเกี่ยวกับการเชอ่ื ม................................................................................................... 216 7.2 ข้อควรระวังในการบดั กรี........................................................................................................... 217 7.3 คมู่ ือการบัดกรี........................................................................................................................... 218
บทที่ 1 ความรเู้ ก่ียวกบั uKit Explore 1
1.1 ชดุ อปุ กรณ์ uKit Explore ชุดอุปกรณ์ uKit Explore เป็นแพลตฟอร์มต้นแบบอิเล็กทรอนิกส์แบบโอเพ่นซอร์ส (Open- source) ที่มีความยืดหยุ่นและง่ายต่อการใช้งาน ถูกพัฒนาโดยบริษัท UBTECH Robotics Corp ภายใน ชุดอปุ กรณป์ ระกอบด้วย 2 สว่ น คอื 1) สว่ นฮาร์ดแวร์ประกอบดว้ ย บอร์ด uKit Explore ทีพ่ ฒั นารว่ มกบั Arduino ชุดชิ้นส่วนต่อประกอบ เซนเซอร์ (Sensor) ตัวขับเร้า (Actuators) บอร์ดทดลอง (Breadboards) และชุดอุปกรณ์อเิ ล็กทรอนิกส์ 2) ส่วนซอฟตแ์ วร์ สามารถใชร้ ว่ มกับคอมพวิ เตอร์ทรี่ องรบั การเขียนโปรแกรมในรูปแบบ Blockly และ Arduino IDE ชุดอุปกรณ์ uKit Explore ยังสามารถ ตอบสนองตอ่ ความต้องการของผใู้ ช้ทม่ี ีให้ศกึ ษาในหลากหลายดา้ น เช่น การเขยี นโปรแกรม การออกแบบ โครงสร้าง การประยกุ ต์ใช้งานเซนเซอร์ การออกแบบวงจร ปญั ญาประดษิ ฐ์ และการออกแบบหุ่นยนต์ขั้น พ้นื ฐาน เปน็ ตน้ ชุดอุปกรณ์ uKit Explore มีหลกั สูตรท่ีออกแบบมาสำหรับผู้เร่ิมตน้ หรอื ผู้ท่ีไม่มพี ื้นฐานทางด้าน หุ่นยนต์ ทำให้มีการเรียนรู้และเสริมสร้างประสบการณ์อย่างเป็นขั้นตอน สามารถพัฒนานักเรียนให้มี ความคิดสร้างสรรค์สู่เทคโนโลยีปัญญาประดิษฐ์ได้ โดยแต่ละบทเรียนจะมาพร้อมกับคำอธิบาย ภาพประกอบ และตัวอย่างโปรแกรมที่น่าสนใจทีจ่ ะทำให้เกดิ ความสนุกและได้แสดงความคดิ สร้างสรรค์ ร่วมกนั ฮารด์ แวรข์ องชดุ อปุ กรณ์ uKit Explore แบ่งออกเป็น 2 สว่ นหลัก คือ 1) ชนิ้ สว่ นอิเล็กทรอนิกส์ (Electronic components) ประกอบด้วย บอร์ด uKit Explore เซอร์โวมอเตอร์ ดีซีมอเตอร์ เซนเซอร์ บอรด์ ทดลอง และโมดูล LED เปน็ ต้น 2) ชน้ิ สว่ นประกอบ (Structural components) ประกอบดว้ ย ชดุ ชิ้นสว่ นตอ่ ประกอบ ชิ้นสว่ นตอ่ เชือ่ ม และชิน้ สว่ นตอ่ ยดึ เป็นตน้ 2
ช้นิ ส่วนอิเล็กทรอนิกส์ ชิน้ สว่ นตอ่ ประกอบ 3
ซอฟตแ์ วรข์ องชดุ อุปกรณ์ uKit Explore จะประกอบด้วยโปรแกรม Arduino IDE และโปรแกรม uKit Explore Blockly โปรแกรม Arduino IDE โปรแกรม uKit Explore Blockly 1.2 บอร์ด uKit Explore บอร์ด uKit Explore เป็นแพลตฟอร์มต้นแบบอิเล็กทรอนิกส์แบบโอเพ่นซอร์สที่มกี ารออกแบบ ทางด้านฮาร์ดแวร์โดยบรษิ ทั UBTECH Robotics Corp ให้สามารถใช้งานร่วมกบั ชดุ ช้ินส่วนตอ่ ประกอบท่ี มีการนำ Arduino Mega 2560 ประกอบร่วมกับบอร์ด ทำให้บอร์ดรองรับการเขียนโปรแกรมรูปแบบ C/C++ และ Blockly ได้ อีกทั้งผู้เรียนยังสามารถควบคุมเซอร์โวมอเตอร์ในโหมดควบคุมความเร็ว (Wheel mode) และโหมดควบคมุ ทิศทางการเคลือ่ นท่ีของมุม (Angle mode) ได้ ตวั บอรด์ ยงั มีส่วนต่อ ขยายท่ีหลากหลาย เชน่ ลำโพงบัซเซอร์ (Buzzers) โมดูล LED (RGB LED) สวิตช์ป่มุ กด (Button) และไจ โรสโคป (Gyroscope) บอร์ดมีการรองรบั แหล่งจา่ ยไฟ 2 ชอ่ งทาง คอื สาย USB และแบตเตอรล่ี ิเธยี มที่มี ฟงั ก์ชนั การชาร์จในตัว ดงั นนั้ ชดุ อุปกรณ์ uKit Explore ถอื เป็นตัวเลือกท่ีดีทส่ี ุดสำหรับการใช้งานร่วมกับ 4
อุปกรณ์อิเล็กทรอนิกส์แบบไร้สาย อุปกรณ์สวมใส่ ระบบ IOT และโปรเจกต์ที่มกี ารควบคมุ พลังงาน เป็น ต้น บอร์ด uKit Explore นอกจากนบี้ อรด์ uKit Explore ยังมีพอร์ตสญั ญาณอินพตุ /เอาตพ์ ตุ (I/O) เพ่อื เชือ่ มตอ่ กับเซนเซอร์หรอื อปุ กรณ์ภายนอกต่างๆ ไดอ้ ยา่ งสะดวก เชน่ ADC, I2C, I2S, SPI, UART ท่ีรองรบั การเขียนโปรแกรม Arduino IDE และโปรแกรม uKit Explore Blockly หมายเหตุ อปุ กรณ์ภายนอกของบอร์ด uKit Explore สามารถกำหนดค่าให้ขาสญั ญาณ (Pin) ใดๆ ได้เมื่อ มีการเขียนโปรแกรม Arduino IDE อุปกรณ์ภายนอกดังกล่าวจะถูกกำหนดเป็นค่าเริ่มต้น และด้าน ฮาร์ดแวร์ของอุปกรณอ์ ินพตุ /เอาตพ์ ุตท่เี กย่ี วข้อง จะแสดงในรูปต่อไปน้ี 5
รายละเอยี ดอนิ เตอรเ์ ฟซและพอรต์ ขยายขาสญั ญาณ I/O ของบอรด์ uKit Explore 1.3 uKit Servo 1.3.1 เซอรโ์ วมอเตอร์ (Servo motor) บริษัท UBTECH Robotics Corp มีการพัฒนาตัวขับเร้าอย่างเซอร์โวมอเตอร์ให้มีการไหลของ กระแสคงที่ เพอื่ เพ่มิ ความยืดหยุ่นของอปุ กรณ์ในการเคลอ่ื นที่สำหรบั หนุ่ ยนต์ ระยะเวลา 5 ปที ่ีผา่ นมาทาง ทีมงานได้มีการปรับปรุงและแก้ไขข้อผิดพลาดจนทำให้ตัวอุปกรณ์สามารถลดเวลาการเปลี่ยนแปลงลง เหลือ 0.01 วินาที ทำให้หนุ่ ยนต์เข้าถงึ รปู แบบการทำงานของมนษุ ย์ท่ีมากขึ้น 6
การประกอบและติดตั้งเซอร์โวมอเตอร์มีการใช้เทคโนโลยีที่ทันสมัยจนทำให้เซอร์โวมอเตอร์มี ขนาดเล็กกะทัดรัดและมีการรวมเทคโนโลยีขั้นสูงเข้าด้วยกัน เช่น ระบบ MCU อัลกอริทึม PID ระบบ เซนเซอร์แบบป้อนกลับ และระบบชุดเฟืองแพลนเนตตารี่ (Planetary gear) จึงทำให้เซอร์โวมอเตอร์มี แรงบดิ และความแม่นยำในการเปล่ียนแปลงทิศทางทสี่ งู รายละเอียดอุปกรณ์เซอรโ์ วมอเตอร์ 1.3.2 ชิน้ ส่วนตอ่ ประกอบ (Structural Components) ชิ้นสว่ นตอ่ ประกอบมีการออกแบบขนาดทีม่ ีความถกู ตอ้ งแมน่ ยำ ± 0.05 เซนตเิ มตร รูปแบบของ การต่อประกอบมี 2 ลักษณะ คอื ช้ินสว่ นแบบฐานลอ็ กและช้นิ ส่วนแบบรู การตอ่ ประกอบไมจ่ ำเปน็ ต้องใช้ เคร่อื งมืออ่นื ชว่ ยในการต่อประกอบ ทำให้เกิดความสนุกและงา่ ยตอ่ การเรมิ่ ตน้ โครงสรา้ งประกอบ 7
1.4 เซนเซอร์ตรวจวดั ระดับสีเทา (Grayscale Sensor) เซนเซอร์ตรวจวัดระดับสีเทาเป็นอุปกรณ์ uKit ที่ได้พัฒนาให้มีความอัจฉริยะและเป็นการ ผสมผสานฟงั กช์ ันการทำงานของอุปกรณ์ตรวจจับหลายจุดในอุปกรณ์เดียว (Multi-functional device) ส่วนใหญน่ ยิ มใชเ้ ปน็ เซนเซอร์ตรวจจับเส้น (Line-tracking sensor) เซนเซอร์ตรวจวัดระดับสเี ทาท่วั ไปท่ี มีอยู่ตามท้องตลาดสามารถระบุได้เพียง 2 สีเท่านั้น ทำให้อุปกรณ์มีรูปแบบข้อจำกัดอย่างมากและการ พัฒนาด้านเทคโนโลยีที่รวดเร็วจนทำให้เซนเซอร์เหล่านั้นไม่ตอบสนองต่อความต้องการในการใช้งาน ปัจจุบัน อุปกรณ์ uKit จึงมีการพัฒนาอุปกรณ์เซนเซอร์ตรวจวัดระดับสีเทา เพื่อตอบสนองต่อความ ต้องการของผู้ใชง้ าน อุปกรณ์ของ uKit สามารถเขา้ ถึงและตรวจจบั ระดับสีได้ 2 สี ที่มคี ่าผลลัพธ์ตรงตามแรงดันไฟฟ้า การตรวจวัดสีมีการเก็บข้อมูลอย่างอัตโนมัติเมื่อมีหยุดการทำงานของบอร์ด อีกความหมายคือสีท่ีมีค่า ความละเอียดเหมอื นกนั สามารถใช้งานไดโ้ ดยไม่จำเป็นตอ้ งมีการปรบั เทียบเพม่ิ เติม จะเป็นการเพม่ิ ความ ยืดหยุ่นของสีที่มีการใช้งานซ้ำๆ โดยมีการปรับเทียบก่อนเพียงแค่ครั้งเดียว ทำให้สามารถตรวจวัดสีได้ ตลอดเวลาตามความต้องการ อุปกรณ์ดังกล่าวสามารถใช้ในการตรวจจับเส้นของรถ หุ่นยนต์ที่มีความ อัจฉริยะ และอ่ืนๆ ชว่ ยเพมิ่ ความคดิ สร้างสรรคแ์ ละความสนกุ ทกุ เวลา เซนเซอร์ตรวจวัดระดับสเี ทา 8
1.5 เซนเซอร์อินฟราเรด (Infrared Sensor) เซนเซอร์อนิ ฟราเรดประกอบดว้ ยตัวสง่ สญั ญาณ (Emitting) และตวั รบั สัญญาณ (Received) ตัว ส่งสัญญาณจะปล่อยลำแสงอินฟราเรดไปยังวัตถุ เมื่อมีวัตถุจะสะท้อนกลับไปยังตัวรับสญั ญาณ จากนั้น สัญญาณที่ไดร้ บั จะถกู ประมวลผลและคำนวณระยะหา่ งจากวัตถุ เซนเซอร์อินฟราเรด 1.6 เซนเซอร์อลั ตราโซนิก (Ultrasonic Sensor) เซนเซอร์อัลตราโซนิกเปน็ เซนเซอร์ทแี่ ปลงสญั ญาณอัลตราโซนิกเป็นสญั ญาณพลงั งานอ่ืนๆ (โดย ปกตจิ ะเปน็ สัญญาณไฟฟา้ ) เซนเซอร์นถ้ี ูกออกแบบมาเชือ่ มต่อแบบอนกุ รม (Serial) เพ่อื ให้เซนเซอร์หลาย ตัวสามารถทำงานร่วมกันได้ สามารถวัดระยะวัตถุแบบพลวัต (Dynamic) และวัตถุอยู่นิ่ง (Static) โดยทั่วไปจะใช้เป็นข้อมูลบนแพลตฟอร์มหุ่นยนต์เคลื่อนท่ี (Mobile robot) เพื่อหาระยะห่างระหว่าง เซนเซอร์และวัตถุเป้าหมายหาได้ สามารถหาค่าได้จากความต่างของเวลาระหว่างชุดคลื่นอลั ตราโซนิกที่ ผ่านการมอดเู ลตและเสียงสะทอ้ น เซนเซอรอ์ ัลตราโซนิก 9
1.7 เซนเซอร์แบบสมั ผัส (Touch Sensor) สวิตช์แบบกด หมายถึง อุปกรณ์ที่ทำหน้าที่ควบคุมการไหลของกระแสไฟฟ้าภายในวงจร หรือ กลา่ วงา่ ยๆ คือ อปุ กรณ์เปดิ -ปดิ กระแสไฟฟ้าภายในวงจรไฟฟา้ เมื่อมกี ารกดจะเรม่ิ ต้นการทำงานและเมื่อ ปลอ่ ยจะคนื คา่ เร่ิมตน้ สวติ ช์แบบกดมกี ารใช้งานกนั อย่างแพรห่ ลายในอปุ กรณเ์ ครอ่ื งใช้ไฟฟา้ โดยท่ัวไปจะ ใช้ควบคมุ กระแสท่นี ้อยกวา่ 5 แอมปแ์ ละไมส่ ามารถควบคุมวงจรหลกั ได้โดยตรง เซนเซอร์แบบสมั ผสั 1.8 โมดลู แอลอดี ี (LED) ไดโอดเปล่งแสง (Light Emitting Diode) หรือ LED เป็นอุปกรณ์อิเล็กทรอนิกส์ทีท่ ำมาจากสาร กึ่งตัวนำ (Solid-state semiconductor device) สามารถแปลงพลังงานไฟฟ้าให้เป็นแสงท่ีสามารถ มองเห็นได้โดยตรง ไดโอดเปล่งแสงประกอบด้วยชิปสารกึง่ ตัวนำที่วางอยู่บนฐานรอง anvil ซึ่งต่ออยู่กับ ขาสัญญาณข้ัวลบและขาสัญญาณข้ัวบวก ตัวชิปท้ังหมดถูกเคลอื บด้วยวัสดุอีพอกซีเรซนิ ที่ทำหนา้ เป็นเลนส และตัวป้องกันความชื้น อุปกรณ์โมดูล LED มี 3 โหมดการทำงานสำหรับผู้ใช้ในการเขียนโปรแกรม คือ โหมดการแสดงออกทางสหี นา้ (Expression mode) โหมดการแสดงอารมณ์ (Scene mode) และโหมด เปดิ -ปิดความสวา่ ง (Bright mode) ผ้ใู ชส้ ามารถใชโ้ หมดดังกลา่ วเพอ่ื ปรับแตง่ หุ่นยนต์ได้ โมดลู LED 10
บทที่ 2 ความรู้เบอ้ื งตน้ เกีย่ วกบั Arduino 11
Arduino เป็นโครงการที่เริ่มมาจากประเทศอิตาลี มีการนำชื่อเด็กผู้ชายชาวอิตาเลี่ยนมาใช้ ความหมายของคำว่า Arduino แปลว่า “เพื่อนแท้ (Strong friend)” มีผู้ร่วมก่อตั้งโครงการ คือ Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis แ ล ะ Nicholas Zambetti การพัฒนา Arduino มีการออกแบบมาสำหรับนกั เรียนที่ไม่ได้เรียนทางด้านไฟฟ้าโดยตรง มี การคดิ คน้ ใหอ้ ปุ กรณไ์ มโครคอนโทรลเลอรม์ ีราคาถกู และใชง้ านงา่ ย เรมิ่ แรกนกั ออกแบบมีการตัดสินใจท่ี จะพฒั นาบอรด์ ของตัวเองขนึ้ และเม่อื Arduino ได้เปดิ ตวั ทำใหไ้ ดร้ บั ความช่ืนชมและเสยี งตอบรับที่ดีจาก กลมุ่ อิเลก็ ทรอนกิ ส์ เน่ืองจากเปน็ โอเพ่นซอรส์ ราคาถูกและมีลกั ษณะการใช้งานท่งี ่าย ทำให้ผู้ไม่มีความรู้ ทางดา้ นการเขยี นโปรแกรมคอมพิวเตอรส์ ามารถใชง้ านบอร์ดและสามารถประยุกต์ใช้งานรว่ มกบั งานอื่นๆ ที่น่าสนใจได้อีกด้วย เช่น ผลตอบสนองการวัดด้วยเซนเซอร์ ไฟกะพริบ การควบคุมมอเตอร์ เป็นต้น รวมถึงอุปกรณ์ uKit Explore เป็นบอร์ดพัฒนาแบบโอเพนซอร์สที่สามารถใช้งานร่วมกับ Arduino ได้ อย่างเต็มท่ี 2.1 ซอฟต์แวร์ uKit Explore Blockly ซอฟต์แวร์สำหรับผู้เริ่มต้นพัฒนาบอร์ด Arduino สามารถใช้บทเรียนต่อไปนี้ในการเรียนรู้วิธี ดาวน์โหลดและติดตั้งซอฟต์แวร์ uKit Explore Blockly รวมถึงวิธีการเขียนโปรแกรมลงบอร์ด uKit Explore แบบแยกโมดูลเพื่อทำให้โปรเจกต์เสร็จสมบูรณ์ ก่อนเริ่มต้นสิ่งที่ต้องเตรียมคือ บอร์ด uKit Explore สาย USB และแบตเตอรี่ ลิเธียม 7.4 โวลต์ จะต้องใช้คอมพิวเตอร์ระบบปฏิบัติการ Windows หรือ Mac OS ท่ีสามารถเชือ่ มต่ออินเตอร์เนต็ ได้ Blockly เป็นโปรแกรมเชิงกราฟิก แต่ละกราฟิกจะแสดงโปรแกรมแบบบล็อกที่สามารถต่อ ประกอบเข้าด้วยกันเพื่อสร้างฟังก์ชันอย่างง่าย ซึ่งสามารถนำฟังก์ชันมาต่อรวมกันเพื่อสร้างโปรแกรม ทั้งหมดได้เพยี งแคก่ ารลากเมาส์ โดยไมจ่ ำเป็นตอ้ งใชแ้ ปน้ พิมพ์ 2.1.1 การดาวนโ์ หลด uKit Explore Blockly ข้ันตอนตอ่ ไปนี้จะใช้คอมพวิ เตอร์ระบบปฏิบตั กิ าร Windows สามารถใชเ้ ป็นขอ้ มูลอา้ งองิ สำหรบั ระบบปฏิบัติการอื่นได้ สามารถดาวน์โหลดซอฟต์แวร์ uKit Explore Blockly เวอร์ชันล่าสุดได้จาก เวบ็ ไซต์ GitHub และกำหนดค่า (Configure) ที่เกีย่ วข้องจากไฟลไ์ ลบรารี เมื่อดาวน์โหลดและติดตั้งซอฟต์แวร์ uKit Explore Blockly คอมพิวเตอร์จะมีการติดตั้งทั้ง ซอฟตแ์ วร์ uKit Explore Blockly และ Arduino IDE พร้อมกัน ลงิ คด์ าวนโ์ หลด https://github.com/UBTEDU/uKit-Explore-Blockly/releases 12
ดาวนโ์ หลดซอฟตแ์ วร์ uKit Explore Blockly หมายเหตุ รูปภาพใชป้ ระกอบคำอธิบาย โดยซอฟตแ์ วรอ์ าจมกี ารอปั เดตอยา่ งต่อเน่อื ง 2.1.2 การตดิ ต้ังไดรเวอรซ์ อฟต์แวร์ uKit Explore Blockly 13
ติดต้ังซอฟต์แวร์ uKit Explore Blockly หลงั จากติดตง้ั ซอฟต์แวร์ uKit Explore Blockly แลว้ จำเปน็ ต้องติดตั้งไดรเวอร์สำหรบั บอรด์ uKit Explore เพื่อใหส้ ามารถเช่ือมต่อและรบั -สง่ ข้อมลู ระหว่างคอมพวิ เตอรก์ ับบอรด์ uKit Explore ตดิ ต้ังไดรเวอร์ซอฟตแ์ วร์ uKit Explore Blockly 14
2.1.3 การเช่ือมตอ่ บอรด์ uKit Explore กับคอมพิวเตอร์ เมื่อทำการติดตั้งซอฟต์แวร์ uKit Explore Blockly และไดรเวอร์ที่เกี่ยวข้องอย่างถูกต้อง เรยี บรอ้ ยแล้ว จะสงั เกตุเห็นซอฟตแ์ วร์ uKit Explore Blockly และ Arduino IDE บนหน้าจอคอมพวิ เตอร์ ทำการเปิดซอฟต์แวร์ uKit Explore Blockly และทำการเชื่อมต่อบอร์ด uKit Explore กับคอมพวิ เตอร์ ดว้ ยสาย USB เมอ่ื เช่ือมต่อสำเร็จ คอมพวิ เตอร์จะแสดงพอรต์ ในการเชื่อมตอ่ และซอฟต์แวร์ uKit Explore Blockly จะมกี ารแสดงพอร์ตการเชื่อมตอ่ อยา่ งอัตโนมัติ บอร์ด uKit Explore และสาย USB ท่ีใชใ้ นการเชอ่ื มต่อ หมายเหตุ สำหรบั บอร์ด uKit Explore V1.0 ใหเ้ ลอื กเป็น V1 และสำหรบั บอร์ด uKit Explore V2.0 ให้ เลอื กเปน็ V2 บนซอฟต์แวร์ uKit Explore Blockly ดังรปู ดา้ นลา่ ง กำหนดค่าเวอร์ชนั ของบอร์ด uKit Explore บนซอฟตแ์ วร์ 2.1.4 การเขยี นโปรแกรมบนซอฟตแ์ วร์ uKit Explore Blockly เมื่อทำการติดตั้งซอฟต์แวร์ uKit Explore Blockly เรียบร้อยแล้ว ทำการเปิดโปรแกรมจะเห็น หน้าต่างโปรแกรมทีส่ ามารถทำการแก้ไขและอัปโหลดโปรแกรมไปยังบอร์ด uKit Explore หรือหน้าจอ พอร์ตอนุกรม (Serial monitor) ที่เป็นตัวสื่อสารกันระหว่างบอร์ด uKit Explore และพอร์ตอนุกรม รายละเอยี ดอนิ เทอรเ์ ฟซของซอฟต์แวร์ uKit Explore Blockly แสดงในรูปด้านล่าง 15
รายละเอยี ดอนิ เทอรเ์ ฟซของซอฟต์แวร์ uKit Explore Blockly 2.1.5 การอปั โหลดโปรแกรมไปยงั บอร์ด uKit Explore ขั้นตอนนี้เป็นการสาธิตวิธีการอัปโหลดโปรแกรมตัวอย่าง “RGB” ไปยังบอร์ด uKit Explore เริ่มแรกต้องมีโปรแกรมทีใ่ ช้ในการอัปโหลดกอ่ น ตัวอย่างน้จี ะเนน้ ให้เหน็ ถงึ วธิ กี ารอัปโหลดโปรแกรม โดย ตวั อยา่ งโปรแกรมยังไม่กล่าวถงึ สามารถเปดิ โปรแกรมตัวอยา่ งเพ่อื ศกึ ษาเพม่ิ เตมิ ได้ โปรแกรมตวั อย่าง “RGB” เลือก “COM1” เป็นพอร์ตที่ใช้ในการสื่อสาร โดยพอร์ตนี้จะแสดงเมื่อมีการเชื่อมต่อระหว่าง คอมพิวเตอรแ์ ละพอร์ตทไ่ี ดเ้ ชอื่ มต่อ โดยแตล่ ะบอร์ดจะมีพอรต์ ที่แตกตา่ งกัน ดงั น้นั ต้องทำการตรวจสอบ กอ่ นการอัปโหลดในแต่ละครัง้ ทำการคลิก เพื่อตรวจสอบโปรแกรม 16
การตรวจสอบโปรแกรม เมื่อตรวจสอบสำเรจ็ จะแสดงข้อความ “Verification succeeded” การอัปโหลดโปรแกรมไปยังบอร์ด uKit Explore ทำได้เมื่อมีการตรวจสอบโปรแกรมสำเร็จ ทำ การคลกิ เพื่ออัปโหลดโปรแกรมไปยังบอรด์ uKit Explore เมอ่ื อปั โหลดสำเรจ็ จะแสดง ข้อความ \"Upload complete” บนหน้าตา่ งโปรแกรม การอปั โหลดโปรแกรม เมอ่ื เมือ่ อัปโหลดสำเรจ็ จะแสดงขอ้ ความ “Upload complete” 17
สรปุ สน้ั ๆ วิธีการอปั โหลดโปรแกรมสำหรบั ซอฟต์แวร์ uKit Explore Blockly แบ่งออกเป็น 3 ข้นั ตอน คือ ▪ โปรแกรม ▪ เลอื กรุน่ และพอรต์ ของบอรด์ uKit Explore ▪ อปั โหลด 2.2 ซอฟต์แวร์ Arduino IDE ซอฟต์แวรส์ ำหรบั นักพัฒนาทคี่ นุ้ เคยกบั แพลตฟอร์ม Arduino สามารถใช้บทเรียนต่อไปนี้ในการ เรียนรู้วิธีการใช้งานซอฟต์แวร์ Arduino IDE รวมไปถึงวิธีการเขียนโปรแกรมไปยังบอร์ด uKit Explore เพ่ือทำให้โครงการเสรจ็ สมบูรณ์ เร่มิ ต้นสงิ่ ท่ีตอ้ งเตรยี ม คือ บอรด์ uKit Explore สาย USB และแบตเตอร่ี ลเิ ธยี ม 7.4 โวลต์ แสดงในรูปด้านลา่ ง บอร์ด uKit Explore และสาย USB ทีใ่ ช้ในการเชื่อมตอ่ ซอฟต์แวร์ Arduino IDE เปน็ โปรแกรมสำหรับควบคุมบอร์ด uKit Explore การกำหนดค่าต่างๆ สามารถ ทำได้อย่างรวดเร็ว ดงั ตอ่ ไปนี้ 2.2.1 การเชอื่ มต่อบอร์ด uKit Explore กบั คอมพิวเตอร์ ซอฟต์แวร์ uKit Explore Blockly สามารถเรียกใช้โปรแกรม Arduino IDE ได้โดยตรง ทำการ คลิกที่เครื่องมือ (Tools) และจะเห็นการเรียกใช้โปรแกรมใน Arduino IDE (run program in Arduino IDE) 18
การเรียกใชโ้ ปรแกรมใน Arduino IDE ในซอฟตแ์ วร์ uKit Explore Blockly ทำการคลกิ run program in Arduino IDE เพื่อเปดิ IDE ซอฟตแ์ วร์ Arduino IDE 2.2.2 การเขียนโปรแกรมบนซอฟต์แวร์ Arduino IDE เมือ่ ทำการเปิดโปรแกรม Arduino IDE เรียบร้อย จะเห็นหนา้ ต่างโปรแกรมทส่ี ามารถทำ การแก้ไขและอปั โหลดโปรแกรมไปยงั บอรด์ uKit Explore หรือหนา้ ตา่ งพอรต์ อนกุ รม (Serial monitor) ที่เป็นตัวสื่อสารกันระหว่างบอร์ด uKit Explore และพอร์ตอนุกรม รายละเอยี ดหน้าต่างของซอฟต์แวร์ Arduino IDE แสดงในรูปด้านล่าง 19
รายละเอียดอินเทอรเ์ ฟซของซอฟตแ์ วร์ Arduino IDE โดยทั่วไปโปรแกรม Arduino จะมีความแตกต่างจากโปรแกรมภาษา C โดยประกอบดว้ ย void setup () และ void loop () “void setup ()” ใช้สำหรับตั้งค่าเริ่มต้นของโปรแกรม ส่วนนี้จะมีการทำงานเพียงครั้งเดียว หลงั จากท่ีบอรด์ uKit Explore เร่ิมการทำงาน โปรแกรมที่มีการเรียกใช้บ่อยจะอยู่ภายใน “void loop ()” โปรแกรมดังกล่าวจะมีการทำงาน วนซำ้ โปรแกรมส่วนน้ีทำให้บอร์ด uKit Explore สามารถตดิ ตอ่ กบั ระบบภายนอกไดอ้ ยา่ งต่อเนอ่ื ง พืน้ ที่สขี าว คอื พื้นท่สี ำหรับการเขยี นโปรแกรม สว่ นพ้นื ท่ีสดี ำด้านลา่ ง คือ พืน้ ทแี่ สดงสถานะการ ทำงาน ซึ่งจะแสดงข้อมูลเกี่ยวกับการอัปโหลดและประมวลผลของโปรแกรม สามารถตั้งค่าข้อมูลที่ เกยี่ วข้องได้ โดยไปท่ี File > Preferences แถบเครอื่ งมือสำหรบั ฟังก์ชันทว่ั ไปทีอ่ ยูใ่ นแถบเคร่ืองมอื แสดงดงั ตารางตอ่ ไปนี้ Toolbar Function Buttons Verify ตรวจสอบความถกู ต้องของโปรแกรม Upload อปั โหลดโปรแกรมไปยงั ตัวบอร์ด Arduino New สรา้ งไฟล์โปรเจกต์ใหม่ 20
Open เปิดไฟลโ์ ปรเจกต์ทบ่ี นั ทกึ ไว้ Save บันทกึ ไฟล์ปจั จบุ นั ที่เปดิ ใชง้ าน Serial Monitor ตรวจสอบการรบั -สง่ ขอ้ มลู ผา่ นพอรต์ อนกุ รมม 2.2.3 การอปั โหลดโปรแกรมไปยังบอรด์ uKit Explore ทำการเชื่อมต่อบอร์ด uKit Explore เข้ากับคอมพิวเตอร์ด้วยสาย USB เมื่อเชื่อมต่อสำเร็จ คอมพิวเตอรจ์ ะสง่ เสียงเพือ่ แสดงถึงพอรต์ ทีม่ ีการเช่ือมตอ่ ขั้นตอนนี้จะเป็นการสาธิตวิธีการอัปโหลดโปรแกรมตัวอย่าง “RGB” ไปยังบอร์ด uKit Explore เริ่มแรกตอ้ งมโี ปรแกรมทใ่ี ชใ้ นการอปั โหลดก่อน ตัวอย่างนจ้ี ะเนน้ ให้เห็นถึงวธิ ีการอัปโหลดโปรแกรม โดย ตัวอยา่ งโปรแกรมยงั ไมก่ ล่าวถงึ สามารถเปดิ โปรแกรมตัวอย่างเพือ่ ศึกษาเพิ่มเตมิ ได้ เปิดซอฟต์แวร์ Arduino IDE ค้นหาโปรแกรมตัวอย่างในเมนู Arduino IDE โดยไปท่ี File > Examples > uKit Explore > Sensor > RGBLED คลกิ เพือ่ เปิดโปรแกรม โปรแกรมตวั อย่าง “RGB” 21
ก่อนการอัปโหลดโปรแกรมควรทำการตรวจสอบข้อผิดพลาดของโปรแกรมก่อน ทำการคลิก “Verify” เพื่อตรวจสอบ ใช้เวลา 2-3 วินาที หากไม่มีข้อผิดพลาดจะแสดงข้อความ “Done compiling” เพื่อแสดงว่ามีการคอมไพล์เสร็จสมบูรณ์ หากเกิดข้อผิดพลาดสามารถกลับไปตรวจสอบ โปรแกรมเพื่อแกไ้ ขใหเ้ สร็จสมบูรณ์ การตรวจสอบโปรแกรม เมื่อตรวจสอบสำเร็จจะแสดงข้อความ “Done compiling” หลังจากคอมไพล์เสร็จสมบูรณ์ ให้เลือกประเภทบอร์ดเป็น Arduino/Genuino Mega or Mega 2560 ใน Tools > Development Board ข้ันตอนน้ีจะทำเพยี งครง้ั เดียวเม่ือเร่มิ ใชง้ านคร้ังแรก และไม่ไดเ้ ปลีย่ นบอร์ดประเภทอืน่ การเลือกประเภทบอรด์ เปน็ Arduino/Genuino Mega or Mega 2560 ถ้ามีการเปลี่ยนประเภทบอร์ด ไปที่ Tools > Port และเลือก COM_ เป็นพอร์ตที่ใช้ในการ เช่อื มตอ่ โดยพอรต์ นจี้ ะแสดงเมอ่ื มกี ารเชอ่ื มตอ่ ระหว่างคอมพิวเตอร์และพอรต์ ท่ีได้เช่ือมตอ่ ไว้ โดยแต่ละ บอร์ดจะมีพอรต์ ทแี่ ตกต่างกัน ดงั นัน้ จึงจำเป็นตอ้ งตรวจสอบก่อนการอปั โหลดในแต่ละครง้ั 22
การเลือกพอร์ตที่เช่อื มตอ่ หลงั จากเลือกพอรต์ COM แลว้ ขอ้ มูลของประเภทบอรด์ และพอรต์ จะแสดงทม่ี ุมด้านลา่ งขวาของ หน้าต่าง สดุ ทา้ ยทำการคลิก เปน็ การอัปโหลดโปรแกรม เม่อื ทำการอัปโหลดสำเรจ็ ในส่วนพื้นที่สีดำ จะแสดงข้อความ “Compiling program” และหลักจากนนั้ จะเปล่ียนเป็น “Uploading” สถานะของไฟ LED 2 ดวงที่มีเครอื่ งหมาย TX และ RX บน Arduino 2560 จะกะพรบิ อย่างรวดเร็วเพือ่ ระบวุ า่ โปรแกรม กำลังถกู เขียนไปยัง Arduino 2560 เมื่ออปั โหลดสำเร็จจะแสดงข้อความ “Done uploading” การอัปโหลดโปรแกรม เมื่อเมื่ออัปโหลดสำเร็จจะแสดงข้อความ “Done uploading” 23
สรปุ สั้นๆ วธิ ีการอปั โหลดโปรแกรมสำหรบั ซอฟตแ์ วร์ Arduino IDE แบง่ ออกเป็น 3 ข้นั ตอน คือ ▪ โปรแกรม ▪ เลอื กรนุ่ และพอร์ตของบอรด์ uKit Explore ▪ อปั โหลด ทกี่ ลา่ วมาข้างต้นเปน็ วธิ กี ารใช้งานซอฟตแ์ วร์ uKit Explore Blockly และ Arduino IDE เบ้ืองต้น หากมี คำถามหรือขอ้ สงสัยระหว่างการใชง้ านสามารถตดิ ตอ่ ผ่าน Forum ของเรา 2.3 การเช่อื มตอ่ สายไฟกับอปุ กรณ์ 3 PIN Port สามารถใช้สาย 3 Pin ต่อเข้ากับตวั ควบคุมหลักและเซอรโ์ วมอเตอร์ โดยสามารถเชื่อมต่อกันเป็น อนกุ รมได้ ไม่จำเปน็ ต้องตอ่ เข้ากบั ตัวควบคุมหลกั โดยตรง ดงั ภาพดา้ นล่าง สายไฟ 3 Pin ในการเชื่อมต่อ ใชส้ ายไฟ 3 Pin ในการเชอ่ื มต่อกับเซนเซอรแ์ ละเซอรโ์ วมอเตอร์ (รองรบั การเชอ่ื มต่อแบบอนกุ รม) 7 PIN Port สามารถใช้สาย 7 Pin เพื่อเชื่อมต่อเข้ากับตัวควบคุมหลักและอุปกรณ์ uKit Grayscale Sensor โดยอุปกรณ์ uKit Grayscale Sensor สามารถเชือ่ มตอ่ เขา้ กบั พอรต์ X3 เทา่ นนั้ สายไฟ 7 Pin ในการเชือ่ มต่อ 24
บทที่ 3 การเขียนโปรแกรมภาษาซสี ำหรบั Arduino 25
การเขยี นโปรแกรมควบคุม Arduino ใชห้ ลกั การพืน้ ฐานของภาษาซี (C/C++) 3.1 โครงสรา้ งพน้ื ฐาน 3.1.1 ฟังก์ชนั หลกั (Main Functions) ฟังก์ชันใชใ้ นการประกาศค่าเร่ิมตน้ ตำแหนง่ พอรต์ ท่ีใชง้ าน รวมถึงฟังก์ชันท่ีอยู่ void setup () ไลบาร่ีท่ีใชง้ านซึง่ เป็นฟงั ก์ชนั ทท่ี ำงานเพียงคร้งั เดยี ว จะทำงานทุกครั้งท่ีมีการรี เซตหรือรบี ตู เคร่ืองใหม่เท่านัน้ void loop () ฟังกช์ ันใช้ในการเขียนโปรแกรมการทำงานของ Arduino เปน็ ฟงั กช์ ันการวนลูป ไปเร่อื ยๆ 3.1.2 ชุดคำสั่งในการควบคุม (Control Structures) คำสั่งในการตัดสินใจแบบตัวเลือกเดียว โดยใช้งานร่วมกับตัวดำเนินการเพื่อ if ตรวจสอบเงื่อนไขที่กำหนด เช่น ค่าอินพุตมีค่ามากกว่าค่าที่กำหนดไว้หรือไม่ เป็นต้น if…else คำสง่ั ในการตัดสนิ ใจแบบหลายตวั เลอื ก สามารถใชใ้ นการดำเนินการตรวจสอบ แบบมีหลายเงื่อนไข คำสง่ั ใช้เพือ่ สัง่ ให้คำสงั่ ทอี่ ยภู่ ายในวงเลบ็ ปีกกาหลงั for มกี ารทำงานซ้ำกันตาม for จำนวนรอบท่ตี อ้ งการ เหมาะทีจ่ ะใชก้ ับงานประเภทที่ทราบจำนวนการวนรอบ ของการทำซ้ำท่ีแน่นอน while เป็นคำสั่งวนรอบอย่างต่อเนื่องและไม่มีสิ้นสุดจนกว่าเงื่อนไขในวงเล็บจะ กลายเป็นเท็จ do…while เป็นคำส่ังวนรอบที่มีการตรวจสอบเง่ือนไขในส่วนท้ายของลปู ดังนั้นคำสัง่ นีจ้ ะ ทำงานอยา่ งน้อยหนึง่ คร้ังกอ่ นเสมอ break คำส่งั break เป็นคำสัง่ ที่ใช้ในการออกจากวนลูป เช่น คำส่ัง for, while, do .. while ทนั ที โดยไมท่ ำคำสั่งทเี่ หลอื ตอ่ goto เปน็ คำสงั่ ทสี่ งั่ ใหไ้ ปทำงาน ณ จุดทเ่ี รากำหนด โดยไมม่ ีเงื่อนไข return สิ้นสุดการทำงานและสง่ คา่ อะไรกไ็ ดก้ ลับออกไปจากฟังก์ชัน continue คำสั่ง Continue ดำเนินการกลับไปตรวจสอบเงื่อนไขของลูป (do, for หรือ while) อีกคร้งั ถ้าเง่ือนไขเป็นจรงิ กด็ ำเนินการทำคำสั่งในลปู ตอ่ ไป 26
3.1.3 โครงสรา้ งทางไวยกรณ์ (Further Syntax) ; (เซมโิ คลอน) จะใชเ้ มื่อจบคำสัง่ { } (วงเลบ็ ปีกกา) เร่ิมต้นวงเล็บปกี กาเปดิ \"{\" จะตอ้ งเขียนตามดว้ ยวงเลบ็ ปกี กาปดิ \"}\" ดว้ ยเสมอ // (คอมเมนต์แบบ คำสงั่ สำหรับอธบิ ายเพอื่ ให้ตวั เองหรอื ผ้อู ื่นรู้เกี่ยวกับการทำงานของโปรแกรม บรรทดั เดียว) จะเป็นการคอมเมนต์แบบบรรทดั เดียว จะชว่ ยให้ชดุ คำสง่ั ทีถ่ ูกคอมเมนต์ยังคงอยู่ในโปรแกรม ดังน้ันเม่ือมกี าร /* */ (คอมเมนต์แบบ ตรวจสอบจะละเว้นส่วนนี้ วิธีนี้มีประโยชน์สำหรับการหาข้อผิดพลาดของ หลายบรรทัด) ชุดคำสัง่ หรอื ตวั แสดงปญั หาเวลาที่โปรแกรมเกิดขอ้ ผิดพลาดขึ้นหรอื ตรวจสอบ ขอ้ ผดิ พลาดทคี่ ลุมเครือ เป็นคำสงั่ ทใี่ ช้เพอื่ กำหนดคา่ นิพจนต์ า่ งๆ ให้กับช่ือของตวั แปรคงท่ี #define หมายเหตุ # เป็นส่วนสำคัญและไม่จำเปน็ ตอ้ งเพ่ิมเครื่องหมายเซมิโคลอนใน ตอนทา้ ย #include เปน็ คำสงั่ ท่ีใช้เพื่อเรยี กใชช้ ดุ คำสัง่ ไลบรารนี อกโปรแกรม 3.2 ตัวดำเนนิ การ 3.2.1 ตวั ดำเนินการคำนวณ (Arithmetic Operators) = (เทา่ กบั ) กำหนดค่าตัวแปรทางด้านขวาของเครื่องหมายเท่ากับให้มีค่าเท่ากับตัวแปร ทางด้านซา้ ย + (บวก) เป็นฟังก์ชันที่มีการส่งค่ากลับเมื่อมีการบวก ลบ คูณ และหารของตัว - (ลบ) ดำเนินการ 2 ตัว ตัวดำเนินการมีการใช้ชนิดของข้อมูลในการคำนวณ * (คณู ) ตวั อยา่ งเชน่ 9/2 ผลลพั ธ์ 4 โดย 9 และ 2 เปน็ จำนวนเต็ม ชนดิ ของข้อมลู จะมี หน่วยความจำที่จำกัด มันสามารถเกินขนาดได้เมื่อมีผลลัพธข์ นาดใหญ่ (เช่น การเพิ่มค่า 1 ไปจนถึงจำนวนเต็มที่ค่า 32,767 ถึง -32,768) หากชนิดของ / (หาร) ขอ้ มูลท่ีตา่ งกันจะตอ้ งใช้พน้ื ที่ “ใหญก่ ว่า” ในการคำนวณ ถ้าตัวดำเนินการตัว หนึ่งเป็นประเภท float หรือ double ตัวเลขจุดทศนิยมจะถกู นำมาใช้ในการ คำนวณ % โมดูลัส คือ การหารเอาเศษค่าทางซ้ายด้วยค่าทางขวา จะมีประโยชน์สำหรบั การเกบ็ ตวั แปรในช่วงท่เี ฉพาะเจาะจง (เช่น ขนาดของอารเ์ รย์) min () หาคา่ ท่นี ้อยกว่าของตวั เลขสองตัว max () หาคา่ ท่มี ากกวา่ ของตัวเลขสองตวั log () log () คำนวณลอการิทึม (ฐาน e) ของ x 27
3.2.2 Trigonometry คำนวณค่า sine ของมุม (เรเดยี น) ผลลัพธจ์ ะอยรู่ ะหว่าง -1 และ 1 คำนวณค่า cosec ของมมุ (เรเดียน) ผลลพั ธจ์ ะอย่รู ะหว่าง -1 และ 1 Sin () คำนวณคา่ tangent ของมุม (เรเดียน) ผลลัพธจ์ ะอยู่ระหว่าง -∞ และ ∞ Cos () Tan () 3.2.3 ตวั ดำเนินการเปรยี บเทยี บ (Comparision Operators) == เทา่ กบั != ไม่เทา่ กบั < นอ้ ยกว่า > มากกว่า <= น้อยกว่าหรอื เท่ากบั >= มากกว่าหรือเท่ากับ 3.2.4 ตวั ดำเนินการตรรกะ (Boolean Operation) && เปน็ จริงเม่ือตวั ดำเนนิ การทง้ั ค่เู ป็นจรงิ || เปน็ จริงเม่ือตวั ดำเนินการตวั ใดตวั หน่ึงเปน็ จรงิ ! เปน็ จริงเมอื่ ตัวดำเนินการเป็นเทจ็ 3.3 ตวั แปร 3.3.1 ตวั แปรคงท่ี (Constants) HIGH/LOW แสดงถึงแรงดันไฟฟา้ ของขาสญั ญาณแบบดิจิทัล สถานะ HIGH ถูกกำหนด เปน็ 1 และสถานะ LOW ถกู กำหนดเปน็ 0 แสดงสถานะของขาสัญญาณแบบดิจิทัล INPUT แสดงถึงโหมดอินพุต INPUT/OUTPUT (ความตา้ นทานสูง) และ OUTPUT หมายถึงโหมดเอาตพ์ ุต (AVR สามารถให้ กระแส 40 มลิ ลิแอมป์ ท่ี 5 โวลต)์ true/false true ถกู กำหนดเป็น 1 และ false ถกู กำหนดเปน็ 0 3.3.2 ชนิดของตวั แปร (Data Types) void เปน็ ตวั แปรแบบท่ีไมม่ กี ารเกบ็ ค่าใดๆ char ชนิดขอ้ มูลท่ใี ช้หนว่ ยความจำสงู สดุ 1 ไบต์เก็บค่าอกั ขระ unsigned char ชนิดขอ้ มูลตวั เลขหรือตัวอกั ษร มีหน่วยความจำ 1 ไบต์ 28
int ใชเ้ ก็บคา่ ขอ้ มลู ขนาด 16 บติ ทเ่ี ป็นคา่ จํานวนเตม็ โดยสามารถใชเ้ กบ็ ค่าขอ้ มูล ได้ –32,768 ถึง +32,767 (คา่ ตำ่ สุดท่ี -2^15 และค่าสงู สุด (2^15)-1) byte ใชเ้ ก็บคา่ ข้อมลู ขนาด 8 บิต ซึ่งสามารถเก็บค่า 0-255 3.3.2 การแปลง (Conversion) char () แปลงคา่ ใหเ้ ปน็ ชนิดข้อมลู ตวั อกั ขระ byte () แปลงคา่ ใหเ้ ป็นชนิดข้อมูลไบต์ int () แปลงคา่ ให้เป็นชนิดขอ้ มูลตวั เลขจำนวนเต็ม word () แปลงคา่ ใหเ้ ปน็ ชนิดข้อมลู คำหรือสรา้ งจากตวั อักษรขนาดสองไบต์ long () แปลงค่าใหเ้ ปน็ ชนิดตัวเลขจำนวนเต็มทีม่ คี วามยาว 3.4 ฟังก์ชัน 3.4.1 Digital I/O เป็นฟังกช์ นั ใชก้ ำหนดหนา้ ท่ขี าสญั ญาณแบบดิจิทลั ของบอรด์ Arduino มี pinMode (pin,mode) ขาสญั ญาณตั้งแต่ 0-13 และโหมดการทำงานเป็นอินพุตหรือเอาตพ์ ตุ เป็นฟังก์ชันใช้อ่านค่าสถานะแรงดันไฟฟ้าของขาสัญญาณอินพุตแบบ digitalRead (pin) ดจิ ิทลั มขี าสัญญาณตงั้ แต่ 0-13 เป็นฟงั กช์ นั สั่งงานขอพอร์ตแบบดิจทิ ลั ของบอรด์ Arduino มขี าสญั ญาณ digitalWrite (pin,value) ตง้ั แต่ 0-13 และคา่ ถูกกำหนดเปน็ สถานะ HIGH หรอื LOW digitalToggle () เปน็ ฟังก์ชันสลบั สถานะของขาสญั ญาณแบบดิจทิ ัลทกี่ ำหนด 3.4.1 Analog I/O analogRead (pin) ใช้อ่านคา่ สญั ญาณทีข่ าสัญญาณอนิ พุตแบบแอนะล็อก analogWrite (pin,value) ใช้สัง่ งานสง่ คา่ สญั ญาณที่ขาสัญญาณ I/O แบบแอนะล็อก 3.4.1 เวลา (Time) เปน็ ฟงั ก์ชนั สง่ ค่าการนบั ออกมาเปน็ เวลาในหน่วยมลิ ลิวินาที เริม่ ต้น millis () นบั ตง้ั แต่บอรด์ Arduino เริ่มทำงานและนับตลอดเวลาที่บอรด์ ทำงาน micros () เป็นฟงั กช์ นั สง่ คา่ การนบั ออกมาเป็นเวลาในหน่วยไมโครวนิ าที เร่ิมตน้ delay () นบั ตงั้ แตบ่ อร์ด Arduino เร่ิมทำงานและนบั ตลอดเวลาที่บอร์ดทำงาน เปน็ ฟงั กช์ นั หนว่ งเวลาการทำงานตามค่าเวลาทีก่ ำหนดในหน่วย มิลลวิ ินาที โดย 1,000 มิลลิวนิ าทีเท่ากบั หนง่ึ วนิ าที 29
บทท่ี 4 การใช้งานพ้นื ฐานของบอรด์ uKit Explore 30
บทนี้จะอธิบายถึงการใช้งานพื้นฐานของบอร์ด uKit Explore ผ่านโปรเจกต์ตัวอย่าง โดยคุณ สามารถสร้างโปรเจกต์ของคุณเองไดต้ ามตวั อยา่ งดา้ นลา่ งน้ี บอร์ด uKit Explore จะมีพอร์ตขยายประกอบด้วย UART x 2, I2C x 1, SPI x 1, ADC x 5, PWM x 8, DAC x 5 และยังมีไฟ LED 1 ดวงบนบอร์ด ไจโรสโคป ตวั รับสญั ญาณอนิ ฟราเรด ปุ่มกด 2 ปมุ่ ลำโพงบัซเซอร์ 1 ตัว เปน็ ต้น 4.1 การใช้งานพอร์ตอนกุ รม (Serial Port) เราจะใช้ UART พอร์ตอนกุ รมเพ่ือพิมพ์ขอ้ มลู ในชว่ งเวลาหน่ึงครัง้ ต่อวนิ าที ไมจ่ ำเปน็ ตอ้ งเช่อื มตอ่ ร่วมกับเซนเซอร์อื่นๆ ในโปรเจกต์นี้ สำหรับการเช่ือมตอ่ ฮาร์ดแวร์สามารถใช้สาย USB และแบตเตอรีล่ ิ เธียม 7.4 โวลต์ เพ่ือเชื่อมต่อระหว่างบอรด์ uKit Explore และ คอมพิวเตอร์ของคุณเอง อปุ กรณท์ ่จี ำเป็น 4.1.1 ฟงั ก์ชนั Serial คอื อะไร? ฟังกช์ ัน Serial เป็นการควบคมุ การสื่อสารระหว่างบอร์ด uKit Explore และอุปกรณอ์ นื่ ๆ ในการ ควบคุมบอร์ดแต่ละตัวจะพอร์ตอนุกรมอย่างน้อย 1 พอร์ต (หรือที่เรียกว่า “UART” หรือ “USART”) ที่ เชื่อมต่อกับพอรต์ USB ของคอมพิวเตอร์ในขาสัญญาณ Pin 0 (RX) และ 1 (TX) โดยจะใช้ชิปไอซีแปลง สญั ญาณพอรต์ USB เป็นอนุกรมเพอ่ื ส่ือสารกับคอมพิวเตอร์ ดังน้นั จะไมส่ ามารถใช้งานขาสัญญาณ Pin 0 และ Pin 1 เป็นอินพุตหรอื เอาต์พตุ ในขณะทีม่ กี ารใช้ฟังก์ชันดงั กล่าว 31
4.1.2 Static คืออะไร Static เป็นคำสงวน (Keyword) และฟังก์ชันเพื่อสร้างตัวแปรที่มองเห็นได้เฉพาะกับฟังก์ชัน บางอย่าง มีความแตกต่างกับตัวแปรโลคัลซ่ึงจะถูกสรา้ งและทำลายในแตล่ ะครั้งที่เรยี กใช้ฟังก์ชันแตต่ วั แปรแบบสแตติกจะยังคงค่าอยหู่ ลังจากการเรียกใชฟ้ งั ก์ชนั 4.1.3 โปรแกรมตวั อยา่ ง เปิดซอฟต์แวร์ Arduino IDE สามารถเปิดโปรแกรมตัวอย่างได้ที่ File > Examples > uKit Explore 2.0 > Chapter 4 > Serial_Ports แนะนำให้ป้อนข้อมูลโปรแกรมด้วยตัวเองเพื่อสร้าง ความคุน้ เคยกบั โปรแกรม นค้ี ือโปรแกรมตวั อย่าง /* uKit Explore 2.0 <Chapter 4> <Section 1> 4.1 Applications of Serial Ports */ void setup() { Serial.begin(115200);//Set baud rate } void loop() { static unsigned long i = 0; //Create the variable i=0 Serial.println(i++); //Add 1 to the Print function each time delay(1000);//Delay 1000 ms } หลังจากป้อนข้อมูลเสร็จให้ทำการกด Verify เพื่อตรวจสอบความผิดพลาดของโปรแกรม คุณ สามารถเร่ิมการอัปโหลดโปรแกรมไดห้ ลงั จากตรวจสอบเสร็จแล้วเพื่อแน่ใจว่าไม่มีขอ้ ผดิ พลาด ทำการกด Upload และ IDE จะสง่ ข้อมลู โปรแกรมไปยังบอรด์ uKit Explore 32
4.1.4 การแสดงผลการทดสอบ หลังจากเสร็จตามขั้นตอนแล้วให้ทำการเปิดหน้าต่างมอนิเตอร์พอร์ตอนุกรม (Serial port monitor) ใน Arduino IDE และคณุ จะเหน็ การแสดงขอ้ มลู ต่อไปน้ี 4.1.5 การแสดงผลการทดสอบเพ่มิ เตมิ ในการทดสอบข้างตน้ จำนวนข้อมลู ทีแ่ สดงจะเพม่ิ ขึ้นทลี ะหนงึ่ โดยเรม่ิ จาก 0 ถ้าใหแ้ สดงเปน็ เลข คเู่ ทา่ น้ัน คุณจะทำได้อย่างไรใหไ้ ดห้ นา้ ตา่ งแสดงขอ้ มลู ดังนี้ 33
4.2 ไฟ LED ถัดไปจะขอแนะนำไฟ LED รูปแบบใหม่ คือ LED RGB ที่มักจะถูกเรียกว่า RGB เพราะเป็นไฟ LED 3 ตัวรวมอยู่ด้วยกันและมี 3 สี คือ สีแดง สีเขียว และสีน้ำเงิน เหมือนกับหน้าจอคอมพิวเตอร์ท่ี ประกอบดว้ ยจดุ สีแดง สเี ขียว และสนี ้ำเงิน เป็นจำนวนมากทำใหส้ ามารถปรบั ความสว่างของไฟ LED ใน แตล่ ะสเี พือ่ ให้ได้สที ต่ี า่ งกันได้ โปรเจกต์นจ้ี ะสอนวิธีการใชง้ าน RGB เพื่อแสดงสีทแ่ี ตกต่างกันโดยการสุ่ม ไม่จำเป็นต้องเชื่อมต่อกับอุปกรณ์เซนเซอร์อื่นๆ โดย โปรเจกต์นี้จะใช้งานไฟ LED RGB ที่อยู่บนบอร์ด uKit Explore สว่ นฮารด์ แวรท์ ี่จำเป็นคือ สายเชื่อมตอ่ USB และแบตเตอร่ีลเิ ธยี ม 7.4 โวลต์ เพื่อเช่ือมต่อ ระหว่างบอรด์ uKit Explore และคอมพวิ เตอร์ อปุ กรณ์ที่จำเป็น Wiring of the on-chip RGB LED lights: R-44, G-45, and B-46. The on-chip RGB LEDs are common anode RGB LEDs 4.2.1 #include คืออะไร #include ใช้เพื่อทำการเรียกไฟล์ไลบรารีจากภายนอก สิ่งนี้ทำให้โปรแกรมสามารถเข้าถึง ไลบรารี ภาษา C ได้มากมายเช่นเดียวกับไลบรารีที่ใช้สำหรับ UBTROBOT (เขียนโปรแกรมตาม ไวยากรณ์มาตรฐาน AVR) หมายเหตุ #include จะไม่สามารถลงท้ายด้วยเครื่องหมายเซมิโคลอน การ ตรวจสอบอาจจะเกดิ ขอ้ ผิดพลาดได้ 34
4.2.2 โปรแกรมตวั อย่าง เปิดซอฟต์แวร์ Arduino IDE สามารถเปิดโปรแกรมตัวอย่างได้ที่ File > Examples > uKit Explore 2.0 > Chapter 4 > RGB_light แนะนำให้ป้อนข้อมูลโปรแกรมด้วยตัวเองเพื่อสร้าง ความคุ้นเคยกบั โปรแกรม นค้ี ือโปรแกรมตัวอย่าง /* uKit Explore 2.0 <Chapter 4> <Section 2> 4.2 RGB light */ #include\"uKitExplore2En.h\" void setup() { Initialization();//EN: Initialization } void loop() { setRgbledColor(255, 0, 0); //(R, G, B) delay(1000);//Flash red 1000 ms setRgbledColor(0, 255, 0); delay(1000);//Flash green 1000 ms setRgbledColor(0, 0, 255); delay(1000);//Flash blue 1000 ms } หลังจากป้อนข้อมูลเสร็จให้ทำการกด Verify เพื่อตรวจสอบความผิดพลาดของโปรแกรม คุณ สามารถเร่มิ การอัปโหลดโปรแกรมได้หลังจากตรวจสอบเสรจ็ แล้วเพอ่ื แน่ใจว่าไมม่ ีขอ้ ผิดพลาด ทำการกด Upload และ IDE จะส่งขอ้ มลู โปรแกรมไปยงั บอร์ด uKit Explore 4.2.3 การแสดงผลการทดสอบ หลังจากเสรจ็ ขั้นตอนข้างต้นแล้ว จะสังเกตเหน็ ไฟ LED แสดง 3 สี (สีแดง สีเขียว และสีน้ำเงนิ ) บนบอรด์ uKit Explore 35
4.2.4 การแสดงผลการทดสอบเพิ่มเตมิ ลองแสดงผลสอี ่นื ๆ ตามทต่ี ้องการ 4.3 ลำโพงบัซเซอร์ ถัดไปจะแนะนำใหร้ ู้จักอปุ กรณอ์ เิ ลก็ ทรอนกิ สใ์ หม่ คอื ลำโพงบซั เซอร์ สามารถบอกได้จากช่ือว่า เป็นอุปกรณ์ที่เกี่ยวข้องกับเรื่องเสียง มันจะส่งเสียงเตือนได้ โดยทำการเชื่อมต่อลำโพงบัซเซอร์เข้ากับ ขาสัญญาณดิจิทัลของ Arduino และทำงานตามโปรแกรม สามารถสร้างเสียงปลุกได้ การทำงานของ อุปกรณ์นจ้ี ะใช้คล่นื ไซนเ์ พอ่ื สรา้ งเสียงที่ความถแี่ ตกตา่ งกัน ไม่จำเป็นตอ้ งเชื่อมตอ่ กบั อุปกรณเ์ ซนเซอร์อืน่ ๆ โดยโปรเจกต์นีจ้ ะใช้งานลำโพงบซั เซอร์ท่อี ยูบ่ น บอร์ด uKit Explore ส่วนฮารด์ แวร์ทจี่ ำเป็นคอื สายเชอ่ื มตอ่ USB และแบตเตอร่ลี เิ ธยี ม 7.4 โวลต์ เพ่ือ เชอื่ มตอ่ ระหวา่ งบอร์ด uKit Explore และคอมพวิ เตอร์ อุปกรณ์ทีจ่ ำเป็น 4.3.1 ฟงั ก์ชัน tone() คืออะไร ฟังกช์ นั Tone() สามารถสรา้ งสญั ญาณ PWM ทีค่ วามถ่ีคงทเี่ พื่อสร้างเสยี งใหก้ ับลำโพง โดย สามารถควบคมุ ระยะเวลาและโทนเสยี งด้วยคา่ พารามิเตอร์ 4.3.2 ฟงั ก์ชัน noTone() คอื อะไร ฟงั ก์ชนั noTone() จะใชใ้ นการหยดุ เสียงของฟังกช์ นั tone() 36
4.3.3 โปรแกรมตวั อย่าง เปิดซอฟต์แวร์ Arduino IDE สามารถเปิดโปรแกรมตัวอย่างได้ที่ File > Examples > uKit Explore 2.0 > Chapter 4 > Buzzers แนะนำใหป้ อ้ นขอ้ มลู โปรแกรมด้วยตัวเองเพื่อสรา้ งความคุน้ เคย กบั โปรแกรม นค้ี ือโปรแกรมตวั อยา่ ง /* uKit Explore 2.0 <Chapter 4> <Section 3> 4.3 Applications of Buzzers */ #include\"uKitExplore2En.h\" void setup() { Initialization();//EN: Initialization } void loop() { tone(200, 300); //(Hz, duration) tone(400, 300); tone(200, 300); tone(400, 300); noTone();//Stop tone square wave delay(1000); } หลังจากป้อนข้อมูลเสร็จให้ทำการกด Verify เพื่อตรวจสอบความผิดพลาดของโปรแกรม คุณ สามารถเริม่ การอัปโหลดโปรแกรมได้หลงั จากตรวจสอบเสรจ็ แล้วเพอ่ื แน่ใจว่าไมม่ ีข้อผิดพลาด ทำการกด Upload และ IDE จะสง่ ขอ้ มูลโปรแกรมไปยงั บอรด์ uKit Explore 4.3.4 การแสดงผลการทดสอบ หลังจากเสร็จขั้นตอนข้างต้น จะได้ยินเสียงสัญญาณบนชิปลำโพงบัซเซอร์ส่งเสียงที่ความถี่ แตกตา่ งกัน 37
4.3.5 การแสดงผลการทดสอบเพ่มิ เตมิ หลงั จากเสร็จการทดสอบก่อนหน้า ลองปรบั แตง่ เปน็ เพลง เชน่ \"Twinkle Twinkle Little Star\" 4.4 ไจโรสโคป ถัดไปมารู้จักอปุ กรณ์อิเลก็ ทรอนกิ ส์ใหม่ คือ ไจโรสโคป ที่มีการออกแบบมาบนพื้นฐานของการ อนุรักษ์โมเมนตัมเชิงมุมและใช้สำหรับการวัดหรือการรักษาทิศทาง อุปกรณ์จะประกอบด้วยล้อที่ซ่ึง สามารถหมนุ รอบแกนตัวเอง ไจโรสโคปจะทำงานเมื่อเร่ิมหมนุ มันจะพยายามต้านการเปล่ียนแปลงที่มผี ล มาจากโมเมนตัมเชิงมมุ ของลอ้ ไจโรสโคปมักจะถูกนำมาใช้ในระบบนำทางและการระบตุ ำแหน่ง ไม่จำเป็นตอ้ งเชือ่ มตอ่ กับอุปกรณ์เซนเซอรอ์ ่นื ๆ โดยโปรเจกต์น้สี ามารถใชง้ านไจโรสโคปท่ีอยู่บน บอร์ด uKit Explore สว่ นโปรแกรมจะควบคมุ แกน X, Y และ Z ของไจโรสโคป สว่ นฮาร์ดแวร์ทจ่ี ำเปน็ คอื สายเชื่อมต่อ USB และแบตเตอรี่ลิเธียม 7.4 โวลต์ เพื่อเชื่อมต่อระหว่างบอร์ด uKit Explore และ คอมพิวเตอร์ อุปกรณท์ จี่ ำเปน็ 38
4.4.1 ฟงั กช์ นั print() คอื อะไร ฟังก์ชัน print() สามารถพิมพ์ข้อมูลไปยังพอร์ตอนุกรมและให้ค่าผลลัพธ์เป็นข้อความ ASCII ที่ สามารถรบั รู้ไดโ้ ดยมนุษย์ ข้อมูลจดุ ทศนิยมยงั เปน็ ผลลัพธ์ของขอ้ ความ ASCII ที่มีทศนยิ ม 2 ตำแหน่ง รปู แบบของคำส่ัง: Serial.print(val) Serial.print(val, format) พารามิเตอร์: val: พมิ พ์คา่ ผลลพั ธ์ - ประเภทของข้อมลู format: ระบุตวั เลข (ชนดิ ของจำนวนเต็ม) หรอื ตำแหนง่ ทศนิยม (ชนดิ ของจุดทศนิยม) 4.4.2 ฟงั กช์ นั println() คืออะไร ฟังกช์ ัน println() สามารถพิมพ์ขอ้ มลู ไปยงั พอร์ตอนกุ รมและให้ค่า output เปน็ ขอ้ ความ ASCII ที่สามารถรับรู้ไดโ้ ดยมนษุ ย์เช่นเดียวกบั การส่งคา่ กลบั (ASCII 13 หรอื '\\r') และตวั แบง่ บรรทดั (ASCII 10 or '\\n') คำสงั่ นใ้ี ชแ้ บบฟอรม์ เดียวกับ Serial.print() รูปแบบของคำส่งั : Serial.printIn(val) Serial.println(val, format) พารามเิ ตอร์: val: พมิ พค์ า่ ผลลพั ธ์ - ประเภทของขอ้ มลู format: ระบุตัวเลข (ชนิดของจำนวนเต็ม) หรือตำแหนง่ ทศนยิ ม (ชนดิ ของจดุ ทศนยิ ม) 4.4.3 โปรแกรมตัวอยา่ ง เปิดซอฟต์แวร์ Arduino IDE สามารถเปิดโปรแกรมตัวอย่างได้ที่ File > Examples > uKit Explore 2.0 > Chapter 4 > Gyroscopes แนะนำให้ป้อนข้อมูลโปรแกรมด้วยตัวเองเพื่อสร้าง ความคุ้นเคยกับโปรแกรม นคี้ ือโปรแกรมตัวอย่าง /* uKit Explore 2.0 <Chapter 4> <Section 4> 4.4 Applications of Gyroscopes */ 39
#include\"uKitExplore2En.h\" #include \"MPU6050.h\" #include <Wire.h> MPU6050 accelgyro; int16_t ax, ay, az; int16_t gx, gy, gz; void setup() { Initialization(); Wire.begin(); accelgyro.initialize(); Serial.println(accelgyro.testConnection() ? \"MPU6050 connection successful\" : \"MPU6050 connection failed\"); } void loop() { accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); Serial.print(\"X:\"); Serial.print(ax / 32768.00 * 2 * 9.7913); Serial.print(\",\"); Serial.print(\"Y:\"); Serial.println(ay / 32768.00 * 2 * 9.7913); delay(1000); } หลังจากป้อนข้อมูลเสร็จให้ทำการกด Verify เพื่อตรวจสอบความผิดพลาดของโปรแกรม คุณ สามารถเรมิ่ การอปั โหลดโปรแกรมได้หลงั จากตรวจสอบเสร็จแล้วเพื่อแนใ่ จวา่ ไมม่ ีขอ้ ผดิ พลาด ทำการกด Upload และ IDE จะสง่ ข้อมลู โปรแกรมไปยงั บอรด์ uKit Explore 4.4.4 การแสดงผลการทดสอบ หลังจากเสร็จขั้นตอนข้างต้นแล้ว ทำการเปิดหน้าต่างมอนิเตอร์พอร์ตอนุกรมในซอฟต์แวร์ Arduino IDE และสามารถดขู อ้ มลู ดังต่อไปน้ี 40
4.4.5 การแสดงผลการทดสอบ หลงั จากเสรจ็ ข้ันตอนข้างตน้ ลองคดิ ว่าจะสามารถใช้งานไจโรสโคปได้อยา่ งไร ลองเรียงลำดบั การ ใชง้ าน 4.5 การใช้งานของตวั รับสัญญาณอนิ ฟราเรด การควบคุมรีโมทมีใช้กันอยูใ่ นชีวิตประจำวัน มันกลายเป็นหนึ่งในวิธีการใช้กันอย่างแพร่หลาย สำหรบั การติดตอ่ ส่อื สารและการควบคุมอปุ กรณ์จากระยะไกล อุปกรณร์ โี มทอนิ ฟราเรดมีขนาดกะทัดรัด ใช้พลังงานต่ำ มีฟังก์ชัน powerful และราคาต่ำ โดยส่วนใหญ่มีการใช้สำหรับโทรทัศน์สี บันทึกวีดีโอ บันทึกเสียง อุปกรณ์สเตอริโอ เครื่องปรับอากาศ ของเล่น และ อุปกรณ์ไฟฟ้าขนาดเล็กอื่นๆ ในบอร์ด Arduio สามารถใชง้ านรีโมทอินฟราเรดในงานที่หลากหลาย เชน่ การควบคมุ การเคลอ่ื นทข่ี องรถหุ่นยนต์ หรือการหมนุ ของพดั ลม บทน้ีจะใช้ uKit Explore เพ่ือดูค่าขอ้ มูลทไ่ี ด้รบั จากรีโมท อุปกรณ์ทีจ่ ำเป็น 41
4.5.1 ไดโอดรบั สญั ญาณอินฟาเรด (Infrared receiving diode) คืออะไร อยา่ งทีร่ ูส้ ีของแสงที่มองเห็นไดด้ ้วยตามนุษย์ คือจะเรยี งตามลำดับจากมากไปน้อยตามความยาว คลื่น สีแดง สีส้ม สเี หลือง สีเขยี ว สีฟา้ สีคราม และสีม่วง ชว่ งความยาวคลืน่ คือ 0.62 - 0.76μm สำหรับ แสงสีแดง และ 0.38 - 0.46μm สำหรับแสงสีม่วง แสงที่มีคลื่นสั้นกว่าแสงสีม่วงเรียกว่ารังสี อัลตราไวโอเลต (Ultraviolet rays) และแสงที่มีคล่ืนยาวกว่าแสงสีแดงเรียกว่ารังสีอินฟราเรด (Infrared rays) รโี มทอนิ ฟราเรดจะช่วงท่ใี กลก้ ับรงั สอี ินฟราเรด 0.76~1.5μm เพ่ือสง่ สัญญาณควบคมุ ไดโอดรับ สัญญาณอนิ ฟราเรดเรียกว่าโฟโตไดโอด (Infrared photodiodes) ตัวรับสัญญาณอนิ ฟราเรดสามารถรบั สัญญาณอินฟราเรดที่ 940 nm ทสี่ ่งมาจากไดโอดเปลง่ แสงอินฟราเรดไดเ้ ปน็ อย่างดี ถา้ แสงของคลนื่ ความ ยาวอ่ืนๆ จะใช้ไม่ได้ ซง่ึ จะชว่ ยใหม้ ันใจถึงความถูกตอ้ งและความไวในการรบั สัญญาณ 4.5.2 โมดูลตวั รับสญั ญาณอินฟราเรดคืออะไร โมดูลตัวรับสัญญาณอินฟราเรด (Infrared receiver module: IRM) ยังสามารถเรียกได้ว่า infrared receiving head ส่วนใหญ่ประกอบด้วย integrated circuit (IC), photodiode (PD) และ holder จะประกอบวสั ดทุ ง้ั หมดเขา้ ด้วยกันเรียกวา่ packaging factory 4.5.3 โปรแกรมตัวอยา่ ง เปิดซอฟต์แวร์ Arduino IDE สามารถเปิดโปรแกรมตัวอย่างได้ที่ File > Examples > uKit Explore 2.0 > Chapter 4 > Infrared_Receivers แนะนำให้ป้อนข้อมูลโปรแกรมด้วยตัวเองเพ่ือ สรา้ งความคนุ้ เคยกบั โปรแกรม นี้คอื โปรแกรมตวั อยา่ ง /* uKit Explore 2.0 <Chapter 4> <Section 5> 4.5 Applications of Infrared Receivers */ #include\"uKitExplore2En.h\" #include \"IRremote/IRremote.h\" long ir_item; IRrecv irrecv_37(37); decode_results results_37; 42
void setup() { Initialization(); irrecv_37.enableIRIn(); } void loop() { if (irrecv_37.decode(&results_37)) { ir_item = results_37.value; String type = \"UNKNOWN\"; String typelist[14] = {\"UNKNOWN\", \"NEC\", \"SONY\", \"RC5\", \"RC6\", \"DISH\", \"SHARP\", \"PANASONIC\", \"JVC\", \"SANYO\", \"MITSUBISHI\", \"SAMSUNG\", \"LG\", \"WHYNTER\"}; if (results_37.decode_type >= 1 && results_37.decode_type <= 13) { type = typelist[results_37.decode_type]; } Serial.print(\"IR TYPE:\" + type + \" \"); //Print output data Serial.println(ir_item, HEX); //Print output data irrecv_37.resume(); } else { } } หลังจากป้อนข้อมูลเสร็จให้ทำการกด Verify เพื่อตรวจสอบความผิดพลาดของโปรแกรม คุณ สามารถเรมิ่ การอปั โหลดโปรแกรมไดห้ ลงั จากตรวจสอบเสรจ็ แล้วเพือ่ แนใ่ จวา่ ไม่มีข้อผดิ พลาด ทำการกด Upload และ IDE จะสง่ ขอ้ มลู โปรแกรมไปยงั บอรด์ uKit Explore 4.5.4 การแสดงผลการทดสอบ หลังจากเสร็จขั้นตอนข้างต้น ทำการเปิดหน้าต่างมอนิเตอรพ์ อรต์ อนุกรมใน Arduino IDE และ สามารถดขู ้อมลู ดังรปู ด้านล่าง ข้อมูลต่อไปนี้จะปรากฏเมื่อทำการกดปุ่ม 1 ถึง 9 จะมีค่าที่แตกตา่ งกันไป ขึ้นอยู่กับรโี มทแตล่ ะร่นุ ภาพด้านล่างเปน็ เพยี งข้อมูลอา้ งอิงท่านน้ั 43
4.5.5 การแสดงผลการทดสอบเพ่ิมเตมิ หลงั จากเสร็จขัน้ ตอนขา้ งตน้ ลองใชข้ อ้ มลู ท่ีไดร้ บั เพอื่ ควบคุมไฟ LED บนบอรด์ กดปุ่ม 1 เพ่อื แสดงแสงสีแดงและกดปมุ่ 2 เพอื่ ใหม้ เี สยี งจากลำโพงบัซเซอร์ 44
บทที่ 5 การใชง้ านโมดูลเซนเซอร์และตวั ขบั เร้า บทท่ี 5.3-5.5 สำหรับคู่มือเรียนรู้ AI Explorer Series Curricula 1 “Smart World” บทที่ 5.6-5.10 สำหรับคู่มือเรียนรู้ AI Explorer Series Curricula 2 “Smart Things” 45
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
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372