แนะนำการเลือกใช้บอร์ดชนิดต่างๆของ Arduino
ผมคิดว่าสำหรับมือใหม่ คงมีปัญหาเหมือนกับผมตอนเริ่มรู้จักกับ Arduino ครับ คือไม่รู้จะใช้บอร์ดแบบไหนดี มีให้เลือกมากมายเหลือเกิน เอาเป็นว่าใช้ตามแบบเพื่อนๆดีกว่า จริงรึเปล่าครับ ผมจะบอกให้อีกนิดนะครับ สำหรับบอร์ดที่นิยมใช้งานมากที่สุดของ Arduino ในขณะที่เขียนบทความนี้คือ Arduino UNO R3 ครับ เนื่องจาก ราคาย่อมเยาว์ และได้ Port input/output จำนวนพอใช้งานกับงานสำหรับนักประดิษฐ์ หรือ นักเรียน นิสิต นักศึกษาทั่วไปได้ครับ
ข้อแตกต่างของบอร์ดแต่ละชนิดที่ผู้ใช้ต้องพิจารณาก็มีคร่าวๆ ดังนี้ครับ
- จำนวน Input / Output port
- ระดับแรงดันทำงาน 3.3 หรือ 5 V
- ชนิดของ microcontroller
- ความเร็วของ Clock
- Flash Memory
- วิธีการโปรแกรม
- ขนาด สีสรรค์ และรูปร่างหน้าตาของบอร์ด
- ฟังก์ชั่นการทำงานที่มาพร้อมบอร์ด เช่น การติดต่อกับ Android device การติดต่อกับ Ethernet การติดตั้ง SD card มาให้ในตัว จำนวนขา PWM
ที่ผมจะเขียนให้อ่านในวันนี้จะอธิบายให้เห็นจุดเด่น และ spec ที่สำคัญ ไล่เรียงไปแต่ละบอร์ดที่ได้รับความนิยมและหาซื้อได้ทั่วไปในประเทศนะครับ เรามาเริ่มกับ บอร์ด ยอดฮิตอย่าง Arduino UNO R3 ก่อนครับ
อย่างที่กล่าวไปแล้วครับ บอร์ดนี้นิยมใช้งานมากที่สุดในบรรดาบอร์ดของ Arduiono สาเหตุพอจะสรุปได้ดังนี้ครับ
- ราคาที่เทียบกับบอร์ดอื่นแล้วถูกและคุ้ม แถมขายกันทั่วไปบนเว็บ
- มีคนใช้มากทำให้มี Tutorial ต่างๆบนเว็บไซต์ทั้งในและต่างประเทศมากมาย เช่น Quick Start for Arduino แถมส่วนใหญ่ หนังสือที่เขียนเกี่ยวกับ Arduino ก็สาธิตการทำงานด้วยบอร์ด UNO R3 เป็นหลักครับ
- ในกรณีที่ใช้งานแล้วมีปัญหา คือ Atmel 328 เสีย ก็เปลี่ยนเองได้แบบง่ายๆ โดยไปสั่งซื้อ Atmel 328 มาใหม่แล้วทำการ Boot loader ซะหน่อยก็ใช้งานได้ต่อ
- ที่สำคัญคือ Library ที่มีแจกกันบน Github.com โดยมากก็ใช้กับ UNO ได้เลยโดยไม่ต้องมีการดัดแปลง
- จำนวนขา Analog Input 6 ช่อง Digital Input 14 ช่อง Flash memory 32 kB ใช้กับ USB ได้ทันทีทั้งไฟเลี้ยงและการโปรแกรม
- Shield ส่วนใหญ่ออกแบบให้มีขนาดเท่ากับ UNO R3 ทำให้สามารถต่อทับไปบนตัว UNO ได้พอดีไม่ขาดไม่เกิน
- ระดับแรงดันทำงานของ port 5 V
บอร์ดชนิดนี้มีขนาดใหญ่กว่า UNO ครับ แต่การทำงานส่วนใหญ่คล้ายกัน จะมีความต่างๆในรายละเอียดเล็กนัอยดังนี้ครับ
- มีจำนวน Analog Input port 16 ช่อง Digital Input 54 ช่อง PWM 4 ช่อง Flash memory 256 kB
- ไมโครคอนโทรลเลอร์ที่ใช้คือ ATmega2560 Clock 16 MHz
- ระดับแรงดันทำงานของ port 5 V
- Shield ส่วนใหญ่พอใช้กันได้ แต่อาจจะมีขนาดไม่เท่ากัน แต่ถ้าเสียบลงแล้ว Pin ขั้นต้นที่มีให้จะเรียงตัวเหมือนกันกับ UNO ทำให้พอใช้งานกันได้ แต่อาจจะต้องปรับ Sketch ที่เขียนด้วยให้มี Pin ตรงกับบอร์ด MEGA นี้ครับ
โดยสรุปนะครับ บอร์ดนี้ความเร็วเท่าก้บ UNO R3 จำนวน Port มากกว่าเยอะ Flash memory ก็มากกว่า ทำให้ใส่ Sketch ขนาดใหญ่กว่าได้ แต่ระดับแรงดันทำงานเท่ากัน ทำให้ Sensor ต่างๆ ใช้งานด้วยกันกับ UNO ได้ครับ เหมาะกับการใช้งานในโปรเจคที่มีขนาดใหญ่ขึ้นกว่า UNO
บอร์ดนี้เหมือนกับ Arduino MEGA 2560 R3 ทุกอย่างครับ มีเพิ่มมาคือ Port ที่มีไว้ติดต่อกับ Android device โดยมาพร้อมกับ IC ประเภทที่ทำให้บอร์ดนี้สามารถต่อสายมาที่บอร์ดและใช้สั่งการผ่าน Android phone หรือ Android Tablet ได้โดยตรง โดยไม่ต้องผ่าน Internet
บอร์ดนี้ออกวางจำหน่ายหลังจาก Arduino UNO R3 ครับ ข้อแตกต่างที่สำคัญเมื่อเทียบกับ UNO R3 มีดังนี้ครับ
- ความเร็วในการประมวลผลเร็วกว่า 6 เท่า เนื่องจากใช้ Clock 84 MHz
- จำนวนขา Analog Input 12 ช่อง Digital Input 54 ช่อง Flash memory 512 kB ใช้กับ USB ได้ทันทีทั้งไฟเลี้ยงและการโปรแกรม
- ระดับแรงดันทำงาน 3.3 V (ข้อนี้ทำให้ต้องระวังอย่างมากนะครับ อย่าใช้อุปกรณ์ปนกับ UNO หรือ บอร์ดอื่นๆ โดยไม่ดูให้ดี จะพาเอาบอร์ดพังได้ ซ่อมก็ไม่คุ้มนะครับ)
- ราคาสูงกว่า UNO อยู่มากพอสมควร
- ต้องใช้งานกับ Arduino IDE 1.5 ขึ้นไป
- Sketch ที่ใช้่งานต้องเขียนขึ้นมา หรือ ดัดแปลงให้เข้ากับ Port ของ Arduino Due นี้ซึ่งอาจจะต่างจาก UNO R3 พอสมควร
สรุปคือ หากต้องการใช้บอร์ดประมวลผลที่เร็วกว่า UNO บอร์ดตัวนี้ก็เป็นบอร์ดที่ต้องเอามาพิจารณาครับ ตัวอย่างเช่น หากต้องการใช้งานเป็น Data logger แต่ UNO เก็บให้เร็วไม่พอ คงต้องหันมาใช้ DUE ครับ
บอร์ดตัวนี้ผมเคยได้ยินเพื่อนๆบางคนบอกว่าคุ้มยิ่งกว่า UNO R3 เพราะราคาเท่ากัน (ในเว็บ www.arduitronics.com) แต่ได้จำนวนขา Input / Output มากกว่า ก็จริงอย่างนั้นครับ
- ความเร็วในการประมวลผลเท่ากับ UNO R3 คือ 16 MHz
- จำนวนขา Analog Input 12 ช่อง Digital Input 20 ช่อง Flash memory 32 kB ใช้กับ USB ได้ทันทีทั้งไฟเลี้ยงและการโปรแกรม
- ระดับแรงดันทำงาน 5 V เหมือน UNO R3 ทำให้ใช้งาน Sensor ด้วยกันได้
สรุปคือ ความเร็วเท่ากับ UNO R3 แต่ให้จำนวน input/ output port มากกว่าครับ
บอร์ดตัวนี้ชื่อก็คงจะสือความหมายแล้วครับ คือมีขนาดเล็กกว่าบอร์ดชนิดอื่นๆ แต่ก็ต้องแลกมาด้วยจำนวน Port ที่น้อย และใช้งานกับ Shield ทั่วไปได้ยาก มีให้เลือก 2 แบบคือ แบบที่ใช้ Atmel 168 กับ Atmel 328 ครับ
- ใช้ไมโครคอนโทรลเลอร์ตัวเล็กกว่า UNO R3 คือ Atmel 168 หรือ เหมือนกัน UNO R3 คือ Atmel 328 ความเร็ว Clock 16 MHz
- ระดับแรงดันทำงานคือ 5 V เหมือนกัน UNO
- จำนวนขา Analog Input 8 ช่อง Digital Input 14 ช่อง Flash memory 1-2 kB ใช้กับ USB ได้ทันทีทั้งไฟเลี้ยงและการโปรแกรม
- ขนาด 0.73 x 1.70 นิ่ว
สรุปคือ หากต้องการใช้งานบอร์ดขนาดเล็ก และไม่ต้องการใช้ร่วมกับ Shield มาตรฐาน ก็อันนี้เลยครับ จะว่าไปความสามารถก็คล้ายกับ UNO R3 เพราะใช้ไม่โครคอนโทรลเลอร์เดียวกัน แต่ memory น้อยกว่า Pin น้อยกว่า
ตัวนี้มีขนาดเล็กที่สุดในบรรดา board ของ Arduino แล้วครับ แต่เล็กอย่างนี้ใช้ CPU ตัวเดียวกับรุ่น Arduino UNO R3 ทำให้ มี Pin input/output ไม่น้อยเลยครับ
- Analog input 6 Digital in/out 14 แถมด้วยความเร็วที่ 16 MHz
- ใช้ ATmega328 running at 16MHz (มีรุ่นที่ใช้ Atmega 168 ด้วยนะครับ เวลาซื้อเลือกให้ดี)
- ขนาดเล็กจิ๋ว 0.7x1.3" (18x33mm)
- เวลาจะ upload ต้องใช้ USB to TTL converter แยก (ซื้อต่างหากครับ แต่ราคาไม่แพงครับ ไม่เหมือนตัว Programmer ของไมโครคอนโทรลเลอร์ยี่ห้ออื่นๆ)
- RAM kB เท่ากับ UNO ครับ
สรุปคือว่า ถ้าใช้ UNO ได้ ตัวนี้ก็เอาอยู่ แต่ลำบากนิดหน่อนเวลา upload sketch ที่ต้องต่อสายนิดหน่อยครับ
Board Arduino กับ Android ADK
ขอแถมอีกนิดครับ สำหรับคนที่ต้องการใช้ Arduino ไปพัฒนาร่วม หรือ ใช้กับ Application บน Android devices นะครับ บอร์ดที่นิยมใช้งานมี 2 แบบ ครับ คือรุ่นที่ทำโดย Arduino โดยตรง ผลิตโดยความร่วมมือกับ Google คือ Arduino MEGA 2560 ADK และ IOIO Borad (อ่านว่าโยโย่บอร์ด) นะครับ
หลักๆ ที่ต่างกันของสองบอร์ดนี้เลย คือ Arduino MEGA 2560 ADK จะเป็นไมโครคอนโทรลเลอร์แบบที่ใช้งานกันโดยทั่วไป ตามที่กล่าวข้างบน มีความสามารถในการประมวลผล เขียนโปรแกรมลงไปบนตัวบอร์ดได้ แต่เพิ่มความสามารถในการติดต่อกับ Android Devices "ผ่านสาย USB" ย้ำนะครับ ผ่านสาย USB Arduino MEGA ADK เป็นไม่โครคอนโทรลเลอรทำงานได้ด้วยตัวเอง การติดต่อกับ Android device เป็นทางเลือกที่เพิ่มมา
ส่วน IOIO Board เป็นบอร์ดที่ผลิตโดยบริษัทอื่น ใช้ ไม่โครคอนโทรเลอร์ตระกูล DsPic ของ Microchip มีขนาดเล็กกว่า Arduino MEGA ADK แต่ที่สำคัญคือ
- สามารถติดต่อกับ Android device ผ่านสาย USB หรือ Bluetooth ก็ได้ (ต้องซื้อ Dongle เพิ่ม)
- ที่ผมอยากจะย้ำคือ "ไม่สามารถในการประมวลผล เขียนโปรแกรมลงไปบนตัวบอร์ดได้" เป็นเพียงตัวรับและส่งออกคำส่งจาก Android device นะครับ ไม่ใช่ว่าเป็นข้อเสียนะครับ แต่เป็นความแตกต่างที่ผู้ผลิตออกแบบมา การทำแบบนี้ทำให้ผู้เขียนโปรแกรม Android Device ไม่ต้องมาเรียนรู้การใช้งาน Arduino IDE เลย ทุกอย่างสั่งงานบน Android Device
- สำคัญอีกข้อคือ ตัว IOIO Board จะทำงานอะไรไม่ได้เลยถ้าไม่ต่อเชื่อม ไม่ว่าจะแบบสาย หรือ Bluetooth กับ Android Device นะครับ ไม่เหมือนกับ Arduino MEGA ADK ที่เป็นไม่โครคอนโทรลเลอรทำงานได้ด้วยตัวเอง การติดต่อกับ Android device เป็นทางเลือกที่เพิ่มมา
เครดิต: www.arduitronics.com