Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
13
ใบความรท 3
1. การใชโปรแกรมภาษา Arduino
อานอโน หรอ อาดยโน (Arduino) คอโปแกรมทใชในการพฒนาสมองกลสามารถรบสญญาณจาก
เซนเซอรตาง ๆ เชน สวตซ ตวรบแสง ตวอณหภม สญญาณตาง ๆ ทไดจากเซนเซอรจะถกน าไปประมวลผล
และสงค าสงไปควบคมการท างานของอปกรณตาง ๆ เชน มอเตอร หลอดไฟ เปนตน ภาษา arduino เปน
ซอฟตแวรแบบโอเพลซอรส (open - source) สามารถดาวนโหลดฟรไดจากเวบไซต www.thairobot.in.th
14
1.1 ขนตอนการตดตงโปรแกรมในขนตอนท 1 – 4 ใหกดปม Next
1.2 ในขนตอนท 5 เปนการตดตงซอฟแวร pop – bot ลงในเครองคอมพวเตอร และในขนตอนท 6
เปนการตดตงไดรเวอร USB ใหกดปม install
15
1.3 หนาตางโปรแกรม Arduino
1.4 แสดงปมการท างานของแถบเมนดานบน
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 นในการเชอมตอกบโปรแกรมตอไป
17
1.10 เรยกใชโปรแกรม Arduino แลวใหคลกเมน Tools เลอก เมน Serial Port และคลกเลอก
COM PORT ดงรป เพอใชในการอปโหลดโปรแกรมจาก Arduino ไปยง POP - MCU
1.11 ทดลองเปดโปรแกรมตวอยาง ใน Arduino มตวอยางโปรแกรมมาพรอมส าหรบการทดสอบใน
เบองตน การอปโหลดโปรแกรมท าไดโดยคลกเลอกเมน File เลอก Examples เลอก POP –
BOT และคลกเลอก BlinkLED
18
1.12 เมอเลอกแลว ทพนทแสดงโปรแกรม จะแสดงซอรสโคดภาษาซของโปรแกรมดงรป
1.13 เมอเปดไฟลโปรแกรมแลว จากนนท าการคอมไพลโปรแกรม ใหคลกปมคอมไพลดงรป
19
1.14 เมอคอมไพลโปรแกรมแลว สามารถตรวจสอบการคอมไพลทแถบสถานะและหนาตางการ
แสดงผลการคอมไพล ซงเปนหนาตางสด าอยดานลางของโปรแกรม ทแถบสถานะจะปรากฏ
ขอความ Done compiling และหนาตางแสดงผลขอความวา Binary sketch size: 1042 byte (of a
30720 maximum) แสดงวาโปรแกรมภาษาเครองทไดจากการคอมไพลมขนาด 1,042 ไบต จาก
ขนาดหนวยความจ าแฟลชของไมโครคอนโทรลเลอรทงหมดทใชงานได 30,720 ไบต
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
สวนเขยนโปรแกรม
21
ค าสงควบคมการท างาน
ค าสง if
if เปนค าสงทใชในการตรวจสอบเงอนไข ถาเงอนไขเปน จรง กจะท าภายในค าสง if ถาหาก
เงอนไขเปน เทจ กจะออกจากค าสง if ทนท
รปแบบการใชค าสง
if(เงอนไข) {
ค าสงตาง ๆ }
การท างาน
คอ ถาคาของเงอนไข(expression) เปนจรงประโยคค าสงทตามหลง if จะถกประมวลผล
แตถาเปนเทจกจะไมถกประมวลผล
ค าสง if else
การท างานจะตรวจสอบเงอนไขกอน ถาเงอนไขเปนจรงใหไปท างานตามกจกรรมท 1
แลว ท างานในกจกรรมตอไป แตถาเงอนไขไมจรงใหไปท ากจกรรมท 2 แลวจงท างานตอไป
รปแบบการใชค าสง
if (เงอนไข)
{
ค ำสงตำง ๆ เมอเงอนไขเปนจรง ;
}
else
{
ค ำสงตำง ๆ เมอเงอนไขเปนเทจ ;
} การท างาน
คอ ถาคาของเงอนไข(expression) เปนจรงประโยคค าสงทตามหลง if จะถกประมวลผล
แตถาเปนเทจกจะประมวลผลประโยคค าสงทอยหลง else
22
ค าสง else if
else if ถกใชในกรณทตองการเลอกจากทางเลอกมากกวา 2 ทางเลอก โดยใชผลการตรวจสอบ
เงอนไขทตางกน
รปแบบการใชค าสง
if (เงอนไข)
{
ค ำสงตำง ๆ เมอเงอนไขเปนจรง ;
}
else if (เงอนไข)
{
ค ำสงตำง ๆ เมอเงอนไขเปนเทจ ;
} else if (เงอนไข n)
{
ค ำสงตำง ๆ เมอเงอนไขเปนเทจ ;
} else
{
ค ำสงตำง ๆ เมอเงอนไขเปนเทจ ;
} การท างาน
การท างานรปแบบเลอก จะเรมใหตรวจสอบเงอนไขท 1 กอน ถาเงอนไขเปนจรง ใหไปท า
กจกรรมท 1 แลวจงท างานล าดบตอไป ถาเงอนไขท 1 ไมจรง ใหไปตรวจสอบเงอนไขท 2 ถา
เงอนไขท 2 เปนจรง ใหไปท ากจกรรมท 2 แลวท างานล าดบตอไป ถาเงอนไขท 2 ไมจรง ใหไป
ตรวจสอบเงอนไขตอไปเรอย ๆ จนถงเงอนไขท n ถาเงอนไขท n เปนจรงใหไปท ากจกรรมท n แลว
ท างานล าดบตอไป ถาเงอนไขท n ไมจรง ใหไปท ากจกรรมอนๆ
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 เปนค าสงทมความส าคญ ถาไมใส การท างานอาจให
ผลลพธทไมสมบรณได
24
ค าสง for
for คอ เปนค าสงทใชในการตรวจสอบเงอนไข พรอมทงก าหนดคาเรมตน และการ เปลยนแปลง
ของคาเรมตนไปพรอมๆกน โดยทตราบใดทเงอนไขในค าสง for เปนจรง กจะท างานตามค าสงท
แสดงไวภายในค าสง for ตอไป
รปแบบค าสง
For (คาตวแปรเรมตน ; เงอนไข ; เปลยนแปลงคาตวแปร)
ค าสงตาง ๆ
โดยท expression1 หมายถง การก าหนดตวแปรควบคมการวนซ า expression2 หมายถง การตรวจสอบเงอนไขการวนซ า expression3 หมายถง การปรบตวแปรควบคมการวนซ า
ค าสง while
while เปนฟงกชนวนลปหรอวนรอบ การท างานจะท าการตรวจสอบเงอนไขกอนถาเงอนไขเปน
จรงจะท าชดฟงกชนภายในปกกาเปดและปด แตถาเงอนไขเปนเทจจะออกจากลป
รปแบบค าสง
while (เงอนไข)
{
ค าสงทเปนจรง;
}
การท างาน
จะตรวจสอบวาคาของเงอนไขนนเปนจรงหรอเทจ ถาเปนจรงกจะประมวลผลประโยคค าสงตางๆ
ทอยภายใน Loop หลงจากออกจาก Loop แลวกจะประมวลผล ประโยคค าสงอนๆทตามมา
25
3.ตวด าเนนการก าหนดคา
3.1 ตวด าเนนการทางคณตศาสตร
การท างานจะเหมอนกบการใชเครองหมายคณตศาสตรทวไป ดงน
3.2 ตวด าเนนการเปรยบเทยบ
ใชเปรยบเทยบขอมล และผลลพธทไดมคาเปนจรง(1) และ เทจ(0) เทานน
3.3 ตวด าเนนการตรรกะ
ใชก าหนดเงอนไขมากกวา 1 เงอนไข จะไดผลลพธจะมคาเปนจรง(1) หรอ เปนเทจ(0)
3.4 ตวด าเนนการเพมคาและลดคา ผลลพธทไดจะอยในรปของคาตวเลข
26
ใบงานท 3 เรอง การใชโปรแกรม Arduino
สมาชกในกลม
1. .................................................................................................................................................... 2. .................................................................................................................................................... 3. ....................................................................................................................................................
1. ใหนกเรยนตดตงโปรแกรมภาษา Arduino ตามขนตอนในใบความรท 3 2. นกเรยนเขยนโปรแกรมและทดสอบโปรแกรมแรกไฟกะพรบ (blink) ตามขนตอนในใบความร
ท 3