30
ขั้นตอนการเขียนโปแกรมและทดสอบหุ่นยนต์ด้วย AVR Studio 4 จัดทำโดย WWW.SEMI-SHOP.COM รวมกับ WWW.ROBODKIT.COM หน้า 1 ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4 CD ที่แถมมาให้กับชุดหุ่นยนต์ AVR จะมีชุดโปรแกรม avr studio V4 มาให้แล้ว และสามารถทาการติดตั้งตาม ขั้นตอนดังนีFolder / avr studio V4 ภายใน CD จะมี Folder / avr studio V4 ซึ่งภายใน Folder ดังกล่าวจะมีโปรแกรมอยู่ 3 ชุดคือ aStudio4b528 / AVRStudio4.13SP2 และ WinAVR-20070525-install จะมีชุดโปรแกรมอยู่ 3 ชุด ในการติดตั้งโปรแกรมจะต้องทาการติดตั้งแบบเรียงดาดับดังนี1. ทาการติดตั้ง aStudio4b528 ก่อน 2. ตามด้วยการติดตั้ง AVRStudio4.13SP2 3. และการติดตั้ง WinAVR-20070525-install ขั้นตอนกำรติดตั้ง aStudio4b528 1. เลือกทีaStudio4b528

ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 1

ขนตอนกำรตดตงโปรแกรม AVR Studio 4 CD ทแถมมาใหกบชดหนยนต AVR จะมชดโปรแกรม avr studio V4 มาใหแลว และสามารถท าการตดตงตาม

ขนตอนดงน

Folder / avr studio V4

ภายใน CD จะม Folder / avr studio V4 ซงภายใน Folder ดงกลาวจะมโปรแกรมอย 3 ชดคอ aStudio4b528 / AVRStudio4.13SP2 และ WinAVR-20070525-install

จะมชดโปรแกรมอย 3 ชด

ในการตดตงโปรแกรมจะตองท าการตดตงแบบเรยงด าดบดงน 1. ท าการตดตง aStudio4b528 กอน 2. ตามดวยการตดตง AVRStudio4.13SP2 3. และการตดตง WinAVR-20070525-install ขนตอนกำรตดตง aStudio4b528

1. เลอกท aStudio4b528

Page 2: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 2

2. โปรแกรมอยระหวางการตดตง 3. เลอก Next

4. เลอกท I accept the terms of the license agreement และ เลอก Next

5.เลอก Next (หากตองการเปลยนทอยทเกบของโปรแกรมกสามารถเลอกท Change ได)

6. เลอก Next 7.เลอก Install เพอท าการตดตงโปรแกรม

Page 3: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 3

8. โปรแกรมอยระหวางการตดตง และรอจนกวาจะเสรจสมบรณ 9.เมอโปรแกรมท าการตดตงเสรจแลวใหเลอก Finish

จากนนใหท าการตดตง AVRStudio4.13SP2 ตอเนองไปเลย ท ำกำรตดตง AVRStudio4.13SP2

1. เลอกท AVRStudio4.13SP2

2.เขาสการตดตงโปรแกรม 3. เลอก Next

Page 4: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 4

4. เลอก Next 5. โปรแกรมก าลงตดตงรอจนกวาจะเสรจ

6. เมอเสรจสนการตดตงใหเลอก Finish

จากนนใหท าการตดตง WinAVR-20070525-install ตอไปเลยครบ ท ำกำรตดตง WinAVR-20070525-install

1. เลอก WinAVR-20070525-install

Page 5: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 5

2. เลอก OK 3.เลอก Next

4. เลอก I Agree 5. เลอก Next (ถาตองการเปลยนทตดตงโปรแกรมกสามารถท าไดโดยเลอกท Browse)

6. เลอก Install เพอท าการตดตงโปรแกรม 7. โปรแกรมอยระหวางการตดตง

Page 6: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 6

8. เมอเสรจสนการตดตงแลวใหเลอก Finish เมอเสรจสนการตดตงทง 3 โปรแกรมแลวใหตรวจสอบวามโปรแกรม avr studio V4 พรอมใชงานหรอไม

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

