lamborghini

lamborghini

วันจันทร์ที่ 2 กรกฎาคม พ.ศ. 2555

Arduino


พื้นฐานไมโครคอนโทรลเลอร์ด้วย Arduino

ไมโครคอนโทรลเลอร์คืออะไร
ไมโครคอนโทรลเลอร์ คือ อุปกรณ์ที่มีหน่วยประมวลผลและความจำขนาดเล็กภายในตัวเอง สามารถรับ-ส่ง ข้อมูลได้ทั้งแบบดิจิตอลและอนาล็อก ใช้พลังงานน้อย ทำให้เป็นที่นิยมในการใช้งานในรูปแบบที่เรียกว่า Embedded เช่น เครื่องใช้ไฟ้าอัจฉริยะทั้งหลาย
Arduino คืออะไร
Arduino (อ่านว่า อา-ดู-อิ-โน่ หรือจะเรียกว่า อาดุยโน่ ก็ได้) คือ ไมโครคอนโทรลเลอร์ ชนิดหนึ่ง ซึ่งเป็นแบบที่เรียกว่า Open Hardware กล่าวคือ Arduino อุปกรณ์ที่มีแบบส่วนประกอบเป็นมาตรฐานที่เปิดเผย หมายความว่า เราสามารถทำเองโดยใช้แบบที่มีการเปิดเผยทั่วไปก็ได้ หรือสามารถซื้อหาได้ง่าย มีราคาถูก มีซ๊อพต์แวร์ให้ใช้งานฟรี สามารถนำไปใช้งานทั่วไปหรือแบบธุรกิจได้โดยไม่ต้องเสียค่าลิขสิทธิ์ เป็นรูปแบบที่มีข้อมูลมากที่สุดบนอินเตอร์เน็ต การพัฒนาก็ง่าย เพราะมีตัวอย่างมากมาย และไม่ต้องเขียนโปรแกรมในรูปแบบ Low Level หมายความว่า เราสามารถใช้คำสั่งเขียนโปรแกรมได้เสมือนโปรแกรมภาษาชั้นสูงทั่วไป

Arduino เป็น platform ของ??I/O บอร์ดอย่างง่ายๆ ที่มี I/O ขั้นพื้นฐานที่พอเพียงกับการใช้งาน และ การเรียนรู้??โดยตัวบอร์ดจะมาพร้อมกับชุดคำสั่งที่ใช้ควบคุม??port I/O ไม่ว่าจะเป็น port digital , port analog ,PWM และ serial port
  1. โปรเจค opensource ทางด้าน hardware (ปกติเราจะคุ้นกับทาง software) ทำให้ศึกษาได้ถึงใน??core ของ??arduino เราจะเพิ่ม หรือ แก้ไขได้ดีขึ้น
  2. รูปแบบการเขียนโปรแกรม เป็นภาษาซี ++ เราสามารถศึกษา เข้าใจ ได้ง่าย และ??arduino มีตัวอย่างมาก
  3. ราคาประหยัด บอร์ดภายอย่างเดียว สามารถศึกษา อิเล็กทรอนิกส์พื้นฐานได้แล้ว
  4. ในตอนนี้มีบอร์ดให้เลือกมาก ที่มาจากนักพัฒนาทั้งไทย และ ต่างประเทศ
เพิ่มเติมข้อมูลเกี่ยวกับ arduino จาก สไลด์ ได้ที่ Introduction to microcontroller with Arduino for beginner and new coming

คุณสมบัติของบอร์ดโดย ทั่วไป

  • ATmega ตระกุล mx8 (168 หรือ 328), รันที่ความเร็ว 16.00 MHz
  • บนบอร์ดจะมีสอง LED ,ใช้แสดง power และ ที่ pin 13 สำหรับทดสอบ และอีก สอง LED ที่แสดงผล TX,RX
  • pin บนบอร์ด เป็นแบบ มาตราฐานตามบอร์ดของ Arduino ประกอบไปด้วย
    • Digital 0 thru 13
    • Analog 0 thru 5
    • ARef, 5V, Ground, Vin and Reset
    • 6-pin standard ICSP header
    • Auto-reset capability



ดาวโหลดซ๊อพต์แวร์
สามารถดาวโหลดซ๊อพต์แวร์ได้ที่ http://arduino.cc/en/Main/Software โดยเราสามารถดาวโหลดได้ตาม OS ที่เราใช้ เช่น Windows, Linux หรือ Mac เมื่อดาวโหลดมาแล้ว ขอให้แตกไฟล์ไว้ในเครื่องของเรา จากนั้นให้ดับเบิ้ลคลิกไฟล์ arduino.exe (ถ้าเราใช้ Windows) ก็จะเปิดโปรแกรมดังรูป



