สอน Arduino – อธิบายโปรแกรมไฟกระพริบ

บทความนี้ผมจะอธิบายถึงวิธีการเขียนโค้ดโปรแกรม หรือเขียนโปรแกรมเพื่อสั่งงานบอร์ด Arduino สำหรับผู้เริ่มต้น โดยอธิบายผ่านโปรแกรมไฟกระพริบ ซึ่งโค้ดในบทความนี้สามารถเขียนโปรแกรม คอมไพล์ และอัปโหลดโปรแกรมลงบอร์ดด้วย Arduino IDE และหากใครยังไม่เคยใช้โปรแกรม Arduino IDE มาก่อน ให้ตามไปอ่านวิธีใช้งานเบื้องต้นได้ที่บทความ “วิธีใช้งานโปรแกรม Arduino IDE เบื้องต้น” เพื่อความเข้าใจครับ

ฟังก์ชั่นหลักของโค้ดโปรแกรม Arduino

โค้ดโปรแกรมสำหรับ Arduino จะประกอบไปด้วยฟังก์ชั่นหลัก 2 ฟังก์ชั่น คือฟังก์ชั่น setup() และ ฟังก์ชั่น loop()

  • ฟังก์ชั่น setup() จะเริ่มทำงานเป็นอันดับแรกทันทีที่ Arduino เริ่มทำงาน และคำสั่งที่ถูกเขียนลงไปในนี้ จะทำงานเพียงครั้งเดียวเท่านั้น
  • ฟังก์ชั่น loop() จะเริ่มทำงานทันทีเมื่อฟังก์ชั่น setup() ทำงานเสร็จ และคำสั่งที่ถูกเขียนลงไปในนี้ จะทำงานตั้งแต่คำสั่งแรก ไล่ไปจนถึงคำสั่งสุดท้าย แล้วกลับมาทำงานที่คำสั่งแรก ไล่ไปจนถึงคำสั่งสุดท้าย วนซ้ำแบบนี้ไปเรื่อยๆ ตลอดการทำงานของ Arduino

เริ่มเขียนโปรแกรมที่ฟังก์ชั่น setup

ฟังก์ชั่น setup() จะทำงานเพียงแค่ครั้งเดียวทันทีที่ Arduino เริ่มทำงาน ดังนั้นโค้ดที่จะถูกเขียนลงไปในฟังก์ชั่นนี้ มักจะเป็นโค้ดสำหรับกำหนดโหมด Input/Output ให้กับ pin โดยใช้ฟังก์ชั่น pinMode() หรือมักจะเป็นโค้ดที่กำหนดค่าเริ่มต้นเพื่อใช้งานไลบรารี่ต่างๆ เช่น Serial.begin(), WiFi.begin() หรือ Servo.attach() เป็นต้น ซึ่งเป็นโค้ดที่ไม่มีความจำเป็นต้องทำงานซ้ำ

ตัวอย่างเช่น โค้ดด้านล่างนี้จะกำหนด pin หมายเลข 13 ให้อยู่ในโหมด Output ทันทีที่ Arduino เริ่มทำงาน และ pin หมายเลข 13 จะอยู่ในโหมด Output ไปตลอดการทำงานของ Arduino

เขียนโปรแกรมกันต่อที่ฟังก์ชั่น loop

ฟังก์ชั่น loop() จะทำงานทันทีที่ฟังก์ชั่น setup() ทำงานจบ และโค้ดในฟังก์ชั่น loop() ก็จะถูกทำงานซ้ำไปเรื่อยๆ ตลอดการทำงานของ Arduino ซึ่งโค้ดโปรแกรมส่วนใหญ่ ที่มีผลต่อการทำงานของ Arduino จะถูกเขียนลงไปในฟังก์ชั่น loop() นี้ เช่นโค้ดสำหรับรับข้อมูลจากปุ่มกด, สั่งเปิดปิดไฟ, แสดงผลออกจาก LCD หรือแม้กระทั่งการอ่านข้อมูลจากเซ็นเซอร์ต่างๆ ก็ตาม