Page 7: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 7

ขนตอนกำรเขยนโปแกรม

ขนตอนนจะเปนการเรยนรการใชงานโปรแกรม AVR Studio 4 การเขยนโปรแกรมทดสอบหนยนตเบองตนกนครบ ล าดบแรกใหท าการสราง Folder ทใชในการเกบ code กนกอนครบ ซงในทนจะท าการสราง Folder ชอ robodkit

Folder ทสรางขนมาเพอเกบ code program

กำรใชงำน AVR Studio 4 1. เปดโปรแกรมขนมากอน โดยเขาไปท start / All Program / Atmel AVR Tools / AVR Studio4

การเปดโปรแกรม ก าลงเขาสโปรแกรม

Page 8: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 8

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

2. ใหท าการสราง Project ใหม โดยการเลอก New Project

เลอกท New Project

3.เลอกท AVR GCC

Page 9: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 9

เลอกท AVR GCC

4. ใหท าการตงชอท Project name (ในตอนนจะใชชอวา robot_1) และใหเลอก Folder ทเกบ code ซงจะตองไปเกบไวใน folder ทไดสรางขนไวแลวจากนนใหเลอก Next

ท าการตงชอ และเลอกทเกบงาน

5. .ใหเลอก AVR Simulator และทขวามอจะมเบอร IC ของ AVR มากมาย

Page 10: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 10

เลอก AVR Simulator

6. ใหหาเบอร ATmega8 ซงเปนเบอรทใชกบหนยนตดงกลาว จากนนใหเลอก Finish

เลอกเบอร ATmega8

7. จะไดหนาตางโปรแกรมพรอมทจะท าการเขยนโปรแกรม

Page 11: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 11

หนาตางโปรแรกม 8.ตอไปจะเปนขนตอนการก าหนดรายละเอยดการคอมไพลไฟลโปรเจกต

ใหไปทเมน Project เลอกรายการ Configuration Option จะไดหนาตางดงรปดานลาง

Page 12: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 12

ในหนาตางนในชอง Frequency ใหก าหนดคาความถเทากบ 11059200 hz เพอใหตรงกบความถของตวหน และในชอง Optimization คอชองการเลอกการบบอดขอมลจะมอย 4 ระดบ ใหเลอกไวท –O1 หรอ –Os กอนส าหรบโปรแกรมตวอยาง ในกรณทท างานในโหมดดบกแลวไมเกดผลไดๆในการท างานของโปนแกรม ใหเลอกไปท –O0 เพอยกเลกการบบอดขอมล หมำยเหต ในการเขยนโปรแกรมใหมทกครงตองเขามาก าหนด Configuration Option เสมอ 9. ถาตอนนท าการเปดด Folder / robodkit จะพบไฟลอย 2 ไฟลดงภาพดงกลาว

ไฟลทปรากฏขน

10. ท าการเขยน Code ในหนาตาง Edit ดงน

Page 13: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 13

#include <avr/io.h> int main(void) { DDRB =0XFF; //ก าหนดใหพอรท บ เปน เอาทพท ทงหมด DDRD =0XFF; //ก าหนดใหพอรท ด เปน เอาทพท ทงหมด while(1) { PORTB=0x10; // 0001 0000 ใหมอเตอรขวาเดนหนา PORTD=0x80; // 1000 0000 ใหมอเตอรซายเดนหนา } }

11. จากนนให ท าการคอมไพล เพอตรวจสอบการท างานของ code โดยไปทเมน Build > Compile หรอ ใช Alt + F7

ท าการคอมไพล

Page 14: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 14

12. ถาคอมไพลผาน จะขนลกษณะดงกลาว คอ เขยน code ถกตอง หากเขยนผดกใหท าการแกไขและคอมไพลใหมจนกวาจะถกตอง

ถาคอมไพลไมผานจะขนแบบน

