ทางผู้เขียนนั้น อยากทำเจ้าซีรี่ย์นี้มานานแล้ววว ในที่สุดวันนี้ ผมจะได้มาเริ่มศึกษาเกี่ยวกับ Arduino แบบจริงจังเสียที และจะมาทำบทความสรุปเนื้อหาที่ผมได้เรียนรู้ เพื่อแบ่งปันประสบการณ์ดี ๆ (หรอ ?? 5555555) ไม่ว่าจะเป็น ทำ LED ใส้ขาด, เมนบอร์ดไฟไหม้, สายไฟติดไฟ
เอาหล่ะ นอกเรื่องกันไปไกลละ กลับมาเข้าเรื่องของเรากันดีกว่า ก่อนอื่นเลยต้องขอบอกก่อนว่า ทางผู้เขียนจะใช้บอร์ด Arduino UNO ในการทำบทความครั้งนี้นะครับผม งั้นเรามาเริ่มกัน (สักทีเถอะ 5555)
เขียนโดย Natakorn Hongharn -BorntoDev Co., Ltd.
Arduino คือ โครงการโปรเจกต์หนึ่งที่นำตัว IC Microcontroller ในตระกูลต่าง ๆ มาประยุกต์ใช้ร่วมกันกับภาษา C ซึ่งภาษา C ในที่นี้เป็นลักษณะเฉพาะเลย (Library ของ Arduino) ทำให้สามารถใช้ตัวคำสั่งโค้ดตัวเดียวกันกับตัว IC Microcontroller ที่แตกต่างกันได้เลย
Arduino นั้นถูกออกแบบมาให้สามารถนำไปใช้งานได้ง่าย จึงเหมาะสำหรับใครที่เป็นมือใหม่ ไม่มีความรู้ด้านสถาปัตยกรรมก็สามารถทำได้เช่นกัน อีกทั้งยังสามารถปรับแต่ง ดัดแปลงอะไรต่าง ๆ ได้อีกมากมาย ที่เราสามารถนำตัว Arduino ไปต่อยอดเป็นสิ่งต่าง ๆ ดั่งใจเรานึกได้
จุดเด่นของ Arduino Board ก็คือ ความง่ายในการต่อกับอุปกรณ์เสริมต่าง ๆ ที่ผู้ใช้อย่างเราสามารถต่อวงจร Electronic ได้อย่างง่ายดาย เพราะเขาทำตัว I/O ของบอร์ดมาให้เรียบร้อยแล้วนั่นเอง
ทีนี้เรามาดูกันดีกว่าว่าใน Arduino Board นั้นประกอบด้วยอะไรบ้าง
- USB Port (ในบางตัวอาจจะเป็น Micro USB ก็ได้นะ เหมือนกัน): เป็น Port ที่เอาไว้สำหรับเชื่อมต่อกับ Computer เพื่อ Upload ตัวโปรแกรมที่เราเขียนเข้า MCU และรวมถึงการจ่ายไฟให้กับ Board ด้วยนะ
- Reset Button: เป็นปุ่มที่กดเพื่อให้ MCU เริ่มทำงานใหม่
- ICSP Port (Atmega16U2): เป็น Port ที่ใช้โปรแกรมตัว Visual Com Port บน Atmega16U2
- I/O Digital Port: เป็น I/O Port สำหรับการส่งรับข้อมูลแบบ Digital ตั้งแต่ขา D0 – D13 และบาง Pin จะสามารถทำหน้าที่อื่น ๆ ได้ด้วย เช่น Pin0 กับ Pin1 เป็นขา Tx, Rx Serial
- ICSP Port (Atmega328): เป็น Port ที่ไว้ใช้โปรแกรมเจ้าตัว Bootloader
- MCU (Atmega328): เป็น MCU ที่ใช้บน Arduino Board
- I/O Analog Port: เป็น I/O Port ที่พิเศษ เพราะสามารถส่งและรับค่า Analog ได้ด้วย
- Power Port: เป็น Port ที่สามารถจ่ายไฟเลี้ยงให้กับ อุปกรณ์อื่น ๆ ที่เชื่อมกับ Arduino Board ได้ด้วย
- Power Jack: เป็น Port ที่เอาไว้รับไฟจากภายนอก โดยใช้แรงดันอยู่ระหว่าง 7 – 12 V
- MCU (Atmega16U2): เป็น MCU ที่ทำหน้าที่เป็น USB to Serial โดย Atmega328 จะติดต่อกับ Computer ผ่าน Atmega16U2 นั่นเอง
หลังจากที่เราได้ทำความรู้จักกับส่วนต่าง ๆ ใน Arduino Board แล้ว งั้นเรามาดูตัว Software ที่จะมาใช้งานร่วมกับตัว Arduino Board กันบ้างงง ในที่นี้ทางผู้เขียนจะขอเลือกใช้ตัว Arduino IDE นะครับ ใครที่ยังไม่มีเจ้า Software สามารถตามไป Download ได้ที่ Link นี้เลย
https://www.arduino.cc/en/software
สำหรับเจ้าหน้าตาของโปรแกรมเป็นแบบนี้
ทีนี้เรามาลองต่อตัว Arduino Board เข้ากับเครื่อง Computer ดูกันดีกว่า
//ไม่ต้องสนใจน้องยูนะจังข้างหลังหรอกนะ กลับมามองที่บอร์ดเดี่ยวนี้ !!!
หลังจากที่เราต่อเข้าเครื่องแล้วนั้น จะพบว่า… ไม่มีอะไรเกิดขึ้นเลย… ก็ใช่หน่ะสิ นายหน่ะ ยังไม่ได้เขียนโปรแกรมใสมันเลย (นนน-หน่านิ๊ !!!)
เนื่องจากว่าตอนนี้บอร์ดของเรานั้นกำลังโล่งโจ้ง ไม่มีการโปรแกรมอะไรมาทั้งสิ้นเลย งั้นเราจะมาลองโปรแกรมใส่มันกันนน !!!
หลังจากที่เราเชื่อมต่อกับ Computer ของเราแล้ว ให้ทำการตั้งค่าตัวประเภท Board ให้เรียบร้อยเสียก่อน ซึ่งในที่นี้ผมเลือกใช้ Arduino UNO และทำการเลือก Port เชื่อมต่อให้เรียบร้อย (ตามภาพด้านล่างเลย)
หลังจากนั้นให้เรากดปุ่ม Upload ก็จะเป็นการอัพตัวโปรแกรมเข้าตัว Board เรียบร้อย
ทีนี้เรากลับมาดูที่ Board ของเรากันว่าเป็นอย่างไรบ้าง
ผลลัพธ์ก็คือ… เหมือนเดิม (ปะ เลิก นอนนน) งั้นก็ขอจบบทความไว้เพียงแค่เท่านี้แล้วกันนะครับ สวัสดีครับ
เดี๋ยวก่อนนน ล้อเล่นนน ที่มันไม่มีอะไรเกิดขึ้นเพราะ โปรแกรมที่เราส่งให้มันไป มันคือโปรแกรมโล่ง ๆ เลยหน่ะสิ เราต้องเขียนโปรแกรมลงไปในโค้ดของเราก่อน แต่ถ้าจะให้สอน บทความนี้น่าจะยาวแน่ ๆ เลย งั้นเราจะมาลองใช้ตัวโค้ดตัวอย่างที่มาพร้อมกับ Arduino IDE ก่อนเลยแล้วกัน เรื่องรายละเอียดเกี่ยวกับการเขียนโค้ด ขอยกไปเป็นตอนหน้าแล้วกันนะครับผม (ขี้เกียจแหละดูออก)
วิธีนำโค้ดตัวอย่างมาใช้งานก็ทำได้ไม่ยากเลย ให้ไปที่ File > Examples > 01.Basics > Blink ให้ทำตามดังรูป
แล้วเราก็จะได้หน้าต่างใหม่ขึ้นมา ซึ่งภายในไฟล์โค้ดตัวอย่างที่เปิดมานั้นบอกว่า จะเปิดปิดไฟ LED สลับไปมา ซึ่งไฟ LED ที่ว่านั้นคือไฟบน Board นั่นเอง เพื่อไม่ให้เป็นการรอช้า ลองกด Upload ดูกันเลย
ทีนี้เจ้า Board ของเราก็จะมีแสงกระพิบ เปิดปิดแล้ววว (เย้ !!!)
เป็นอย่างไรกันบ้างครับวันนี้ ผมหวังว่าบทความนี้จะเป็นประโยชน์ให้กับทุกท่านที่เข้ามาอ่านในวันนี้นะครับ แล้วเรามาพบกันใหม่ในตอนหน้า ขอบคุณทุกท่านที่เข้ามาอ่านบทความของผมนะครับ 😁