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

microcontroller สั่งให้ไฟ led กระพริบ


การเขียนโปรแกรมแรกที่ เราเรียกว่า "hello world ในโลก electronic" คือการสั่งการให้ microcontroller สั่งให้ไฟ led กระพริบ
ซึ่งในบทนี้จะเป็นการปูพื้นฐานใน การใช้งานโปรแกรม Arduino และ uploading ไฟล์ sketch ที่เราเขียนเสร็จเข้าสู่อุปกรณ์ Arduino board(ปัจจุบันมีหลายชนิดให้ dowload เพราะ Arduino เป็น open hardware) โดยในที่นี้จะเน้นการใช้งานบน windows XP (Arduino นั้นสามารถใช้ได้กับ MAC และ LINUX ได้ด้วยเพียงแต่ต้องdownload software ให้ถูกชนิด)


ขั้นตอน Prepare( สิ่งที่ต้องเตรียม)

Arduino board ที่ประกอบสำเร็จหรือประกอบเอง, ในที่นี้เน้น Diecimila (หรือ Arduinoรุ่นใดก็ได้ ที่เป็นรุ่นล่าสุด) หาซื้อได้ตามwebsite หรือประกอบขึ้นเองได้ ราคาประมาณ 12xx-13xx
ขึ้นอยู่กับ ราคา MCU ใช้รุ่น 168 หรือ 328
สาย USB Cable. ชนิด หัว A-B
หาซื้อได้ตามร้านอะไหล่computer ทั่วไป
ประมาณ 30-50 บาท
หลอดไฟ LED(ไดโอดเปล่งแสง) 5 mm. ร้าน electronic ทั่วไป ราคา 3-12 บาท




ขั้นตอน Download the Software

เริ่มจาก download IDE รุ่นล่าสุด จาก url: http://www.arduino.cc/en/Main/Software โดยเลือกให้เหมาะสมกับ OS ที่ใช้ในการพัฒนา


ขั้นตอน Unpack and Install เมื่อ donwload สำเร็จจะได้ไฟล์ในรูปแบบ zip ให้ทำการแตกไฟล์ตาม folder ที่ต้องการ



ขั้นตอน สร้าง Short cut ทำการสร้าง shortcut ไว้บน desktop

ขั้นตอน Select chip
ขั้น แรกในการปรับแต่ง Arduino software ให้ match กับ chip. โดยส่วนใหญ่ Arduinos ใช้ chip ATmega168 แต่อย่างไรเราสามารถเปลี่ยนไปใช้ chip ATmega8 ได้
ภาพ chipที่มีเลขตัวถังที่แตกต่างกัน :

ตัวอักษรบ่งบอกว่าเป็น ATMEGA8-16P นั้นคือ chip รุ่น atmega8
หากตัวอักษรเขียนว่า ATMEGA168-20P นั้นคือ chip รุ่น atmega168
หากตัวอักษรเขียนว่า"ATMEGA328P-20P" นั้นคือ chip รุ่น atmega328p

select chip ให้เหมาะสม


ขั้นตอน Select port ขั้น ต่อไปคือการเลือก Port (COMunication Port)โดย Arduino Version ใหม่ๆมักจะใช้ USB port ในการสื่อสาร โดยจะทำการสร้าง virtual port เช่น COM3 เป็นต้น หากเป็นรุ่นที่ใช้ rs232จะใช้COM1-2 ในการสื่อสาร
select serial port ให้เหมาะสม



ขั้นตอน เปิดไฟล์ blink เพื่อทดสอบ
Sketches คือไฟล์ scriptsขนาดเล็กที่เราทำการส่งไปยัง Arduino เพื่อสั่งการต่างๆ
เปิดไปที่ Example Sketch (ไฟล์ตัวอย่าง)
โดยไปที่ File menu -> Sketchbook -> Examples -> Digital -> Blink

