Arduino (ขออ่านว่า อาดูโน่) เป็นบอร์ดไมโครคอนโทรเลอร์ตระกูล AVR ที่มีการพัฒนาแบบ Open Source คือมีการเปิดเผยข้อมูลทั้งด้าน Hardware และ Software ตัว บอร์ด Arduino ถูกออกแบบมาให้ใช้งานได้ง่าย ดังนั้นจึงเหมาะสำหรับผู้เริ่มต้นศึกษา ทั้งนี้ผู้ใช้งานยังสามารถดัดแปลง เพิ่มเติม พัฒนาต่อ ยอดทั้งตัวบอร์ด หรือการเขียนโปรแกรมคอมพิวเตอร์อื่นๆต่อได้อีกด้วย
บอร์ด Arduino มีหลายรุ่นหลายขนาด ยกตัวอย่าง เช่น UNO, Pro Mini , Mega , Micro, Nano , เป็นต้น ซึ่งแต่ละรุ่น จะมี Spec ที่ไม่เหมือนกัน ได้แก่ ขนาด, ความจุ, ความเร็ว, จำนวนขา I/O ผู้ใช้สามารถเลือกให้เหมาะสมกับงานของตัวเองได้ รุ่นที่เห็นว่าได้รับความนิยม ก็คงจะเป็นรุ่น UNO
คำว่า UNO เป็นภาษาอิตาลี ซึ่งแปลว่าหนึ่ง เป็นบอร์ด Arduino รุ่นแรกที่ออกมา เป็นบอร์ดมาตรฐานที่นิยมใช้งานมากที่สุด เนื่องจากเป็นขนาดที่เหมาะสำหรับการเริ่มต้นเรียนรู้ Arduino และมี Shields ให้เลือกใช้งานได้มากกว่าบอร์ด Arduino รุ่นอื่นๆ โดยบอร์ด Arduino Uno ได้มีการพัฒนาเรื่อยมา ปัจจุบัน เป็น R3 ซึ่ง “R3” นี้แสดงถึงรุ่นที่ได้ทำการแก้ไขปรับปรุงเป็นครั้งที่3 (Third Revision) นั่นเอง
Arduino UNO R3
ข้อมูลจำเพาะ
ชิปไอซีไมโครคอนโทรเลอร์ | ATmega328 |
ใช้แรงดันไฟฟ้า | 5V |
รองรับการจ่ายแรงดันไฟฟ้า (ที่แนะนำ) | 7 – 12V |
รองรับการจ่ายแรงดันไฟฟ้า (ที่จำกัด) | 6 – 20V |
พอร์ต Digital I/O | 14 พอร์ต (มี 6 พอร์ต PWM output) |
พอร์ต Analog Input | 6 พอร์ต |
กระแสไฟที่จ่ายได้ในแต่ละพอร์ต | 40mA |
กระแสไฟที่จ่ายได้ในพอร์ต 3.3V | 50mA |
พื้นที่โปรแกรมภายใน | 32KB พื้นที่โปรแกรม, 500B ใช้โดย Booloader |
พื้นที่แรม | 2KB |
พื้นที่หน่วยความจำถาวร (EEPROM) | 1KB |
ความถี่คริสตัล | 16MHz |
ขนาด | 68.6x53.4 mm |
น้ำหนัก | 25 กรัม |
Arduino (IDE)
Arduino integrated development environment หรือเรียกสั้นๆว่า โปรแกรม Arduino (IDE) จะทำหน้าที่ ติดต่อ ระหว่าง คอมพิวเตอร์ ของเรา กับ บอร์ด Arduino ซึ่งโปรแกรมนี้ออกแบบให้ง่ายต่อการเขียนโค้ดและอัปโหลดโปรแกรมที่เราเขียน เข้าสู่ บอร์ด Arduino
ดาวน์โหลดที่...
คลิกที่ Windows Installer, for Windows XP and up
คลิก JUST DOWNLOAD
ให้ทำการติดตั้งโปรแกรม ซึ่งก็เหมือนกับการติดตั้งโปรแกรมทั่วๆไป ถ้ามีการถาม การติดตั้งไดร์เวอร์ ของ Arduino ให้ คลิก Install
ตรวจสอบการเชื่อมต่อระหว่าง คอม กับ UNO
ต่อ USB Port เข้ากับ บอร์ด Arduino UNO R3
นำ USB Port อีกด้าน ต่อเข้ากับคอมพิวเตอร์ผ่านทาง USB port
เมื่อบอร์ด Arduino UNO R3 เชื่อมต่อ เข้ากับคอมพิวเตอร์ เรียบร้อย ที่ ON จะมี ไฟ LED สีเขียว ติดอยู่
ให้ทำการตรวจสอบ โดย คลิกขวา Computet -> Properties
คลิกที่ Device Manager
ไปดูที่ Ports (COM & LPT) จะพบ Port ของ Arduino UNO เพิ่มเข้ามา แสดงว่าคอมพิวเตอร์เราพร้อมทำงานกับ Arduino UNO แล้ว
โปรแกรมแรก Hello World กับ Arduino UNO R3
บอร์ด Arduino UNO R3 ที่เรากำลังใช้อยู่นั้นสามารถติดต่อสื่อสารกับอุปกรณ์ภายนอกได้ และการทดลองติดต่อสื่อสารที่ทำได้ง่ายและเห็นภาพที่สุดคือการสั่งงานให้ Arduino UNO R3 สื่อสารกับคอมพิวเตอร์ของเรา ผ่านทางพอร์ทอนุกรม (Serial Port)
โดยการให้มันส่งข้อความอะไรบางอย่างมาที่คอมของเรากัน สำหรับหัวของนี้ยังไม่มีการต่อวงจรเพิ่มเติมครับเพียงแค่มีสาย USB กับบอร์ด Arduino UNO R3 ก็เริ่มทดลองกันได้เลย คำสั่งแรกที่ต้องใช้ในการเริ่มต้นสื่อสารคือ การกำหนดความเร็วในการสื่อสาร ด้วยคำสั่ง
Serial.begin(9600);
โดยตัวเลขที่อยู่ในวงเล็บคือค่าความเร็วในการรับ-ส่งข้อมูล ค่ามาตรฐาน คือ 9600 ครับ และคำสั่งสำหรับสั่งให้ บอร์ดส่งข้อความมาที่คอมพิวเตอร์ของเรา คือ
Serial.println("Hello World");
2. เปิดโปรแกรม Arduino (IDE) แล้วจะพบกับหน้าต่างของ IDE ดังรูป
3. มาเริ่มเขียนโปรแกรมแรกของเรา โดยภาษาคอมพิวเตอร์ที่ใช้คือ ภาษา C++ ซึ่งเป็นภาษาที่นิยมใช้กัน อันดับต้นๆ และสามารถเป็นพื้นฐานที่ดีในการเรียนรู้ภาษาคอมพิวเตอร์อื่นๆ ได้เป็นอย่างดี
3.1 ส่วนประกอปของโปรแกรม หรือ ที่เรียกว่า Sketch มี 2 ส่วน คือ ฟังก์ชั่น setup และ ฟังก์ชั่น loop สามารถอธิบายรูปแบบการทำงานของโปรแกรมได้ดังนี้
เมื่อเริ่มต้นทำงาน Arduino จะทำตามคำสั่งต่างๆที่อยู่ในฟังก์ชัน “setup” เป็นจำนวน 1 รอบ โดยคำสั่งต่างๆที่จะเขียนในฟังก์ชันนี้ ส่วนมากจะเป็นการกำหนดค่าเริ่มต้น การกำหนดหน้าที่ของแต่ละขา หรือคำสั่งต่างๆที่ต้องการเรียกใช้เพียงแค่ครั้งแรกครั้งเดียว
หลังจากที่จบฟังก์ชัน “setup” จะไม่มีการย้อนกลับมาทำคำสั่งในนี้อีก ส่วนฟังก์ชัน loop จะทำงานต่อจาก setup โดยใน loop นี้จะเป็นการทำตามคำสั่งแบบวนซ้ำ คือ ทำงานตามคำสั่งบรรทัดแรกไปเรื่อยๆจนถึงบรรทัดสุดท้าย แล้ว วน กลับมาเริ่มทำที่บรรทัดแรกใหม่อีกครั้ง เป็นเช่นนี้ไปเรื่อยๆ
//
ฟังก์ชัน ส่วนที่1
void setup()
{
//ส่วนนี้จะทำงานครั้งแรก เพียงครั้งเดียวเท่านั้น เป็นส่วนคำสั่งหรือสเตตเมนต์ (Statement) จะเป็นส่วนที่เก็บคำสั่งต่างๆ ที่จะให้โปรแกรมเรื่มต้นในการทำงาน ในการตั้งค่า กำหนดค่า ต่างๆ โดยเริ่มต้นด้วยเครื่องหมายปีกกาเปิด { และจบด้วยเครื่องหมายปีกกาปิด } ทุกโปรแกรมจะต้องมีฟังก์ชั่น setup ซึ่งถือว่าเป็นฟังก์ชั่นหลักที่โปรแกรมจะทำงานได้
}
//ฟังก์ชัน ส่วนที่2
void loop()
{
//ส่วนนี้จะทำงานซ้ำ วนลูป ไปเรื่อยๆ ส่วนคำสั่งหรือสเตตเมนต์ (Statement) จะเป็นส่วนที่เก็บคำสั่งต่างๆ ที่จะให้โปรแกรมทำงาน การตัดสินใจ ต่างๆ โดยเริ่มต้นด้วยเครื่องหมายปีกกาเปิด { และจบด้วยเครื่องหมายปีกกาปิด } ส่วนนี้จะมีมากกว่าหนึ่งฟังก์ชั่นก็ได้ แต่ทุกโปรแกรมจะต้องมีฟังก์ชั่น loop ซึ่งก็ถือว่าเป็นฟังก์ชั่นหลักที่โปรแกรมจะทำงานได้
}
เริ่มเขียนโปรแกรม หรือ Sketch ตามโค้ดด้านล่างนี้
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.println("Hello World");
}
4. ไปที่
Tools -> Board แล้วเลือกให้ตรงกับบอร์ดที่ใช้งาน สำหรับ Arduino UNO R3 ให้เลือกบอร์ด Arduino/Genuino UNO
ตรวสอบ Port ว่าถูกต้องหรือไม่ โดยไปที่ Tools -> Port
5. จากนั้นคอมไฟล์โปรแกรมโดยไปที่
Sketch -> Verify / Compile
หรือ คลิกที่ ไอคอน เครื่องหมายถูก
ตั้งชื่อ ที่ต้องการ เช่น Hello World แล้ว Save โปรแกรมจะตรวจสอบความถูกต้องของโปรแกรม ถ้ามีความผิดพลาด ในการเขียนโปรแกรม Arduino (IDE) จะแจ้งให้เตือนให้ทราบด้านล่าง เพื่อให้เราปรับปรุงแก้ไขต่อไป แต่ถ้าไม่มีความผิดพลาดในการเขียนโปรแกรม เมื่อคอมไฟล์เรียบร้อย จะเห็นคำว่า “Done compiling” ที่ด้านล่างของ IDE ปรากฎดังรูป
6. อัพโหลดโปรแกรมเข้าสู่ บอร์ด Arduino UNO R3 โดยไปที่
Sketch -> Upload
หรือ คลิกที่ ไอคอน เครื่องหมายตรงไปด้านขวา ตามรูปด้านล่าง
ถ้าไม่มีความผิดพลาด Arduino (IDE) จะ Upload โปรแกรมที่เราเขียน เข้าสู่ บอร์ด Arduino UNO R3
7. จากนั้นเปิด Serial Monitor ของ Arduino IDE โดยไปที่ Tools -> Serial Monitor
8. เมื่อเปิด Serial Monitor จะได้ข้อความดังรูป
ตัวแปร String และ ตัวแปร int
ตัวแปร (Variables) จะเป็นชื่อที่ใช้ในการบอกจำนวนหรือปริมาณ ซึ่งสามารถที่จะทำการเปลี่ยนแปลงจำนวนได้ด้วยโปรแกรมคอมพิวเตอร์ การตั้งชื่อตัวแปร จะต้องตั้งชื่อให้แตกต่างไปจากชื่อของตัวแปรอื่นๆ
ตัวแปร สตริง (String) เป็นตัวแปรที่ใช้สำหรับเก็บข้อมูลที่เป็นข้อความ เช่น "Hello World"
ตัวแปร อินทิเจอร์ (int) เป็นตัวแปรที่ใช้สำหรับการเก็บค่าตัวเลขที่เป็นจำนวนเต็มที่มีค่า ระหว่าง - 32768 ถึง 32767
เขียนโค้ดดังนี้
String My_string;
int My_int;
void setup()
{
Serial.begin(9600);
My_string = ("Hello World");
My_int = 1;
}
void loop()
{
Serial.println(My_string + " " + My_int);
My_int = My_int + 1;
}