ตัวอย่างไฟกระพริบ
โดยปกติแล้วบอร์ด Arduino ที่ซื้อมา มักจะมาพร้อมกับไฟ LED ที่ต่ออยู่กับขาหมายเลข 13 ของไมโครคอนโทรลเลอร์อยู่แล้ว ดังนั้นในตัวอย่างแรก เราจะใช้อุปกรณ์ที่มีอยู่แล้วมาใช้งาน โดยที่ไม่ต้องต่ออุปกรณ์ใดๆเลย เริ่มต้นขอให้ต่อสาย USB เข้ากับบอร์ดและต่อเข้ากับช่อง USB ในเครื่องคอมพิวเตอร์ จากนั้นให้รอจนเครื่องคอมพิวเตอร์พบอุปกรณ์ เราจะพบว่า บนเครื่องของเราจะมี Port เพิ่มขึ้นมา 1 พอร์ต ซึ่งก็คือพอร์ตที่เราจะใช้งานให้คอมพิวเตอร์คุยกับบอร์ดของคอนโทรลเลอร์นั่นเอง ในกรณีที่เครื่องคอมพิวเตอร์ไม่สามารถหาไดรเวอร์ได้ ขอให้ไปดาวโหลดไดรเวอร์ที่ http://www.ftdichip.com/FTDrivers.htm
โดยปกติแล้วบอร์ด Arduino จะต้องมีไฟเลี้ยง 5 โวลล์ แต่ถ้าเราต่อกับคอมพิวเตอร์ มันก็จะใช้ไฟเลี้ยงที่ออกจาก USB ได้เองทำให้สะดวกมาก จากนั้นขอให้เปิดโปรแกรม Arduino ขึ้นมา ไปที่เมนู Tools->Board จากนั้นให้เลือกรุ่นบอร์ดที่ตรงกับที่เราใช้งาน ในที่นี้ผมใช้ Arduino Mega ADK (หากท่านยังไม่มีสามารถซื้อได้ที่ http://www.thainetbeans.com/forum/viewtopic.php?t=1164) จากนั้นให้ไปที่เมนู Tools->Serial Port แล้วเลือกพอร์ตที่เพิ่มมาใหม่ ในกรณีที่ไม่แน่ใจ ให้ลองดึงสาย USB ที่ต่อออก แล้วลองต่อใหม่ ก็จะเห็นว่าเราใช้พอร์ตอะไรอยู่ จากนั้นให้ไปที่เมนู File->Examples->Basics->Blink หรือเขียนโปรแกรมตามนี้
void setup() {
// initialize the digital pin as an output.
// Pin 13 has an LED connected on most Arduino boards:
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(13, LOW); // set the LED off
delay(1000); // wait for a second
}

จากนั้นให้คลิกปุ่ม Upload บน Toolbar ดังรูป


รอสักครู่ เราจะเห็นไฟกระพิบถี่ๆ เป็นการแสดงว่าคอมพิวเตอร์กำลังส่งข้อมูลระหว่างบอร์ดอยู่ เมื่อเสร็จแล้วเราจะเห็นว่ามีไฟกระพริบเปิดและปิดทุกช่วงวินาที เราจะพบว่าตัวโปรแกรม(เราเรียกว่า sketch) นั้นมีขนาดเล็กมากและมีเพียง 2 ฟังชั่นเท่านั้น โดยฟังชั่นทั้ง2นั้น เป็นฟังชั่นพื้นฐานที่จะต้องมีเสมอ ฟังชั่น setup จะทำงานครั้งแรกเพียงครั้งเดียวหรือทุกครั้งที่เราเปิดเครื่องใหม่ ในที่นี้เราสั่งบอร์ดว่าเราจะใช้ขาที่ 13 สำหรับส่งข้อมูลออกไป ส่วนฟังชั่น loop จะทำงานวนไปตลอดไม่หยุด ในที่นี้ก็คือส่งค่าแบบดิจิตอลไปที่ขา 13 โดยมีค่าสูง(5 โวลล์) แล้วหยุดรอ 1 วินาที ทำให้ไฟ LED ติด จากนั้นจึงแบบดิจิตอลไปที่ขา 13 โดยมีค่าต่ำ(0 โวลล์) แล้วหยุดรอ 1 วินาที ทำให้ไฟ LED ดับ โดยฟังชั่น delay จะเป็นการสั่งให้บอร์ดหยุดรอโดยมีหน่วยเป็น millisecond

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

แสดงความคิดเห็น