ซึ่งเปิดไฟล์ตัวอย่างแล้วจะมีโค้ดพิมพ์ให้เสร็จ




ขั้นตอน Verify / Compile (ตรวจสอบความถูกต้อง/คอมไพล์)
ขั้นแรกในการนำ Sketch ที่พร้อมแล้วส่ง arduino จะต้องทำการ Verify/Compile ก่อน เพื่อตรวจสอบความผิดพลาด (เรียงกันเหมือนการตรวจคำผิด)และทำการแปลงcodeดังกล่าวให้เหมาะสม ในการ upload ขึ้นสู่ Arduino hardware
ประมาณสองวินาทีจะได้รับข้อความว่า" Done compiling"(หากโปรแกรมที่เขียนไม่ผิดพลาด)
ใน Status Bar และ Binary Sketch Size: ใน Notification area
ในความหมายนี้คือไฟล์ sketch ได้เขียนและพร้อมที่ uploading ขึ้น Arduino board


ขั้นตอน Upload โดยเสียบอุปรณ์ Arduino ,จะมีไฟสีเขียวหากเลือก Serial Port ถูกต้อง
ทำการเลือก Upload to I/O Board จาก File menu

หลังจากนั้นประมาณหนึ่งวินาทีจะมีข้อความว่า Done uploading ในช่องstatus bar


ขั้นตอนหาข้อผิดพลาด error detect
หากได้รับข้อความดังกล่าวว่า "avrdude: stk500_getsync(): not in sync: resp=0x00" ซึ่งหมายถึง Arduino ไม่ตอบสนองการทำงาน

โดยการตรวจสอบเบื้องต้นดังนี้:
  • การเลือก Serial Port ถูกหรือไม่?
  • ทำการติดตั้ง driver (USB)ถูกต้องหรือไม่?
หากได้รับข้อความแสดงความผิดพลาดดังนี้:
แสดงถึงปัญหาเกี่ยวกับserial port โดยแก้ด้วยการติดตั้ง driver อีกครั้งและเลือก serial portให้ถูกต้อง


ขั้นตอนการแสดงผล โดย ใช้ Arduino Diecimila แสดงผลการกระพริบไฟ LED โดยนำขาที่ยาวกว่า(Anode)เสียบช่อง Digitalหมายเลข 13 และขาสั้น(cathode)เสียบที่ช่องGND(Ground) เมื่อเสียบลงไปทั้งคู่จะมีไฟกระพริบ



referent : http://www.ladyada.net/learn/arduino/lesson1.html

วันเสาร์ที่ 22 สิงหาคม พ.ศ. 2552

รีวิวคุณสมบัติ Duemilanove (2009) Arduino Standard ตัวล่าสุด





Arduino รุ่น Duemilanove(2009) ได้อัพเกรดเพิ่มประสิทธิภาพ microcontrollerโดยใช้ ATmega328 มันยัง compatible กับอุปกรณ์เหมือนกับรุ่นก่อนหน้าคือ ATmega168 เพียงแต่เพิ่มหน่วยความจำมากขึ้นสองเท่า
  • เพิ่ม flash memory เป็นสองเท่าในการเก็บไฟล์ sketches ( 32KB แทนที่ของเดิมคือ 16KB)
  • เพิ่ม RAM สองเท่าในการจองพื้นที่(2KB แทนที่เดิมคือ 1KB)
  • เพิ่ม EEPROM สองเท่าเพื่อเก็บข้อมูลเมื่อเราปิดในการจ่ายไฟแก่ board (1KB แทนที่เดิมคือ 512 bytes)
  • เพิ่มความเร็ว(ในการ bootloader )ในการ upload ไฟล์ sketches ที่เราเขียนใหม่ โดยความเร็วเพิ่มจากเดิม 19200 baud เพิ่มเป็น 57600 baud

