วันอาทิตย์ที่ 11 ธันวาคม พ.ศ. 2554

Arduino คืออะไร ?

Arduino คืออะไร ?
Arduino คือเครื่องมือที่จะทำให้คอมพิวเตอร์สามารถรับสัญญาณจากภายนอกและส่งสัญญาณไป ควบคุมอุปกรณ์ภายนอกได้อย่างมีประสิทธิภาพมากกว่าใช้เครื่องพีซีตั้งโต็ะ
ตัวบอร์ดออกแบบจากไมโครคอมพิวเตอร์ชิพเดี่ยว, และมีโปรแกรมพัฒนาสำหรับเขียนโปรแกรมให้บอร์ดทำงาน

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


ทำใมต้องเป็น Arduino?
ในตลาดไมโครคอนโทรลเลอร์มีตัวเลือกมาก มาย เช่น Parallax Basic Stamp, Netmedia's BX-24, Pidgets, MIT's Handyboard, และอีกหลายเจ้าที่มีคุณสมบัติไกล้เคียงกัน คือทำโปรเจกให้ใช้งานง่าย และเน้นการโปรแกรมไมโครคอนโทรลเลอร์เป็นหลัก Arduino ก็เช่นเดียวกันแต่มีข้อแตกต่างที่เห็นได้ชัดคือ

  • ราคาไม่แพง - ราคา Arduino บอร์ดไม่แพงเมื่อเทียบกับ บอร์ดอื่น บอร์ด Arduino ที่ราคาถูกสุดสามารถทำใช้เองได้หรือซื้อสำเร็จด้วยเงินไม่เกิน 30 $
  • ทำงานได้หลายแพลตฟอร์ม - โปรแกรมพัฒนา Arduino ทำงานได้ทั้งบนวินโดวส์, Macintosh OSX, และ บนลีนุกซ์ ในขณะที่บอร์ดอื่นทำงานได้เฉพาะบนวินโดวส์
  • ใช้งานง่าย, มีโปรแกรมพัฒนาที่ไม่ซับซ้อน - โปรแกรมพัฒนา Arduino ใช้งานง่ายสำหรับมือใหม่, และมีความสามารถครบความต้องการของนักพัฒนามืออาชีพ
  • เปิดเผยซอร์สโค้ด และ นำไปพัฒนาต่อยอดได้ - โปรแกรม Arduino ตีพิมพ์แบบเปิดเผยซอร์สโค้ด และสามารถเพิ่มเติมความสามารถผ่าน C++ library, ถ้าคุณต้องการศึกษาให้ลึกซื้ง คุณสามารถข้ามไปเล่น AVR C ซึ่งเป็นต้นแบบของ Arduino, และคุณสามารถเพิ่มเติม AVR - C โค้ดได้โคยตรงถ้าคุณต้องการ
  • เปิดเผยวงจร และ นำไปพัฒนาขยาย hardware ได้ - Arduino ใช้โมโครคอนโทรลเลอร์ของ Atmel เบอร์ ATMEGA8 และ ATMEGA168 วงจรของบอร์ดตีพิมพ์แบบเปิดเผยวงจรภายไต้ Creative Commons License คุณสามารถนำไปดัดแปลงต่อขยายและเพิ่มประสิทธิภาพ เพื่อศึกษาการทำงานของมันได้ฟรี (อ้างอิงจากhttp://www.logicthai.net/)


บอร์ด Arduino ใช้พัฒนาการใช้งาน Microcontroller ในตระกูล AVR ที่กำลังได้รับความนิยมอย่างสูงทั่วโลก เพราะว่าเป็น Open Source ท่านสามารถดัดแปลง ไปใช้งานได้ทั้ง Hardware และ software ได้ทันที ภาษาที่ใช้กับบอร์ดนี้จะเป็นลักษณะของ C/C+ โดยจัดให้มี Libaries ต่างๆให้พร้อมให้เรียกใช้งานได้ทันทีมากมาย ครอบคลุมการติดต่อกับ I/O ต่างๆได้กว้างมาก การใช้งานก็ง่ายเพียงแต่เสียบสาย USB ติดตั้งโปรแกรมที่ให้มาด้วยท่านก็พร้อมที่จะก้าวเข้าสู่โลกของการประยุกต์ ใช้ MicroController ได้ทันที

รูป AVR เบอร์ ATMEGE168

มีไอซี FT232 ที่ใช้สำหรับแปลง USB เป็น Serial ทำให้เมื่อเสียบบอร์ดใช้งานจะมีพอร์ต Serial เพิ่มขึ้นมาอีกพอร์ต


การทดลอง
1. เตรียมบอร์ด Arduino และสาย USB cable ทำการเสียบเข้าไปยังพอร์ต USB

เมื่อเสียบแล้ว ไฟที่บอร์ด Arduino ก็จะติด



จากนั้นที่คอมพิวเตอร์ก็จะถามหา Driver สำหรับ USB to Serial ของ FT232 ให้โหลดและนำมาติดตั้ง


หลังจากติดตั้งเรียบร้อยแล้ว ขั้นตอนต่อมาจะต้องทำการโหลด Application สำหรับเขียนโปรแกรมลง Arduino
โปรแกรมพัฒนา Arduino หรือที่เรียกว่า Arduino environment ให้โหลดได้จากที่นี่
http://www.arduino.cc/files/arduino-0011-win.zip




Extract Zip ไฟล์ แล้ว Copy ทั้ง Folder ไปเก็บไว้ จากนั้นให้เรียก arduino.exe ขึ้นมา




เมื่อเปิดโปรแกรมขึ้นมาแล้วจะมาเข้าสู่หน้าสำหรับการเขียนโปรแกรมซึ่งง่ายมากในการเขียนโปรแกรม





ทำการทดสอบการเชื่อมต่อง่ายๆ ว่าโปรแกรมและ Arduino พร้อมหรือยังโดยเรียกโปรแกรม Blink ไฟกระพริบข้นมา



 
/*
* Blink
*
* The basic Arduino example. Turns on an LED on for one second,
* then off for one second, and so on... We use pin 13 because,
* depending on your Arduino board, it has either a built-in LED
* or a built-in resistor so that you need only an LED.
*
* http://www.arduino.cc/en/Tutorial/Blink
*/
int ledPin = 13; // LED connected to digital pin 13
void setup() // run once, when the sketch starts
{
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}
void loop() // run over and over again
{
digitalWrite(ledPin, HIGH); // sets the LED on
delay(1000); // waits for a second
digitalWrite(ledPin, LOW);
// sets the LED off
delay(1000); // waits for a second
}

จะเห็นได้ว่า คำสั่ง digitalWrite(A,HIGHหรือLOW) นั้นจะเป็นการสั่งให้ LED นั้นติดดับ โดยมีการหน่วงเวลา 1000 ms ซึ่ง LED นี้ต่ออยู่กับ ขา 13 ที่ตั้งเป็น Output ไว้ ซึ่งถ้าจะเขียนโปรแกรมให้ AVR ทำงานแบบนี้จะต้อง สั่งงานหลายอย่าง


ให้ทดลองเสียบ LED ที่ขา 13 ดู





จากนั้นทำการโปรแกรม





เมื่อโปรแกรมเรียบร้อยก็จะขึ้นแบบนี้




จะเห็นได้ว่า LED จะติด ดับ ตามจังหวะ ซึ่งค่าเวลานั้นมีความเที่ยงตรงสูงมาก


 
สรุป
เราจะเห็นว่า บอร์ด Arduino คือบอร์ดไมโครคอนโทรลเลอร์ที่มี โปรแกรมภาษาที่ง่ายต่อการใช้งาน สามารถเรียกฟังก์ชั่นต่างๆ ของ AVR ออกมาใช้ทำงานได้อย่างง่ายดาย ไม่ว่าจะเป็น PWM , Serial , Port In Out , A to D, หรือแม้กระทั่งการใช้งานกับ LCD Graphic ต่างๆ ก็มีผู้คนทั่วโลกพัฒนาให้สามารถนำมาใช้งานต่อร่วมได้โดยง่าย อีกทั้งยังมี การเชื่อมต่อกับ คอมพิวเตอร์แบบ USB ทำให้การโปรแกรมต่างๆ นั้น ทำได้โดยสะดวก การเขียนโปรแกรมเป็นเรื่องง่ายมากกับการเทียบการใช้ไมโครคอนโทรลเลอร์ที่ ต้องเขียนโปรแกรมเองทั้งหมดแต่ บอร์ด Arduino นี้เขียนโปรแกรมด้วยภาษาง่ายๆ สามารถทำความเข้าใจได้ง่ายและมีประสิทธิภาพสูงมากๆในเรื่องของโปรแกรม

อ้างอิง

บอร์ด Arduino
http://www.warf.com/index.php?action=productreview&productitems=132


โปรแกรมพัฒนา Arduino environment
http://www.arduino.cc/files/arduino-0011-win.zip


Driver FTDI
http://www.ftdichip.com/Drivers/CDM/CDM 2.04.06 WHQL Certified.zip


เว็บสำหรับศึกษา Arduino
http://www.arduino.cc/


ขอขอบคุณข้อมูลและรูปภาพบางส่วนจาก
http://www.logicthai.net/node/13

ไม่มีความคิดเห็น: