14
13 ใบความรู ้ที3 1. การใช้โปรแกรมภาษา Arduino อานูอิโน่ หรือ อาดุยโน (Arduino) คือโปแกรมที่ใช้ในการพัฒนาสมองกลสามารถรับสัญญาณจาก เซ็นเซอร์ต่าง ๆ เช่น สวิตซ์ ตัวรับแสง ตัวอุณหภูมิ สัญญาณต่าง ๆ ที่ได้จากเซ็นเซอร์จะถูกนาไปประมวลผล และส่งคาสั่งไปควบคุมการทางานของอุปกรณ์ต่าง ๆ เช่น มอเตอร์ หลอดไฟ เป็นต้น ภาษา arduino เป็ น ซอฟต์แวร์แบบโอเพิลซอร์ส (open - source) สามารถดาวน์โหลดฟรีได้จากเว็บไซต์ www.thairobot.in.th

ใบความรู้ที่3 1. การใช้โปรแกรมภาษา Arduino · 1.11ทดลองเปิดโปรแกรมตัวอย่าง

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ใบความรู้ที่3 1. การใช้โปรแกรมภาษา Arduino · 1.11ทดลองเปิดโปรแกรมตัวอย่าง

13

ใบความรท 3

1. การใชโปรแกรมภาษา Arduino

อานอโน หรอ อาดยโน (Arduino) คอโปแกรมทใชในการพฒนาสมองกลสามารถรบสญญาณจาก

เซนเซอรตาง ๆ เชน สวตซ ตวรบแสง ตวอณหภม สญญาณตาง ๆ ทไดจากเซนเซอรจะถกน าไปประมวลผล

และสงค าสงไปควบคมการท างานของอปกรณตาง ๆ เชน มอเตอร หลอดไฟ เปนตน ภาษา arduino เปน

ซอฟตแวรแบบโอเพลซอรส (open - source) สามารถดาวนโหลดฟรไดจากเวบไซต www.thairobot.in.th

Page 2: ใบความรู้ที่3 1. การใช้โปรแกรมภาษา Arduino · 1.11ทดลองเปิดโปรแกรมตัวอย่าง

14

1.1 ขนตอนการตดตงโปรแกรมในขนตอนท 1 – 4 ใหกดปม Next

1.2 ในขนตอนท 5 เปนการตดตงซอฟแวร pop – bot ลงในเครองคอมพวเตอร และในขนตอนท 6

เปนการตดตงไดรเวอร USB ใหกดปม install

Page 3: ใบความรู้ที่3 1. การใช้โปรแกรมภาษา Arduino · 1.11ทดลองเปิดโปรแกรมตัวอย่าง

15

1.3 หนาตางโปรแกรม Arduino

1.4 แสดงปมการท างานของแถบเมนดานบน

Page 4: ใบความรู้ที่3 1. การใช้โปรแกรมภาษา Arduino · 1.11ทดลองเปิดโปรแกรมตัวอย่าง

16

1.5 จากนนใหเสยบสาย UCON – 4 เขาทพอรต USB

1.6 ตรวจสอบต าแหนงของพอรตอนกรมเสมอนทเกดขน โดยคลกปม Start เลอกไปท Control

Panal

1.7 จากนนดบเบลคลกเลอกท System

1.8 เลอกแทปไปท Hardware แลวคลก Device Manager

1.9 ตรวจสอบรายการฮารดแวรทหวขอ Port จะพบ USB Serial port ใหดวามการเลอกต าแหนง

ของพอรตอนกรม USB Serial port ไดในต าแหนงใด ปกตจะเปน COM3 ขนไปใหใชคาพอรต

อนกรมเสมอนหรอ USB Serial port นในการเชอมตอกบโปรแกรมตอไป

Page 5: ใบความรู้ที่3 1. การใช้โปรแกรมภาษา Arduino · 1.11ทดลองเปิดโปรแกรมตัวอย่าง

17

1.10 เรยกใชโปรแกรม Arduino แลวใหคลกเมน Tools เลอก เมน Serial Port และคลกเลอก

COM PORT ดงรป เพอใชในการอปโหลดโปรแกรมจาก Arduino ไปยง POP - MCU

1.11 ทดลองเปดโปรแกรมตวอยาง ใน Arduino มตวอยางโปรแกรมมาพรอมส าหรบการทดสอบใน

เบองตน การอปโหลดโปรแกรมท าไดโดยคลกเลอกเมน File เลอก Examples เลอก POP –

BOT และคลกเลอก BlinkLED

Page 6: ใบความรู้ที่3 1. การใช้โปรแกรมภาษา Arduino · 1.11ทดลองเปิดโปรแกรมตัวอย่าง

18

1.12 เมอเลอกแลว ทพนทแสดงโปรแกรม จะแสดงซอรสโคดภาษาซของโปรแกรมดงรป

1.13 เมอเปดไฟลโปรแกรมแลว จากนนท าการคอมไพลโปรแกรม ใหคลกปมคอมไพลดงรป

Page 7: ใบความรู้ที่3 1. การใช้โปรแกรมภาษา Arduino · 1.11ทดลองเปิดโปรแกรมตัวอย่าง

19

1.14 เมอคอมไพลโปรแกรมแลว สามารถตรวจสอบการคอมไพลทแถบสถานะและหนาตางการ

แสดงผลการคอมไพล ซงเปนหนาตางสด าอยดานลางของโปรแกรม ทแถบสถานะจะปรากฏ

ขอความ Done compiling และหนาตางแสดงผลขอความวา Binary sketch size: 1042 byte (of a

30720 maximum) แสดงวาโปรแกรมภาษาเครองทไดจากการคอมไพลมขนาด 1,042 ไบต จาก

ขนาดหนวยความจ าแฟลชของไมโครคอนโทรลเลอรทงหมดทใชงานได 30,720 ไบต

Page 8: ใบความรู้ที่3 1. การใช้โปรแกรมภาษา Arduino · 1.11ทดลองเปิดโปรแกรมตัวอย่าง

20

2. โครงสรางของโปรแกรมภาษา Arduio

โครงสรางการเขยนโปรแกรมภาษา Arduio ประกอบดวย 4 สวน ไดแก

2.1 สวนหวโปแกรม เปนสวนทค าสงใหเรยกไฟลอน ๆ เขากบไฟลโปรแกรมของเราแลวจงท าการ

คอมไพลโปรแกรม

2.2 สวนประกาศตวแปร เปนสวนทใชในการประกาศตวแปรทใชในโปรแกรม

2.3 สวนการ Setup (void setup) เปนฟงกชนทเมอโปรแกรมท างานจะท าค าสงทอยในฟงกชนน

เพยงครงเดยว

2.4 สวนโปแกรม (void loop) เปนสวนในการก าหนดการท างานของโปรแกรมหลก (main

program) โดยจะท างานซ าตอเนองตลอดเวลา

รปแบบโครงสรางการเขยนโปรแกรม

#include <ชอไลบราร >

ประกาศตวแปร ชอตวแปร

void setup()

{

//To do nothing here…

}

void loop()

{

Statement1;

…………

}

สวนหวโปรแกรม

สวนประกาศตวแปร

สวนการ Setup

สวนเขยนโปรแกรม

Page 9: ใบความรู้ที่3 1. การใช้โปรแกรมภาษา Arduino · 1.11ทดลองเปิดโปรแกรมตัวอย่าง

21

ค าสงควบคมการท างาน

ค าสง if

if เปนค าสงทใชในการตรวจสอบเงอนไข ถาเงอนไขเปน จรง กจะท าภายในค าสง if ถาหาก

เงอนไขเปน เทจ กจะออกจากค าสง if ทนท

รปแบบการใชค าสง

if(เงอนไข) {

ค าสงตาง ๆ }

การท างาน

คอ ถาคาของเงอนไข(expression) เปนจรงประโยคค าสงทตามหลง if จะถกประมวลผล

แตถาเปนเทจกจะไมถกประมวลผล

ค าสง if else

การท างานจะตรวจสอบเงอนไขกอน ถาเงอนไขเปนจรงใหไปท างานตามกจกรรมท 1

แลว ท างานในกจกรรมตอไป แตถาเงอนไขไมจรงใหไปท ากจกรรมท 2 แลวจงท างานตอไป

รปแบบการใชค าสง

if (เงอนไข)

{

ค ำสงตำง ๆ เมอเงอนไขเปนจรง ;

}

else

{

ค ำสงตำง ๆ เมอเงอนไขเปนเทจ ;

} การท างาน

คอ ถาคาของเงอนไข(expression) เปนจรงประโยคค าสงทตามหลง if จะถกประมวลผล

แตถาเปนเทจกจะประมวลผลประโยคค าสงทอยหลง else

Page 10: ใบความรู้ที่3 1. การใช้โปรแกรมภาษา Arduino · 1.11ทดลองเปิดโปรแกรมตัวอย่าง

22

ค าสง else if

else if ถกใชในกรณทตองการเลอกจากทางเลอกมากกวา 2 ทางเลอก โดยใชผลการตรวจสอบ

เงอนไขทตางกน

รปแบบการใชค าสง

if (เงอนไข)

{

ค ำสงตำง ๆ เมอเงอนไขเปนจรง ;

}

else if (เงอนไข)

{

ค ำสงตำง ๆ เมอเงอนไขเปนเทจ ;

} else if (เงอนไข n)

{

ค ำสงตำง ๆ เมอเงอนไขเปนเทจ ;

} else

{

ค ำสงตำง ๆ เมอเงอนไขเปนเทจ ;

} การท างาน

การท างานรปแบบเลอก จะเรมใหตรวจสอบเงอนไขท 1 กอน ถาเงอนไขเปนจรง ใหไปท า

กจกรรมท 1 แลวจงท างานล าดบตอไป ถาเงอนไขท 1 ไมจรง ใหไปตรวจสอบเงอนไขท 2 ถา

เงอนไขท 2 เปนจรง ใหไปท ากจกรรมท 2 แลวท างานล าดบตอไป ถาเงอนไขท 2 ไมจรง ใหไป

ตรวจสอบเงอนไขตอไปเรอย ๆ จนถงเงอนไขท n ถาเงอนไขท n เปนจรงใหไปท ากจกรรมท n แลว

ท างานล าดบตอไป ถาเงอนไขท n ไมจรง ใหไปท ากจกรรมอนๆ

Page 11: ใบความรู้ที่3 1. การใช้โปรแกรมภาษา Arduino · 1.11ทดลองเปิดโปรแกรมตัวอย่าง

23

ค าสง Switch

Switch คอโปรแกรมแบบเลอกหลายทางจะใชส าหรบกรณทมทางเลอกหลายทาง แตใหเลอกท า

เพยงทางเลอกเดยวเทานน การใชฟงกชน switch ในการเขยนลกษณะการท างานจงเหมอนกบ

ฟงกชน if…else…ซอนกน แตใชงานไดสะดวกกวา เหมาะอยางยงส าหรบเขยนโปรแกรม เพอ

สรางทางเลอกรายการ (Menu) ของโปรแกรม ภาษาซจงมค าสง switch() ส าหรบท างานดงกลาว

และมโครงสรางของรปแบบเลอกหลายทางโดยทวไปเขยนไดดงน

รปแบบการใชค าสง

switch (ตวแปร)

{ case คาท 1 : ค าสงท 1 ;

break;

case คาท 2 : ค าสงท 2 ;

break;

........

case คาท N : ค าสงท N;

break;

default : ค าสงเมอไมมคาทตรงกบทระบใน case ;

}

การท างาน

โปรแกรมจะตรวจสอบจากตวแปรทค าสง switch วามคาเทาไร(อาจเปนสมการ

การค านวณกได) แลวน ามาตรวจสอบ กบค าสง case ถาตรงกบคาใดกจะท างานตามค าสง

ใน case นน เมอพบค าสง break มผลท าใหกระโดดไปท างานนอกค าสง case ในกรณทไม

มคาใดตรงกบ case ทระบ โปรแกรมกจะมาท างานทค าสง default โดยอตโนมต

คาทไดจาก ตวแปร ของ switch นนจะตองเปนคาทมชนดเปน char, byte, short,

int เทานน ถาหากเปนชนดอน Java จะฟองดวย error ทนท

ค าสง break ใน switch เปนค าสงทมความส าคญ ถาไมใส การท างานอาจให

ผลลพธทไมสมบรณได

Page 12: ใบความรู้ที่3 1. การใช้โปรแกรมภาษา Arduino · 1.11ทดลองเปิดโปรแกรมตัวอย่าง

24

ค าสง for

for คอ เปนค าสงทใชในการตรวจสอบเงอนไข พรอมทงก าหนดคาเรมตน และการ เปลยนแปลง

ของคาเรมตนไปพรอมๆกน โดยทตราบใดทเงอนไขในค าสง for เปนจรง กจะท างานตามค าสงท

แสดงไวภายในค าสง for ตอไป

รปแบบค าสง

For (คาตวแปรเรมตน ; เงอนไข ; เปลยนแปลงคาตวแปร)

ค าสงตาง ๆ

โดยท expression1 หมายถง การก าหนดตวแปรควบคมการวนซ า expression2 หมายถง การตรวจสอบเงอนไขการวนซ า expression3 หมายถง การปรบตวแปรควบคมการวนซ า

ค าสง while

while เปนฟงกชนวนลปหรอวนรอบ การท างานจะท าการตรวจสอบเงอนไขกอนถาเงอนไขเปน

จรงจะท าชดฟงกชนภายในปกกาเปดและปด แตถาเงอนไขเปนเทจจะออกจากลป

รปแบบค าสง

while (เงอนไข)

{

ค าสงทเปนจรง;

}

การท างาน

จะตรวจสอบวาคาของเงอนไขนนเปนจรงหรอเทจ ถาเปนจรงกจะประมวลผลประโยคค าสงตางๆ

ทอยภายใน Loop หลงจากออกจาก Loop แลวกจะประมวลผล ประโยคค าสงอนๆทตามมา

Page 13: ใบความรู้ที่3 1. การใช้โปรแกรมภาษา Arduino · 1.11ทดลองเปิดโปรแกรมตัวอย่าง

25

3.ตวด าเนนการก าหนดคา

3.1 ตวด าเนนการทางคณตศาสตร

การท างานจะเหมอนกบการใชเครองหมายคณตศาสตรทวไป ดงน

3.2 ตวด าเนนการเปรยบเทยบ

ใชเปรยบเทยบขอมล และผลลพธทไดมคาเปนจรง(1) และ เทจ(0) เทานน

3.3 ตวด าเนนการตรรกะ

ใชก าหนดเงอนไขมากกวา 1 เงอนไข จะไดผลลพธจะมคาเปนจรง(1) หรอ เปนเทจ(0)

3.4 ตวด าเนนการเพมคาและลดคา ผลลพธทไดจะอยในรปของคาตวเลข

Page 14: ใบความรู้ที่3 1. การใช้โปรแกรมภาษา Arduino · 1.11ทดลองเปิดโปรแกรมตัวอย่าง

26

ใบงานท 3 เรอง การใชโปรแกรม Arduino

สมาชกในกลม

1. .................................................................................................................................................... 2. .................................................................................................................................................... 3. ....................................................................................................................................................

1. ใหนกเรยนตดตงโปรแกรมภาษา Arduino ตามขนตอนในใบความรท 3 2. นกเรยนเขยนโปรแกรมและทดสอบโปรแกรมแรกไฟกะพรบ (blink) ตามขนตอนในใบความร

ท 3