Arduino คือเครื่องมือช่วยในให้ computer ที่มีการรับรู้เข้าใจ และการควบคุม เพิ่มมากกว่าเครื่อง desktop computer ที่จะทำงานโดยลำพังในการทำงานดังกล่าวขั้นต้น มันคือรูปแบบ open source physical computing โดยการเน้น microcontroller board ง่ายไม่ซับซ้อน ซึ่ง "Duemilanove" มีความหมายว่า 2009 ในภาษาอิตาลี Duemilanove เป็นรุ่นล่าสุดที่มีการใช้ USB อย่างเต็มตัวในการผลิต Arduino
referent: http://www.makershed.com/ProductDetails.asp?ProductCode=MKSP4&Click=19209

สรุป: ผู้เขียนบทความได้ทดลองใช้งานดูพบว่าค่อนข้างมีความเป็นมาตราฐานสูงในการ ทดลอง program ด้านต่าง ๆ เช่น Communication ,Servo motor ฯลฯ อีกทั้งยังสะดวกในการใส่ Shiled เนื่องจากมีความเป็นมาตราฐานสูง จึงเหมาะมากในการศึกษาเบื้องต้น



ภาพการเปรียบเทียบขนาดระหว่างDuemilanove กับ Duinothumb

หากท่านต้องการทำ Arduino Project ที่มีพื้นที่ใช้น้อยมาก เช่น รถบังคับเล็ก ๆ แนะนำให้ใช้ duinothumb ซึ่งผลิตโดยคนไทย เพื่อส่งเสริมให้มีการวิจัยและพัฒนาต่อไป

วันพฤหัสบดีที่ 20 สิงหาคม พ.ศ. 2552

การนำโปรแกรมเขียนลงไมโครฯ AVR ISP(In System Programming)



ในอดีตการพัฒนาคอนโทรลเลอร์เพื่อการเขียนข้อมูล (data หรือ program) ลงใน EEPROM (erasable rom) นั้นจำเป็นต้องถอดเอา chip ไปอาบข้อมูลด้วยแสง ultraviolet เพื่อทำการลบข้อมูล จึงจะสามารถเขียนโปรแกรมเข้าไปใหม่ได้ และมีอายุการใช้งานจำกัด ดังนั้นเมื่อต้องการพัฒนาโปรแกรมใหม่จะเกิดกระบวนการที่ซับซ้อนวุ่นวายมาก


ต่อมาความก้าวหน้าทาง Technology ทาง Flash Memory พัฒนามากขึ้น โดยบรรจุ Flash Memory ลงไปใน chip ทำให้การทำงานลบล้างข้อมูลบน chip ง่ายขึ้น ไม่ต้องใช้แสง ultraviolet เพื่อลบข้อมูล ใช้ไฟปกติสามารถอ่านเขียน ลบ โปรแกรมได้ แต่ต้องจำเป็นต้องใช้เครื่องมือ หรือวงจรที่ต้องออกแบบมาเพื่อใช้งานดังกล่าว

เครื่องเบิร์นโปรแกรม (Flash Programmers)
การอัดโปรแกรมเข้าไปใน chip หรือการเบิร์นโปรแกรม จำเป็นต้องใช้ไฟสูงหรือสัญญาณระดับไฟมากกว่า 12 โวลต์ เข้าไป tick ขาสัญญาณ เพื่อให้ Micro controller รับรู้ว่าจะมีการเขียนโปรแกรม ซึ่งในอดีตต้องมีการถอด chip เข้า - ถอด chip ออกเพื่อย้าย chip จากบอร์ดทดลอง ไปยังเครื่องโปรแกรม ซึ่งวงจรไฟสูง
แต่ด้วยความต้องการปัจจุบัน ทางบริษัทผลิต chip ได้บรรจุวงจรเพิ่มแรงดันเข้าไปใน chip ด้วยจึงทำให้สามารถ flash โปรแกรม เข้าไปใน chip ได้เรียกว่า In Circuit System Programming ( ICSP or ISP) คือ การเขียน การเบิร์น (burn) อุปกรณ์วงจรต่างๆ จึงลดลงน้อยลง