13. หากเขาไปดท Folder / robodkit จะเหนวาไดไฟลใหมและ Folder / default เกดขน

เขาไปดใน Folder / Robodkit

Page 15: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 15

14. จากนนใหท าการ Build โดยไปทเมน Build > Build หรอ กด F7

การ Build 15. ถา Build สมบรณจะขนขอความดงกลาว

16. ถาเขาไหดใน Folder / robodkit ใน Folder Default จะพบมไฟล robot_1 .HEX ซงเปนไฟลทใชในการ load code เขาไปในตว IC ครบ

Page 16: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 16

เมอ Build แลวจะได .HEX เมอเสรจสนขนตอนการเขยนโปแกรมแลวขนตอนตอไปจะท าการ load Program เขากบตวหนยนตและทดสอบหนยนตกน

Page 17: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 17

ขนตอนกำร Load Program และ กำรทดสอบหนยนต กำรเตรยมหนยนต

หนยนตจะตองมการประกอบใหสมบรณและตอขวตางๆใหถกตอง และตองใชถานทใหม จากนนท าการตอสาย USB เขากบคอมพวเตอรและตวหนยนตดงภาพ และในระหวางการ load program จะตองท าการปดสวตชหนยนตกอนทกครง ใหเหลอแคไพเลยงจาก USB เทานน

ปดสวตชกอนท าการ Load program

กำรเรยกหำ USB Drivers ของหนยนตเมอตดตอกบคอมพวเตอรในครงแรก

เมอตอสาย USB เขากบหนยนตและเครองคอมพวเตอรครงแรก เครองคอมพวเตอรอาจจะยงไมรจกจงจะมการเรยกหา USB Drivers ซง USB Drivers ดงกลาวไดอยในแผน CD ทแถมมาใหแลว ใน Folder / FTDI USB Drivers ขนตอนกำร Load program

เนองจาก เราใช PORT USB ในการ load program เราจ าเปนตองรวา Port ทใชงานดงกลาวเปน Port COM ทเทาไร และยงเปนการทดสอบดวยวาการเชอมตอสมบรณหรอไม (ในตวอยางจะได COM 3)

การตรวจสอบการตดตอกบ USB สมบรณ

Page 18: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 18

กลบไปท AVR Studio 4 อกครง และท าตามขนตอนดงน 1. ไปทเมน Tool > Program AVR > Connect...

การเลอกการ Connect 2. จากนนเลอก STK500 or AVRISP สวน Port กเลอก Port ทตดตอกบ USB หรอ ใหเลอก Auto กไดเพราะจะหาใหเอง จากนนเลอก Connect…

การเลอกการ Connect เพอตดตอกบตวหนยนต

Page 19: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 19

3. เมอ Connect ผานจะเขาสหนา AVRISP ดงกลาว

หนา AVRISP

4. ใหเลอกเมน Main เพอก าหนดคณสมบตตางๆ ท Device ใหเลอกเบอร IC คอ ATmega8

Page 20: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 20

หนาตาง Main จากนนใหกด Read Signature เพอทจะท าการตดตอกบ IC สวนคาอนๆใหไวคงเดม

หนาตาง Main แสดงการอาน Read Signature

5. เมอเขามาดท Fuses จะไดการก าหนดเงอนไขดงรป ไมตองไปเปลยนแปลง

.

Page 21: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 21

หนาตาง Fuses 6. จากนนใหเขามาทหนา Program ในสวนของ Flash ใหเลอก Input HEX File และท าการเลอก ไฟลทจะท าการ load (ในทน คอ robot_1.HEX)

เลอก ไฟลทจะท าการ Load

7. เมอเลอกไฟลแลวใหท าการเลอกท Program จากนน code ตางๆกจะเขาสตว IC ในหนยนต โดยสวนลางจะเปนการแสดงผลการท างาน

Page 22: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 22

การ Program และ รายละเอยดการท างาน 8. จากนนใหท าการทอดสาย USB ออก และท าการเปดสวตชหนยนต หนยนตจะวงไปขางหนา แสดงวา code ทเขยนถกตองและการ load program สมบรณ

