98
IPST-SE ROBOT กกกกกกกกกกกกก กกกก i-BOT plus p l u s I-BOT

I bot new

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: I bot new

IPST-SE ROBOTการใช้�งานหุ่�นยนต์� i-BOT plus

p l u sI-BOT

Page 2: I bot new

หุ่ลั�กการของระบบควบคม2

อ�นพุต์ เอาต์�พุต์

ประมวลัผลั

Page 3: I bot new

บอร�ด IPST-SE3

Page 4: I bot new

4

แบต์เต์อร !

อแดปเต์อร�

เป"ด/ป"ด

เซอร�โว

USB (Download)

Analog/Digital I2

C

PORT DIGITAL

Page 5: I bot new

5PORT DIGITAL

RESET

Serial1

จอสี 128x160 จด

มอเต์อร�ไฟต์รง

ป)มปร�บ knobสีว�ต์ช้�

OKสีว�ต์ช้� SW1

ไฟแบต์อ�อน

Page 6: I bot new

6

Page 7: I bot new

7

HARDWARE

IPST-SE

โครงการ Opensource ของ Wiring

ต์�นก*าเน�ด IPST-SE

Page 8: I bot new

8

คอมไพุเลัอร� Open Source IPST-SE

Software

Edit+Compile+Download

Page 9: I bot new

9

Page 10: I bot new

10

ด�บเบ�+ลัคลั�ก ต์�ดต์�+ง

เป"ดโฟลัเดอร�ต์�ดต์�+งโปรแกรม

ข�+นต์อนต์�ดต์�+งโปรแกรม

เป"ดโฟลัเดอร�ต์�ดต์�+งโปรแกรม

10

Page 11: I bot new

ข�+นต์อนต์�ดต์�+งโปรแกรม

เม,!อจบข�+นต์อนน +จะม หุ่น�าต์�าง ต์�ดต์�+งไดรเวอร�หุ่�ามกด Cancel

11

Page 12: I bot new

ข�+นต์อนต์�ดต์�+งไดรเวอร�12

เพุ,!อใหุ่�คอมพุ�วเต์อร�ร-�จ�กก�บบอร�ด IPST-SE

Page 13: I bot new

13

ROBOT MINDMAP

Page 14: I bot new

14

โปรแกรม Wiring

Page 15: I bot new

15

ร-ปแบบของโปรแกรม Wiring

void setup() {

}void loop() {

}

สี*าหุ่ร�บก*าหุ่นดค�า เก�ดข.+นคร�+งเด ยว

โปรแกรมหุ่ลั�กทำ*างานต์�อเน,!อง

Page 16: I bot new

16โฟลัวช้าร�ต์แสีดงการทำ*างานของ Wiring

START

ทำ*างานใน Setup

ทำ*างานใน Loop

Page 17: I bot new

17

เลั,อกบอร�ดทำ !ใช้�งาน

เลั,อกบอร�ดเป0น IPST-SE

Page 18: I bot new

18

ต์รวจสีอบอปกรณ์�ภาคจ�ายไฟ

สีายเช้,!อมต์�อแบต์เต์อร !

แบต์เต์อร ! Li-Po

แดง บวก

ด*า ลับ

2 เซลั 7.4Vกระแสี

1100mAจ�ายกระแสี

25 เทำ�าช้าร�จ 5 เทำ�า

Page 19: I bot new

19

2 เซลั 7.4Vกระแสี

1100mAจ�ายกระแสี

25 เทำ�าช้าร�จ 5 เทำ�า

รายลัะเอ ยดแบต์ Li-Po

2 เซลั 7.4Vกระแสี

1100mAจ�ายกระแสี

25 เทำ�าช้าร�จ 5 เทำ�า

Page 20: I bot new

20

เช้,!อมต์�อสีายก�บคอมพุ�วเต์อร�

ต์�อแบต์เต์อร !

ต์�อสีาย USBไฟ USB ต์�ด

สีว�าง

Page 21: I bot new

21

ต์�อสีายก�บคอมพุ�วเต์อร�

Page 22: I bot new

22

เลั,อก Serial Port ใหุ่�ต์รงก�บหุ่น�าต์�าง Device Manager