การเบิร์นโปรแกรม (flash programmers หรือ ISP) จะสามารถเบิร์นโปรแกรมได้สองวิธี
  1. Parallel Programming Mode (Parallel Mode) :คือการต่อตรงเข้าไป mcu ไม่ได้ผ่านชุดคำสั่งพิเศษ
  2. Serial Downloading Mode (ISP mode):จะใช้ชุดคำสั่งใช้ในการ flash โปรแกรม เข้าไป
การทำงานของ In System Programming (ISP) ดังที่กล่าวไว้ในขั้นต้นว่า flash memory สามารถเขียนได้ต้องใช้ไฟสูง ในการขับขา gate จึงได้มีการพัฒนาเพิ่มทวีแรงดัน เพื่อสร้างไฟสูงภายในวงจร การเบิร์นจึงทำได้ง่ายขึ้น


ภาพขาของ MCU ที่ใช้ใน In System Programming

  • MOSI == Master Out Slave In: data input
  • MISO == Master In Slave out : data output
  • SCK == Serial ClocK : clock input
  • RST == RESET: used to activate the serial Programming
จากภาพขาของ MCU ที่ใช้ใน In System Programming จะอธิบายได้ดังนี้
  • MOSI นั้น จะเป็นขาส่งข้อมูลออก( Output ) ของตัวแม่ ( master )
  • MISO นั้น เป็นขาที่รับข้อมูล (input ) ที่ส่งมาจากลูก ( slave )
  • SCK นั้น เป็นตัวนาฬิกาคอยให้จังหวะการส่งข้อมูล
  • RST นั้น คือตัวที่เริ่มให้มีการเขียนโปรแกรมลง chip
อ้างอิงจาก http://www.electoday.com/bbs/viewthread.php?tid=180

AVR - Arduino เรียนรู้การใช้งานไมโครคอนโทรลเลอร์



ลำดับ หัวข้อบทความอ่านแล้ว
86 หุ่นยนต์ Built-in programmer for AVR ตอน ไมโครคอนโทรเลอร์ AVR 736  

85 หุ่นยนต์ Built-in programmer for AVR ตอน ขั้นตอนการ Load Program 424  

84 หุ่นยนต์ Built-in programmer for AVR ตอน ขั้นตอนการเขียนโปรแกรม 436  

83 หุ่นยนต์ Built-in programmer for AVR ตอน การติดตั้งโปรแกรม 279  

82 หุ่นยนต์ Built-in programmer for AVR ตอน ขั้นตอนการปรกอบหุ่นยนต์322  

81 หุ่นยนต์ ตอน ประโยชน์ของหุ่นยนต์ 1172  

80 หุ่นยนต์ ตอน กฎของหุ่นยนต์ 697  

79 หุ่นยนต์ ตอน เริ่มศึกษาทางด้านหุ่นยนต์ 2 941  

78 หุ่นยนต์ ตอน เริ่มศึกษาทางด้านหุ่นยนต์1046  

77 หุ่นยนต์ ตอน มาทำหุ่นยนต์บังคับมือกันเถอะ3534  

76 หุ่นยนต์ ตอน การควบคุมมอเตอร์กระแสตรง1734  

75 PIC mikro C การแสดงผลของ 7 Segments ตอนที่ 3/ 31443  

74 PIC mikro C การแสดงผลของ 7 Segments ตอนที่ 2/ 3881  

73 PIC mikro C การแสดงผลของ 7 Segments ตอนที่ 1/ 31276  

72 PIC mikro C การรับค่าอินพุท1116  

71 PIC mikro C เขียนโปรแกรมไฟวิ่ง 1754  

70 PIC mikro C การเขียนโปรแกรมเบื้องต้น 1011  