ตัวอย่างโค้ดไฟกระพริบสำหรับ Arduino UNO

อธิบายการทำงานของโปรแกรม

โปรแกรมจะเริ่มทำงานที่ฟังก์ชั่น setup() ซึ่งมีคำสั่งเดียวคือ pinMode(13, OUTPUT) นั่นคือกำหนด pin หมายเลข 13 ให้อยู่ในโหมด Output

เมื่อทำเสร็จแล้วก็จบการทำงานที่ฟังก์ชั่น setup() และเริ่มทำงานต่อที่ฟังก์ชั่น loop() ทันที และไล่ทำไปทีละคำสั่ง ตั้งแต่คำสั่งแรก ไล่ทำไปจนคำสั่งสุดท้าย และเมื่อทำคำสั่งสุดท้ายจบก็จะกลับไปทำงานคำสั่งแรกใหม่ เช่น

  1. digitalWrite(13, HIGH)       built-in LED ไฟติด
  2. delay(1000)                         หยุดการทำงาน 1000 มิลลิวินาที (1 วินาที)
  3. digitalWrite(13, LOW)        built-in LED ไฟดับ
  4. delay(1000)                         หยุดการทำงาน 1000 มิลลิวินาที (1 วินาที)
  5. digitalWrite(13, HIGH)       built-in LED ไฟติด
  6. delay(1000)                         หยุดการทำงาน 1000 มิลลิวินาที (1 วินาที)
  7. digitalWrite(13, LOW)        built-in LED ไฟดับ
  8. delay(1000)                         หยุดการทำงาน 1000 มิลลิวินาที (1 วินาที)
  9. digitalWrite(13, HIGH)       built-in LED ไฟติด
  10. ….
  11. ….

ผลการทำงานก็คือ built-in LED จะไฟติด และติดค้างไว้นาน 1 วินาที จากนั้นก็จะไฟดับ และดับค้างไว้นาน 1 วินาที ซ้ำแบบนี้ไปเรื่อยๆ จนเกิดเป็นไฟกระพริบแบบที่เห็นครับ

หมายเหตุ : ในบอร์ด Arduino UNO pin หมายเลข 13 จะถูกพ่วงกับ built-in LED (LED ที่ติดมากับบอร์ด) ดังนั้นหากเรากำหนด pin หมายเลข 13 ให้เป็น HIGH แปลว่าไฟที่ built-in LED ก็จะติด ส่วนในบอร์ดอื่นๆ built-in LED อาจพ่วงอยู่กับ pin หมายเลขอื่นๆ ได้เช่นกันครับ ตรงนี้ก็ต้องอ่านคู่มือบอร์ดนั้นๆ กันเอาเอง

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีดาวน์โหลดและติดตั้ง Arduino IDE บน Ubuntu

ขั้นตอนการดาวน์โหลด

1. เข้าไปยังเว็บไซต์หลักของ Arduino เพื่อดาวน์โหลด Arduino IDE โดยคลิกที่นี่ https://www.arduino.cc/en/main/software

2. เมื่อเข้าเว็บไซต์มาแล้ว ให้คลิกดาวน์โหลดที่ Linux 32 bits หรือ Linux 64 bits อย่างใดอย่างหนึ่ง (ขึ้นอยู่กับเวอร์ชั่น Ubuntu ของคุณเป็นแบบ 32 bits หรือ 64 bits)

3.หลังจากที่คุณคลิกดาวน์โหลดแล้ว หน้าเว็บไซต์จะเปลี่ยนไปเป็นหน้า Donate (บริจาค) และจะมี 2 ปุ่มให้คุณเลือกคลิกครับ

  1. ปุ่ม JUST DOWNLOAD คือ ดาวน์โหลดอย่างเดียว
  2. ปุ่ม CONTRIBUTE & DOWNLOAD คือ บริจาคเงินจากนั้นค่อยดาวน์โหลด

ซึ่งตรงนี้คุณจะเลือกคลิกที่ JUST DOWNLOAD หรือ CONTRIBUTE & DOWNLOAD ก็แล้วแต่คุณครับ คลิกปุ่มใดปุ่มหนึ่งได้เลย