พรอมวงแลวครบ...

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

Page 23: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 23

ตำงรำงรปแบบกำรเคลอนทของหนยนต

รปแบบการเคลอนท Code / ค าสงในการเขยนโปรแกรม

หนยนตหยดอยกบท PORTB = 0x00 PORTD = 0x00

หนยนตเดนหนา PORTB = 0x10 PORTD = 0x80

หนยนตถอยหลง PORTB = 0x20

PORTD = 0x40

หนยนตหมนขวา PORTB = 0x10 PORTD = 0x40

หนยนตหมนซาย PORTB = 0x20 PORTD = 0x80

หนยนตเลยวขวา PORTB = 0x10

PORTD = 0x00

หนยนตเลยวซาย PORTB = 0x00 PORTD = 0x80

หนยนตถอยหลงเลยวขวา PORTB = 0x00

PORTD = 0x40

หนยนตถอยหลงเลยวซาย PORTB = 0x20 PORTD = 0x00

รปแบบการรบสญญาณของ sensor

Sensor L อยทพน สด า (PIND&(1<<PIND2)) = 0

Sensor L อยทพน สขาว (PIND&(1<<PIND2)) = 1

Sensor R อยทพน สด า (PINC&(1<<PINC2)) = 0

Sensor R อยทพน สขาว (PINC&(1<<PINC2)) = 1

Page 24: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 24

ตวอยางโปรแกรมการทดลอง 1 : /*

2 : Workfile : Robot1.c

3 : */

4 :

5 : #include <avr/io.h> //เปนการเรยกใชงานรจสเตอรและฟงชนตาง 6 :

7 : int main(void) //ฟงชนหลกของภาษาซ

8 : {

9 : DDRB =0XFF; // ก าหนดให Port B เปน output ทงหมด

10 : DDRD =0XFF; // ก าหนดให Port D เปน output ทงหมด

11 :

12 : while(1) // เปนค าสงวนลปในภาษาซ จะวนการท างานในบรรทดท 12-16 13 : {

14 : PORTB=0x10; //ก าหนดใหมอเตอรขวาเดนหนา 15 : PORTD=0x80; //ก าหนดใหมอเตอรซายเดนหนา 16 : }

17 : }

จากโปรแกรมขางตนเราสามารถก าหนดคาของ PortB และ PortD ตามตารางทใหไวดานบน และลองดการเปลยนแปลงการท างานของตวหนวาเปนไปตามทตารางก าหนดไวหรอไม

Page 25: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 25

ตวอยางตอไปเราจะเรยกใชฟงชนหนวงเวลาหรอ #include <util/delay.h> มาดตวอยางกนเลยครบ

1 : /*

2 : Workfile : Robot2.c

3 : */

4 : #include <avr/io.h> //เปนการเรยกใชงานรจสเตอรและฟงชนตาง 5 : #include <util/delay.h> //เรยกใชงานฟงชนหนวงเวลา 6 : #define F_CPU 11059200UL //ก าคาความถทใชในการหนวงเวลา 11059200 hz

7 : 8 : /*********** delay ******************/

9 : void delay_ms(unsigned int i) //ฟงชน หนวงเวลา 10 : {

11 : for(; i>0; i--) 12 : _delay_ms(1); 13 : }

14 : 15 : /***************** main program ************/

16 : int main(void) //ฟงชนหลกของภาษาซ

17 : {

18 : DDRB =0XFF; // ก าหนดให Port B เปน output ทงหมด

19 : DDRD =0XFF; // ก าหนดให Port D เปน output ทงหมด

20 :

21 : while(1) // เปนค าสงวนลปในภาษาซ จะวนการท างานในบรรทดท 12-16 22 : {

23 : PORTB=0x10; //ก าหนดใหมอเตอรขวาเดนหนา 24 : PORTD=0x80; //ก าหนดใหมอเตอรซายเดนหนา 25 : _delay_ms(500); //หนวงเวลาการท างาน 500มลลวนาท หรอ 0.5 วนาท

26 : PORTB=0x00; //ก าหนดใหมอเตอรขวาหยด

27 : PORTD=0x00; //ก าหนดใหมอเตอรซายหยด

28 : _delay_ms(500); //หนวงเวลาการท างาน 500มลลวนาท หรอ 0.5 วนาท

29 : }