69 PIC mikro C การทดลอง ไฟ LED1076  

68 PIC mikro C ตอน เลขฐาน 16605  

67 PIC mikro C ตอน เริ่มต้นใช้งาน 636  

66 ภาษา C ตอน _ฟังก์ชั่นเบื่องต้น1220  

65 ภาษา C ตอน _การหารากที่2784  

64 ภาษา C ตอน _เลขยกกำลัง1640  

63 ภาษา C ตอน_โจทย์_การตัดคะแนน583  

62 ภาษา C ตอน อาร์เรย์854  

61 ภาษา C ตอน คำสั่งวนลูป802  

60 ภาษา C ตอน คำสั่งเงื่อนไข654  

59 ภาษา C ตอน ตัวดำเนินการ441  

58 ภาษา C ตอน การรับข้อมูล 539  

57 ภาษา C ตอน การแสดงผลข้อมูล425  

56 ภาษา C ตอน รหัส ASCII908  

55 ภาษา C ตอน ชนิดข้อมูลตัวอักษร494  

54 ภาษา C ตอน ตัวแปรและชนิดข้อมูลตัวเลข776  

53 ภาษา C ตอน การเขียนโปรแกรมเบื้องต้น534  

52 ภาษา C ตอน แนะนำภาษา C เบื้องต้น650  

51 AVR – Arduino ตอน การสื่อสารอนุกรม1058  

50 AVR – Arduino ตอน ชนิดตัวแปร714  

49 AVR – Arduino ตอน ง่ายๆกับการรับค่าจากสวิตช์850  

48 AVR – Arduino ตอน ง่ายๆกับไฟวิ่ง1100  

47 AVR – Arduino ตอน การใช้ help503  

46 AVR – Arduino ตอน การเขียนโปรแกรมพื้นฐาน 717  

45 AVR – Arduino ตอน เริ่มการทดลอง556  

44 PIC ภาษา C ตอน รู้จักกับ mikro C 1539  

43 AVR – Arduino ตอน การใช้โปรแกรม Arduino674  

42 AVR – Arduino ตอน เตรียมเครื่องมือให้พร้อม1174  

41 AVR - Arduino เรียนรู้การใช้งานไมโครคอนโทรลเลอร์923  

40 การใช้งานแผ่นโพโตบอร์ด 11385  

39 การเรียกชื่อ รูปร่างของอุปกรณ์อิเล็กทรอนิกส์ 1265  

38 PIC ภาษา C ตอน การใช้งาน Help File549  

37 การหาDatasheet ของอุปกรณ์1200  

36 PIC ภาษา C ตอน การสร้างโครงงานสำหรับมือใหม่1873  

35 PIC ภาษา C ตอน การขับเซอร์โวมอเตอร์1414  

34 PIC ภาษา C ตอน การออกจาก while ( ) loop โดยใช้ break 615  

33 PIC ภาษา C ตอน การขับสเต็ปเปอร์มอเอตร์1197  

32 PIC ภาษา C ตอน การติดต่อพอร์ตอนุกรม2169  

31 PIC ภาษา C ตอน การขับมอเตอร์กระแสตรง1306  

30 PIC ภาษา C ตอน รับค่าจากสวิตช์ทำไฟวิ่ง1157  

29 PIC ภาษา C ตอน รับค่าจากสวิตช์ (2)802  

28 อุปกรณ์ ตอน รีเลย์2825  

27 อุปกรณ์ ตอน ดอทเมตริกซ์ (Dot Matrix)1448  

26 อุปกรณ์ ตอน ซีเนอร์ไดโอด1600  

25 PIC ภาษา C ตอน รับค่าจากสวิตช์ (1)865  

24 PIC ภาษา C ตอน แสดงตัวเลข 7- Segment1032  

23 อุปกรณ์ ตอน 7 Segment (ตัวแสดงผล 7 ส่วน)1665  