จากนั้นก็เบราเซอร์ของคุณก็จะเริ่มดาวน์โหลด และหากเบราเซอร์ของคุณไม่ถามว่าจะให้บันทึกไฟล์ไว้ที่ไหน ไฟล์ก็มักจะถูกบันทึกไว้ที่ไดเรคทอรี่ชื่อว่า Downloads ครับ

ขั้นตอนการติดตั้ง

เมื่อคุณดาวน์โหลดไฟล์เสร็จแล้ว คุณจะได้ไฟล์ชื่อว่า arduino-version-linux32.tar.xz หรือ arduino-version-linux64.tar.xz ซึ่งเป็นไฟล์ที่ถูกบีบอัดไว้ คุณต้องแยกไฟล์ออกมา โดยกดปุ่มลัดบนคีบอร์ด Alt + Ctrl + T เพื่อเรียกโปรแกรม Terminal ขึ้นมา และพิมพ์คำสั่งดังต่อไปนี้ลงไปครับ

1. สร้างไดเรคทอรี่ชื่อ bin ไว้ในไดเรคทอรี่ home สำหรับเก็บไฟล์โปรแกรม Arduino IDE

2. แยกไฟล์ arduino-version-linux.tar.xz ไปไว้ที่ไดเรคทอรี่ bin

แก้ your-download-path เป็นชื่อไดเรคทอรี่ที่คุณดาวน์โหลดไฟล์เก็บเอาไว้ เช่น Downloads

แก้ arduino-version-linux.tar.xz เป็นชื่อไฟล์ที่คุณดาวน์โหลดมา เช่น arduino-1.8.5-linux64.tar.xz

3. เพิ่มไอคอน Arduino IDE ไปยังเมนูของระบบ

แก้ arduino-version ให้ตรงกับเวอร์ชั่นของ Arduino IDE ที่คุณดาวน์โหลดมา เช่น arduino-1.8.5

การเรียกโปรแกรม Arduino IDE ขึ้นมาใช้งาน

คุณสามารถเรียกโปรแกรม Arduino IDE ขึ้นมาด้วย 2 วิธีครับ

วิธีที่1 คลิกไอคอนโปรแกรม Arduino IDE จากเมนูของระบบครับ

วิธีที่2 เรียกผ่าน command-line บนโปรแกรม Terminal ด้วยคำสั่งนี้ครับ

วิธีแก้ไขเมื่อเจอ error: cannot access /dev/ttyUSB0

เมื่อคุณพยายามอัปโหลดโปรแกรมลงบอร์ด คุณบางคนอาจจะเจอปัญหาเกี่ยวกับ USB permission (การอนุญาตให้อ่านเขียน USB) แบบรูปด้านล่าง

ถ้าหากคุณลองพิมพ์คำสั่ง ls -l /dev/ttyUSB* คุณก็จะเห็นว่าสิทธิ์การใช้งาน USB คืออนุญาตให้ผู้ใช้ root และผู้ใช้ที่อยู่ในกลุ่ม dialout เท่านั้นที่สามารถอ่านเขียน USB ได้

crwrw—- 1 root dialout 188, 0 พ.ค. 8 14:33 /dev/ttyUSB0

วิธีแก้ไขก็แค่เพิ่มผู้ใช้ของลงไปในกลุ่ม dialout เท่านั้นเองครับ โดยใช้คำสั่งต่อไปนี้

หลังจากพิมพ์คำสั่งข้างบนแล้วให้ logout และ login ใหม่อีกครั้งครับ

หมายเหตุ: บางบอร์ด path จะไม่ใช่ /dev/ttyUSBx แต่จะเป็น /dev/ttyACMx แทนครับ (x คือตัวเลข)

หมายเหตุ2: บางบอร์ดจำเป็นต้องติดตั้ง Driverก่อน เช่น บอร์ดที่ใช้ชิพ USB to Serial CH340/CH340G

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

NodeMCU คืออะไร

