Wednesday, December 12, 2018

พื้นฐาน Arduino UNO



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/O14 พอร์ต (มี 6 พอร์ต PWM output)
พอร์ต Analog Input6 พอร์ต
กระแสไฟที่จ่ายได้ในแต่ละพอร์ต40mA
กระแสไฟที่จ่ายได้ในพอร์ต 3.3V50mA
พื้นที่โปรแกรมภายใน32KB พื้นที่โปรแกรม, 500B ใช้โดย Booloader
พื้นที่แรม2KB
พื้นที่หน่วยความจำถาวร (EEPROM)1KB
ความถี่คริสตัล16MHz
ขนาด68.6x53.4 mm
น้ำหนัก25 กรัม


Arduino (IDE)

Arduino integrated development environment  หรือเรียกสั้นๆว่า โปรแกรม Arduino (IDE) จะทำหน้าที่ ติดต่อ ระหว่าง คอมพิวเตอร์ ของเรา กับ บอร์ด Arduino ซึ่งโปรแกรมนี้ออกแบบให้ง่ายต่อการเขียนโค้ดและอัปโหลดโปรแกรมที่เราเขียน  เข้าสู่ บอร์ด Arduino


ดาวน์โหลดที่...


https://www.arduino.cc/en/Main/Software



คลิกที่ 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;
}




ทดสอบการทำงาน


No comments:

Post a Comment