เลั,อกพุอร�ต์อนกรม

Page 23: I bot new

23

โปรแกรมทำดสีอบโปรแกรมแรก

#include <ipst.h> void setup(){ OK(); glcd(0,0,"Hello World");}

void loop(){}

Page 24: I bot new

24

คอมไพุลั�

แจ�งผลัว�าคอมไพุลั�ผ�าน

ต์รวจสีอบไวยกรณ์�

Page 25: I bot new

25

ผลัลั�พุธ์�

Page 26: I bot new

26

คณ์สีมบ�ต์�ของจอภาพุ

Page 27: I bot new

27

glcd แสีดงข�อความทำ !จอ GLCD ได� 21 ต์�ว 16 บรรทำ�ด (size 1) ร-ปแบบ

void glcd(x,y,*p,...)พุาราม�เต์อร�

x ค,อต์*าแหุ่น�งบรรทำ�ดม ค�าต์�+งแต์� 0-15y ค,อต์*าแหุ่น�งต์�วอ�กษรม ค�าต์�+งแต์� 0-24*p ค,อข�อความทำ !ต์�องการน*ามาแสีดง

ค�าพุ�เศษ%d แสีดงต์�วเลัขจ*านวนเต์6มในช้�วง -32,768 ถึ.ง

32,767%h แสีดงต์�วเลัขฐานสี�บหุ่ก%b แสีดงต์�วเลัขฐานสีอง%l แสีดงต์�วเลัขจ*านวนเต์6มในช้�วง -

2,147,483,648 ถึ.ง 2,147,483,647%f แสีดงผลัต์�วเลัขจ*านวนจร�ง (แสีดงทำศน�ยม 3

หุ่ลั�ก)

ค*าสี�!ง GLCD

Page 28: I bot new

28

ปกต์�เป0น Mode 0

ค*าสี�!ง glcdMode (หุ่มนหุ่น�าจอ)

ต์�วอย�าง : glcdMode(1);

Page 29: I bot new

29

setTextColor(COLOR)

unsigned color[]={ GLCD_RED, GLCD_GREEN, GLCD_BLUE, GLCD_YELLOW, GLCD_BLACK, GLCD_WHITE, GLCD_SKY, GLCD_MAGENTA};

ต์�วอย�าง#include <ipst.h>void setup(){ setTextColor(GLCD_WHITE); glcd(0,0,"Hello"); setTextColor(GLCD_GREEN); glcd(1,0,"World");}void loop(){}

ค�าสี ต์�วอ�กษร

Page 30: I bot new

30

ค�าสี พุ,+นหุ่ลั�งต์�วอ�กษร

ต์�วอย�าง#include <ipst.h>void setup(){setTextBackgroundColor(GLCD_RED);setTextColor(GLCD_YELLOW);glcd(0,0,"Hello World");}void loop(){}

setTextBackgroundColor(COLOR)

Page 31: I bot new

31

ปร�บขนาดต์�วอ�กษร

setTextSize()

ต์�วอย�าง : setTextSize(4);

ขนาดต์�วอ�กษรเป0น 4 เทำ�าขนาดปกต์�

Page 32: I bot new

32

แสีดงร-ปทำรงเรขาคณ์�ต์

glcdRect(x,y,width,height,color) glcdFillRect(x,y,width,height,color) glcdCircle(x,y,radius,color) glcdFillCircle(x,y,radius,color)

glcdLine(x1,y1,x2,y2,color)

x ต์*าแหุ่น�งแนวนอนy ต์*าแหุ่น�งแนวต์�+ง

width ความกว�างheight ความสี-งredius ร�ศม

Page 33: I bot new

33

โจทำย�

สีร�างวงกลัมสี แดงอย-�ก.!งกลัางจอภาพุ ร�ศม เต์6มจอพุอด

Page 34: I bot new

34

โจทำย�

ลัากเสี�น 4 เสี�นโดยม จดต์�ดอย-�กลัางจอภาพุพุอด

Page 35: I bot new

35

โจทำย�

สีร�างสี !เหุ่ลั !ยมซ�อนก�นด�งร-ป

Page 36: I bot new

36