NodeMCU (โหนด เอ็มซียู) คือ บอร์ดคล้าย Arduino ที่สามารถเชื่อมต่อกับ WiFi ได้, สามารถเขียนโปรแกรมด้วย Arduino IDE ได้เช่นเดียวกับ Arduino และบอร์ดก็มีราคาถูกมากๆ เหมาะแก่ผู้ที่คิดจะเริ่มต้นศึกษา หรือทดลองใช้งานเกี่ยวกับ Arduino, IoT, อิเล็กทรอนิกส์ หรือแม้แต่การนำไปใช้จริงในโปรเจคต่างๆ ก็ตาม เพราะราคาไม่แพง

ภายในบอร์ดของ NodeMCU ประกอบไปด้วย ESP8266 (ไมโครคอนโทรลเลอร์ที่สามารถเชื่อมต่อ WiFi ได้) พร้อมอุปกรณ์อำนวยความสะดวกต่างๆ เช่น พอร์ต micro USB สำหรับจ่ายไฟ/อัปโหลดโปรแกรม, ชิพสำหรับอัปโหลดโปรแกรมผ่านสาย USB, ชิพแปลงแรงดันไฟฟ้า และขาสำหรับเชื่อมต่ออุปกรณ์ภายนอก เป็นต้น

NodeMCU V3
NodeMCU V3

จุดเด่นของ NodeMCU

  1. สามารถเชื่อมต่อกับ WiFi ได้โดยไม่ต้องติดตั้งโมดูล WiFi เพิ่มเติม
  2. ราคาถูกมาก เมื่อเทียบกับบอร์ดที่มี WiFi ในตัวรุ่นอื่นๆ (ราคาในไทยประมาณ 200บาท)
  3. สามารถเขียน และอัปโหลดโปรแกรมลงบอร์ดด้วยโปรแกรม Arduino IDE ผ่านสาย USB แบบเดียวกับที่ใช้ชาร์จโทรศัพท์ได้
  4. ตัวบอร์ดมีขนาดเล็ก (ประมาณ 5.5 x 3 cm.)

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

Raspberry Pi คืออะไร ?

Raspberry Pi คือ บอร์ดคอมพิวเตอร์ขนาดเล็ก ที่ถูกพัฒนาขึ้นโดย Raspberry Pi Foundation มีคุณสมบัติเด่น คือ ติดต่อ และ ความคุมอุปกรณ์อิเล็กทรอนิกส์ได้

Raspberry Pi 3 Model B
Raspberry Pi 3 Model B By Herbfargus (Own work) [CC BY-SA 4.0], via Wikimedia Commons
Raspberry Pi Zero
Raspberry Pi Zero By Evan-AmosOwn work, Public Domain, Link
Raspberry Pi Compute Module
Raspberry Pi Compute Module By Raspberry Pi Foundation (Raspberry Pi Foundation) [CC BY-SA 4.0], via Wikimedia Commons

ลักษณะทั่วไปของ Raspberry Pi

  • เป็นคอมพิวเตอร์ที่ มีความสามารถในการใช้งานทั่วไป เช่น ใช้เพื่อทำงานเอกสาร, ดูหนัง ฟังเพลง, ใช้เพื่อการคำนวณต่างๆ หรือจะทำเป็น Web Server ก็ย่อมได้
  • เป็นคอมพิวเตอร์ที่ มีขนาดเล็ก
  • เป็นคอมพิวเตอร์ที่ มีราคาถูก เพราะผู้พัฒนามีเจตนาสร้างขึ้นมาเพื่อให้เป็นสื่อการเรียนการสอนทางด้านคอมพิวเตอร์ และเพื่อให้กลุ่มประเทศที่กำลังพัฒนาสามารถมีคอมพิวเตอร์ใช้ได้ทั่วถึงขึ้น
    • Raspberry Pi 3 Model B ราคาประมาณ 35 USD (ประมาณ 1,200 บาท)
    • Raspberry Pi Zero ราคาประมาณ 5 USD (ประมาณ 170 บาท)
    • Raspberry Pi Compute Module 3 ราคาประมาณ 30 USD (ประมาณ 1,000 บาท)
    • *** ราคานี้เป็นราคาโดยประมาณที่ยังไม่รวมค่านำเข้าไทย ค่าภาษี และ ราคาที่แต่ละร้านจะบวกเพิ่มเพื่อเป็นกำไร ***
  • เป็นคอมพิวเตอร์ที่ มีความสามารถในการสื่อสาร และควบคุมอุปกรณ์อิเล็กทรอนิกส์ได้ เช่น สามารถรับรู้สถานะของเครื่องใช้ไฟฟ้าได้ว่ากำลังทำงานอยู่หรือไม่ และ ยังสามารถสั่งงานให้เครื่องใช้ไฟฟ้าทำงานหรือหยุดทำงานก็ได้

ใช้ Raspberry Pi ทำอะไรได้บ้าง ?

เนื่องจาก Raspberry Pi เป็นคอมพิวเตอร์ แน่นอนมันย่อมทำทุกอย่างที่คอมพิวเตอร์ทำได้ เช่น

  • ใช้เป็นคอมพิวเตอร์ส่วนบุคคล เพื่อดูหนัง ฟังเพลง เล่นอินเทอร์เน็ต
  • ใช้เป็นเว็บเซิร์ฟเวอร์ สำหรับเปิดเว็บไซต์ขนาดเล็ก
  • ใช้ทำระบบตรวจจับใบหน้า

ส่วนนอกเหนือจากที่คอมพิวเตอร์ทั่วๆ ไปทำได้ก็คงเป็นเรื่องของการสื่อสาร และควบคุมอุปกรณ์ไฟฟ้า อิเล็กทรอนิกส์ต่างๆ เช่น

  • ระบบเปิด/ปิดหลอดไฟ หรือเครื่องใช้ไฟฟ้าแบบอัตโนมัติ
  • ใช้ควบคุมการทำงานของหุ่นยนต์ หรือเครื่องจักร
  • ใช้ทำประตูไฟฟ้า ล็อค/ปลดล็อคด้วยรีโมท หรือสั่งงานด้วยเสียง
  • ใช้ทำสถานีวัดอุณหภูมิ และความชื้นในอากาศ
  • ใช้ทำระบบกล้องวงจรปิด

ซึ่งผมคงบรรยายได้ไม่หมดว่ามันทำอะไรได้บ้าง เอาเป็นว่าไปลองดูเว็บนี้ก็แล้วกัน ว่าเค้าใช้ Raspberry Pi ทำอะไรกันไปแล้วบ้าง 1132 Projects tagged with “raspberry pi” – Hackaday.io

Raspberry Pi ต้องมีระบบปฏิบัติการ

ก่อนที่จะใช้ Raspberry Pi ได้นั้น จำเป็นต้องติดตั้งระบบปฏิบัติการให้กับ Raspberry Pi ก่อน โดยระบบปฏิบัติการที่นิยมใช้กัน คือ ระบบปฏิบัติการ Raspbian เพราะเป็นระบบปฏิบัติการที่ถูกสนับสนุนโดยตรงจากทาง Raspberry Pi Foundation นั่นเอง

*** Raspbian เป็นระบบปฏิบัติการตระกูลลินุกซ์ครับ ใครที่ไม่เคยใช้ลินุกซ์ก็อาจจะรู้สึกว่ามันยากสักหน่อยนะครับ ***

แต่นอกเหนือจากระบบปฏิบัติการ Raspbian แล้ว ก็ยังมีระบบปฏิบัติการอื่นๆ ให้เลือกใช้กันมากมาย ไปเลือกดูกันเองที่ https://www.raspberrypi.org/downloads/

การควบคุมอุปกรณ์อิเล็กทรอนิกส์

บนบอร์ด Raspberry Pi จะมีสิ่งที่เรียกว่า GPIO (General Purpose Input-Output) ซึ่งมันคือส่วนที่เอาไว้ต่อสัญญาณ Input/Output เข้ากับวงจรอิเล็กทรอนิกส์ภายนอกได้

Raspberry Pi 1 Model B+ GPIO Pins