22 อุปกรณ์ ตอน ไดโอด2936  

21 เรียนรู้จากชุดคิทตอน2 เตรียมเครื่องมือประกอบชุดคิท2338  

20 เรียนรู้จากชุดคิทตอน1 มีอะไรในชุดคิท1692  

19 PIC ภาษา C ตอนทำ LED วิ่งไปมา1142  

18 PIC ภาษา C ตอนเขียนโปรแกรมแรกขับหลอด LED1177  

17 อุปกรณ์ ตอน อุปกรณ์แสดงผล LED1345  

16 ค่าความต้านทานที่มีจำหน่ายในท้องตลาด760  

15 ภาษา_C_เบื้องต้น1428  

14 ไมโครคอนโทรลเลอร์ PIC1647  

13 รู้จักกับไมโครคอนโทรลเลอร์2617  

12 ชนิดการใช้งาน PIC และ MC51869  

11 มอเตอร์ขนาดเล็กชนิดต่างๆที่ใช้ในการทำหุ่นยนต์1324  

10 เกตพื้นฐานและตารางค่าความจริง1898  

9 รู้จักกับไอซีดิจิตอล2400  

8 ระบบอนาลอกและระบบดิจิตอล1310  

7 ตัวเลขกับระบบดิจิตอล1803  

6 ชนิดและการใช้งานIC TTL และ CMOS2078  

5 เครื่องมือที่จำเป็นในงานอิเล็กทรอนิกส์2228  

4 เริ่มต้นศึกษาทางด้านอิเล็กทรอนิกส์1365  

3 อุปกรณ์ ตอน ทรานซิสเตอร์1784  

2 อุปกรณ์ ตอน ตัวเก็บประจุ1920  

1 อุปกรณ์ ตอน ตัวต้านทาน 1862  

AVR - Arduino เรียนรู้การใช้งานไมโครคอนโทรลเลอร์

AVR - Arduino เรียนรู้การใช้งานไมโครคอนโทรลเลอร์

Arduino เป็นโครงการพัฒนาไมโครคอนโทรลเลอร์ของตระกูล AVR แบบ Open Source ( ของฟรี ) โดยนิยมใช้ AVR ในตระกูล ATMEGA88 , ATMEGA168 , ATMEGA328 โดยมีตัวถังแบบ DIP ทำให้ง่ายต่อการพัฒนา


รูป ARDUINO


จุดเด่นของ Arduino คือ - ราคาไม่แพง - มี source Code และวงจรแจกฟรี มากมาย - โปรแกรมของ Arduino สามารถทำงานบน windows และ Linux ได้ - นิยมใช้กันมากในปัจจุบัน - เป็น Open Source และ พัฒนาด้วยภาษา C หาเครื่องมือมาใช้
ผู้ที่สนใจจะศึกษาการเขียนโปรแกรมไมโครคอนโทรลเลอร์ด้วย ARDUINO สามารถเข้าไป download ที่ http://www.arduino.cc/en/Main/Software แต่ต้องเลือกให้ถูกกับระบบปฏิบัติการที่มีอยู่ครับ


รูป เลือก download ให้ตรงกับ OS ที่ใช้งาน


การ Download จะได้ไฟล์แบบ ZIP จึงต้องทำการแตกไฟล์ก่อนใช้งาน


รูป Download จะเป็น ไฟล์ ZIP


ไฟล์จะมีขนาดประมาณ 87 M จะใช้เวลาในการ download สักระยะ


รูป เริ่ม download ไฟล์


เมื่อ download เสร็จสิ้นจะได้ไฟล์ ZIP


รูป ไฟล์ ZIP


จากนั้นทำการแตกไฟล์ ZIP


รูปขั้นตอนการแตกไฟล์ ZIP


เมื่อแตกไฟล์ zip แล้วจะได้ไฟล์ต่างๆมากมาย และ ให้เลือก Arduino ในการเปิดโปรแกรม


รูปการเลือก Arduino


หน้าตาของโปรแกรม Arduino ซึ่งในตอนต่อๆไปจะได้กล่าวถึงวิธีการใช้งานและทดลองเขียนโปรแกรมกันครับ


รูปหน้าตาของ Arduino

What's Arduino ?

What's Arduino ?

นต่างประเทศมหาวิทยาลัยด้านสถาปัตยกรรมคอมพิวเตอร์ได้ก่อตั้ง โครงการ พัฒนาฮาร์ดแวร์และซอฟต์แวร์ในลักษณะโอเพ่นซอร์ส (open source) เพื่อสนับสนุนการเรียนรู้การเขียนโปรแกรมคอมพิวเตอร์และความรู้เกี่ยวกับ วงจรอิเล็กทรอนิกส์ เพื่อให้สามารถสร้างระบบควบคุมอัตโนมัติได้ ผู้ก่อตั้งโครงการ Wiring คือ เฮอร์นันโด้ บาราแกน (Hernando Barragan) แห่ง ภาควิชาออกแบบและสถาปัตยกรรม (Architecture and Design School) ของมหาวิทยาลัย Universidad de Los Andes ประเทศโคลัมเบีย ปัจจุบันโครงการ Wiring นี้ยังได้รับการพัฒนาอย่างต่อเนื่อง และมีการนำไปปรับใช้ในการเรียนการสอนทั้งในคณะวิศวกรรมศาสตร์และ สถาปัตยกรรมศาสตร์ในมหาวิทยาลัยทั่วโลก เนื่องจากโครงการนี้มีการใช้ Hardware Wiring ในราคาแพงมากจึงพัฒนาต่อยอดเป็น Arduino ที่มีราคาย่อมเยา

จากบทความที่แล้วได้แนะนำเรื่อง Micro-controller ไปคร่าว ๆ คราวนี้จะมาหาอุปกรณ์มาศึกษากัน หากใช้ของ MSC-51 หรือ PIC ราคาไม่แพง แต่จำเป็นต้องมีความรู้ด้านไฟฟ้าพอสมควร หรือหากจะใช้อุปกรณ์ของตระกูล Stamp โดยใช้ Basic หรือ Java เขียนน่าจะง่ายกว่าเพราะไม่ต้องมีความรู้เรื่องไฟฟ้ามากนัก อุปกรณ์จะมีราคาสูงเกินที่จะนำมาเริ่มต้น


ปัจจุบันมีแพลตฟอร์ม open hardware ชื่อว่า Arduino ใช้AVR chip ซึ่งใช้ภาษา C/C++ โดยมีชุด Library ชื่อว่า Wiring ช่วยเขียนโปรแกรมลง Micro-controller ได้อย่างไม่ยากซึ่งอุปกรณ์มีราคาไม่แพง สามารถประกอบขึ้นได้เองโดยใช้ความรู้ด้านการเชื่อมวงจรและประกอบแผ่น PCB กับชิป หากไม่มีเวลาแนะนำให้ซื้อสำเร็จจากเว็บไซต์ต่างๆ ซึ่งจะมี Arduino สำเร็จรวมวงจร USB จำหน่าย ไม่ต้องเสียเงินซึ้อ USB to Serial Port มาให้เปลือง


Software IDE สำหรับใช้พัฒนา Arduino เราสามารถใช้ได้ทุก OS แพลตฟอร์มไม่ว่าจะ OS
Windows

















Linux


















MAC OSX











เนื่อง จากสร้างด้วยภาษา Java แต่ในการเขียนโปรแกรมในการ burn ลง อุปกรณ์ Micro-controller(Arduino Hardware) ต้องใช้ภาษา C/C++ โดยเรียกว่า Arduino IDE สามารถ Download ได้จากเว็บหลักเลยคือ http://arduino.cc/en/Main/Software


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