glcd แสีดงข�อความทำ !จอ GLCD ได� 21 ต์�ว 16 บรรทำ�ด (size 1) ร-ปแบบ

void glcd(x,y,*p,...)พุาราม�เต์อร�

x ค,อต์*าแหุ่น�งบรรทำ�ดม ค�าต์�+งแต์� 0-15y ค,อต์*าแหุ่น�งต์�วอ�กษรม ค�าต์�+งแต์� 0-24*p ค,อข�อความทำ !ต์�องการน*ามาแสีดง

ค�าพุ�เศษ%d แสีดงต์�วเลัขจ*านวนเต์6มในช้�วง -32,768 ถึ.ง

32,767%h แสีดงต์�วเลัขฐานสี�บหุ่ก%b แสีดงต์�วเลัขฐานสีอง%l แสีดงต์�วเลัขจ*านวนเต์6มในช้�วง -

2,147,483,648 ถึ.ง 2,147,483,647%f แสีดงผลัต์�วเลัขจ*านวนจร�ง (แสีดงทำศน�ยม 3

หุ่ลั�ก)

ค*าสี�!ง GLCD

Page 37: I bot new

37

การแสีดงผลัต์�วเลัข

glcd(0,0,"%d",100);

Page 38: I bot new

38

byte

0-65535 (unsigned int)word

0-255 (unsigned char)

0-1boolean True False

-32768 ถึ�ง 32767int

-128 ถึ�ง 127char-3.4 x 1038 ถึ�ง 3.4 x 1038 float

หุ่าข�อม-ลัเพุ�!มเต์�มจาก reference

ต์�วแปรทำ !ใช้�งานบ�อยๆ

Page 39: I bot new

39การต์�อเอาต์�พุต์ด�จ�ต์อลัอย�างง�าย

หุ่ลัอด LED

ต์�อช้�อง 18

ZX-LED

Page 40: I bot new

40

out(ch,state);

ส่�งค่�าส่ถึานะ(state) 0 หรื�อ 1 ออกไปยั�งตำ�าแหน�งขา (ch)ที่��รืะบุ�เช่�น out(17,1);ค*าสี�!งสี�งค�าออกเอาต์�พุต์ด�จ�ต์อลั

Page 41: I bot new

41

ก*าเน�ดเสี ยงก�บลั*าโพุงเป:ยโซ

• ใช้�ลั*าโพุงเป:ยโซ ม อ�มพุ แดนซ� 32W

• ม ค�าความถึ !ย�าน 300Hz

ถึ.ง 3000 HzZX-SPEAKER

Page 42: I bot new

42

การต์�อลั*าโพุงเป:ยโซต์�อช้�อง 16

ZX-SPEAKER

Page 43: I bot new

43

ฟ;งก�ช้�!นก*าเน�ดเสี ยงอย�างง�าย beep : ที่�าหน�าที่��ก�าเน ดเส่�ยังค่วามถึ�� 500 Hz นาน 100 ม ลล ว นาที่�

beep(ch);

ฟ;งก�ช้�!นก*าเน�ดเสี ยงความถึ !ใดๆ sound : ที่�าหน�าที่��ก�าเน ดเส่�ยังค่วามถึ�� ตำามช่�วงเวลาที่��ก�าหนด

sound(ch,freq,time);

พารืาม เตำอรื& freq ใช่�ก�าหนดค่�าค่วามถึ��ค่�าส่�ญญาณเส่�ยัง

time ใช่�ก�าหนดช่�วงเวลาในการืก�าเน ดส่�ญญาณเส่�ยังในหน�วยัม ลล ว นาที่�ค*าสี�!งสีร�างเสี ยง

Page 44: I bot new

44

สีร�างสี�ญญาณ์เสี ยงต์�=ดทำกๆ 1 ว�นาทำ (ความถึ !เสี ยง 500 Hz ด�งนาน 0.1 ว�นาทำ )#include <ipst.h>void setup(){

}void loop(){ beep(16); delay(1000);}

Page 45: I bot new

45

สีร�างสี�ญญาณ์เสี ยงความถึ ! 1200 Hz ด�งนาน 0.5 ว�นาทำ โดยเว�นหุ่�วงทำกๆ 1 ว�นาทำ #include <ipst.h>void setup(){}void loop(){ sound(16,1200,500); sleep(1000);}

Page 46: I bot new

46

knob()

หุ่มนเพุ,!อปร�บค�า80-1023

Page 47: I bot new

47

knob เป0นฟ;งก�ช้�!นอ�านค�าต์�วต์�านทำานปร�บค�าได�บน IPST-SE เหุ่ม,อนค*าสี�!ง analog(7) ค�าอย-�ในช้�วง 80-1023 ร-ปแบบ

knob(); การค,นค�า

ค�าทำ !อ�านได�จาก knob ม ค�าระหุ่ว�าง 80-1023ต์�วอย�าง

int val=0; // ก*าหุ่นดค�าต์�วแปรสี*าหุ่ร�บเก6บค�าอะนาลัอก

val=knob(); // อ�านค�าจาก knob เก6บค�าในต์�วแปร val

glcd("%d",val); // น*าค�าแสีดงทำ ! GLCDการใช้�งานค*าสี�!ง knob()

Page 48: I bot new

48

knob เป0นฟ;งก�ช้�!นอ�านค�าต์�วต์�านทำานปร�บค�าได�บน IPST-SE เหุ่ม,อนค*าสี�!ง analog(7) ค�าอย-�ในช้�วง 80-1023 ร-ปแบบ

knob(x); โดย x ค,อค�า Scaleการค,นค�า

ค�าทำ !อ�านได�จาก knob ม ค�าระหุ่ว�าง 0 ไปจนถึ.งค�า xต์�วอย�าง

int val=0; // ก*าหุ่นดค�าต์�วแปรสี*าหุ่ร�บเก6บค�าอะนาลัอก

val=knob(180); // อ�านค�าจาก knob เก6บค�าในต์�วแปร val

glcd("%d",val); // น*าค�าแสีดงทำ ! GLCDการใช้�งานค*าสี�!ง knob()

Page 49: I bot new

49

การแสีดงผลัค�า knob() ทำ !จอ GLCD

glcd(0,0,"%d",knob());

Page 50: I bot new

50สีว�ต์ช้� OK

กดเป0น Trueไม�กดเป0น False

ค*าสี�!ง sw_ok()

Page 51: I bot new

51

sw_OK () ต์รวจสีอบสีว�ต์ช้� OK บน IPST-SE ใหุ่�สีถึานะ True เม,!อกดสีว�ต์ช้�แลัะ False เม,!อไม�กดสีว�ต์ช้�ร-ปแบบ : sw_OK()การค,นค�า : 1 (True) เม,!อกดสีว�ต์ช้�

0 (False) เม,!อไม�กดสีว�ต์ช้�ต์�วอย�าง

if(sw_OK()) {beep();

}

การใช้�งานฟ;งก�ช้�!น sw_OK

Page 52: I bot new

52

การใช้�งานฟ;งก�ช้�!น sw_OK_press

เป0นฟ;งก�ช้�!นวนต์รวจสีอบการกดสีว�ต์ช้� OK บนบอร�ด IPST-SE ต์�องรอจนกระทำ�!ง SW1 ถึ-กปลั�อยหุ่ลั�งจากม การกดสีว�ต์ช้� จ.งจะผ�านฟ;งก�ช้�!นน +ไปทำ*างานค*าสี�!งอ,!นๆต์�วอย�าง

......sw_ok_press(); // รอจนกระทำ�!งกดสีว�ต์ช้�

OK ......

Page 53: I bot new

53

จงเข ยนโปรแกรมเพุ,!อใช้�สีว�ต์ช้�สีองต์�วบนบอร�ดเป"ด/ป"ดไฟ

สีว�ต์ช้�OK แลัะ SW1

Page 54: I bot new

54

Page 55: I bot new

55การเคลั,!อนทำ !ของหุ่�นยนต์�

ด�านหุ่น�า

motor 1

motor 2

motor (CH,POW)

CH ช้�อง 1 หุ่ร,อ 2

POW -100 ถึ.ง 100

ต์�วอย�าง : motor(1,100);motor(2,-50);

Page 56: I bot new

56ฟ;งก�ช้�!นข�บเคลั,!อนหุ่�นยนต์�

เด�นหุ่น�า

fd(speed);ถึอยหุ่ลั�ง

bk(speed);

เลั +ยวซ�าย

sl(speed);

เลั +ยวขวา

sr(speed);

tl(speed);

เลั +ยวลั�อเด ยว

tr(speed);

หุ่ยดหุ่�นยนต์�ao();

speed = 0-100

Page 57: I bot new

57เด�นหุ่น�า 1 ว�นาทำ ถึอยหุ่ลั�ง 1 ว�นาทำ

#include <ipst.h>void setup(){OK();}void loop(){ fd(80); delay(1000); bk(80); delay(1000);}

Page 58: I bot new

58เด�นวนเป0นสี !เหุ่ลั !ยม

#include <ipst.h>void setup(){}void loop(){ fd(80); delay(1000); sr(80); delay(600);}

Page 59: I bot new

59

fd2(Speed1,speed2); เด นหน�าbk2(Speed1,speed2); ถึอยัหล�งSpeed1 ค,อมอเต์อร�ด�านซ�ายSpeed2 ค,อมอเต์อร�ด�านขวา

ปร�บหุ่�นยนต์�ใหุ่�เด�นต์รง

มอเต์อร� 2 เร6วกว�ามอเต์อร� 1

Page 60: I bot new

60

แผงวงจรต์รวจจ�บการสีะทำ�อน ZX-03

Page 61: I bot new

61

การต์�ดต์�+งแผงวงจร ZX-03

Page 62: I bot new

62

ไมเก�น 1 CM

ความสี-ง ZX-03 จากพุ,+น

Page 63: I bot new

63

#include <ipst.h> void setup(){ setTextSize(3); glcdMode(1); glcd(1,1,"Press OK"); sw_OK_press(); } void loop(){ glcd(1,1,"L=%d ",analog(0)); glcd(3,1,"R=%d ",analog(1));}

อ�านค�าจาก ZX-03 แสีดงทำ ! GLCD

Page 64: I bot new

64

#include <ipst.h> void setup(){

OK(); } void loop(){ glcd(1,1,"L=%d ",analog(0)); glcd(3,1,"R=%d ",analog(1));}

อ�านค�าจาก ZX-03 แสีดงทำ ! GLCD

Page 65: I bot new

65

void OK(){ int state=0; glcdClear();

glcdMode(1);setTextSize(2); setTextColor(GLCD_WHITE);

setTextColor(0x3DFF);glcd(1,1,"TPA Junior"); setTextColor(0xFFE7);glcd(2,1,"ROBOT 2014"); setTextColor(GLCD_WHITE); glcd(4,1,"> Push "); setTextColor(GLCD_YELLOW); while(sw_OK()==0){ if (state==0){glcd(4,8,"OK");} else{ glcd(4,8," ");}

delay(150); state=state^0x01;

} setTextColor(GLCD_GREEN); glcd(4,1,"> Running.."); delay(250); setTextColor(GLCD_WHITE); }

ฟ;งก�ช้�!น OK()

Page 66: I bot new

66

อ�านค�าพุ,+นผ�วสี ขาวอ�านค�าพุ,+นผ�วสี ด*าผลัลั�พุธ์�จากการสีะทำ�อนแสีงจาก ZX-03

ค�าทำ !อ�านได�เปลั !ยนแปลังต์ามความสี-งเซนเซอร�จากพุ,+น

Page 67: I bot new

67

#include <ipst.h> void setup(){ glcdMode(1); setTextSize(2); glcd(1,1,"Press OK"); sw_OK_press(); glcd(1,1,"Moving..."); fd(100); while(analog(0)>250); ao(); glcd(1,1,"Stop... "); } void loop(){}

หุ่�นยนต์�เคลั,!อนทำ !หุ่ยดทำ !เสี�นด*า

มาจากค�ากลัางระหุ่ว�างขาวก�บด*า(450+50)/

2

Page 68: I bot new

68

#include <ipst.h> void setup(){ OK(); fd(100); while(analog(0)>250); ao(); glcd(1,1,"Stop... "); } void loop(){}

หุ่�นยนต์�เคลั,!อนทำ !หุ่ยดทำ !เสี�นด*า

มาจากค�ากลัางระหุ่ว�างขาวก�บด*า(450+50)/

2

Page 69: I bot new

69

ด�านซ�ายแลัะขวาเจอสี ขาวif(L>250&&R>250){ fd(60); }

1

Page 70: I bot new

70

ด�านซ�ายเจอสี ด*าif(L<250&&R>250){ sl(60); delay(20); }

2

Page 71: I bot new

71

ด�านขวาเจอสี ด*าif(L>250&&R<250){ sr(60); delay(20); }

3

Page 72: I bot new

72

ด�านขวาเจอสี ด*าif(L<250&&R<250){ fd(60); delay(200); }

4

Page 73: I bot new

73

ร-ปแบบเคลั,!อนทำ !ต์ามเสี�นอย�างง�ายๆ

Page 74: I bot new

74

#include <ipst.h>int L,R;void setup(){OK();}void loop(){ L=analog(0); R=analog(1); if(L>250&&R>250){ fd(100); } else if(L<250&&R>250){sl(100);delay(20); } else if(L>250&&R<250){sr(100);delay(20); }}

โปรแกรมทำดสีอบ

หุ่�นยนต์�เคลั,!อนทำ !ต์ามเสี�นอย�างง�าย

Page 75: I bot new

75

เจอเสี�นต์�ดสี�งเสี ยงต์�=ดออกลั*าโพุง

Page 76: I bot new

76

#include <ipst.h> int L,R;void setup(){OK();}void loop(){ L=analog(0); R=analog(1); if(L>250&&R>250){ fd(100);} else if(L<250&&R<250){

fd(100);sound(16,500,200); } else if(L<250&&R>250){sl(100);delay(20); } else if(L>250&&R<250){sr(100);delay(20); }}

โปรแกรมทำดสีอบสี�งเสี ยงเม,!อเจอแยก

Page 77: I bot new

77

เจอเสี�นต์�ดแลั�วเลั +ยวขวา

Page 78: I bot new

78

#include <ipst.h> int L,R;void setup(){OK();}void loop(){ L=analog(0); R=analog(1); if(L>250&&R>250){ fd(100); } else if(L<250&&R<250){ fd(100);sound(16,500,200); sr(100);delay(400); } else if(L<250&&R>250){sl(100);delay(20); } else if(L>250&&R<250){sr(100);delay(20); }}

โปรแกรมทำดสีอบเจอเสี�นต์�ดเลั +ยวขวา

Page 79: I bot new

79

การเลั +ยว 90 องศาพุอด เม,!อเจอเสี�นต์�ด

Page 80: I bot new

80

ร-ปแบบการสีร�างฟ;งก�ช้�!น

void R90(int x){ช้ดค*าสี�!งy=x+2;.

}

ช้,!อฟ;งก�ช้�!น ต์�วแปรทำ !สี�งไปย�งฟ;งก�ช้�!น

ช้ดค*าสี�!งในฟ;งก�ช้�!น

การใช้�งานฟ;งก�ช้�!นR90(200);

Page 81: I bot new

81

ฟ;งก�ช้�!นเจอเสี�นต์�ดเลั +ยวขวา/ซ�ายvoid R90(){ fd(60); sound(16,1500,100); while(analog(1)>250){sr(60);} while(analog(1)<250){sr(60);}}

void L90(){ fd(60); sound(16,1500,100); while(analog(0)>250){sl(60);} while(analog(0)<250){sl(60);}}

Page 82: I bot new

82

#include <ipst.h> int L,R;void setup(){OK();}void loop(){ L=analog(0); R=analog(1); if(L>250&&R>250){ fd(100); } else if(L<250&&R<250){R90(); } else if(L<250&&R>250){sl(100);delay(20); } else if(L>250&&R<250){sr(100);delay(20); }}void R90(){ fd(60); sound(16,1500,100); while(analog(1)>250){sr(60);} while(analog(1)<250){sr(60);}}

โปรแกรมทำดสีอบเจอเสี�นต์�ดเลั +ยวขวา NEW

Page 83: I bot new

83

เสี�นทำางเด�นทำ !ซ�บซ�อน

Page 84: I bot new

84

เซอร�โวมอเต์อร�มาต์รฐานแกนหุ่มน 180 องศา

GND (-)ไฟเลั +ยง (+)

สี�ญญาณ์ (S)

Page 85: I bot new

85

SM-Gripper

เสี ยบช้�อง SV0

SERVO1

เสี ยบช้�อง SV1

SERVO2

Page 86: I bot new

86

ฟ;งก�ช้�!นข�บเซอร�โวมอเต์อร�servo(CH,POS);

CH ช้�องทำ !ใช้�ข�บ = 0,1,2,3POS ต์*าแหุ่น�งองศาเซอร�โว = 0-180 ,-1ค�า -1 หุ่มายถึ.งหุ่ยดจ�ายสี�ญญาณ์ใหุ่�เซอร�โว

เซอร�โวจะไม�ลั6อกแกน

Page 87: I bot new

87

โปรแกรมทำดสีอบเซอร�โว 0#include <ipst.h> int x;void setup(){ OK();glcdClear();}void loop(){ x=knob(180); servo(0,x); glcd(1,1,"%d ",x); }

กางออกสีด

หุ่น บเข�าสีด

หุ่มน knob ทำดสีอบ

Page 88: I bot new

88

โปรแกรมทำดสีอบเซอร�โว 1#include <ipst.h> int x;void setup(){ OK();glcdClear();}void loop(){ x=knob(180); servo(1,x); glcd(1,1,"%d ",x); }

ขนานก�บพุ,+น

ต์�+งฉากก�บพุ,+น

หุ่มน knob ทำดสีอบ

Page 89: I bot new

89

ฟ;งก�ช้�!น sHome()#include <ipst.h> int x;void setup(){ OK(); sHome();}void loop(){}void sHome(){ servo(0,43);servo(1,51); delay(1000); servo(0,-1);servo(1,-1);}

เพุ,!อใหุ่�เซอร�โวอย-�ในต์*าแหุ่น�ง home

Page 90: I bot new

90

อ�ลัต์ร�าโซน�ค HC-SR04

GND (-)

ไฟเลั +ยง (+)

Trigger(17) Echo

(19)

Page 91: I bot new

91

Page 92: I bot new

92

ฟ;งก�ช้�!นอ�านค�าจาก HC-SR04

sonar();

ค,นค�าระยะทำางเป0นเซนต์�เมต์ร

__sonarTime();

ค,นค�าระยะทำางเป0นค�าด�บ

จะตำ�องเพ �มไลบุรืารื�� "ipst_sonar.h"

#include "ipst_sonar.h"

Page 93: I bot new

93

ต์�วอย�างการใช้�งานฟ;งก�ช้�!น Sonar#include "ipst.h"#include "ipst_sonar.h"

void setup() { OK();glcdClear();}void loop(){ glcd(3,1,"Dist=%d CM ",__sonarTime()); delay(100);}

Page 94: I bot new

94

Encoder อย�างง�ายจาก ZX-03Q

Page 95: I bot new

95

จ*านวนช้�องเทำ�าก�บ 12 ช้�องเสี�นผ�านศ-นย�กลัาง 5.5 CMเสี�นรอบวง = pD

เสี�นรอบวง = 17.3 CM

ช้�องการน�บ 1 ช้�อง = 17.3 / 12 = 1.4 CM / ช้�อง

5.5 CM

ค*านวณ์ระยะทำาง

Page 96: I bot new

96

แนวค�ดการเข ยนโปรแกรม

อ�านเป0นขาว 1 คร�+ง ด*า 1 คร�+งน�บเป0น 1 ค�า

while(x<13){ while(in(26)); while(!in(26)); x++; }

Page 97: I bot new

97

ทำดสีอบสีร�างเป0นฟ;งก�ช้�!นvoid ENC(int cnt){ int x=0; while(x<cnt) { while(analog(2)<400); while(analog(2)>400); x++; }}

fd(60);ENC(13);ao();

Page 98: I bot new

98

ทำดสีอบสีร�างเป0นฟ;งก�ช้�!นvoid ENC(int cnt){ int x=0; while(x<cnt) { while(analog(2)<400); while(analog(2)>400); x++; }}

sl(60);ENC(8);ao();