การรับ/ส่งสัญญาณ Input/Output ผ่าน GPIO จำเป็นต้องเขียนโปรแกรมสั่งงาน โดยภาษาที่นิยมใช้กันทั่วไป ได้แก่ ภาษา Python แต่นอกจากภาษา Python แล้ว ก็ยังมีภาษาอื่นๆ ให้เลือกใช้กันอีก เช่น C/C++, Shell Script และภาษาอื่นๆ

โดยรูปแบบหนึ่งของสัญญาณที่ใช้รับ/ส่งจะอยู่รูปแบบของแรงดันไฟฟ้า 0V กับ 3.3V เช่น

  • เมื่อ GPIO ขา X ได้รับไฟ 0V (หรือไม่ถูกจ่ายไฟ) >> โปรแกรมจะได้รับสัญญาณเป็น 0 หรือ False
  • เมื่อ GPIO ขา X ได้รับไฟ 3.3V >> โปรแกรมจะได้รับสัญญาณเป็น 1 หรือ True
  • เมื่อโปรแกรมส่งสัญญาณออกไปเป็น 0 หรือ False >> GPIO ขา X จะจ่ายไฟ 0V (หรือไม่จ่ายไฟ)
  • เมื่อโปรแกรมส่งสัญญาณออกไปเป็น 1 หรือ True >> GPIO ขา X จะจ่ายไฟ 3.3V

ตัวอย่างโค้ดโปรแกรมภาษา Python

ตัวอย่างนี้เป็นการตั้งให้ GPIO ขาที่ X เป็นขา Output และส่งสัญญาณออกไปเป็น True หรือก็คือจ่ายไฟออกไป 3.3V แต่ถ้าเปลี่ยนจาก True เป็น False ก็จะจ่ายไฟออกไป 0V (หรือไม่จ่ายไฟ)

ส่วนตัวอย่างนี้เป็นการตั้งให้ GPIO ขาที่ X เป็นขา Input และเมื่อได้รับไฟ 3.3V ตัวแปร input จะมีค่าเท่ากับ True และแน่นอนเมื่อได้รับไฟ 0V (ไม่ถูกจ่ายไฟ) ตัวแปร input ก็จะมีค่าเท่ากับ False นั่นเอง

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

สอนใช้ Arduino อ่านค่าจากเซ็นเซอร์วัดอุณหภูมิ DHT11

DHT11 เป็นเซ็นเซอร์สำหรับวัดอุณหภูมิและความชื้นในอากาศ ที่มีขนาดเล็ก และราคาถูกมากๆ  เพียงตัวละประมาณ 50 บาท สามารถใช้งานร่วมกับ Arduino ได้ง่ายๆ เพียงแค่จ่ายไฟให้เซ็นเซอร์ และอ่านค่าจาก Arduino โดยใช้ digital pin เพียง 1 pin เท่านั้น

สเปคคร่าวๆ ของ DHT11

  • วัดความชื้นในอากาศ (Humidity) ได้ตั้งแต่ 20-90%RH มีโอกาศคลาดเคลื่อน ±5%RH
  • วัดอุณหภูมิ (Temperature) ได้ตั้งแต่ 0-50 °C มีโอกาศคลาดเคลื่อน ±2 °C
  • ขนาดของตัวเซ็นเซอร์ 1.5 x 1.0 x 0.5 cm
  • ใช้ไฟ DC ที่มีแรงดันไฟตั้งแต่ 3-5.5V

DHT11 pinout

DHT11 มีขาทั้งหมด 4 ขา แต่เราจะใช้จริงเพียงแค่ 3 ขาเท่านั้น คือ ขาที่ 1, 2 และ 4 เพราะ datasheet บอกว่า “ขาที่ 3 เป็น Null หรือก็คือไม่ได้ใช้ประโยชน์นั่นเอง”

DHT11_pinout

การต่อวงจร

การต่อวงจรให้ดูรูปด้านล่างครับ เราจะใช้ 5kΩ pull-up resistor สำหรับการต่อสายระหว่าง Arduino กับ DHT11 ในระยะที่ห่างกันไม่เกิน 20 เมตรนะครับ (อ้างอิงจาก DHT11 datasheet)