30 : }

จากโปรแกรม Robot2 จะเหนวามอเตอรจะท างานแบบเดนหนาไป 0.5 และหยด 0.5 วนาทสลบกนไป

โจทย 1.เพมเวลา จาก 500 เปน 1000 ดการเปลยนแปลง 2.ใหมอเตอรเดนหนา 500 และถอยหลง 500 3.ใหมอเตอรเดนหนา 500 เลยวขวา 500 เลยวซาย 500 ถอยหลง 500 หยด 500

Page 26: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 26

ตวอยางตอไปจะเปนการใชงานตวตรวจจบสญญาณ input หรอ sensor

1 : /*

2 : Workfile : Robot2.c

3 : */

4 : #include <avr/io.h> //เปนการเรยกใชงานรจสเตอรและฟงชนตาง 5 :

6 : /***************** main program ************/

7 : int main(void) //ฟงชนหลกของภาษาซ

8 : {

9 : DDRB =0XFF; // ก าหนดให Port B เปน output ทงหมด

10 : DDRD =0XC0; // ก าหนดให Port D7,D6 เปน output D5-D0 เปน input

11 : DDRC =0X00; // ก าหนดให Port D เปน input ทงหมด

12 :

13 : while(1) // เปนค าสงวนลปในภาษาซ จะวนการท างานในบรรทดท 12-16 14 : {

15 : If((PIND&(1<<PIND2)) != 0) //ตรวจจบ sensor ซาย มการท างาน

16 : {

17 : PORTD=0x80; //ก าหนดใหมอเตอรซายเดนหนา 18 : }

19 : else //ตรวจจบ sensor ซาย มการท างาน

20 : {

31 : PORTD=0x00; //ก าหนดใหมอเตอรซายหยด

32 : }

33 :

21 : If((PINC&(1<<PINC2)) != 0) //ตรวจจบ sensor ขวา มการท างาน

22 : {

23 : PORTB=0x10; //ก าหนดใหมอเตอรขวาเดนหนา 24 : }

25 : else //ตรวจจบ sensor ขวา มการท างาน

26 : {

34 : PORTB=0x00; //ก าหนดใหมอเตอรขวาหยด

35 : }

36 : }

37 : }

เมอโหลดโปรแกรมลงตวหนแลว ใหลองเอามอเขาไปใกลกบตว sensor ทง ซายและขวา จะสงเกตเหนวา มอเตอรจะหมนในขณะท sensor มาอยใกลมอเรา เทานเรากไดหนยนตเดนตามเสนแลวครบ

Page 27: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 27

ตวอยาง SUMO ROBOTKIT /************************************************************** * Workfile : AVR_SUMO_1 Test motor * * Purpose : DC Motor Control * * Copyright : Advance Project Group Co.,Ltd. * * Author : Santichai jaichuen * * Email : [email protected] * * Compiler : AVR Studio/WINAVR * * Target : Atmega8A * * Other Files : PCB AP107-1 * ************************************************************/ #include <avr/io.h> #include <compat/deprecated.h> // Use sbi(), cbi() function #include <util/delay.h> #define F_CPU 11059200UL //11.0592 MHz /*********************************************************/ #define DC_MR_POUT PORTB #define DC_MR_DDR DDRB #define DC_MR_DDR_OUT (1<<DDB4)|(1<<DDB5) #define DC_ML_POUT PORTD #define DC_ML_DDR DDRD #define DC_ML_DDR_OUT (1<<DDD6)|(1<<DDD7) #define MOTOR_RIGHT_F 4 // PIN PB4 #define MOTOR_RIGHT_B 5 // PIN PB5 #define MOTOR_LEFT_B 6 // PIN PD6 #define MOTOR_LEFT_F 7 // PIN PD7 #define ON_MR(x) sbi(DC_MR_POUT, x); #define OFF_MR(x) cbi(DC_MR_POUT, x); #define ON_ML(x) sbi(DC_ML_POUT, x); #define OFF_ML(x) cbi(DC_ML_POUT, x); /******************* delay_ms ********************************/ void delay_ms(uint16_t i) { for (; i>0; i--) _delay_ms(0.65); }

Page 28: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 28

/*************** Motor Forward ********************/ void Motor_Forward() { ON_ML(MOTOR_LEFT_F); // Motor left start OFF_ML(MOTOR_LEFT_B); ON_MR(MOTOR_RIGHT_F); // Motor right start OFF_MR(MOTOR_RIGHT_B); } /*************** Motor Backword *******************/ void Motor_Backword() { OFF_ML(MOTOR_LEFT_F); // Motor left start ON_ML(MOTOR_LEFT_B); OFF_MR(MOTOR_RIGHT_F); // Motor right start ON_MR(MOTOR_RIGHT_B); } /*************** Motor Stop ***********************/ void Motor_Stop() { OFF_ML(MOTOR_LEFT_F); // Motor left start OFF_ML(MOTOR_LEFT_B); OFF_MR(MOTOR_RIGHT_F); // Motor right start OFF_MR(MOTOR_RIGHT_B); } /*************** Motor Turn Left ******************/ void Motor_Turn_Left() { ON_ML(MOTOR_LEFT_F); // Motor left start OFF_ML(MOTOR_LEFT_B); OFF_MR(MOTOR_RIGHT_F); // Motor right start OFF_MR(MOTOR_RIGHT_B); } /*************** Motor Turn Right *****************/ void Motor_Turn_Right() { OFF_ML(MOTOR_LEFT_F); // Motor left start OFF_ML(MOTOR_LEFT_B);

Page 29: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 29

ON_MR(MOTOR_RIGHT_F); // Motor right start OFF_MR(MOTOR_RIGHT_B); } /*************** Motor Rotate Left *****************/ void Motor_Rotate_Left() { ON_ML(MOTOR_LEFT_F); // Motor left start OFF_ML(MOTOR_LEFT_B); OFF_MR(MOTOR_RIGHT_F); // Motor right start ON_MR(MOTOR_RIGHT_B); } /*************** Motor Rotate Right *****************/ void Motor_Rotate_Right() { OFF_ML(MOTOR_LEFT_F); // Motor left start ON_ML(MOTOR_LEFT_B); ON_MR(MOTOR_RIGHT_F); // Motor right start OFF_MR(MOTOR_RIGHT_B); } /*************** Main Functions *******************/ int main(void) { DC_MR_DDR = DC_MR_DDR_OUT; // Set Port Output DC_ML_DDR = DC_ML_DDR_OUT; // Set Port Output while (1){ Motor_Forward(); delay_ms(1000); Motor_Stop(); delay_ms(50); Motor_Backword(); delay_ms(1000); Motor_Stop(); delay_ms(50);

Page 30: ขั้นตอนกำรติดตั้งโปรแกรม AVR Studio 4...ข นตอนการเข ยนโปแกรมและทดสอบห นยนต

ขนตอนการเขยนโปแกรมและทดสอบหนยนตดวย AVR Studio 4

จดท ำโดย WWW.SEMI-SHOP.COM รวมกบ WWW.ROBODKIT.COM หนา 30

Motor_Turn_Left(); delay_ms(2000); Motor_Stop(); delay_ms(50); Motor_Turn_Right(); delay_ms(2000); Motor_Stop(); delay_ms(50); Motor_Rotate_Left(); delay_ms(2000); Motor_Stop(); delay_ms(50); Motor_Rotate_Right(); delay_ms(2000); Motor_Stop(); delay_ms(50); } return 0; }