โค้ดตัวอย่าง

ดาวน์โหลด และติดตั้งไลบรารี่ Dht11_Library ที่ถูกปรับปรุงโดย Andy Dalton แล้วใช้โค้ดด้านล่างนี้ทดสอบได้เลย

เมื่อเปิดดู Serial Monitor จะเห็นผลลัพธ์การทำงานดังนี้

DHT11_program_output

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

Arduino คืออะไร ?

Arduino เป็นภาษาอิตาลี อ่านว่า อาดุอีโน่ (ฟังการออกเสียงได้ที่ท้ายบทความ) หรือจะเรียกว่า อาดุยโน่ ก็ได้ ไม่ได้มีอะไรผิด ขอแค่สื่อสารกันเข้าใจก็พอแล้วครับ, Arduino คือ Open-Source Platform สำหรับการสร้างต้นแบบทางอิเล็กทรอนิกส์ โดยมีจุดมุ่งหมายให้ Arduino Platform เป็น Platform ที่ง่ายต่อการใช้งาน, โดย Arduino Platform ประกอบไปด้วย

1. ส่วนที่เป็นฮาร์ดแวร์ (Hardware)

  • บอร์ดอิเล็กทรอนิกส์ขนาดเล็ก ที่มีไมโครคอนโทรลเลอร์ (MCU) เป็นชิ้นส่วนหลัก ถูกนำมาประกอบร่วมกับอุปกรณ์อิเล็กทรอนิกส์อื่นๆ เพื่อให้ง่ายต่อการใช้งาน หรือที่เรียกกันว่า บอร์ด Arduino, โดยบอร์ด Arduino เองก็มีหลายรุ่นให้เลือกใช้ โดยในแต่ละรุ่นอาจมีความแตกต่างกันในเรื่องของขนาดของบอร์ด หรือสเปค เช่น จำนวนของขารับส่งสัญญาณ, แรงดันไฟที่ใช้, ประสิทธิภาพของ MCU เป็นต้น ( สามารถเปรียบเทียบ และดูสเปคคร่าวๆ ของ Arduino แต่ละรุ่นได้ที่ http://www.arduino.cc/en/Products/Compare )
Arduino UNO R3
Arduino UNO R3

By SparkFun Electronics from Boulder, USA (Arduino Uno – R3) [CC BY 2.0], via Wikimedia Commons

2. ส่วนที่เป็นซอฟต์แวร์ (Software)

  • ภาษา Arduino (ซึ่งจริงๆ แล้วก็คือ ภาษา C/C++) ใช้สำหรับเขียนโปรแกรมควบคุม MCU
  • Arduino IDE เป็นเครื่องมือสำหรับเขียนโปรแกรมด้วยภาษา Arduino, คอมไพล์โปรแกรม (Compile) และอัปโหลดโปรแกรมลงบอร์ด (Upload)
Arduino IDE 1.8.5
Arduino IDE 1.8.5

Arduino ทำอะไรได้ ?

Arduino ถูกใช้ประโยชน์ในลักษณะเดียวกับ MCU คือ ใช้ติดต่อสื่อสารและควบคุมอุปกรณ์ไฟฟ้าอื่นๆ ด้วยการเขียนโปรแกรมให้กับ MCU เพื่อควบคุมการรับส่งสัญญาณทางไฟฟ้าตามเงื่อนไขต่างๆ

ตัวอย่าง การประยุกต์ใช้ Arduino ในชีวิตประจำวัน เช่น ระบบเปิด/ปิดไฟในบ้านอัตโนมัติ, ระบบรดน้ำต้นไม้อัตโนมัติ, ระบบเปิด/ปิดประตูอัตโนมัติ, ระบบเครื่องซักผ้าหยอดเหรียญ หรือ ใช้ควบคุมความเร็วและทิศทางการหมุนของคุมมอเตอร์ เป็นต้น

Arduino Official Board กับ Compatible Board ต่างกันอย่างไร ?

Arduino เป็น บอร์ดอิเล็กทรอนิกส์ที่ open-source นั่นคือเปิดเผยแบแปลนในการผลิต ทำให้ใครๆ ก็สามารถผลิตหรือสร้างบอร์ด Arduino ขึ้นมาได้ ดังนั้นบอร์ด Arduino จึงมีผู้ผลิตออกมาจำหน่ายมากมาย โดยแบ่งประเภทของบอร์ด Arduino จากแหล่งที่มาที่ต่างกันได้เป็น 2 ประเภท ดังนี้

  1. Official Board หรือ บอร์ดที่ผลิตโดยต้นตำรับ ผลิตจากประเทศอิตาลี “บอร์ดจะถูกผลิตด้วยความประณีต สวยงาม อุปกรณ์แต่ละชิ้นได้มาตรฐาน ผ่านการตรวจเช็คความสมบูรณ์ของสินค้าอย่างดีก่อนออกจำหน่าย” (ตรงเครื่องหมายคำพูดนี้ ความรู้สึกส่วนตัวล้วนๆ ครับ -0-)
  2. Compatible Board หรือ บอร์ดที่เข้ากันได้(ใช้แทน Official Board ได้) ซึ่งไม่ได้ถูกผลิตโดยต้นตำรับ แต่อาจถูกผลิตขึ้นมาตามแบบแปลนแป๊ะๆ หรืออาจผลิตให้ใกล้เคียงกับแบบแปลนจากต้นตำรับ โดยอาจมีการปรับนู่นนิด ปรับนี่หน่อยบ้าง เพื่อลดต้นทุน หรือเพื่อเพิ่มความสามารถ บอร์ดประเภทนี้ส่วนมากผลิตที่จีนครับ คุณภาพอาจไม่ดีมากนัก แต่ราคาถูก เหมาะกับการเอามาศึกษาในระดับผู้เริ่มต้น ซึ่งถ้าเทียบราคากันในรุ่น Arduino UNO R3 ราคาของ Official Board จะอยู่ที่ราวๆ 800 บาท ส่วน Compatible Board จะอยู่ที่ราวๆ 200 บาท เท่านั้นเองครับ

สิ่งที่ทำให้ Arduino น่าสนใจ ?

  • Arduino กำลังเป็นที่นิยม และเป็นที่สนใจ สำหรับนักอิเล็กทรอนิกส์ทั้งมือใหม่ และมือเก่า ทำให้เราสามารถหาอ่านคู่มือ วิธีใช้ วิธีแก้ปัญหาต่างๆ ได้ง่ายบนอินเทอร์เน็ต
  • Arduino พร้อมใช้งานทันที เพราะบอร์ด Arduino ติดตั้งอุปกรณ์จำเป็นพื้นฐานมาให้หมดแล้ว (ต่างจาก MCU เปล่าๆ ที่ต้องซื้ออุปกรณ์จำเป็นอื่นๆ มาติดตั้งเพิ่มเติม)
  • Arduino สามารถเขียนโปรแกรมสั่งงานด้วยไวยากรณ์ภาษา C/C++ ซึ่งง่ายสำหรับผู้ที่มีพื้นฐานด้านการเขียนโปรแกรมอยู่บ้างแล้ว แต่สำหรับผู้ที่ไม่เคยเขียนโปรแกรมมาก่อนเลย ก็สามารถเริ่มต้นศึกษา และหาหนังสืออ่านได้ไม่ยาก นอกจากนี้ยังมี Library ให้เลือกใช้มากมาย ทำให้การเขียนโปรแกรมทำได้ง่ายและรวดเร็วขึ้นครับ
  • Arduino ราคาไม่แพงเกินไปสำหรับผู้ที่อยากจะเริ่มต้นใช้งาน
  • การอัปโหลดโปรแกรมที่เขียนบนคอมพิวเตอร์ลงไปที่ Arduino ก็ทำได้โดยง่าย แค่ใช้สาย USB ต่อบอร์ด Arduino เข้ากับคอมพิวเตอร์ แล้วอัปโหลดด้วยโปรแกรม Arduino IDE เท่านั้นเองครับ

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน